; LLVM IR from xhub/reshop :: gui/external/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.41, %struct.ImSpan.42, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i16, i16, float, float, float, float, float, float, i32, i32, [2 x i32], i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, ptr, ptr, %struct.ImGuiTextBuffer, ptr, %struct.ImGuiTableInstanceData, %struct.ImVector.43, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.44, %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, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [6 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.41 = type { ptr, ptr }
%struct.ImSpan.42 = type { ptr, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.28 }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImGuiTableInstanceData = type { i32, float, float, float, i32, i32 }
%struct.ImVector.43 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImGuiTableSortSpecs = type <{ ptr, i32, i8, [3 x i8] }>
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImGuiPlatformIO, %struct.ImGuiStyle, ptr, float, float, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i32, i8, i8, i8, i8, ptr, [16 x i8], %struct.ImVector.1, %struct.ImVector.1, i32, i32, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.3, %struct.ImGuiStorage, i32, %struct.ImVec2, i32, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i32, i32, float, float, i8, i8, i8, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, %struct.ImGuiDeactivatedItemData, %struct.ImGuiDataTypeStorage, i32, float, double, double, double, %struct.ImBitArray, [154 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, i8, i32, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, i8, i8, i8, i8, i32, ptr, i32, i32, i32, i32, i32, i32, %struct.ImVector.9, i32, float, i32, i32, i32, i64, 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, i32, i32, i8, i8, i32, i32, ptr, ptr, ptr, float, float, i8, i32, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.15, [16 x i8], i32, %struct.ImVector.16, ptr, i32, i32, %struct.ImVector.17, %struct.ImPool, %struct.ImVector.19, %struct.ImVector.20, ptr, %struct.ImPool.21, %struct.ImVector.23, %struct.ImVector.24, %struct.ImGuiBoxSelectState, ptr, i32, %struct.ImVector.25, %struct.ImPool.26, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, %struct.ImGuiDataTypeStorage, i32, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, i16, float, float, float, i8, i8, float, float, float, i16, i16, ptr, %struct.ImVector.28, %struct.ImVector.30, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.31, %struct.ImChunkStream, %struct.ImChunkStream.32, %struct.ImVector.33, i32, [10 x ptr], i8, i32, ptr, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, ptr, ptr, %struct.ImVec2, i8, i32, %struct.ImGuiErrorRecoveryState, ptr, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i32, i32, i8, i8, i8, i32, i8, i8, i8, i32, float, %struct.ImVec4, %struct.ImGuiMetricsConfig, %struct.ImGuiIDStackTool, %struct.ImGuiDebugAllocInfo, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.28, [64 x i8] }
%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, i8, float, float, float, float, float, float, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, %struct.ImVec2, ptr, %struct.ImVec2, [5 x i8], float, float, i32, i8, i8, i8, i8, i32, [154 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, i8, [5 x float], [5 x float], [5 x float], float, i8, i8, i16, %struct.ImVector, ptr, ptr, ptr }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, 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, float, float, float, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [56 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type <{ %struct.ImVec2, ptr, ptr, float, float, float, float, %struct.ImVec4, i32, [4 x i8], %struct.ImVector.0, [48 x %struct.ImVec2], float, [64 x i8], [4 x i8] }>
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.4 }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImGuiDeactivatedItemData = type { i32, i32, i8, i8 }
%struct.ImBitArray = type { [5 x i32] }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [154 x i16], %struct.ImVector.5, %struct.ImVector.5 }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, i32, [4 x i8], i64, float, i32, i32, i8, i8, %struct.ImGuiDataTypeStorage, [2 x i8], i32, [4 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, i32 }
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, i8, %struct.ImRect, ptr, ptr, float, %struct.ImVec2, i32 }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float, i64 }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.18, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImPool.21 = type { %struct.ImVector.22, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImGuiBoxSelectState = type <{ i32, i8, i8, i8, i8, i8, i16, i8, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [4 x i8], ptr, i8, [3 x i8], %struct.ImRect, %struct.ImRect, %struct.ImRect, [4 x i8] }>
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImPool.26 = type { %struct.ImVector.27, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, ptr, i32, i32, i32, [4 x i8], ptr, %struct.ImVector.28, %struct.ImVector.28, %struct.ImVector.28, i32, %struct.ImVec2, float, i8, i8, i8, i8, i32, i32, [4 x i8] }>
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.28 }
%struct.ImFont = type <{ %struct.ImVector.19, float, float, %struct.ImVector, %struct.ImVector.29, 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.29 = type { i32, i32, ptr }
%struct.ImGuiDataTypeStorage = type { [8 x i8] }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImGuiTypingSelectState = type <{ %struct.ImGuiTypingSelectRequest, [64 x i8], i32, i32, float, i8, [3 x i8] }>
%struct.ImGuiTypingSelectRequest = type { i32, i32, ptr, i8, i8, i8 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.28 }
%struct.ImChunkStream.32 = type { %struct.ImVector.28 }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImGuiErrorRecoveryState = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.10, i32, [4 x i8] }>
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32 }
%struct.ImGuiIDStackTool = type { i32, i32, i32, %struct.ImVector.34, i8, float }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImGuiTableColumn = type <{ i32, float, 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, [4 x i8], ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, 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, i8, i16, i16, i16, i16, i16, i8, i8, i8, [3 x i8], i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8], %struct.ImVector.30, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, float, float, [4 x i8], %struct.ImGuiStorage, %struct.ImVector.35, 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, [3 x i8] }>
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.2, ptr, ptr, i32, i32, i32, i32, float, float, %struct.ImVector.19, %struct.ImVector.19 }
%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.35 = type { i32, i32, ptr }
%struct.ImDrawList = type { %struct.ImVector.36, %struct.ImVector, %struct.ImVector.37, i32, i32, ptr, ptr, ptr, %struct.ImVector.0, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, %struct.ImVector.38, %struct.ImVector.39, %struct.ImVector.15, float, ptr }
%struct.ImVector.36 = type { i32, i32, ptr }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, i64, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.20 }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.39 = type { i32, i32, ptr }

@GImGui = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [81 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMinIfET_S0_S0_(float noundef, float noundef) #3

; 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 dso_local noundef nonnull align 4 dereferenceable(115) 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 float, align 4
  %40 = alloca i32, align 4
  %41 = alloca i8, align 1
  %42 = alloca i8, align 1
  %43 = alloca float, align 4
  %44 = alloca %struct.ImRect, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca float, align 4
  %49 = alloca i8, align 1
  %50 = alloca float, align 4
  %51 = alloca float, align 4
  %52 = alloca float, align 4
  %53 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #10
  %54 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %54, ptr %3, align 8, !tbaa !5
  %55 = load ptr, ptr %2, align 8, !tbaa !5
  %56 = getelementptr inbounds %struct.ImGuiTable, ptr %55, i32 0, i32 92
  %57 = load i8, ptr %56, align 2, !tbaa !9, !range !28, !noundef !29
  %58 = trunc i8 %57 to i1
  %59 = zext i1 %58 to i32
  %60 = icmp eq i32 %59, 0
  br i1 %60, label %61, label %62

61:                                               ; preds = %1
  br label %64

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

63:                                               ; No predecessors!
  br label %64

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

96:                                               ; preds = %384, %64
  %97 = load i32, ptr %12, align 4, !tbaa !31
  %98 = load ptr, ptr %2, align 8, !tbaa !5
  %99 = getelementptr inbounds %struct.ImGuiTable, ptr %98, i32 0, i32 13
  %100 = load i32, ptr %99, align 4, !tbaa !35
  %101 = icmp slt i32 %97, %100
  br i1 %101, label %103, label %102

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

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

113:                                              ; preds = %103
  %114 = load ptr, ptr %2, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.ImGuiTable, ptr %114, i32 0, i32 101
  store i8 0, ptr %115, align 1, !tbaa !32
  br label %116

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

127:                                              ; preds = %116
  %128 = load ptr, ptr %2, align 8, !tbaa !5
  %129 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef %128, ptr noundef %129, i32 noundef 0)
  %130 = load ptr, ptr %15, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %130, i32 0, i32 18
  store i16 -1, ptr %131, align 4, !tbaa !117
  %132 = load ptr, ptr %15, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %132, i32 0, i32 10
  store i32 0, ptr %133, align 4, !tbaa !119
  %134 = load ptr, ptr %15, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %134, i32 0, i32 8
  store float -1.000000e+00, ptr %135, align 4, !tbaa !120
  br label %136

136:                                              ; preds = %127, %116
  %137 = load ptr, ptr %2, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.ImGuiTable, ptr %137, i32 0, i32 1
  %139 = load i32, ptr %138, align 4, !tbaa !30
  %140 = and i32 %139, 4
  %141 = icmp ne i32 %140, 0
  br i1 %141, label %142, label %148

142:                                              ; preds = %136
  %143 = load ptr, ptr %15, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %143, i32 0, i32 0
  %145 = load i32, ptr %144, align 4, !tbaa !121
  %146 = and i32 %145, 128
  %147 = icmp ne i32 %146, 0
  br i1 %147, label %148, label %151

148:                                              ; preds = %142, %136
  %149 = load ptr, ptr %15, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %149, i32 0, i32 29
  store i8 1, ptr %150, align 4, !tbaa !122
  br label %151

151:                                              ; preds = %148, %142
  %152 = load ptr, ptr %15, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %152, i32 0, i32 28
  %154 = load i8, ptr %153, align 1, !tbaa !123, !range !28, !noundef !29
  %155 = trunc i8 %154 to i1
  %156 = zext i1 %155 to i32
  %157 = load ptr, ptr %15, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %157, i32 0, i32 29
  %159 = load i8, ptr %158, align 4, !tbaa !122, !range !28, !noundef !29
  %160 = trunc i8 %159 to i1
  %161 = zext i1 %160 to i32
  %162 = icmp ne i32 %156, %161
  br i1 %162, label %163, label %173

163:                                              ; preds = %151
  %164 = load ptr, ptr %15, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %164, i32 0, i32 29
  %166 = load i8, ptr %165, align 4, !tbaa !122, !range !28, !noundef !29
  %167 = trunc i8 %166 to i1
  %168 = load ptr, ptr %15, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %168, i32 0, i32 28
  %170 = zext i1 %167 to i8
  store i8 %170, ptr %169, align 1, !tbaa !123
  %171 = load ptr, ptr %2, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.ImGuiTable, ptr %171, i32 0, i32 100
  store i8 1, ptr %172, align 2, !tbaa !124
  br label %173

173:                                              ; preds = %163, %151
  %174 = load ptr, ptr %15, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %174, i32 0, i32 28
  %176 = load i8, ptr %175, align 1, !tbaa !123, !range !28, !noundef !29
  %177 = trunc i8 %176 to i1
  br i1 %177, label %178, label %184

178:                                              ; preds = %173
  %179 = load ptr, ptr %15, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %179, i32 0, i32 0
  %181 = load i32, ptr %180, align 4, !tbaa !121
  %182 = and i32 %181, 1
  %183 = icmp eq i32 %182, 0
  br label %184

184:                                              ; preds = %178, %173
  %185 = phi i1 [ false, %173 ], [ %183, %178 ]
  %186 = load ptr, ptr %15, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %186, i32 0, i32 27
  %188 = zext i1 %185 to i8
  store i8 %188, ptr %187, align 2, !tbaa !125
  %189 = load ptr, ptr %15, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %189, i32 0, i32 23
  %191 = load i16, ptr %190, align 2, !tbaa !126
  %192 = sext i16 %191 to i32
  %193 = icmp ne i32 %192, -1
  br i1 %193, label %194, label %202

194:                                              ; preds = %184
  %195 = load ptr, ptr %15, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %195, i32 0, i32 27
  %197 = load i8, ptr %196, align 2, !tbaa !125, !range !28, !noundef !29
  %198 = trunc i8 %197 to i1
  br i1 %198, label %202, label %199

199:                                              ; preds = %194
  %200 = load ptr, ptr %2, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.ImGuiTable, ptr %200, i32 0, i32 95
  store i8 1, ptr %201, align 1, !tbaa !127
  br label %202

202:                                              ; preds = %199, %194, %184
  %203 = load ptr, ptr %15, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %203, i32 0, i32 23
  %205 = load i16, ptr %204, align 2, !tbaa !126
  %206 = sext i16 %205 to i32
  %207 = icmp sgt i32 %206, 0
  br i1 %207, label %208, label %217

208:                                              ; preds = %202
  %209 = load ptr, ptr %2, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.ImGuiTable, ptr %209, i32 0, i32 1
  %211 = load i32, ptr %210, align 4, !tbaa !30
  %212 = and i32 %211, 67108864
  %213 = icmp ne i32 %212, 0
  br i1 %213, label %217, label %214

214:                                              ; preds = %208
  %215 = load ptr, ptr %2, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.ImGuiTable, ptr %215, i32 0, i32 95
  store i8 1, ptr %216, align 1, !tbaa !127
  br label %217

217:                                              ; preds = %214, %208, %202
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #10
  %218 = load ptr, ptr %15, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %218, i32 0, i32 0
  %220 = load i32, ptr %219, align 4, !tbaa !121
  %221 = and i32 %220, 16
  %222 = icmp ne i32 %221, 0
  br i1 %222, label %223, label %228

223:                                              ; preds = %217
  %224 = load ptr, ptr %15, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %224, i32 0, i32 4
  %226 = load float, ptr %225, align 4, !tbaa !128
  %227 = fcmp olt float %226, 0.000000e+00
  br label %233

228:                                              ; preds = %217
  %229 = load ptr, ptr %15, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %229, i32 0, i32 7
  %231 = load float, ptr %230, align 4, !tbaa !129
  %232 = fcmp olt float %231, 0.000000e+00
  br label %233

233:                                              ; preds = %228, %223
  %234 = phi i1 [ %227, %223 ], [ %232, %228 ]
  %235 = zext i1 %234 to i8
  store i8 %235, ptr %16, align 1, !tbaa !113
  %236 = load i8, ptr %16, align 1, !tbaa !113, !range !28, !noundef !29
  %237 = trunc i8 %236 to i1
  br i1 %237, label %238, label %243

238:                                              ; preds = %233
  %239 = load ptr, ptr %15, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %239, i32 0, i32 37
  store i8 7, ptr %240, align 4, !tbaa !130
  %241 = load ptr, ptr %15, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %241, i32 0, i32 36
  store i8 7, ptr %242, align 1, !tbaa !131
  br label %243

243:                                              ; preds = %238, %233
  %244 = load ptr, ptr %15, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %244, i32 0, i32 27
  %246 = load i8, ptr %245, align 2, !tbaa !125, !range !28, !noundef !29
  %247 = trunc i8 %246 to i1
  br i1 %247, label %251, label %248

248:                                              ; preds = %243
  %249 = load ptr, ptr %15, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %249, i32 0, i32 20
  store i16 -1, ptr %250, align 4, !tbaa !132
  store i32 4, ptr %13, align 4
  br label %381

251:                                              ; preds = %243
  %252 = load i32, ptr %7, align 4, !tbaa !31
  %253 = trunc i32 %252 to i16
  %254 = load ptr, ptr %15, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %254, i32 0, i32 21
  store i16 %253, ptr %255, align 2, !tbaa !133
  %256 = load ptr, ptr %15, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %256, i32 0, i32 22
  store i16 -1, ptr %257, align 4, !tbaa !134
  %258 = load i32, ptr %7, align 4, !tbaa !31
  %259 = icmp ne i32 %258, -1
  br i1 %259, label %260, label %268

260:                                              ; preds = %251
  %261 = load i32, ptr %14, align 4, !tbaa !31
  %262 = trunc i32 %261 to i16
  %263 = load ptr, ptr %2, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.ImGuiTable, ptr %263, i32 0, i32 4
  %265 = load i32, ptr %7, align 4, !tbaa !31
  %266 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %264, i32 noundef %265)
  %267 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %266, i32 0, i32 22
  store i16 %262, ptr %267, align 4, !tbaa !134
  br label %273

268:                                              ; preds = %251
  %269 = load i32, ptr %14, align 4, !tbaa !31
  %270 = trunc i32 %269 to i16
  %271 = load ptr, ptr %2, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ImGuiTable, ptr %271, i32 0, i32 79
  store i16 %270, ptr %272, align 4, !tbaa !37
  br label %273

273:                                              ; preds = %268, %260
  %274 = load ptr, ptr %2, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.ImGuiTable, ptr %274, i32 0, i32 66
  %276 = load i16, ptr %275, align 2, !tbaa !33
  %277 = add i16 %276, 1
  store i16 %277, ptr %275, align 2, !tbaa !33
  %278 = load ptr, ptr %15, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %278, i32 0, i32 20
  store i16 %276, ptr %279, align 4, !tbaa !132
  %280 = load ptr, ptr %2, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.ImGuiTable, ptr %280, i32 0, i32 8
  %282 = load ptr, ptr %281, align 8, !tbaa !34
  %283 = load i32, ptr %14, align 4, !tbaa !31
  call void @_Z16ImBitArraySetBitPji(ptr noundef %282, i32 noundef %283)
  %284 = load ptr, ptr %2, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiTable, ptr %284, i32 0, i32 7
  %286 = load ptr, ptr %285, align 8, !tbaa !36
  %287 = load ptr, ptr %15, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %287, i32 0, i32 19
  %289 = load i16, ptr %288, align 2, !tbaa !135
  %290 = sext i16 %289 to i32
  call void @_Z16ImBitArraySetBitPji(ptr noundef %286, i32 noundef %290)
  %291 = load i32, ptr %14, align 4, !tbaa !31
  store i32 %291, ptr %7, align 4, !tbaa !31
  %292 = load ptr, ptr %15, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %292, i32 0, i32 20
  %294 = load i16, ptr %293, align 4, !tbaa !132
  %295 = sext i16 %294 to i32
  %296 = load ptr, ptr %15, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %296, i32 0, i32 19
  %298 = load i16, ptr %297, align 2, !tbaa !135
  %299 = sext i16 %298 to i32
  %300 = icmp sle i32 %295, %299
  br i1 %300, label %301, label %302

301:                                              ; preds = %273
  br label %304

302:                                              ; preds = %273
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 871, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

303:                                              ; No predecessors!
  br label %304

304:                                              ; preds = %303, %301
  %305 = load ptr, ptr %15, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %305, i32 0, i32 34
  %307 = load i8, ptr %306, align 1, !tbaa !136, !range !28, !noundef !29
  %308 = trunc i8 %307 to i1
  br i1 %308, label %321, label %309

309:                                              ; preds = %304
  %310 = load ptr, ptr %2, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImGuiTable, ptr %310, i32 0, i32 16
  %312 = load i16, ptr %311, align 8, !tbaa !137
  %313 = sext i16 %312 to i32
  %314 = icmp eq i32 %313, 0
  br i1 %314, label %315, label %321

315:                                              ; preds = %309
  %316 = load ptr, ptr %2, align 8, !tbaa !5
  %317 = load ptr, ptr %15, align 8, !tbaa !5
  %318 = call noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef %316, ptr noundef %317)
  %319 = load ptr, ptr %15, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %319, i32 0, i32 5
  store float %318, ptr %320, align 4, !tbaa !138
  br label %321

321:                                              ; preds = %315, %309, %304
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #10
  %322 = load ptr, ptr %15, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %322, i32 0, i32 0
  %324 = load i32, ptr %323, align 4, !tbaa !121
  %325 = and i32 %324, 32
  %326 = icmp eq i32 %325, 0
  %327 = zext i1 %326 to i8
  store i8 %327, ptr %17, align 1, !tbaa !113
  %328 = load i8, ptr %17, align 1, !tbaa !113, !range !28, !noundef !29
  %329 = trunc i8 %328 to i1
  br i1 %329, label %330, label %331

330:                                              ; preds = %321
  store i8 1, ptr %9, align 1, !tbaa !113
  br label %331

331:                                              ; preds = %330, %321
  %332 = load ptr, ptr %15, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %332, i32 0, i32 0
  %334 = load i32, ptr %333, align 4, !tbaa !121
  %335 = and i32 %334, 16
  %336 = icmp ne i32 %335, 0
  br i1 %336, label %337, label %351

337:                                              ; preds = %331
  %338 = load ptr, ptr %15, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %338, i32 0, i32 8
  %340 = load float, ptr %339, align 4, !tbaa !120
  %341 = fcmp ogt float %340, 0.000000e+00
  br i1 %341, label %342, label %351

342:                                              ; preds = %337
  %343 = load i8, ptr %17, align 1, !tbaa !113, !range !28, !noundef !29
  %344 = trunc i8 %343 to i1
  br i1 %344, label %351, label %345

345:                                              ; preds = %342
  %346 = load ptr, ptr %15, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %346, i32 0, i32 8
  %348 = load float, ptr %347, align 4, !tbaa !120
  %349 = load ptr, ptr %15, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %349, i32 0, i32 5
  store float %348, ptr %350, align 4, !tbaa !138
  br label %351

351:                                              ; preds = %345, %342, %337, %331
  %352 = load ptr, ptr %15, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %352, i32 0, i32 36
  %354 = load i8, ptr %353, align 1, !tbaa !131
  %355 = zext i8 %354 to i32
  %356 = icmp ne i32 %355, 0
  br i1 %356, label %357, label %358

357:                                              ; preds = %351
  store i8 1, ptr %8, align 1, !tbaa !113
  br label %358

358:                                              ; preds = %357, %351
  %359 = load ptr, ptr %15, align 8, !tbaa !5
  %360 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %359, i32 0, i32 0
  %361 = load i32, ptr %360, align 4, !tbaa !121
  %362 = and i32 %361, 8
  %363 = icmp ne i32 %362, 0
  br i1 %363, label %364, label %372

364:                                              ; preds = %358
  %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 !138
  %368 = load float, ptr %10, align 4, !tbaa !114
  %369 = fadd float %368, %367
  store float %369, ptr %10, align 4, !tbaa !114
  %370 = load i32, ptr %6, align 4, !tbaa !31
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr %6, align 4, !tbaa !31
  br label %380

372:                                              ; preds = %358
  %373 = load float, ptr %11, align 4, !tbaa !114
  %374 = load ptr, ptr %15, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %374, i32 0, i32 5
  %376 = load float, ptr %375, align 4, !tbaa !138
  %377 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %373, float noundef %376)
  store float %377, ptr %11, align 4, !tbaa !114
  %378 = load i32, ptr %5, align 4, !tbaa !31
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr %5, align 4, !tbaa !31
  br label %380

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

381:                                              ; preds = %380, %248
  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
  %382 = load i32, ptr %13, align 4
  switch i32 %382, label %1986 [
    i32 0, label %383
    i32 4, label %384
  ]

383:                                              ; preds = %381
  br label %384

384:                                              ; preds = %383, %381
  %385 = load i32, ptr %12, align 4, !tbaa !31
  %386 = add nsw i32 %385, 1
  store i32 %386, ptr %12, align 4, !tbaa !31
  br label %96, !llvm.loop !139

387:                                              ; preds = %102
  %388 = load ptr, ptr %2, align 8, !tbaa !5
  %389 = getelementptr inbounds %struct.ImGuiTable, ptr %388, i32 0, i32 1
  %390 = load i32, ptr %389, align 4, !tbaa !30
  %391 = and i32 %390, 8
  %392 = icmp ne i32 %391, 0
  br i1 %392, label %393, label %408

393:                                              ; preds = %387
  %394 = load ptr, ptr %2, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.ImGuiTable, ptr %394, i32 0, i32 65
  %396 = load i16, ptr %395, align 8, !tbaa !141
  %397 = sext i16 %396 to i32
  %398 = icmp eq i32 %397, 0
  br i1 %398, label %399, label %408

399:                                              ; preds = %393
  %400 = load ptr, ptr %2, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.ImGuiTable, ptr %400, i32 0, i32 1
  %402 = load i32, ptr %401, align 4, !tbaa !30
  %403 = and i32 %402, 134217728
  %404 = icmp ne i32 %403, 0
  br i1 %404, label %408, label %405

405:                                              ; preds = %399
  %406 = load ptr, ptr %2, align 8, !tbaa !5
  %407 = getelementptr inbounds %struct.ImGuiTable, ptr %406, i32 0, i32 95
  store i8 1, ptr %407, align 1, !tbaa !127
  br label %408

408:                                              ; preds = %405, %399, %393, %387
  %409 = load i32, ptr %7, align 4, !tbaa !31
  %410 = trunc i32 %409 to i16
  %411 = load ptr, ptr %2, align 8, !tbaa !5
  %412 = getelementptr inbounds %struct.ImGuiTable, ptr %411, i32 0, i32 80
  store i16 %410, ptr %412, align 2, !tbaa !142
  %413 = load ptr, ptr %2, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.ImGuiTable, ptr %413, i32 0, i32 79
  %415 = load i16, ptr %414, align 4, !tbaa !37
  %416 = sext i16 %415 to i32
  %417 = icmp sge i32 %416, 0
  br i1 %417, label %418, label %424

418:                                              ; preds = %408
  %419 = load ptr, ptr %2, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.ImGuiTable, ptr %419, i32 0, i32 80
  %421 = load i16, ptr %420, align 2, !tbaa !142
  %422 = sext i16 %421 to i32
  %423 = icmp sge i32 %422, 0
  br label %424

424:                                              ; preds = %418, %408
  %425 = phi i1 [ false, %408 ], [ %423, %418 ]
  br i1 %425, label %426, label %427

426:                                              ; preds = %424
  br label %429

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

428:                                              ; No predecessors!
  br label %429

429:                                              ; preds = %428, %426
  %430 = load i8, ptr %8, align 1, !tbaa !113, !range !28, !noundef !29
  %431 = trunc i8 %430 to i1
  br i1 %431, label %432, label %445

432:                                              ; preds = %429
  %433 = load ptr, ptr %2, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.ImGuiTable, ptr %433, i32 0, i32 55
  %435 = load ptr, ptr %434, align 8, !tbaa !143
  %436 = load ptr, ptr %2, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.ImGuiTable, ptr %436, i32 0, i32 56
  %438 = load ptr, ptr %437, align 8, !tbaa !144
  %439 = icmp ne ptr %435, %438
  br i1 %439, label %440, label %445

440:                                              ; preds = %432
  %441 = load ptr, ptr %2, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.ImGuiTable, ptr %441, i32 0, i32 56
  %443 = load ptr, ptr %442, align 8, !tbaa !144
  %444 = getelementptr inbounds %struct.ImGuiWindow, ptr %443, i32 0, i32 41
  store i8 0, ptr %444, align 1, !tbaa !145
  br label %445

445:                                              ; preds = %440, %432, %429
  %446 = load i8, ptr %8, align 1, !tbaa !113, !range !28, !noundef !29
  %447 = trunc i8 %446 to i1
  br i1 %447, label %448, label %451

448:                                              ; preds = %445
  %449 = load ptr, ptr %2, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.ImGuiTable, ptr %449, i32 0, i32 100
  store i8 1, ptr %450, align 2, !tbaa !124
  br label %451

451:                                              ; preds = %448, %445
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  store float 0.000000e+00, ptr %18, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  store float 0.000000e+00, ptr %19, align 4, !tbaa !114
  %452 = load ptr, ptr %2, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.ImGuiTable, ptr %452, i32 0, i32 82
  store i16 -1, ptr %453, align 2, !tbaa !159
  %454 = load ptr, ptr %2, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.ImGuiTable, ptr %454, i32 0, i32 81
  store i16 -1, ptr %455, align 8, !tbaa !160
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !31
  br label %456

456:                                              ; preds = %685, %451
  %457 = load i32, ptr %20, align 4, !tbaa !31
  %458 = load ptr, ptr %2, align 8, !tbaa !5
  %459 = getelementptr inbounds %struct.ImGuiTable, ptr %458, i32 0, i32 13
  %460 = load i32, ptr %459, align 4, !tbaa !35
  %461 = icmp slt i32 %457, %460
  br i1 %461, label %463, label %462

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

463:                                              ; preds = %456
  %464 = load ptr, ptr %2, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.ImGuiTable, ptr %464, i32 0, i32 8
  %466 = load ptr, ptr %465, align 8, !tbaa !34
  %467 = load i32, ptr %20, align 4, !tbaa !31
  %468 = ashr i32 %467, 5
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds i32, ptr %466, i64 %469
  %471 = load i32, ptr %470, align 4, !tbaa !31
  %472 = load i32, ptr %20, align 4, !tbaa !31
  %473 = and i32 %472, 31
  %474 = shl i32 1, %473
  %475 = and i32 %471, %474
  %476 = icmp ne i32 %475, 0
  br i1 %476, label %478, label %477

477:                                              ; preds = %463
  br label %685

478:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %479 = load ptr, ptr %2, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.ImGuiTable, ptr %479, i32 0, i32 4
  %481 = load i32, ptr %20, align 4, !tbaa !31
  %482 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %480, i32 noundef %481)
  store ptr %482, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #10
  %483 = load ptr, ptr %21, align 8, !tbaa !5
  %484 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %483, i32 0, i32 0
  %485 = load i32, ptr %484, align 4, !tbaa !121
  %486 = and i32 %485, 32
  %487 = icmp eq i32 %486, 0
  %488 = zext i1 %487 to i8
  store i8 %488, ptr %22, align 1, !tbaa !113
  %489 = load ptr, ptr %21, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %489, i32 0, i32 0
  %491 = load i32, ptr %490, align 4, !tbaa !121
  %492 = and i32 %491, 16
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %494, label %573

494:                                              ; preds = %478
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %495 = load ptr, ptr %21, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %495, i32 0, i32 5
  %497 = load float, ptr %496, align 4, !tbaa !138
  store float %497, ptr %23, align 4, !tbaa !114
  %498 = load i32, ptr %4, align 4, !tbaa !31
  %499 = icmp eq i32 %498, 16384
  br i1 %499, label %500, label %511

500:                                              ; preds = %494
  %501 = load ptr, ptr %21, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %501, i32 0, i32 36
  %503 = load i8, ptr %502, align 1, !tbaa !131
  %504 = zext i8 %503 to i32
  %505 = icmp ne i32 %504, 0
  br i1 %505, label %509, label %506

506:                                              ; preds = %500
  %507 = load i8, ptr %22, align 1, !tbaa !113, !range !28, !noundef !29
  %508 = trunc i8 %507 to i1
  br i1 %508, label %511, label %509

509:                                              ; preds = %506, %500
  %510 = load float, ptr %11, align 4, !tbaa !114
  store float %510, ptr %23, align 4, !tbaa !114
  br label %511

511:                                              ; preds = %509, %506, %494
  %512 = load ptr, ptr %21, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %512, i32 0, i32 36
  %514 = load i8, ptr %513, align 1, !tbaa !131
  %515 = zext i8 %514 to i32
  %516 = icmp ne i32 %515, 0
  br i1 %516, label %517, label %521

517:                                              ; preds = %511
  %518 = load float, ptr %23, align 4, !tbaa !114
  %519 = load ptr, ptr %21, align 8, !tbaa !5
  %520 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %519, i32 0, i32 4
  store float %518, ptr %520, align 4, !tbaa !128
  br label %540

521:                                              ; preds = %511
  %522 = load ptr, ptr %21, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %522, i32 0, i32 0
  %524 = load i32, ptr %523, align 4, !tbaa !121
  %525 = and i32 %524, 16
  %526 = icmp ne i32 %525, 0
  br i1 %526, label %527, label %539

527:                                              ; preds = %521
  %528 = load i8, ptr %22, align 1, !tbaa !113, !range !28, !noundef !29
  %529 = trunc i8 %528 to i1
  br i1 %529, label %539, label %530

530:                                              ; preds = %527
  %531 = load ptr, ptr %21, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %531, i32 0, i32 32
  %533 = load i8, ptr %532, align 1, !tbaa !161, !range !28, !noundef !29
  %534 = trunc i8 %533 to i1
  br i1 %534, label %535, label %539

535:                                              ; preds = %530
  %536 = load float, ptr %23, align 4, !tbaa !114
  %537 = load ptr, ptr %21, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %537, i32 0, i32 4
  store float %536, ptr %538, align 4, !tbaa !128
  br label %539

539:                                              ; preds = %535, %530, %527, %521
  br label %540

540:                                              ; preds = %539, %517
  %541 = load ptr, ptr %21, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %541, i32 0, i32 36
  %543 = load i8, ptr %542, align 1, !tbaa !131
  %544 = zext i8 %543 to i32
  %545 = icmp sgt i32 %544, 1
  br i1 %545, label %546, label %567

546:                                              ; preds = %540
  %547 = load ptr, ptr %2, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.ImGuiTable, ptr %547, i32 0, i32 94
  %549 = load i8, ptr %548, align 8, !tbaa !162, !range !28, !noundef !29
  %550 = trunc i8 %549 to i1
  br i1 %550, label %551, label %567

551:                                              ; preds = %546
  %552 = load ptr, ptr %21, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %552, i32 0, i32 34
  %554 = load i8, ptr %553, align 1, !tbaa !136, !range !28, !noundef !29
  %555 = trunc i8 %554 to i1
  br i1 %555, label %567, label %556

556:                                              ; preds = %551
  %557 = load ptr, ptr %21, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %557, i32 0, i32 4
  %559 = load float, ptr %558, align 4, !tbaa !128
  %560 = load ptr, ptr %2, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.ImGuiTable, ptr %560, i32 0, i32 32
  %562 = load float, ptr %561, align 8, !tbaa !112
  %563 = fmul float %562, 4.000000e+00
  %564 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %559, float noundef %563)
  %565 = load ptr, ptr %21, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %565, i32 0, i32 4
  store float %564, ptr %566, align 4, !tbaa !128
  br label %567

567:                                              ; preds = %556, %551, %546, %540
  %568 = load ptr, ptr %21, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %568, i32 0, i32 4
  %570 = load float, ptr %569, align 4, !tbaa !128
  %571 = load float, ptr %18, align 4, !tbaa !114
  %572 = fadd float %571, %570
  store float %572, ptr %18, align 4, !tbaa !114
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %677

573:                                              ; preds = %478
  %574 = load ptr, ptr %21, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %574, i32 0, i32 36
  %576 = load i8, ptr %575, align 1, !tbaa !131
  %577 = zext i8 %576 to i32
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %587, label %579

579:                                              ; preds = %573
  %580 = load ptr, ptr %21, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %580, i32 0, i32 7
  %582 = load float, ptr %581, align 4, !tbaa !129
  %583 = fcmp olt float %582, 0.000000e+00
  br i1 %583, label %587, label %584

584:                                              ; preds = %579
  %585 = load i8, ptr %22, align 1, !tbaa !113, !range !28, !noundef !29
  %586 = trunc i8 %585 to i1
  br i1 %586, label %617, label %587

587:                                              ; preds = %584, %579, %573
  %588 = load ptr, ptr %21, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %588, i32 0, i32 8
  %590 = load float, ptr %589, align 4, !tbaa !120
  %591 = fcmp ogt float %590, 0.000000e+00
  br i1 %591, label %592, label %598

592:                                              ; preds = %587
  %593 = load ptr, ptr %21, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %593, i32 0, i32 8
  %595 = load float, ptr %594, align 4, !tbaa !120
  %596 = load ptr, ptr %21, align 8, !tbaa !5
  %597 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %596, i32 0, i32 7
  store float %595, ptr %597, align 4, !tbaa !129
  br label %616

598:                                              ; preds = %587
  %599 = load i32, ptr %4, align 4, !tbaa !31
  %600 = icmp eq i32 %599, 24576
  br i1 %600, label %601, label %612

601:                                              ; preds = %598
  %602 = load ptr, ptr %21, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %602, i32 0, i32 5
  %604 = load float, ptr %603, align 4, !tbaa !138
  %605 = load float, ptr %10, align 4, !tbaa !114
  %606 = fdiv float %604, %605
  %607 = load i32, ptr %6, align 4, !tbaa !31
  %608 = sitofp i32 %607 to float
  %609 = fmul float %606, %608
  %610 = load ptr, ptr %21, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %610, i32 0, i32 7
  store float %609, ptr %611, align 4, !tbaa !129
  br label %615

612:                                              ; preds = %598
  %613 = load ptr, ptr %21, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %613, i32 0, i32 7
  store float 1.000000e+00, ptr %614, align 4, !tbaa !129
  br label %615

615:                                              ; preds = %612, %601
  br label %616

616:                                              ; preds = %615, %592
  br label %617

617:                                              ; preds = %616, %584
  %618 = load ptr, ptr %21, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %618, i32 0, i32 7
  %620 = load float, ptr %619, align 4, !tbaa !129
  %621 = load float, ptr %19, align 4, !tbaa !114
  %622 = fadd float %621, %620
  store float %622, ptr %19, align 4, !tbaa !114
  %623 = load ptr, ptr %2, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.ImGuiTable, ptr %623, i32 0, i32 81
  %625 = load i16, ptr %624, align 8, !tbaa !160
  %626 = sext i16 %625 to i32
  %627 = icmp eq i32 %626, -1
  br i1 %627, label %644, label %628

628:                                              ; preds = %617
  %629 = load ptr, ptr %2, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.ImGuiTable, ptr %629, i32 0, i32 4
  %631 = load ptr, ptr %2, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.ImGuiTable, ptr %631, i32 0, i32 81
  %633 = load i16, ptr %632, align 8, !tbaa !160
  %634 = sext i16 %633 to i32
  %635 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %630, i32 noundef %634)
  %636 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %635, i32 0, i32 19
  %637 = load i16, ptr %636, align 2, !tbaa !135
  %638 = sext i16 %637 to i32
  %639 = load ptr, ptr %21, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %639, i32 0, i32 19
  %641 = load i16, ptr %640, align 2, !tbaa !135
  %642 = sext i16 %641 to i32
  %643 = icmp sgt i32 %638, %642
  br i1 %643, label %644, label %649

644:                                              ; preds = %628, %617
  %645 = load i32, ptr %20, align 4, !tbaa !31
  %646 = trunc i32 %645 to i16
  %647 = load ptr, ptr %2, align 8, !tbaa !5
  %648 = getelementptr inbounds %struct.ImGuiTable, ptr %647, i32 0, i32 81
  store i16 %646, ptr %648, align 8, !tbaa !160
  br label %649

649:                                              ; preds = %644, %628
  %650 = load ptr, ptr %2, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.ImGuiTable, ptr %650, i32 0, i32 82
  %652 = load i16, ptr %651, align 2, !tbaa !159
  %653 = sext i16 %652 to i32
  %654 = icmp eq i32 %653, -1
  br i1 %654, label %671, label %655

655:                                              ; preds = %649
  %656 = load ptr, ptr %2, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.ImGuiTable, ptr %656, i32 0, i32 4
  %658 = load ptr, ptr %2, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.ImGuiTable, ptr %658, i32 0, i32 82
  %660 = load i16, ptr %659, align 2, !tbaa !159
  %661 = sext i16 %660 to i32
  %662 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %657, i32 noundef %661)
  %663 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %662, i32 0, i32 19
  %664 = load i16, ptr %663, align 2, !tbaa !135
  %665 = sext i16 %664 to i32
  %666 = load ptr, ptr %21, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %666, i32 0, i32 19
  %668 = load i16, ptr %667, align 2, !tbaa !135
  %669 = sext i16 %668 to i32
  %670 = icmp slt i32 %665, %669
  br i1 %670, label %671, label %676

671:                                              ; preds = %655, %649
  %672 = load i32, ptr %20, align 4, !tbaa !31
  %673 = trunc i32 %672 to i16
  %674 = load ptr, ptr %2, align 8, !tbaa !5
  %675 = getelementptr inbounds %struct.ImGuiTable, ptr %674, i32 0, i32 82
  store i16 %673, ptr %675, align 2, !tbaa !159
  br label %676

676:                                              ; preds = %671, %655
  br label %677

677:                                              ; preds = %676, %567
  %678 = load ptr, ptr %21, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %678, i32 0, i32 34
  store i8 0, ptr %679, align 1, !tbaa !136
  %680 = load ptr, ptr %2, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.ImGuiTable, ptr %680, i32 0, i32 34
  %682 = load float, ptr %681, align 8, !tbaa !163
  %683 = load float, ptr %18, align 4, !tbaa !114
  %684 = call float @llvm.fmuladd.f32(float %682, float 2.000000e+00, float %683)
  store float %684, ptr %18, align 4, !tbaa !114
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %685

685:                                              ; preds = %677, %477
  %686 = load i32, ptr %20, align 4, !tbaa !31
  %687 = add nsw i32 %686, 1
  store i32 %687, ptr %20, align 4, !tbaa !31
  br label %456, !llvm.loop !164

688:                                              ; preds = %462
  %689 = load i32, ptr %5, align 4, !tbaa !31
  %690 = trunc i32 %689 to i16
  %691 = load ptr, ptr %2, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.ImGuiTable, ptr %691, i32 0, i32 67
  store i16 %690, ptr %692, align 4, !tbaa !165
  %693 = load float, ptr %19, align 4, !tbaa !114
  %694 = load ptr, ptr %2, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiTable, ptr %694, i32 0, i32 40
  store float %693, ptr %695, align 8, !tbaa !166
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #10
  %696 = load ptr, ptr %2, align 8, !tbaa !5
  %697 = getelementptr inbounds %struct.ImGuiTable, ptr %696, i32 0, i32 48
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 8 %697, i64 16, i1 false), !tbaa.struct !167
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %698 = load ptr, ptr %2, align 8, !tbaa !5
  %699 = getelementptr inbounds %struct.ImGuiTable, ptr %698, i32 0, i32 33
  %700 = load float, ptr %699, align 4, !tbaa !168
  %701 = load ptr, ptr %2, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.ImGuiTable, ptr %701, i32 0, i32 35
  %703 = load float, ptr %702, align 4, !tbaa !169
  %704 = load ptr, ptr %2, align 8, !tbaa !5
  %705 = getelementptr inbounds %struct.ImGuiTable, ptr %704, i32 0, i32 36
  %706 = load float, ptr %705, align 8, !tbaa !170
  %707 = fadd float %703, %706
  %708 = load ptr, ptr %2, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.ImGuiTable, ptr %708, i32 0, i32 66
  %710 = load i16, ptr %709, align 2, !tbaa !33
  %711 = sext i16 %710 to i32
  %712 = sub nsw i32 %711, 1
  %713 = sitofp i32 %712 to float
  %714 = fmul float %707, %713
  %715 = call float @llvm.fmuladd.f32(float %700, float 2.000000e+00, float %714)
  store float %715, ptr %25, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %716 = load ptr, ptr %2, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.ImGuiTable, ptr %716, i32 0, i32 109
  %718 = load i8, ptr %717, align 1, !tbaa !171, !range !28, !noundef !29
  %719 = trunc i8 %718 to i1
  br i1 %719, label %720, label %732

720:                                              ; preds = %688
  %721 = load ptr, ptr %2, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.ImGuiTable, ptr %721, i32 0, i32 56
  %723 = load ptr, ptr %722, align 8, !tbaa !144
  %724 = getelementptr inbounds %struct.ImGuiWindow, ptr %723, i32 0, i32 35
  %725 = load i8, ptr %724, align 1, !tbaa !172, !range !28, !noundef !29
  %726 = trunc i8 %725 to i1
  br i1 %726, label %732, label %727

727:                                              ; preds = %720
  %728 = load ptr, ptr %3, align 8, !tbaa !5
  %729 = getelementptr inbounds %struct.ImGuiContext, ptr %728, i32 0, i32 4
  %730 = getelementptr inbounds %struct.ImGuiStyle, ptr %729, i32 0, i32 21
  %731 = load float, ptr %730, align 4, !tbaa !173
  br label %733

732:                                              ; preds = %720, %688
  br label %733

733:                                              ; preds = %732, %727
  %734 = phi float [ %731, %727 ], [ 0.000000e+00, %732 ]
  store float %734, ptr %26, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %735 = load ptr, ptr %2, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.ImGuiTable, ptr %735, i32 0, i32 1
  %737 = load i32, ptr %736, align 4, !tbaa !30
  %738 = and i32 %737, 16777216
  %739 = icmp ne i32 %738, 0
  br i1 %739, label %740, label %749

740:                                              ; preds = %733
  %741 = load ptr, ptr %2, align 8, !tbaa !5
  %742 = getelementptr inbounds %struct.ImGuiTable, ptr %741, i32 0, i32 37
  %743 = load float, ptr %742, align 4, !tbaa !174
  %744 = fcmp oeq float %743, 0.000000e+00
  br i1 %744, label %745, label %749

745:                                              ; preds = %740
  %746 = load ptr, ptr %2, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.ImGuiTable, ptr %746, i32 0, i32 49
  %748 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %747)
  br label %751

749:                                              ; preds = %740, %733
  %750 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %24)
  br label %751

751:                                              ; preds = %749, %745
  %752 = phi float [ %748, %745 ], [ %750, %749 ]
  %753 = load float, ptr %26, align 4, !tbaa !114
  %754 = fsub float %752, %753
  %755 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %754)
  store float %755, ptr %27, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %756 = load float, ptr %27, align 4, !tbaa !114
  %757 = load float, ptr %25, align 4, !tbaa !114
  %758 = fsub float %756, %757
  %759 = load float, ptr %18, align 4, !tbaa !114
  %760 = fsub float %758, %759
  store float %760, ptr %28, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %761 = load float, ptr %28, align 4, !tbaa !114
  store float %761, ptr %29, align 4, !tbaa !114
  %762 = load float, ptr %25, align 4, !tbaa !114
  %763 = load ptr, ptr %2, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.ImGuiTable, ptr %763, i32 0, i32 34
  %765 = load float, ptr %764, align 8, !tbaa !163
  %766 = fmul float %765, 2.000000e+00
  %767 = load ptr, ptr %2, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.ImGuiTable, ptr %767, i32 0, i32 66
  %769 = load i16, ptr %768, align 2, !tbaa !33
  %770 = sext i16 %769 to i32
  %771 = sitofp i32 %770 to float
  %772 = call float @llvm.fmuladd.f32(float %766, float %771, float %762)
  %773 = load ptr, ptr %2, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.ImGuiTable, ptr %773, i32 0, i32 38
  store float %772, ptr %774, align 8, !tbaa !175
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  store i32 0, ptr %30, align 4, !tbaa !31
  br label %775

775:                                              ; preds = %865, %751
  %776 = load i32, ptr %30, align 4, !tbaa !31
  %777 = load ptr, ptr %2, align 8, !tbaa !5
  %778 = getelementptr inbounds %struct.ImGuiTable, ptr %777, i32 0, i32 13
  %779 = load i32, ptr %778, align 4, !tbaa !35
  %780 = icmp slt i32 %776, %779
  br i1 %780, label %782, label %781

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

782:                                              ; preds = %775
  %783 = load ptr, ptr %2, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImGuiTable, ptr %783, i32 0, i32 8
  %785 = load ptr, ptr %784, align 8, !tbaa !34
  %786 = load i32, ptr %30, align 4, !tbaa !31
  %787 = ashr i32 %786, 5
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds i32, ptr %785, i64 %788
  %790 = load i32, ptr %789, align 4, !tbaa !31
  %791 = load i32, ptr %30, align 4, !tbaa !31
  %792 = and i32 %791, 31
  %793 = shl i32 1, %792
  %794 = and i32 %790, %793
  %795 = icmp ne i32 %794, 0
  br i1 %795, label %797, label %796

796:                                              ; preds = %782
  br label %865

797:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %798 = load ptr, ptr %2, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.ImGuiTable, ptr %798, i32 0, i32 4
  %800 = load i32, ptr %30, align 4, !tbaa !31
  %801 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %799, i32 noundef %800)
  store ptr %801, ptr %31, align 8, !tbaa !5
  %802 = load ptr, ptr %31, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %802, i32 0, i32 0
  %804 = load i32, ptr %803, align 4, !tbaa !121
  %805 = and i32 %804, 8
  %806 = icmp ne i32 %805, 0
  br i1 %806, label %807, label %830

807:                                              ; preds = %797
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %808 = load ptr, ptr %31, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %808, i32 0, i32 7
  %810 = load float, ptr %809, align 4, !tbaa !129
  %811 = load float, ptr %19, align 4, !tbaa !114
  %812 = fdiv float %810, %811
  store float %812, ptr %32, align 4, !tbaa !114
  %813 = load float, ptr %28, align 4, !tbaa !114
  %814 = load float, ptr %32, align 4, !tbaa !114
  %815 = fmul float %813, %814
  %816 = load ptr, ptr %2, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImGuiTable, ptr %816, i32 0, i32 32
  %818 = load float, ptr %817, align 8, !tbaa !112
  %819 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %815, float noundef %818)
  %820 = fadd float %819, 0x3F847AE140000000
  %821 = fptosi float %820 to i32
  %822 = sitofp i32 %821 to float
  %823 = load ptr, ptr %31, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %823, i32 0, i32 4
  store float %822, ptr %824, align 4, !tbaa !128
  %825 = load ptr, ptr %31, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %825, i32 0, i32 4
  %827 = load float, ptr %826, align 4, !tbaa !128
  %828 = load float, ptr %29, align 4, !tbaa !114
  %829 = fsub float %828, %827
  store float %829, ptr %29, align 4, !tbaa !114
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %830

830:                                              ; preds = %807, %797
  %831 = load ptr, ptr %31, align 8, !tbaa !5
  %832 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %831, i32 0, i32 22
  %833 = load i16, ptr %832, align 4, !tbaa !134
  %834 = sext i16 %833 to i32
  %835 = icmp eq i32 %834, -1
  br i1 %835, label %836, label %847

836:                                              ; preds = %830
  %837 = load ptr, ptr %2, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.ImGuiTable, ptr %837, i32 0, i32 81
  %839 = load i16, ptr %838, align 8, !tbaa !160
  %840 = sext i16 %839 to i32
  %841 = icmp ne i32 %840, -1
  br i1 %841, label %842, label %847

842:                                              ; preds = %836
  %843 = load ptr, ptr %31, align 8, !tbaa !5
  %844 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %843, i32 0, i32 0
  %845 = load i32, ptr %844, align 4, !tbaa !121
  %846 = or i32 %845, 1073741824
  store i32 %846, ptr %844, align 4, !tbaa !121
  br label %847

847:                                              ; preds = %842, %836, %830
  %848 = load ptr, ptr %31, align 8, !tbaa !5
  %849 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %848, i32 0, i32 4
  %850 = load float, ptr %849, align 4, !tbaa !128
  %851 = load ptr, ptr %2, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.ImGuiTable, ptr %851, i32 0, i32 32
  %853 = load float, ptr %852, align 8, !tbaa !112
  %854 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %850, float noundef %853)
  %855 = call noundef float @_ZL7ImTruncf(float noundef %854)
  %856 = load ptr, ptr %31, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %856, i32 0, i32 1
  store float %855, ptr %857, align 4, !tbaa !176
  %858 = load ptr, ptr %31, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %858, i32 0, i32 1
  %860 = load float, ptr %859, align 4, !tbaa !176
  %861 = load ptr, ptr %2, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.ImGuiTable, ptr %861, i32 0, i32 38
  %863 = load float, ptr %862, align 8, !tbaa !175
  %864 = fadd float %863, %860
  store float %864, ptr %862, align 8, !tbaa !175
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %865

865:                                              ; preds = %847, %796
  %866 = load i32, ptr %30, align 4, !tbaa !31
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr %30, align 4, !tbaa !31
  br label %775, !llvm.loop !177

868:                                              ; preds = %781
  %869 = load float, ptr %29, align 4, !tbaa !114
  %870 = fcmp oge float %869, 1.000000e+00
  br i1 %870, label %871, label %943

871:                                              ; preds = %868
  %872 = load ptr, ptr %2, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.ImGuiTable, ptr %872, i32 0, i32 1
  %874 = load i32, ptr %873, align 4, !tbaa !30
  %875 = and i32 %874, 524288
  %876 = icmp ne i32 %875, 0
  br i1 %876, label %943, label %877

877:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %878 = load ptr, ptr %2, align 8, !tbaa !5
  %879 = getelementptr inbounds %struct.ImGuiTable, ptr %878, i32 0, i32 13
  %880 = load i32, ptr %879, align 4, !tbaa !35
  %881 = sub nsw i32 %880, 1
  store i32 %881, ptr %33, align 4, !tbaa !31
  br label %882

882:                                              ; preds = %939, %877
  %883 = load float, ptr %19, align 4, !tbaa !114
  %884 = fcmp ogt float %883, 0.000000e+00
  br i1 %884, label %885, label %891

885:                                              ; preds = %882
  %886 = load float, ptr %29, align 4, !tbaa !114
  %887 = fcmp oge float %886, 1.000000e+00
  br i1 %887, label %888, label %891

888:                                              ; preds = %885
  %889 = load i32, ptr %33, align 4, !tbaa !31
  %890 = icmp sge i32 %889, 0
  br label %891

891:                                              ; preds = %888, %885, %882
  %892 = phi i1 [ false, %885 ], [ false, %882 ], [ %890, %888 ]
  br i1 %892, label %894, label %893

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

894:                                              ; preds = %891
  %895 = load ptr, ptr %2, align 8, !tbaa !5
  %896 = getelementptr inbounds %struct.ImGuiTable, ptr %895, i32 0, i32 7
  %897 = load ptr, ptr %896, align 8, !tbaa !36
  %898 = load i32, ptr %33, align 4, !tbaa !31
  %899 = ashr i32 %898, 5
  %900 = sext i32 %899 to i64
  %901 = getelementptr inbounds i32, ptr %897, i64 %900
  %902 = load i32, ptr %901, align 4, !tbaa !31
  %903 = load i32, ptr %33, align 4, !tbaa !31
  %904 = and i32 %903, 31
  %905 = shl i32 1, %904
  %906 = and i32 %902, %905
  %907 = icmp ne i32 %906, 0
  br i1 %907, label %909, label %908

908:                                              ; preds = %894
  br label %939

909:                                              ; preds = %894
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %910 = load ptr, ptr %2, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.ImGuiTable, ptr %910, i32 0, i32 4
  %912 = load ptr, ptr %2, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.ImGuiTable, ptr %912, i32 0, i32 5
  %914 = load i32, ptr %33, align 4, !tbaa !31
  %915 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %913, i32 noundef %914)
  %916 = load i16, ptr %915, align 2, !tbaa !115
  %917 = sext i16 %916 to i32
  %918 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %911, i32 noundef %917)
  store ptr %918, ptr %34, align 8, !tbaa !5
  %919 = load ptr, ptr %34, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %919, i32 0, i32 0
  %921 = load i32, ptr %920, align 4, !tbaa !121
  %922 = and i32 %921, 8
  %923 = icmp ne i32 %922, 0
  br i1 %923, label %925, label %924

924:                                              ; preds = %909
  store i32 13, ptr %13, align 4
  br label %936

925:                                              ; preds = %909
  %926 = load ptr, ptr %34, align 8, !tbaa !5
  %927 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %926, i32 0, i32 4
  %928 = load float, ptr %927, align 4, !tbaa !128
  %929 = fadd float %928, 1.000000e+00
  store float %929, ptr %927, align 4, !tbaa !128
  %930 = load ptr, ptr %34, align 8, !tbaa !5
  %931 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %930, i32 0, i32 1
  %932 = load float, ptr %931, align 4, !tbaa !176
  %933 = fadd float %932, 1.000000e+00
  store float %933, ptr %931, align 4, !tbaa !176
  %934 = load float, ptr %29, align 4, !tbaa !114
  %935 = fsub float %934, 1.000000e+00
  store float %935, ptr %29, align 4, !tbaa !114
  store i32 0, ptr %13, align 4
  br label %936

936:                                              ; preds = %925, %924
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  %937 = load i32, ptr %13, align 4
  switch i32 %937, label %1986 [
    i32 0, label %938
    i32 13, label %939
  ]

938:                                              ; preds = %936
  br label %939

939:                                              ; preds = %938, %936, %908
  %940 = load i32, ptr %33, align 4, !tbaa !31
  %941 = add nsw i32 %940, -1
  store i32 %941, ptr %33, align 4, !tbaa !31
  br label %882, !llvm.loop !178

942:                                              ; preds = %893
  br label %943

943:                                              ; preds = %942, %871, %868
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %944 = load ptr, ptr %2, align 8, !tbaa !5
  %945 = load ptr, ptr %2, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.ImGuiTable, ptr %945, i32 0, i32 16
  %947 = load i16, ptr %946, align 8, !tbaa !137
  %948 = sext i16 %947 to i32
  %949 = call noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef %944, i32 noundef %948)
  store ptr %949, ptr %35, align 8, !tbaa !5
  %950 = load ptr, ptr %35, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %950, i32 0, i32 5
  %952 = load i32, ptr %951, align 4, !tbaa !179
  %953 = load ptr, ptr %35, align 8, !tbaa !5
  %954 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %953, i32 0, i32 4
  store i32 %952, ptr %954, align 4, !tbaa !180
  %955 = load ptr, ptr %35, align 8, !tbaa !5
  %956 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %955, i32 0, i32 5
  store i32 -1, ptr %956, align 4, !tbaa !179
  %957 = load ptr, ptr %2, align 8, !tbaa !5
  %958 = getelementptr inbounds %struct.ImGuiTable, ptr %957, i32 0, i32 71
  store i16 -1, ptr %958, align 4, !tbaa !181
  %959 = load ptr, ptr %2, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.ImGuiTable, ptr %959, i32 0, i32 70
  store i16 -1, ptr %960, align 2, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #10
  %961 = load ptr, ptr %2, align 8, !tbaa !5
  %962 = getelementptr inbounds %struct.ImGuiTable, ptr %961, i32 0, i32 46
  %963 = getelementptr inbounds %struct.ImRect, ptr %962, i32 0, i32 0
  %964 = getelementptr inbounds %struct.ImVec2, ptr %963, i32 0, i32 0
  %965 = load float, ptr %964, align 8, !tbaa !183
  %966 = load ptr, ptr %2, align 8, !tbaa !5
  %967 = getelementptr inbounds %struct.ImGuiTable, ptr %966, i32 0, i32 46
  %968 = getelementptr inbounds %struct.ImRect, ptr %967, i32 0, i32 0
  %969 = getelementptr inbounds %struct.ImVec2, ptr %968, i32 0, i32 1
  %970 = load float, ptr %969, align 4, !tbaa !184
  %971 = load ptr, ptr %2, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.ImGuiTable, ptr %971, i32 0, i32 46
  %973 = getelementptr inbounds %struct.ImRect, ptr %972, i32 0, i32 1
  %974 = getelementptr inbounds %struct.ImVec2, ptr %973, i32 0, i32 0
  %975 = load float, ptr %974, align 8, !tbaa !185
  %976 = load ptr, ptr %2, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.ImGuiTable, ptr %976, i32 0, i32 46
  %978 = getelementptr inbounds %struct.ImRect, ptr %977, i32 0, i32 1
  %979 = getelementptr inbounds %struct.ImVec2, ptr %978, i32 0, i32 1
  %980 = load float, ptr %979, align 4, !tbaa !186
  %981 = load ptr, ptr %2, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.ImGuiTable, ptr %981, i32 0, i32 46
  %983 = getelementptr inbounds %struct.ImRect, ptr %982, i32 0, i32 0
  %984 = getelementptr inbounds %struct.ImVec2, ptr %983, i32 0, i32 1
  %985 = load float, ptr %984, align 4, !tbaa !184
  %986 = load ptr, ptr %35, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %986, i32 0, i32 1
  %988 = load float, ptr %987, align 4, !tbaa !187
  %989 = fadd float %985, %988
  %990 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %980, float noundef %989)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %965, float noundef %970, float noundef %975, float noundef %990)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %991 = load ptr, ptr %3, align 8, !tbaa !5
  %992 = getelementptr inbounds %struct.ImGuiContext, ptr %991, i32 0, i32 56
  %993 = load i32, ptr %992, align 4, !tbaa !188
  store i32 %993, ptr %37, align 4, !tbaa !31
  %994 = load ptr, ptr %3, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.ImGuiContext, ptr %994, i32 0, i32 56
  store i32 0, ptr %995, align 4, !tbaa !188
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #10
  %996 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef 0, i32 noundef 0)
  %997 = zext i1 %996 to i8
  store i8 %997, ptr %38, align 1, !tbaa !113
  %998 = load i32, ptr %37, align 4, !tbaa !31
  %999 = load ptr, ptr %3, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.ImGuiContext, ptr %999, i32 0, i32 56
  store i32 %998, ptr %1000, align 4, !tbaa !188
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1001 = load ptr, ptr %3, align 8, !tbaa !5
  %1002 = getelementptr inbounds %struct.ImGuiContext, ptr %1001, i32 0, i32 2
  %1003 = getelementptr inbounds %struct.ImGuiIO, ptr %1002, i32 0, i32 65
  %1004 = getelementptr inbounds %struct.ImVec2, ptr %1003, i32 0, i32 0
  %1005 = load float, ptr %1004, align 8, !tbaa !189
  store float %1005, ptr %39, align 4, !tbaa !114
  %1006 = load ptr, ptr %2, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.ImGuiTable, ptr %1006, i32 0, i32 44
  %1008 = load float, ptr %1007, align 8, !tbaa !190
  %1009 = fcmp ogt float %1008, 0.000000e+00
  br i1 %1009, label %1010, label %1062

1010:                                             ; preds = %943
  %1011 = load ptr, ptr %3, align 8, !tbaa !5
  %1012 = getelementptr inbounds %struct.ImGuiContext, ptr %1011, i32 0, i32 2
  %1013 = getelementptr inbounds %struct.ImGuiIO, ptr %1012, i32 0, i32 65
  %1014 = getelementptr inbounds %struct.ImVec2, ptr %1013, i32 0, i32 1
  %1015 = load float, ptr %1014, align 4, !tbaa !191
  %1016 = load ptr, ptr %2, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.ImGuiTable, ptr %1016, i32 0, i32 46
  %1018 = getelementptr inbounds %struct.ImRect, ptr %1017, i32 0, i32 0
  %1019 = getelementptr inbounds %struct.ImVec2, ptr %1018, i32 0, i32 1
  %1020 = load float, ptr %1019, align 4, !tbaa !184
  %1021 = fcmp oge float %1015, %1020
  br i1 %1021, label %1022, label %1061

1022:                                             ; preds = %1010
  %1023 = load ptr, ptr %3, align 8, !tbaa !5
  %1024 = getelementptr inbounds %struct.ImGuiContext, ptr %1023, i32 0, i32 2
  %1025 = getelementptr inbounds %struct.ImGuiIO, ptr %1024, i32 0, i32 65
  %1026 = getelementptr inbounds %struct.ImVec2, ptr %1025, i32 0, i32 1
  %1027 = load float, ptr %1026, align 4, !tbaa !191
  %1028 = load ptr, ptr %2, align 8, !tbaa !5
  %1029 = getelementptr inbounds %struct.ImGuiTable, ptr %1028, i32 0, i32 46
  %1030 = getelementptr inbounds %struct.ImRect, ptr %1029, i32 0, i32 0
  %1031 = getelementptr inbounds %struct.ImVec2, ptr %1030, i32 0, i32 1
  %1032 = load float, ptr %1031, align 4, !tbaa !184
  %1033 = load ptr, ptr %2, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.ImGuiTable, ptr %1033, i32 0, i32 44
  %1035 = load float, ptr %1034, align 8, !tbaa !190
  %1036 = fadd float %1032, %1035
  %1037 = fcmp ole float %1027, %1036
  br i1 %1037, label %1038, label %1061

1038:                                             ; preds = %1022
  %1039 = load ptr, ptr %2, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.ImGuiTable, ptr %1039, i32 0, i32 46
  %1041 = getelementptr inbounds %struct.ImRect, ptr %1040, i32 0, i32 0
  %1042 = getelementptr inbounds %struct.ImVec2, ptr %1041, i32 0, i32 1
  %1043 = load float, ptr %1042, align 4, !tbaa !184
  %1044 = load ptr, ptr %2, align 8, !tbaa !5
  %1045 = getelementptr inbounds %struct.ImGuiTable, ptr %1044, i32 0, i32 44
  %1046 = load float, ptr %1045, align 8, !tbaa !190
  %1047 = fadd float %1043, %1046
  %1048 = load ptr, ptr %3, align 8, !tbaa !5
  %1049 = getelementptr inbounds %struct.ImGuiContext, ptr %1048, i32 0, i32 2
  %1050 = getelementptr inbounds %struct.ImGuiIO, ptr %1049, i32 0, i32 65
  %1051 = getelementptr inbounds %struct.ImVec2, ptr %1050, i32 0, i32 1
  %1052 = load float, ptr %1051, align 4, !tbaa !191
  %1053 = fsub float %1047, %1052
  %1054 = load ptr, ptr %2, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.ImGuiTable, ptr %1054, i32 0, i32 45
  %1056 = load float, ptr %1055, align 4, !tbaa !192
  %1057 = fmul float %1053, %1056
  %1058 = call noundef float @_ZL7ImTruncf(float noundef %1057)
  %1059 = load float, ptr %39, align 4, !tbaa !114
  %1060 = fadd float %1059, %1058
  store float %1060, ptr %39, align 4, !tbaa !114
  br label %1061

1061:                                             ; preds = %1038, %1022, %1010
  br label %1062

1062:                                             ; preds = %1061, %943
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  store i32 0, ptr %40, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #10
  store i8 0, ptr %41, align 1, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #10
  %1063 = load ptr, ptr %2, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct.ImGuiTable, ptr %1063, i32 0, i32 87
  %1065 = load i16, ptr %1064, align 4, !tbaa !193
  %1066 = sext i16 %1065 to i32
  %1067 = icmp sgt i32 %1066, 0
  %1068 = zext i1 %1067 to i8
  store i8 %1068, ptr %42, align 1, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1069 = load ptr, ptr %2, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.ImGuiTable, ptr %1069, i32 0, i32 87
  %1071 = load i16, ptr %1070, align 4, !tbaa !193
  %1072 = sext i16 %1071 to i32
  %1073 = icmp sgt i32 %1072, 0
  br i1 %1073, label %1074, label %1080

1074:                                             ; preds = %1062
  %1075 = load ptr, ptr %2, align 8, !tbaa !5
  %1076 = getelementptr inbounds %struct.ImGuiTable, ptr %1075, i32 0, i32 46
  %1077 = getelementptr inbounds %struct.ImRect, ptr %1076, i32 0, i32 0
  %1078 = getelementptr inbounds %struct.ImVec2, ptr %1077, i32 0, i32 0
  %1079 = load float, ptr %1078, align 8, !tbaa !183
  br label %1084

1080:                                             ; preds = %1062
  %1081 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1082 = getelementptr inbounds %struct.ImVec2, ptr %1081, i32 0, i32 0
  %1083 = load float, ptr %1082, align 4, !tbaa !194
  br label %1084

1084:                                             ; preds = %1080, %1074
  %1085 = phi float [ %1079, %1074 ], [ %1083, %1080 ]
  %1086 = load ptr, ptr %2, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.ImGuiTable, ptr %1086, i32 0, i32 33
  %1088 = load float, ptr %1087, align 4, !tbaa !168
  %1089 = fadd float %1085, %1088
  %1090 = load ptr, ptr %2, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.ImGuiTable, ptr %1090, i32 0, i32 35
  %1092 = load float, ptr %1091, align 4, !tbaa !169
  %1093 = fsub float %1089, %1092
  store float %1093, ptr %43, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #10
  %1094 = load ptr, ptr %2, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct.ImGuiTable, ptr %1094, i32 0, i32 49
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %44, ptr align 8 %1095, i64 16, i1 false), !tbaa.struct !167
  %1096 = load ptr, ptr %2, align 8, !tbaa !5
  %1097 = getelementptr inbounds %struct.ImGuiTable, ptr %1096, i32 0, i32 9
  %1098 = load ptr, ptr %1097, align 8, !tbaa !195
  %1099 = load ptr, ptr %2, align 8, !tbaa !5
  %1100 = getelementptr inbounds %struct.ImGuiTable, ptr %1099, i32 0, i32 13
  %1101 = load i32, ptr %1100, align 4, !tbaa !35
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %1098, i32 noundef %1101)
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  store i32 0, ptr %45, align 4, !tbaa !31
  br label %1102

1102:                                             ; preds = %1582, %1084
  %1103 = load i32, ptr %45, align 4, !tbaa !31
  %1104 = load ptr, ptr %2, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.ImGuiTable, ptr %1104, i32 0, i32 13
  %1106 = load i32, ptr %1105, align 4, !tbaa !35
  %1107 = icmp slt i32 %1103, %1106
  br i1 %1107, label %1109, label %1108

1108:                                             ; preds = %1102
  store i32 14, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1585

1109:                                             ; preds = %1102
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1110 = load ptr, ptr %2, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.ImGuiTable, ptr %1110, i32 0, i32 5
  %1112 = load i32, ptr %45, align 4, !tbaa !31
  %1113 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1111, i32 noundef %1112)
  %1114 = load i16, ptr %1113, align 2, !tbaa !115
  %1115 = sext i16 %1114 to i32
  store i32 %1115, ptr %46, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %1116 = load ptr, ptr %2, align 8, !tbaa !5
  %1117 = getelementptr inbounds %struct.ImGuiTable, ptr %1116, i32 0, i32 4
  %1118 = load i32, ptr %46, align 4, !tbaa !31
  %1119 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1117, i32 noundef %1118)
  store ptr %1119, ptr %47, align 8, !tbaa !5
  %1120 = load ptr, ptr %2, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.ImGuiTable, ptr %1120, i32 0, i32 85
  %1122 = load i16, ptr %1121, align 8, !tbaa !196
  %1123 = sext i16 %1122 to i32
  %1124 = icmp sgt i32 %1123, 0
  %1125 = zext i1 %1124 to i64
  %1126 = select i1 %1124, i32 1, i32 0
  %1127 = trunc i32 %1126 to i8
  %1128 = load ptr, ptr %47, align 8, !tbaa !5
  %1129 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1128, i32 0, i32 35
  store i8 %1127, ptr %1129, align 2, !tbaa !197
  %1130 = load i8, ptr %42, align 1, !tbaa !113, !range !28, !noundef !29
  %1131 = trunc i8 %1130 to i1
  br i1 %1131, label %1132, label %1151

1132:                                             ; preds = %1109
  %1133 = load ptr, ptr %2, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.ImGuiTable, ptr %1133, i32 0, i32 87
  %1135 = load i16, ptr %1134, align 4, !tbaa !193
  %1136 = sext i16 %1135 to i32
  %1137 = load i32, ptr %40, align 4, !tbaa !31
  %1138 = icmp eq i32 %1136, %1137
  br i1 %1138, label %1139, label %1151

1139:                                             ; preds = %1132
  %1140 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1141 = getelementptr inbounds %struct.ImVec2, ptr %1140, i32 0, i32 0
  %1142 = load float, ptr %1141, align 4, !tbaa !194
  %1143 = load ptr, ptr %2, align 8, !tbaa !5
  %1144 = getelementptr inbounds %struct.ImGuiTable, ptr %1143, i32 0, i32 46
  %1145 = getelementptr inbounds %struct.ImRect, ptr %1144, i32 0, i32 0
  %1146 = getelementptr inbounds %struct.ImVec2, ptr %1145, i32 0, i32 0
  %1147 = load float, ptr %1146, align 8, !tbaa !183
  %1148 = fsub float %1142, %1147
  %1149 = load float, ptr %43, align 4, !tbaa !114
  %1150 = fadd float %1149, %1148
  store float %1150, ptr %43, align 4, !tbaa !114
  store i8 0, ptr %42, align 1, !tbaa !113
  br label %1151

1151:                                             ; preds = %1139, %1132, %1109
  %1152 = load ptr, ptr %47, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1152, i32 0, i32 0
  %1154 = load i32, ptr %1153, align 4, !tbaa !121
  %1155 = and i32 %1154, -251658241
  store i32 %1155, ptr %1153, align 4, !tbaa !121
  %1156 = load ptr, ptr %2, align 8, !tbaa !5
  %1157 = getelementptr inbounds %struct.ImGuiTable, ptr %1156, i32 0, i32 7
  %1158 = load ptr, ptr %1157, align 8, !tbaa !36
  %1159 = load i32, ptr %45, align 4, !tbaa !31
  %1160 = ashr i32 %1159, 5
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds i32, ptr %1158, i64 %1161
  %1163 = load i32, ptr %1162, align 4, !tbaa !31
  %1164 = load i32, ptr %45, align 4, !tbaa !31
  %1165 = and i32 %1164, 31
  %1166 = shl i32 1, %1165
  %1167 = and i32 %1163, %1166
  %1168 = icmp ne i32 %1167, 0
  br i1 %1168, label %1210, label %1169

1169:                                             ; preds = %1151
  %1170 = load float, ptr %43, align 4, !tbaa !114
  %1171 = load ptr, ptr %47, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1171, i32 0, i32 9
  %1173 = getelementptr inbounds %struct.ImRect, ptr %1172, i32 0, i32 1
  %1174 = getelementptr inbounds %struct.ImVec2, ptr %1173, i32 0, i32 0
  store float %1170, ptr %1174, align 4, !tbaa !198
  %1175 = load ptr, ptr %47, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1175, i32 0, i32 9
  %1177 = getelementptr inbounds %struct.ImRect, ptr %1176, i32 0, i32 0
  %1178 = getelementptr inbounds %struct.ImVec2, ptr %1177, i32 0, i32 0
  store float %1170, ptr %1178, align 4, !tbaa !199
  %1179 = load ptr, ptr %47, align 8, !tbaa !5
  %1180 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1179, i32 0, i32 11
  store float %1170, ptr %1180, align 4, !tbaa !200
  %1181 = load ptr, ptr %47, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1181, i32 0, i32 3
  store float %1170, ptr %1182, align 4, !tbaa !201
  %1183 = load ptr, ptr %47, align 8, !tbaa !5
  %1184 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1183, i32 0, i32 2
  store float %1170, ptr %1184, align 4, !tbaa !202
  %1185 = load ptr, ptr %47, align 8, !tbaa !5
  %1186 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1185, i32 0, i32 1
  store float 0.000000e+00, ptr %1186, align 4, !tbaa !176
  %1187 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1188 = getelementptr inbounds %struct.ImVec2, ptr %1187, i32 0, i32 1
  %1189 = load float, ptr %1188, align 4, !tbaa !203
  %1190 = load ptr, ptr %47, align 8, !tbaa !5
  %1191 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1190, i32 0, i32 9
  %1192 = getelementptr inbounds %struct.ImRect, ptr %1191, i32 0, i32 0
  %1193 = getelementptr inbounds %struct.ImVec2, ptr %1192, i32 0, i32 1
  store float %1189, ptr %1193, align 4, !tbaa !204
  %1194 = load ptr, ptr %47, align 8, !tbaa !5
  %1195 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1194, i32 0, i32 9
  %1196 = getelementptr inbounds %struct.ImRect, ptr %1195, i32 0, i32 1
  %1197 = getelementptr inbounds %struct.ImVec2, ptr %1196, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1197, align 4, !tbaa !205
  %1198 = load ptr, ptr %47, align 8, !tbaa !5
  %1199 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1198, i32 0, i32 9
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1199, ptr noundef nonnull align 4 dereferenceable(16) %44)
  %1200 = load ptr, ptr %47, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1200, i32 0, i32 32
  store i8 0, ptr %1201, align 1, !tbaa !161
  %1202 = load ptr, ptr %47, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1202, i32 0, i32 31
  store i8 0, ptr %1203, align 2, !tbaa !206
  %1204 = load ptr, ptr %47, align 8, !tbaa !5
  %1205 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1204, i32 0, i32 30
  store i8 0, ptr %1205, align 1, !tbaa !207
  %1206 = load ptr, ptr %47, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1206, i32 0, i32 33
  store i8 1, ptr %1207, align 4, !tbaa !208
  %1208 = load ptr, ptr %47, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1208, i32 0, i32 13
  store float 1.000000e+00, ptr %1209, align 4, !tbaa !209
  store i32 16, ptr %13, align 4
  br label %1579

1210:                                             ; preds = %1151
  %1211 = load float, ptr %43, align 4, !tbaa !114
  %1212 = load ptr, ptr %47, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1212, i32 0, i32 2
  store float %1211, ptr %1213, align 4, !tbaa !202
  %1214 = load ptr, ptr %2, align 8, !tbaa !5
  %1215 = load i32, ptr %46, align 4, !tbaa !31
  %1216 = call noundef float @_ZN5ImGui23TableCalcMaxColumnWidthEPK10ImGuiTablei(ptr noundef %1214, i32 noundef %1215)
  %1217 = load ptr, ptr %47, align 8, !tbaa !5
  %1218 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1217, i32 0, i32 6
  store float %1216, ptr %1218, align 4, !tbaa !210
  %1219 = load ptr, ptr %47, align 8, !tbaa !5
  %1220 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1219, i32 0, i32 1
  %1221 = load float, ptr %1220, align 4, !tbaa !176
  %1222 = load ptr, ptr %47, align 8, !tbaa !5
  %1223 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1222, i32 0, i32 6
  %1224 = load float, ptr %1223, align 4, !tbaa !210
  %1225 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1221, float noundef %1224)
  %1226 = load ptr, ptr %47, align 8, !tbaa !5
  %1227 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1226, i32 0, i32 1
  store float %1225, ptr %1227, align 4, !tbaa !176
  %1228 = load ptr, ptr %47, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1228, i32 0, i32 1
  %1230 = load float, ptr %1229, align 4, !tbaa !176
  %1231 = load ptr, ptr %47, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1231, i32 0, i32 4
  %1233 = load float, ptr %1232, align 4, !tbaa !128
  %1234 = load ptr, ptr %2, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.ImGuiTable, ptr %1234, i32 0, i32 32
  %1236 = load float, ptr %1235, align 8, !tbaa !112
  %1237 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1233, float noundef %1236)
  %1238 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1230, float noundef %1237)
  %1239 = load ptr, ptr %47, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1239, i32 0, i32 1
  store float %1238, ptr %1240, align 4, !tbaa !176
  %1241 = load float, ptr %43, align 4, !tbaa !114
  %1242 = load ptr, ptr %47, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1242, i32 0, i32 1
  %1244 = load float, ptr %1243, align 4, !tbaa !176
  %1245 = fadd float %1241, %1244
  %1246 = load ptr, ptr %2, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.ImGuiTable, ptr %1246, i32 0, i32 35
  %1248 = load float, ptr %1247, align 4, !tbaa !169
  %1249 = fadd float %1245, %1248
  %1250 = load ptr, ptr %2, align 8, !tbaa !5
  %1251 = getelementptr inbounds %struct.ImGuiTable, ptr %1250, i32 0, i32 36
  %1252 = load float, ptr %1251, align 8, !tbaa !170
  %1253 = fadd float %1249, %1252
  %1254 = load ptr, ptr %2, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.ImGuiTable, ptr %1254, i32 0, i32 34
  %1256 = load float, ptr %1255, align 8, !tbaa !163
  %1257 = call float @llvm.fmuladd.f32(float %1256, float 2.000000e+00, float %1253)
  %1258 = load ptr, ptr %47, align 8, !tbaa !5
  %1259 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1258, i32 0, i32 3
  store float %1257, ptr %1259, align 4, !tbaa !201
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %1260 = load ptr, ptr %47, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1260, i32 0, i32 11
  %1262 = load float, ptr %1261, align 4, !tbaa !200
  store float %1262, ptr %48, align 4, !tbaa !114
  %1263 = load ptr, ptr %47, align 8, !tbaa !5
  %1264 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1263, i32 0, i32 2
  %1265 = load float, ptr %1264, align 4, !tbaa !202
  %1266 = load ptr, ptr %2, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.ImGuiTable, ptr %1266, i32 0, i32 34
  %1268 = load float, ptr %1267, align 8, !tbaa !163
  %1269 = fadd float %1265, %1268
  %1270 = load ptr, ptr %2, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.ImGuiTable, ptr %1270, i32 0, i32 35
  %1272 = load float, ptr %1271, align 4, !tbaa !169
  %1273 = fadd float %1269, %1272
  %1274 = load ptr, ptr %47, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1274, i32 0, i32 11
  store float %1273, ptr %1275, align 4, !tbaa !200
  %1276 = load ptr, ptr %47, align 8, !tbaa !5
  %1277 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1276, i32 0, i32 3
  %1278 = load float, ptr %1277, align 4, !tbaa !201
  %1279 = load ptr, ptr %2, align 8, !tbaa !5
  %1280 = getelementptr inbounds %struct.ImGuiTable, ptr %1279, i32 0, i32 34
  %1281 = load float, ptr %1280, align 8, !tbaa !163
  %1282 = fsub float %1278, %1281
  %1283 = load ptr, ptr %2, align 8, !tbaa !5
  %1284 = getelementptr inbounds %struct.ImGuiTable, ptr %1283, i32 0, i32 36
  %1285 = load float, ptr %1284, align 8, !tbaa !170
  %1286 = fsub float %1282, %1285
  %1287 = load ptr, ptr %47, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1287, i32 0, i32 12
  store float %1286, ptr %1288, align 4, !tbaa !211
  %1289 = load ptr, ptr %47, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1289, i32 0, i32 1
  %1291 = load float, ptr %1290, align 4, !tbaa !176
  %1292 = fmul float %1291, 0x3FE4CCCCC0000000
  %1293 = call noundef float @_ZL7ImTruncf(float noundef %1292)
  %1294 = load ptr, ptr %47, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1294, i32 0, i32 13
  store float %1293, ptr %1295, align 4, !tbaa !209
  %1296 = load ptr, ptr %47, align 8, !tbaa !5
  %1297 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1296, i32 0, i32 2
  %1298 = load float, ptr %1297, align 4, !tbaa !202
  %1299 = load ptr, ptr %47, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1299, i32 0, i32 9
  %1301 = getelementptr inbounds %struct.ImRect, ptr %1300, i32 0, i32 0
  %1302 = getelementptr inbounds %struct.ImVec2, ptr %1301, i32 0, i32 0
  store float %1298, ptr %1302, align 4, !tbaa !199
  %1303 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1304 = getelementptr inbounds %struct.ImVec2, ptr %1303, i32 0, i32 1
  %1305 = load float, ptr %1304, align 4, !tbaa !203
  %1306 = load ptr, ptr %47, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1306, i32 0, i32 9
  %1308 = getelementptr inbounds %struct.ImRect, ptr %1307, i32 0, i32 0
  %1309 = getelementptr inbounds %struct.ImVec2, ptr %1308, i32 0, i32 1
  store float %1305, ptr %1309, align 4, !tbaa !204
  %1310 = load ptr, ptr %47, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1310, i32 0, i32 3
  %1312 = load float, ptr %1311, align 4, !tbaa !201
  %1313 = load ptr, ptr %47, align 8, !tbaa !5
  %1314 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1313, i32 0, i32 9
  %1315 = getelementptr inbounds %struct.ImRect, ptr %1314, i32 0, i32 1
  %1316 = getelementptr inbounds %struct.ImVec2, ptr %1315, i32 0, i32 0
  store float %1312, ptr %1316, align 4, !tbaa !198
  %1317 = load ptr, ptr %47, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1317, i32 0, i32 9
  %1319 = getelementptr inbounds %struct.ImRect, ptr %1318, i32 0, i32 1
  %1320 = getelementptr inbounds %struct.ImVec2, ptr %1319, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1320, align 4, !tbaa !205
  %1321 = load ptr, ptr %47, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1321, i32 0, i32 9
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1322, ptr noundef nonnull align 4 dereferenceable(16) %44)
  %1323 = load ptr, ptr %47, align 8, !tbaa !5
  %1324 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1323, i32 0, i32 9
  %1325 = getelementptr inbounds %struct.ImRect, ptr %1324, i32 0, i32 1
  %1326 = getelementptr inbounds %struct.ImVec2, ptr %1325, i32 0, i32 0
  %1327 = load float, ptr %1326, align 4, !tbaa !198
  %1328 = load ptr, ptr %47, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1328, i32 0, i32 9
  %1330 = getelementptr inbounds %struct.ImRect, ptr %1329, i32 0, i32 0
  %1331 = getelementptr inbounds %struct.ImVec2, ptr %1330, i32 0, i32 0
  %1332 = load float, ptr %1331, align 4, !tbaa !199
  %1333 = fcmp ogt float %1327, %1332
  %1334 = load ptr, ptr %47, align 8, !tbaa !5
  %1335 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1334, i32 0, i32 30
  %1336 = zext i1 %1333 to i8
  store i8 %1336, ptr %1335, align 1, !tbaa !207
  %1337 = load ptr, ptr %47, align 8, !tbaa !5
  %1338 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1337, i32 0, i32 31
  store i8 1, ptr %1338, align 2, !tbaa !206
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #10
  %1339 = load ptr, ptr %47, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1339, i32 0, i32 30
  %1341 = load i8, ptr %1340, align 1, !tbaa !207, !range !28, !noundef !29
  %1342 = trunc i8 %1341 to i1
  %1343 = zext i1 %1342 to i8
  store i8 %1343, ptr %49, align 1, !tbaa !113
  %1344 = load i8, ptr %49, align 1, !tbaa !113, !range !28, !noundef !29
  %1345 = trunc i8 %1344 to i1
  br i1 %1345, label %1346, label %1351

1346:                                             ; preds = %1210
  %1347 = load ptr, ptr %2, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.ImGuiTable, ptr %1347, i32 0, i32 9
  %1349 = load ptr, ptr %1348, align 8, !tbaa !195
  %1350 = load i32, ptr %46, align 4, !tbaa !31
  call void @_Z16ImBitArraySetBitPji(ptr noundef %1349, i32 noundef %1350)
  br label %1351

1351:                                             ; preds = %1346, %1210
  %1352 = load i8, ptr %49, align 1, !tbaa !113, !range !28, !noundef !29
  %1353 = trunc i8 %1352 to i1
  br i1 %1353, label %1366, label %1354

1354:                                             ; preds = %1351
  %1355 = load ptr, ptr %47, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1355, i32 0, i32 36
  %1357 = load i8, ptr %1356, align 1, !tbaa !131
  %1358 = zext i8 %1357 to i32
  %1359 = icmp ne i32 %1358, 0
  br i1 %1359, label %1366, label %1360

1360:                                             ; preds = %1354
  %1361 = load ptr, ptr %47, align 8, !tbaa !5
  %1362 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1361, i32 0, i32 37
  %1363 = load i8, ptr %1362, align 4, !tbaa !130
  %1364 = zext i8 %1363 to i32
  %1365 = icmp ne i32 %1364, 0
  br label %1366

1366:                                             ; preds = %1360, %1354, %1351
  %1367 = phi i1 [ true, %1354 ], [ true, %1351 ], [ %1365, %1360 ]
  %1368 = load ptr, ptr %47, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1368, i32 0, i32 32
  %1370 = zext i1 %1367 to i8
  store i8 %1370, ptr %1369, align 1, !tbaa !161
  %1371 = load ptr, ptr %47, align 8, !tbaa !5
  %1372 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1371, i32 0, i32 27
  %1373 = load i8, ptr %1372, align 2, !tbaa !125, !range !28, !noundef !29
  %1374 = trunc i8 %1373 to i1
  br i1 %1374, label %1375, label %1380

1375:                                             ; preds = %1366
  %1376 = load ptr, ptr %2, align 8, !tbaa !5
  %1377 = getelementptr inbounds %struct.ImGuiTable, ptr %1376, i32 0, i32 111
  %1378 = load i8, ptr %1377, align 1, !tbaa !212, !range !28, !noundef !29
  %1379 = trunc i8 %1378 to i1
  br label %1380

1380:                                             ; preds = %1375, %1366
  %1381 = phi i1 [ true, %1366 ], [ %1379, %1375 ]
  %1382 = load ptr, ptr %47, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1382, i32 0, i32 33
  %1384 = zext i1 %1381 to i8
  store i8 %1384, ptr %1383, align 4, !tbaa !208
  %1385 = load ptr, ptr %47, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1385, i32 0, i32 33
  %1387 = load i8, ptr %1386, align 4, !tbaa !208, !range !28, !noundef !29
  %1388 = trunc i8 %1387 to i1
  br i1 %1388, label %1389, label %1397

1389:                                             ; preds = %1380
  %1390 = load i8, ptr %49, align 1, !tbaa !113, !range !28, !noundef !29
  %1391 = trunc i8 %1390 to i1
  %1392 = xor i1 %1391, true
  br i1 %1392, label %1393, label %1394

1393:                                             ; preds = %1389
  br label %1396

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

1395:                                             ; No predecessors!
  br label %1396

1396:                                             ; preds = %1395, %1393
  br label %1397

1397:                                             ; preds = %1396, %1380
  %1398 = load ptr, ptr %47, align 8, !tbaa !5
  %1399 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1398, i32 0, i32 32
  %1400 = load i8, ptr %1399, align 1, !tbaa !161, !range !28, !noundef !29
  %1401 = trunc i8 %1400 to i1
  br i1 %1401, label %1402, label %1408

1402:                                             ; preds = %1397
  %1403 = load ptr, ptr %47, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1403, i32 0, i32 33
  %1405 = load i8, ptr %1404, align 4, !tbaa !208, !range !28, !noundef !29
  %1406 = trunc i8 %1405 to i1
  br i1 %1406, label %1408, label %1407

1407:                                             ; preds = %1402
  store i8 1, ptr %41, align 1, !tbaa !113
  br label %1408

1408:                                             ; preds = %1407, %1402, %1397
  %1409 = load ptr, ptr %47, align 8, !tbaa !5
  %1410 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1409, i32 0, i32 0
  %1411 = load i32, ptr %1410, align 4, !tbaa !121
  %1412 = or i32 %1411, 16777216
  store i32 %1412, ptr %1410, align 4, !tbaa !121
  %1413 = load i8, ptr %49, align 1, !tbaa !113, !range !28, !noundef !29
  %1414 = trunc i8 %1413 to i1
  br i1 %1414, label %1415, label %1420

1415:                                             ; preds = %1408
  %1416 = load ptr, ptr %47, align 8, !tbaa !5
  %1417 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1416, i32 0, i32 0
  %1418 = load i32, ptr %1417, align 4, !tbaa !121
  %1419 = or i32 %1418, 33554432
  store i32 %1419, ptr %1417, align 4, !tbaa !121
  br label %1420

1420:                                             ; preds = %1415, %1408
  %1421 = load ptr, ptr %47, align 8, !tbaa !5
  %1422 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1421, i32 0, i32 23
  %1423 = load i16, ptr %1422, align 2, !tbaa !126
  %1424 = sext i16 %1423 to i32
  %1425 = icmp ne i32 %1424, -1
  br i1 %1425, label %1426, label %1431

1426:                                             ; preds = %1420
  %1427 = load ptr, ptr %47, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1427, i32 0, i32 0
  %1429 = load i32, ptr %1428, align 4, !tbaa !121
  %1430 = or i32 %1429, 67108864
  store i32 %1430, ptr %1428, align 4, !tbaa !121
  br label %1431

1431:                                             ; preds = %1426, %1420
  %1432 = load i8, ptr %38, align 1, !tbaa !113, !range !28, !noundef !29
  %1433 = trunc i8 %1432 to i1
  br i1 %1433, label %1434, label %1459

1434:                                             ; preds = %1431
  %1435 = load float, ptr %39, align 4, !tbaa !114
  %1436 = load ptr, ptr %47, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1436, i32 0, i32 9
  %1438 = getelementptr inbounds %struct.ImRect, ptr %1437, i32 0, i32 0
  %1439 = getelementptr inbounds %struct.ImVec2, ptr %1438, i32 0, i32 0
  %1440 = load float, ptr %1439, align 4, !tbaa !199
  %1441 = fcmp oge float %1435, %1440
  br i1 %1441, label %1442, label %1459

1442:                                             ; preds = %1434
  %1443 = load float, ptr %39, align 4, !tbaa !114
  %1444 = load ptr, ptr %47, align 8, !tbaa !5
  %1445 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1444, i32 0, i32 9
  %1446 = getelementptr inbounds %struct.ImRect, ptr %1445, i32 0, i32 1
  %1447 = getelementptr inbounds %struct.ImVec2, ptr %1446, i32 0, i32 0
  %1448 = load float, ptr %1447, align 4, !tbaa !198
  %1449 = fcmp olt float %1443, %1448
  br i1 %1449, label %1450, label %1459

1450:                                             ; preds = %1442
  %1451 = load ptr, ptr %47, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1451, i32 0, i32 0
  %1453 = load i32, ptr %1452, align 4, !tbaa !121
  %1454 = or i32 %1453, 134217728
  store i32 %1454, ptr %1452, align 4, !tbaa !121
  %1455 = load i32, ptr %46, align 4, !tbaa !31
  %1456 = trunc i32 %1455 to i16
  %1457 = load ptr, ptr %2, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.ImGuiTable, ptr %1457, i32 0, i32 70
  store i16 %1456, ptr %1458, align 2, !tbaa !182
  br label %1459

1459:                                             ; preds = %1450, %1442, %1434, %1431
  %1460 = load ptr, ptr %2, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.ImGuiTable, ptr %1460, i32 0, i32 16
  %1462 = load i16, ptr %1461, align 8, !tbaa !137
  %1463 = sext i16 %1462 to i32
  %1464 = icmp eq i32 %1463, 0
  br i1 %1464, label %1465, label %1486

1465:                                             ; preds = %1459
  %1466 = load ptr, ptr %47, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1466, i32 0, i32 11
  %1468 = load float, ptr %1467, align 4, !tbaa !200
  %1469 = load ptr, ptr %47, align 8, !tbaa !5
  %1470 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1469, i32 0, i32 14
  store float %1468, ptr %1470, align 4, !tbaa !213
  %1471 = load ptr, ptr %47, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1471, i32 0, i32 11
  %1473 = load float, ptr %1472, align 4, !tbaa !200
  %1474 = load ptr, ptr %47, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1474, i32 0, i32 15
  store float %1473, ptr %1475, align 4, !tbaa !214
  %1476 = load ptr, ptr %47, align 8, !tbaa !5
  %1477 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1476, i32 0, i32 11
  %1478 = load float, ptr %1477, align 4, !tbaa !200
  %1479 = load ptr, ptr %47, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1479, i32 0, i32 16
  store float %1478, ptr %1480, align 4, !tbaa !215
  %1481 = load ptr, ptr %47, align 8, !tbaa !5
  %1482 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1481, i32 0, i32 11
  %1483 = load float, ptr %1482, align 4, !tbaa !200
  %1484 = load ptr, ptr %47, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1484, i32 0, i32 17
  store float %1483, ptr %1485, align 4, !tbaa !216
  br label %1512

1486:                                             ; preds = %1459
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %1487 = load ptr, ptr %47, align 8, !tbaa !5
  %1488 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1487, i32 0, i32 11
  %1489 = load float, ptr %1488, align 4, !tbaa !200
  %1490 = load float, ptr %48, align 4, !tbaa !114
  %1491 = fsub float %1489, %1490
  store float %1491, ptr %50, align 4, !tbaa !114
  %1492 = load float, ptr %50, align 4, !tbaa !114
  %1493 = load ptr, ptr %47, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1493, i32 0, i32 14
  %1495 = load float, ptr %1494, align 4, !tbaa !213
  %1496 = fadd float %1495, %1492
  store float %1496, ptr %1494, align 4, !tbaa !213
  %1497 = load float, ptr %50, align 4, !tbaa !114
  %1498 = load ptr, ptr %47, align 8, !tbaa !5
  %1499 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1498, i32 0, i32 15
  %1500 = load float, ptr %1499, align 4, !tbaa !214
  %1501 = fadd float %1500, %1497
  store float %1501, ptr %1499, align 4, !tbaa !214
  %1502 = load float, ptr %50, align 4, !tbaa !114
  %1503 = load ptr, ptr %47, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1503, i32 0, i32 16
  %1505 = load float, ptr %1504, align 4, !tbaa !215
  %1506 = fadd float %1505, %1502
  store float %1506, ptr %1504, align 4, !tbaa !215
  %1507 = load float, ptr %50, align 4, !tbaa !114
  %1508 = load ptr, ptr %47, align 8, !tbaa !5
  %1509 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1508, i32 0, i32 17
  %1510 = load float, ptr %1509, align 4, !tbaa !216
  %1511 = fadd float %1510, %1507
  store float %1511, ptr %1509, align 4, !tbaa !216
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %1512

1512:                                             ; preds = %1486, %1465
  %1513 = load ptr, ptr %2, align 8, !tbaa !5
  %1514 = getelementptr inbounds %struct.ImGuiTable, ptr %1513, i32 0, i32 111
  %1515 = load i8, ptr %1514, align 1, !tbaa !212, !range !28, !noundef !29
  %1516 = trunc i8 %1515 to i1
  %1517 = zext i1 %1516 to i32
  %1518 = icmp eq i32 %1517, 0
  br i1 %1518, label %1519, label %1538

1519:                                             ; preds = %1512
  %1520 = load ptr, ptr %2, align 8, !tbaa !5
  %1521 = getelementptr inbounds %struct.ImGuiTable, ptr %1520, i32 0, i32 16
  %1522 = load i16, ptr %1521, align 8, !tbaa !137
  %1523 = sext i16 %1522 to i32
  %1524 = icmp eq i32 %1523, 0
  br i1 %1524, label %1525, label %1538

1525:                                             ; preds = %1519
  %1526 = load ptr, ptr %47, align 8, !tbaa !5
  %1527 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1526, i32 0, i32 36
  %1528 = load i8, ptr %1527, align 1, !tbaa !131
  %1529 = zext i8 %1528 to i32
  %1530 = ashr i32 %1529, 1
  %1531 = trunc i32 %1530 to i8
  store i8 %1531, ptr %1527, align 1, !tbaa !131
  %1532 = load ptr, ptr %47, align 8, !tbaa !5
  %1533 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1532, i32 0, i32 37
  %1534 = load i8, ptr %1533, align 4, !tbaa !130
  %1535 = zext i8 %1534 to i32
  %1536 = ashr i32 %1535, 1
  %1537 = trunc i32 %1536 to i8
  store i8 %1537, ptr %1533, align 4, !tbaa !130
  br label %1538

1538:                                             ; preds = %1525, %1519, %1512
  %1539 = load i32, ptr %40, align 4, !tbaa !31
  %1540 = load ptr, ptr %2, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.ImGuiTable, ptr %1540, i32 0, i32 87
  %1542 = load i16, ptr %1541, align 4, !tbaa !193
  %1543 = sext i16 %1542 to i32
  %1544 = icmp slt i32 %1539, %1543
  br i1 %1544, label %1545, label %1559

1545:                                             ; preds = %1538
  %1546 = load ptr, ptr %47, align 8, !tbaa !5
  %1547 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1546, i32 0, i32 3
  %1548 = load float, ptr %1547, align 4, !tbaa !201
  %1549 = fadd float %1548, 1.000000e+00
  %1550 = getelementptr inbounds %struct.ImRect, ptr %44, i32 0, i32 0
  %1551 = getelementptr inbounds %struct.ImVec2, ptr %1550, i32 0, i32 0
  %1552 = load float, ptr %1551, align 4, !tbaa !194
  %1553 = getelementptr inbounds %struct.ImRect, ptr %44, i32 0, i32 1
  %1554 = getelementptr inbounds %struct.ImVec2, ptr %1553, i32 0, i32 0
  %1555 = load float, ptr %1554, align 4, !tbaa !217
  %1556 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1549, float noundef %1552, float noundef %1555)
  %1557 = getelementptr inbounds %struct.ImRect, ptr %44, i32 0, i32 0
  %1558 = getelementptr inbounds %struct.ImVec2, ptr %1557, i32 0, i32 0
  store float %1556, ptr %1558, align 4, !tbaa !194
  br label %1559

1559:                                             ; preds = %1545, %1538
  %1560 = load ptr, ptr %47, align 8, !tbaa !5
  %1561 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1560, i32 0, i32 1
  %1562 = load float, ptr %1561, align 4, !tbaa !176
  %1563 = load ptr, ptr %2, align 8, !tbaa !5
  %1564 = getelementptr inbounds %struct.ImGuiTable, ptr %1563, i32 0, i32 35
  %1565 = load float, ptr %1564, align 4, !tbaa !169
  %1566 = fadd float %1562, %1565
  %1567 = load ptr, ptr %2, align 8, !tbaa !5
  %1568 = getelementptr inbounds %struct.ImGuiTable, ptr %1567, i32 0, i32 36
  %1569 = load float, ptr %1568, align 8, !tbaa !170
  %1570 = fadd float %1566, %1569
  %1571 = load ptr, ptr %2, align 8, !tbaa !5
  %1572 = getelementptr inbounds %struct.ImGuiTable, ptr %1571, i32 0, i32 34
  %1573 = load float, ptr %1572, align 8, !tbaa !163
  %1574 = call float @llvm.fmuladd.f32(float %1573, float 2.000000e+00, float %1570)
  %1575 = load float, ptr %43, align 4, !tbaa !114
  %1576 = fadd float %1575, %1574
  store float %1576, ptr %43, align 4, !tbaa !114
  %1577 = load i32, ptr %40, align 4, !tbaa !31
  %1578 = add nsw i32 %1577, 1
  store i32 %1578, ptr %40, align 4, !tbaa !31
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  store i32 0, ptr %13, align 4
  br label %1579

1579:                                             ; preds = %1559, %1169
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  %1580 = load i32, ptr %13, align 4
  switch i32 %1580, label %1986 [
    i32 0, label %1581
    i32 16, label %1582
  ]

1581:                                             ; preds = %1579
  br label %1582

1582:                                             ; preds = %1581, %1579
  %1583 = load i32, ptr %45, align 4, !tbaa !31
  %1584 = add nsw i32 %1583, 1
  store i32 %1584, ptr %45, align 4, !tbaa !31
  br label %1102, !llvm.loop !218

1585:                                             ; preds = %1108
  %1586 = load i8, ptr %41, align 1, !tbaa !113, !range !28, !noundef !29
  %1587 = trunc i8 %1586 to i1
  %1588 = zext i1 %1587 to i32
  %1589 = icmp eq i32 %1588, 0
  br i1 %1589, label %1590, label %1607

1590:                                             ; preds = %1585
  %1591 = load ptr, ptr %2, align 8, !tbaa !5
  %1592 = getelementptr inbounds %struct.ImGuiTable, ptr %1591, i32 0, i32 4
  %1593 = load ptr, ptr %2, align 8, !tbaa !5
  %1594 = getelementptr inbounds %struct.ImGuiTable, ptr %1593, i32 0, i32 79
  %1595 = load i16, ptr %1594, align 4, !tbaa !37
  %1596 = sext i16 %1595 to i32
  %1597 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1592, i32 noundef %1596)
  %1598 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1597, i32 0, i32 32
  store i8 1, ptr %1598, align 1, !tbaa !161
  %1599 = load ptr, ptr %2, align 8, !tbaa !5
  %1600 = getelementptr inbounds %struct.ImGuiTable, ptr %1599, i32 0, i32 4
  %1601 = load ptr, ptr %2, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.ImGuiTable, ptr %1601, i32 0, i32 79
  %1603 = load i16, ptr %1602, align 4, !tbaa !37
  %1604 = sext i16 %1603 to i32
  %1605 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1600, i32 noundef %1604)
  %1606 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1605, i32 0, i32 33
  store i8 0, ptr %1606, align 4, !tbaa !208
  br label %1607

1607:                                             ; preds = %1590, %1585
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %1608 = load ptr, ptr %2, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.ImGuiTable, ptr %1608, i32 0, i32 48
  %1610 = getelementptr inbounds %struct.ImRect, ptr %1609, i32 0, i32 0
  %1611 = getelementptr inbounds %struct.ImVec2, ptr %1610, i32 0, i32 0
  %1612 = load float, ptr %1611, align 8, !tbaa !219
  %1613 = load ptr, ptr %2, align 8, !tbaa !5
  %1614 = getelementptr inbounds %struct.ImGuiTable, ptr %1613, i32 0, i32 4
  %1615 = load ptr, ptr %2, align 8, !tbaa !5
  %1616 = getelementptr inbounds %struct.ImGuiTable, ptr %1615, i32 0, i32 80
  %1617 = load i16, ptr %1616, align 2, !tbaa !142
  %1618 = sext i16 %1617 to i32
  %1619 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1614, i32 noundef %1618)
  %1620 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1619, i32 0, i32 9
  %1621 = getelementptr inbounds %struct.ImRect, ptr %1620, i32 0, i32 1
  %1622 = getelementptr inbounds %struct.ImVec2, ptr %1621, i32 0, i32 0
  %1623 = load float, ptr %1622, align 4, !tbaa !198
  %1624 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1612, float noundef %1623)
  store float %1624, ptr %51, align 4, !tbaa !114
  %1625 = load i8, ptr %38, align 1, !tbaa !113, !range !28, !noundef !29
  %1626 = trunc i8 %1625 to i1
  br i1 %1626, label %1627, label %1645

1627:                                             ; preds = %1607
  %1628 = load ptr, ptr %2, align 8, !tbaa !5
  %1629 = getelementptr inbounds %struct.ImGuiTable, ptr %1628, i32 0, i32 70
  %1630 = load i16, ptr %1629, align 2, !tbaa !182
  %1631 = sext i16 %1630 to i32
  %1632 = icmp eq i32 %1631, -1
  br i1 %1632, label %1633, label %1645

1633:                                             ; preds = %1627
  %1634 = load float, ptr %39, align 4, !tbaa !114
  %1635 = load float, ptr %51, align 4, !tbaa !114
  %1636 = fcmp oge float %1634, %1635
  br i1 %1636, label %1637, label %1644

1637:                                             ; preds = %1633
  %1638 = load ptr, ptr %2, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.ImGuiTable, ptr %1638, i32 0, i32 13
  %1640 = load i32, ptr %1639, align 4, !tbaa !35
  %1641 = trunc i32 %1640 to i16
  %1642 = load ptr, ptr %2, align 8, !tbaa !5
  %1643 = getelementptr inbounds %struct.ImGuiTable, ptr %1642, i32 0, i32 70
  store i16 %1641, ptr %1643, align 2, !tbaa !182
  br label %1644

1644:                                             ; preds = %1637, %1633
  br label %1645

1645:                                             ; preds = %1644, %1627, %1607
  %1646 = load i8, ptr %9, align 1, !tbaa !113, !range !28, !noundef !29
  %1647 = trunc i8 %1646 to i1
  %1648 = zext i1 %1647 to i32
  %1649 = icmp eq i32 %1648, 0
  br i1 %1649, label %1650, label %1661

1650:                                             ; preds = %1645
  %1651 = load ptr, ptr %2, align 8, !tbaa !5
  %1652 = getelementptr inbounds %struct.ImGuiTable, ptr %1651, i32 0, i32 1
  %1653 = load i32, ptr %1652, align 4, !tbaa !30
  %1654 = and i32 %1653, 1
  %1655 = icmp ne i32 %1654, 0
  br i1 %1655, label %1656, label %1661

1656:                                             ; preds = %1650
  %1657 = load ptr, ptr %2, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.ImGuiTable, ptr %1657, i32 0, i32 1
  %1659 = load i32, ptr %1658, align 4, !tbaa !30
  %1660 = and i32 %1659, -2
  store i32 %1660, ptr %1658, align 4, !tbaa !30
  br label %1661

1661:                                             ; preds = %1656, %1650, %1645
  %1662 = load ptr, ptr %3, align 8, !tbaa !5
  %1663 = getelementptr inbounds %struct.ImGuiContext, ptr %1662, i32 0, i32 57
  %1664 = load i32, ptr %1663, align 8, !tbaa !220
  %1665 = icmp ne i32 %1664, 0
  %1666 = load ptr, ptr %2, align 8, !tbaa !5
  %1667 = getelementptr inbounds %struct.ImGuiTable, ptr %1666, i32 0, i32 106
  %1668 = zext i1 %1665 to i8
  store i8 %1668, ptr %1667, align 4, !tbaa !221
  %1669 = load ptr, ptr %2, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.ImGuiTable, ptr %1669, i32 0, i32 82
  %1671 = load i16, ptr %1670, align 2, !tbaa !159
  %1672 = sext i16 %1671 to i32
  %1673 = icmp ne i32 %1672, -1
  br i1 %1673, label %1674, label %1679

1674:                                             ; preds = %1661
  %1675 = load ptr, ptr %2, align 8, !tbaa !5
  %1676 = getelementptr inbounds %struct.ImGuiTable, ptr %1675, i32 0, i32 1
  %1677 = load i32, ptr %1676, align 4, !tbaa !30
  %1678 = and i32 %1677, -65537
  store i32 %1678, ptr %1676, align 4, !tbaa !30
  br label %1679

1679:                                             ; preds = %1674, %1661
  %1680 = load ptr, ptr %2, align 8, !tbaa !5
  %1681 = getelementptr inbounds %struct.ImGuiTable, ptr %1680, i32 0, i32 1
  %1682 = load i32, ptr %1681, align 4, !tbaa !30
  %1683 = and i32 %1682, 65536
  %1684 = icmp ne i32 %1683, 0
  br i1 %1684, label %1685, label %1706

1685:                                             ; preds = %1679
  %1686 = load float, ptr %51, align 4, !tbaa !114
  %1687 = load ptr, ptr %2, align 8, !tbaa !5
  %1688 = getelementptr inbounds %struct.ImGuiTable, ptr %1687, i32 0, i32 48
  %1689 = getelementptr inbounds %struct.ImRect, ptr %1688, i32 0, i32 1
  %1690 = getelementptr inbounds %struct.ImVec2, ptr %1689, i32 0, i32 0
  store float %1686, ptr %1690, align 8, !tbaa !222
  %1691 = load ptr, ptr %2, align 8, !tbaa !5
  %1692 = getelementptr inbounds %struct.ImGuiTable, ptr %1691, i32 0, i32 46
  %1693 = getelementptr inbounds %struct.ImRect, ptr %1692, i32 0, i32 1
  %1694 = getelementptr inbounds %struct.ImVec2, ptr %1693, i32 0, i32 0
  store float %1686, ptr %1694, align 8, !tbaa !185
  %1695 = load ptr, ptr %2, align 8, !tbaa !5
  %1696 = getelementptr inbounds %struct.ImGuiTable, ptr %1695, i32 0, i32 49
  %1697 = getelementptr inbounds %struct.ImRect, ptr %1696, i32 0, i32 1
  %1698 = getelementptr inbounds %struct.ImVec2, ptr %1697, i32 0, i32 0
  %1699 = load float, ptr %1698, align 8, !tbaa !223
  %1700 = load float, ptr %51, align 4, !tbaa !114
  %1701 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1699, float noundef %1700)
  %1702 = load ptr, ptr %2, align 8, !tbaa !5
  %1703 = getelementptr inbounds %struct.ImGuiTable, ptr %1702, i32 0, i32 49
  %1704 = getelementptr inbounds %struct.ImRect, ptr %1703, i32 0, i32 1
  %1705 = getelementptr inbounds %struct.ImVec2, ptr %1704, i32 0, i32 0
  store float %1701, ptr %1705, align 8, !tbaa !223
  br label %1706

1706:                                             ; preds = %1685, %1679
  %1707 = load ptr, ptr %2, align 8, !tbaa !5
  %1708 = getelementptr inbounds %struct.ImGuiTable, ptr %1707, i32 0, i32 48
  %1709 = load ptr, ptr %2, align 8, !tbaa !5
  %1710 = getelementptr inbounds %struct.ImGuiTable, ptr %1709, i32 0, i32 56
  %1711 = load ptr, ptr %1710, align 8, !tbaa !144
  %1712 = getelementptr inbounds %struct.ImGuiWindow, ptr %1711, i32 0, i32 74
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1712, ptr align 8 %1708, i64 16, i1 false), !tbaa.struct !167
  %1713 = load ptr, ptr %2, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.ImGuiTable, ptr %1713, i32 0, i32 49
  %1715 = getelementptr inbounds %struct.ImRect, ptr %1714, i32 0, i32 0
  %1716 = getelementptr inbounds %struct.ImVec2, ptr %1715, i32 0, i32 0
  %1717 = load float, ptr %1716, align 8, !tbaa !224
  %1718 = load ptr, ptr %2, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.ImGuiTable, ptr %1718, i32 0, i32 29
  store float %1717, ptr %1719, align 4, !tbaa !225
  %1720 = load ptr, ptr %2, align 8, !tbaa !5
  %1721 = getelementptr inbounds %struct.ImGuiTable, ptr %1720, i32 0, i32 49
  %1722 = getelementptr inbounds %struct.ImRect, ptr %1721, i32 0, i32 1
  %1723 = getelementptr inbounds %struct.ImVec2, ptr %1722, i32 0, i32 0
  %1724 = load float, ptr %1723, align 8, !tbaa !223
  %1725 = load ptr, ptr %2, align 8, !tbaa !5
  %1726 = getelementptr inbounds %struct.ImGuiTable, ptr %1725, i32 0, i32 30
  store float %1724, ptr %1726, align 8, !tbaa !226
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %1727 = load ptr, ptr %2, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.ImGuiTable, ptr %1727, i32 0, i32 1
  %1729 = load i32, ptr %1728, align 4, !tbaa !30
  %1730 = and i32 %1729, 131072
  %1731 = icmp ne i32 %1730, 0
  br i1 %1731, label %1732, label %1738

1732:                                             ; preds = %1706
  %1733 = load ptr, ptr %2, align 8, !tbaa !5
  %1734 = getelementptr inbounds %struct.ImGuiTable, ptr %1733, i32 0, i32 46
  %1735 = getelementptr inbounds %struct.ImRect, ptr %1734, i32 0, i32 1
  %1736 = getelementptr inbounds %struct.ImVec2, ptr %1735, i32 0, i32 1
  %1737 = load float, ptr %1736, align 4, !tbaa !186
  store float %1737, ptr %52, align 4, !tbaa !114
  br label %1761

1738:                                             ; preds = %1706
  %1739 = load ptr, ptr %2, align 8, !tbaa !5
  %1740 = getelementptr inbounds %struct.ImGuiTable, ptr %1739, i32 0, i32 56
  %1741 = load ptr, ptr %1740, align 8, !tbaa !144
  %1742 = getelementptr inbounds %struct.ImGuiWindow, ptr %1741, i32 0, i32 76
  %1743 = getelementptr inbounds %struct.ImRect, ptr %1742, i32 0, i32 1
  %1744 = getelementptr inbounds %struct.ImVec2, ptr %1743, i32 0, i32 1
  %1745 = load float, ptr %1744, align 4, !tbaa !227
  %1746 = load ptr, ptr %2, align 8, !tbaa !5
  %1747 = getelementptr inbounds %struct.ImGuiTable, ptr %1746, i32 0, i32 1
  %1748 = load i32, ptr %1747, align 4, !tbaa !30
  %1749 = and i32 %1748, 33554432
  %1750 = icmp ne i32 %1749, 0
  br i1 %1750, label %1751, label %1752

1751:                                             ; preds = %1738
  br label %1758

1752:                                             ; preds = %1738
  %1753 = load ptr, ptr %2, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.ImGuiTable, ptr %1753, i32 0, i32 46
  %1755 = getelementptr inbounds %struct.ImRect, ptr %1754, i32 0, i32 1
  %1756 = getelementptr inbounds %struct.ImVec2, ptr %1755, i32 0, i32 1
  %1757 = load float, ptr %1756, align 4, !tbaa !186
  br label %1758

1758:                                             ; preds = %1752, %1751
  %1759 = phi float [ 0.000000e+00, %1751 ], [ %1757, %1752 ]
  %1760 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1745, float noundef %1759)
  store float %1760, ptr %52, align 4, !tbaa !114
  br label %1761

1761:                                             ; preds = %1758, %1732
  %1762 = load float, ptr %52, align 4, !tbaa !114
  %1763 = load ptr, ptr %3, align 8, !tbaa !5
  %1764 = getelementptr inbounds %struct.ImGuiContext, ptr %1763, i32 0, i32 4
  %1765 = getelementptr inbounds %struct.ImGuiStyle, ptr %1764, i32 0, i32 17
  %1766 = getelementptr inbounds %struct.ImVec2, ptr %1765, i32 0, i32 1
  %1767 = load float, ptr %1766, align 4, !tbaa !228
  %1768 = fsub float %1762, %1767
  %1769 = load ptr, ptr %2, align 8, !tbaa !5
  %1770 = getelementptr inbounds %struct.ImGuiTable, ptr %1769, i32 0, i32 56
  %1771 = load ptr, ptr %1770, align 8, !tbaa !144
  %1772 = getelementptr inbounds %struct.ImGuiWindow, ptr %1771, i32 0, i32 73
  %1773 = getelementptr inbounds %struct.ImRect, ptr %1772, i32 0, i32 0
  %1774 = getelementptr inbounds %struct.ImVec2, ptr %1773, i32 0, i32 1
  %1775 = load float, ptr %1774, align 4, !tbaa !229
  %1776 = load ptr, ptr %2, align 8, !tbaa !5
  %1777 = getelementptr inbounds %struct.ImGuiTable, ptr %1776, i32 0, i32 56
  %1778 = load ptr, ptr %1777, align 8, !tbaa !144
  %1779 = getelementptr inbounds %struct.ImGuiWindow, ptr %1778, i32 0, i32 73
  %1780 = getelementptr inbounds %struct.ImRect, ptr %1779, i32 0, i32 1
  %1781 = getelementptr inbounds %struct.ImVec2, ptr %1780, i32 0, i32 1
  %1782 = load float, ptr %1781, align 4, !tbaa !230
  %1783 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1768, float noundef %1775, float noundef %1782)
  %1784 = load ptr, ptr %2, align 8, !tbaa !5
  %1785 = getelementptr inbounds %struct.ImGuiTable, ptr %1784, i32 0, i32 56
  %1786 = load ptr, ptr %1785, align 8, !tbaa !144
  %1787 = getelementptr inbounds %struct.ImGuiWindow, ptr %1786, i32 0, i32 73
  %1788 = getelementptr inbounds %struct.ImRect, ptr %1787, i32 0, i32 1
  %1789 = getelementptr inbounds %struct.ImVec2, ptr %1788, i32 0, i32 1
  store float %1783, ptr %1789, align 4, !tbaa !230
  %1790 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef %1790)
  %1791 = load ptr, ptr %2, align 8, !tbaa !5
  %1792 = getelementptr inbounds %struct.ImGuiTable, ptr %1791, i32 0, i32 1
  %1793 = load i32, ptr %1792, align 4, !tbaa !30
  %1794 = and i32 %1793, 1
  %1795 = icmp ne i32 %1794, 0
  br i1 %1795, label %1796, label %1798

1796:                                             ; preds = %1761
  %1797 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef %1797)
  br label %1798

1798:                                             ; preds = %1796, %1761
  %1799 = load ptr, ptr %35, align 8, !tbaa !5
  %1800 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1799, i32 0, i32 2
  store float 0.000000e+00, ptr %1800, align 4, !tbaa !231
  %1801 = load ptr, ptr %2, align 8, !tbaa !5
  %1802 = getelementptr inbounds %struct.ImGuiTable, ptr %1801, i32 0, i32 92
  store i8 1, ptr %1802, align 2, !tbaa !9
  %1803 = load ptr, ptr %2, align 8, !tbaa !5
  %1804 = getelementptr inbounds %struct.ImGuiTable, ptr %1803, i32 0, i32 96
  store i8 0, ptr %1804, align 2, !tbaa !232
  %1805 = load ptr, ptr %2, align 8, !tbaa !5
  %1806 = getelementptr inbounds %struct.ImGuiTable, ptr %1805, i32 0, i32 72
  store i16 -1, ptr %1806, align 2, !tbaa !233
  %1807 = load ptr, ptr %2, align 8, !tbaa !5
  %1808 = getelementptr inbounds %struct.ImGuiTable, ptr %1807, i32 0, i32 97
  %1809 = load i8, ptr %1808, align 1, !tbaa !234, !range !28, !noundef !29
  %1810 = trunc i8 %1809 to i1
  br i1 %1810, label %1811, label %1833

1811:                                             ; preds = %1798
  %1812 = load ptr, ptr %2, align 8, !tbaa !5
  %1813 = getelementptr inbounds %struct.ImGuiTable, ptr %1812, i32 0, i32 83
  %1814 = load i16, ptr %1813, align 4, !tbaa !235
  %1815 = sext i16 %1814 to i32
  %1816 = icmp ne i32 %1815, -1
  br i1 %1816, label %1817, label %1833

1817:                                             ; preds = %1811
  %1818 = load ptr, ptr %2, align 8, !tbaa !5
  %1819 = getelementptr inbounds %struct.ImGuiTable, ptr %1818, i32 0, i32 17
  %1820 = load i16, ptr %1819, align 2, !tbaa !236
  %1821 = sext i16 %1820 to i32
  %1822 = load ptr, ptr %2, align 8, !tbaa !5
  %1823 = getelementptr inbounds %struct.ImGuiTable, ptr %1822, i32 0, i32 16
  %1824 = load i16, ptr %1823, align 8, !tbaa !137
  %1825 = sext i16 %1824 to i32
  %1826 = icmp eq i32 %1821, %1825
  br i1 %1826, label %1827, label %1833

1827:                                             ; preds = %1817
  %1828 = load ptr, ptr %2, align 8, !tbaa !5
  %1829 = getelementptr inbounds %struct.ImGuiTable, ptr %1828, i32 0, i32 83
  %1830 = load i16, ptr %1829, align 4, !tbaa !235
  %1831 = load ptr, ptr %2, align 8, !tbaa !5
  %1832 = getelementptr inbounds %struct.ImGuiTable, ptr %1831, i32 0, i32 72
  store i16 %1830, ptr %1832, align 2, !tbaa !233
  br label %1883

1833:                                             ; preds = %1817, %1811, %1798
  %1834 = load ptr, ptr %2, align 8, !tbaa !5
  %1835 = getelementptr inbounds %struct.ImGuiTable, ptr %1834, i32 0, i32 1
  %1836 = load i32, ptr %1835, align 4, !tbaa !30
  %1837 = and i32 %1836, 268435456
  %1838 = icmp ne i32 %1837, 0
  br i1 %1838, label %1839, label %1882

1839:                                             ; preds = %1833
  %1840 = load ptr, ptr %2, align 8, !tbaa !5
  %1841 = getelementptr inbounds %struct.ImGuiTable, ptr %1840, i32 0, i32 70
  %1842 = load i16, ptr %1841, align 2, !tbaa !182
  %1843 = sext i16 %1842 to i32
  %1844 = icmp ne i32 %1843, -1
  br i1 %1844, label %1845, label %1882

1845:                                             ; preds = %1839
  %1846 = load ptr, ptr %2, align 8, !tbaa !5
  %1847 = getelementptr inbounds %struct.ImGuiTable, ptr %1846, i32 0, i32 70
  %1848 = load i16, ptr %1847, align 2, !tbaa !182
  %1849 = sext i16 %1848 to i32
  %1850 = load ptr, ptr %2, align 8, !tbaa !5
  %1851 = getelementptr inbounds %struct.ImGuiTable, ptr %1850, i32 0, i32 13
  %1852 = load i32, ptr %1851, align 4, !tbaa !35
  %1853 = icmp ne i32 %1849, %1852
  br i1 %1853, label %1854, label %1882

1854:                                             ; preds = %1845
  %1855 = load ptr, ptr %2, align 8, !tbaa !5
  %1856 = getelementptr inbounds %struct.ImGuiTable, ptr %1855, i32 0, i32 71
  %1857 = load i16, ptr %1856, align 4, !tbaa !181
  %1858 = sext i16 %1857 to i32
  %1859 = icmp eq i32 %1858, -1
  br i1 %1859, label %1860, label %1882

1860:                                             ; preds = %1854
  %1861 = load ptr, ptr %3, align 8, !tbaa !5
  %1862 = getelementptr inbounds %struct.ImGuiContext, ptr %1861, i32 0, i32 56
  %1863 = load i32, ptr %1862, align 4, !tbaa !188
  %1864 = icmp eq i32 %1863, 0
  br i1 %1864, label %1875, label %1865

1865:                                             ; preds = %1860
  %1866 = load ptr, ptr %2, align 8, !tbaa !5
  %1867 = getelementptr inbounds %struct.ImGuiTable, ptr %1866, i32 0, i32 107
  %1868 = load i8, ptr %1867, align 1, !tbaa !237, !range !28, !noundef !29
  %1869 = trunc i8 %1868 to i1
  br i1 %1869, label %1875, label %1870

1870:                                             ; preds = %1865
  %1871 = load ptr, ptr %3, align 8, !tbaa !5
  %1872 = getelementptr inbounds %struct.ImGuiContext, ptr %1871, i32 0, i32 162
  %1873 = load i8, ptr %1872, align 4, !tbaa !238, !range !28, !noundef !29
  %1874 = trunc i8 %1873 to i1
  br i1 %1874, label %1875, label %1881

1875:                                             ; preds = %1870, %1865, %1860
  %1876 = load ptr, ptr %2, align 8, !tbaa !5
  %1877 = getelementptr inbounds %struct.ImGuiTable, ptr %1876, i32 0, i32 70
  %1878 = load i16, ptr %1877, align 2, !tbaa !182
  %1879 = load ptr, ptr %2, align 8, !tbaa !5
  %1880 = getelementptr inbounds %struct.ImGuiTable, ptr %1879, i32 0, i32 72
  store i16 %1878, ptr %1880, align 2, !tbaa !233
  br label %1881

1881:                                             ; preds = %1875, %1870
  br label %1882

1882:                                             ; preds = %1881, %1854, %1845, %1839, %1833
  br label %1883

1883:                                             ; preds = %1882, %1827
  %1884 = load ptr, ptr %2, align 8, !tbaa !5
  %1885 = getelementptr inbounds %struct.ImGuiTable, ptr %1884, i32 0, i32 98
  %1886 = load i8, ptr %1885, align 4, !tbaa !239, !range !28, !noundef !29
  %1887 = trunc i8 %1886 to i1
  %1888 = zext i1 %1887 to i32
  %1889 = icmp eq i32 %1888, 0
  br i1 %1889, label %1890, label %1898

1890:                                             ; preds = %1883
  %1891 = load ptr, ptr %2, align 8, !tbaa !5
  %1892 = call noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef %1891)
  br i1 %1892, label %1893, label %1898

1893:                                             ; preds = %1890
  %1894 = load ptr, ptr %2, align 8, !tbaa !5
  %1895 = load ptr, ptr %2, align 8, !tbaa !5
  %1896 = getelementptr inbounds %struct.ImGuiTable, ptr %1895, i32 0, i32 1
  %1897 = load i32, ptr %1896, align 4, !tbaa !30
  call void @_ZN5ImGui27TableDrawDefaultContextMenuEP10ImGuiTablei(ptr noundef %1894, i32 noundef %1897)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1898

1898:                                             ; preds = %1893, %1890, %1883
  %1899 = load ptr, ptr %2, align 8, !tbaa !5
  %1900 = getelementptr inbounds %struct.ImGuiTable, ptr %1899, i32 0, i32 95
  %1901 = load i8, ptr %1900, align 1, !tbaa !127, !range !28, !noundef !29
  %1902 = trunc i8 %1901 to i1
  br i1 %1902, label %1903, label %1911

1903:                                             ; preds = %1898
  %1904 = load ptr, ptr %2, align 8, !tbaa !5
  %1905 = getelementptr inbounds %struct.ImGuiTable, ptr %1904, i32 0, i32 1
  %1906 = load i32, ptr %1905, align 4, !tbaa !30
  %1907 = and i32 %1906, 8
  %1908 = icmp ne i32 %1907, 0
  br i1 %1908, label %1909, label %1911

1909:                                             ; preds = %1903
  %1910 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef %1910)
  br label %1911

1911:                                             ; preds = %1909, %1903, %1898
  %1912 = load ptr, ptr %2, align 8, !tbaa !5
  %1913 = getelementptr inbounds %struct.ImGuiTable, ptr %1912, i32 0, i32 86
  %1914 = load i16, ptr %1913, align 2, !tbaa !240
  %1915 = sext i16 %1914 to i32
  %1916 = icmp sgt i32 %1915, 0
  br i1 %1916, label %1917, label %1943

1917:                                             ; preds = %1911
  %1918 = load ptr, ptr %2, align 8, !tbaa !5
  %1919 = getelementptr inbounds %struct.ImGuiTable, ptr %1918, i32 0, i32 4
  %1920 = load ptr, ptr %2, align 8, !tbaa !5
  %1921 = getelementptr inbounds %struct.ImGuiTable, ptr %1920, i32 0, i32 5
  %1922 = load ptr, ptr %2, align 8, !tbaa !5
  %1923 = getelementptr inbounds %struct.ImGuiTable, ptr %1922, i32 0, i32 86
  %1924 = load i16, ptr %1923, align 2, !tbaa !240
  %1925 = sext i16 %1924 to i32
  %1926 = sub nsw i32 %1925, 1
  %1927 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1921, i32 noundef %1926)
  %1928 = load i16, ptr %1927, align 2, !tbaa !115
  %1929 = sext i16 %1928 to i32
  %1930 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1919, i32 noundef %1929)
  %1931 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1930, i32 0, i32 3
  %1932 = load float, ptr %1931, align 4, !tbaa !201
  %1933 = load ptr, ptr %2, align 8, !tbaa !5
  %1934 = getelementptr inbounds %struct.ImGuiTable, ptr %1933, i32 0, i32 46
  %1935 = getelementptr inbounds %struct.ImRect, ptr %1934, i32 0, i32 0
  %1936 = getelementptr inbounds %struct.ImVec2, ptr %1935, i32 0, i32 0
  %1937 = load float, ptr %1936, align 8, !tbaa !183
  %1938 = fsub float %1932, %1937
  %1939 = load ptr, ptr %2, align 8, !tbaa !5
  %1940 = getelementptr inbounds %struct.ImGuiTable, ptr %1939, i32 0, i32 56
  %1941 = load ptr, ptr %1940, align 8, !tbaa !144
  %1942 = getelementptr inbounds %struct.ImGuiWindow, ptr %1941, i32 0, i32 22
  store float %1938, ptr %1942, align 8, !tbaa !241
  br label %1943

1943:                                             ; preds = %1917, %1911
  %1944 = load ptr, ptr %2, align 8, !tbaa !5
  %1945 = getelementptr inbounds %struct.ImGuiTable, ptr %1944, i32 0, i32 84
  %1946 = load i16, ptr %1945, align 2, !tbaa !242
  %1947 = sext i16 %1946 to i32
  %1948 = icmp sgt i32 %1947, 0
  br i1 %1948, label %1949, label %1957

1949:                                             ; preds = %1943
  %1950 = load ptr, ptr %35, align 8, !tbaa !5
  %1951 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1950, i32 0, i32 3
  %1952 = load float, ptr %1951, align 4, !tbaa !243
  %1953 = load ptr, ptr %2, align 8, !tbaa !5
  %1954 = getelementptr inbounds %struct.ImGuiTable, ptr %1953, i32 0, i32 56
  %1955 = load ptr, ptr %1954, align 8, !tbaa !144
  %1956 = getelementptr inbounds %struct.ImGuiWindow, ptr %1955, i32 0, i32 23
  store float %1952, ptr %1956, align 4, !tbaa !244
  br label %1957

1957:                                             ; preds = %1949, %1943
  %1958 = load ptr, ptr %35, align 8, !tbaa !5
  %1959 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1958, i32 0, i32 3
  store float 0.000000e+00, ptr %1959, align 4, !tbaa !243
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  %1960 = load ptr, ptr %2, align 8, !tbaa !5
  %1961 = getelementptr inbounds %struct.ImGuiTable, ptr %1960, i32 0, i32 56
  %1962 = load ptr, ptr %1961, align 8, !tbaa !144
  store ptr %1962, ptr %53, align 8, !tbaa !5
  %1963 = load ptr, ptr %2, align 8, !tbaa !5
  %1964 = getelementptr inbounds %struct.ImGuiTable, ptr %1963, i32 0, i32 1
  %1965 = load i32, ptr %1964, align 4, !tbaa !30
  %1966 = and i32 %1965, 1048576
  %1967 = icmp ne i32 %1966, 0
  br i1 %1967, label %1968, label %1975

1968:                                             ; preds = %1957
  %1969 = load ptr, ptr %2, align 8, !tbaa !5
  %1970 = getelementptr inbounds %struct.ImGuiTable, ptr %1969, i32 0, i32 58
  %1971 = load ptr, ptr %1970, align 8, !tbaa !245
  %1972 = load ptr, ptr %53, align 8, !tbaa !5
  %1973 = getelementptr inbounds %struct.ImGuiWindow, ptr %1972, i32 0, i32 87
  %1974 = load ptr, ptr %1973, align 8, !tbaa !246
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %1971, ptr noundef %1974, i32 noundef 2)
  br label %1985

1975:                                             ; preds = %1957
  %1976 = load ptr, ptr %53, align 8, !tbaa !5
  %1977 = getelementptr inbounds %struct.ImGuiWindow, ptr %1976, i32 0, i32 87
  %1978 = load ptr, ptr %1977, align 8, !tbaa !246
  %1979 = load ptr, ptr %53, align 8, !tbaa !5
  %1980 = getelementptr inbounds %struct.ImGuiWindow, ptr %1979, i32 0, i32 72
  %1981 = getelementptr inbounds %struct.ImRect, ptr %1980, i32 0, i32 0
  %1982 = load ptr, ptr %53, align 8, !tbaa !5
  %1983 = getelementptr inbounds %struct.ImGuiWindow, ptr %1982, i32 0, i32 72
  %1984 = getelementptr inbounds %struct.ImRect, ptr %1983, i32 0, i32 1
  call void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(216) %1978, ptr noundef nonnull align 4 dereferenceable(8) %1981, ptr noundef nonnull align 4 dereferenceable(8) %1984, i1 noundef zeroext false)
  br label %1985

1985:                                             ; preds = %1975, %1968
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 4, 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

1986:                                             ; preds = %1579, %936, %381
  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 @_ZL7ImTruncf(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 @_ZN5ImGui23TableCalcMaxColumnWidthEPK10ImGuiTablei(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 @_ZN5ImGui27TableDrawDefaultContextMenuEP10ImGuiTablei(ptr noundef, i32 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(216), 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, !27, i64 566}
!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, !16, i64 144, !11, i64 148, !11, i64 150, !11, i64 152, !7, i64 156, !11, i64 164, !11, 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, !16, i64 232, !16, i64 236, !17, i64 240, !17, i64 256, !17, i64 272, !17, i64 288, !17, i64 304, !17, i64 320, !17, i64 336, !17, i64 352, !17, i64 368, !6, i64 384, !6, i64 392, !19, i64 400, !6, i64 416, !21, i64 424, !22, i64 448, !23, i64 464, !25, i64 480, !26, i64 496, !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, !15, i64 554, !15, i64 556, !15, i64 558, !15, i64 560, !15, i64 562, !15, i64 564, !27, i64 566, !27, i64 567, !27, i64 568, !27, i64 569, !27, i64 570, !27, i64 571, !27, i64 572, !27, i64 573, !27, i64 574, !27, i64 575, !27, i64 576, !27, i64 577, !27, i64 578, !27, i64 579, !27, i64 580, !27, i64 581, !27, i64 582, !27, i64 583, !27, i64 584, !27, i64 585}
!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, !24, i64 8}
!24 = !{!"_ZTS18ImGuiSortDirection", !7, i64 0}
!25 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!26 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !27, i64 12}
!27 = !{!"bool", !7, i64 0}
!28 = !{i8 0, i8 2}
!29 = !{}
!30 = !{!10, !11, i64 4}
!31 = !{!11, !11, i64 0}
!32 = !{!10, !27, i64 575}
!33 = !{!10, !15, i64 514}
!34 = !{!10, !6, i64 80}
!35 = !{!10, !11, i64 108}
!36 = !{!10, !6, i64 72}
!37 = !{!10, !15, i64 540}
!38 = !{!39, !16, i64 3116}
!39 = !{!"_ZTS12ImGuiContext", !27, i64 0, !27, i64 1, !40, i64 8, !43, i64 2984, !44, i64 3056, !6, i64 4216, !16, i64 4224, !16, i64 4228, !16, i64 4232, !16, i64 4236, !46, i64 4240, !49, i64 4776, !11, i64 4784, !11, i64 4788, !11, i64 4792, !11, i64 4796, !27, i64 4800, !27, i64 4801, !27, i64 4802, !27, i64 4803, !6, i64 4808, !7, i64 4816, !50, i64 4832, !50, i64 4848, !41, i64 4864, !11, i64 4868, !51, i64 4872, !51, i64 4888, !51, i64 4904, !52, i64 4920, !53, i64 4936, !11, i64 4952, !18, i64 4956, !11, i64 4964, !6, i64 4968, !6, i64 4976, !6, i64 4984, !6, i64 4992, !6, i64 5000, !6, i64 5008, !18, i64 5016, !11, i64 5024, !11, i64 5028, !16, i64 5032, !18, i64 5036, !18, i64 5044, !11, i64 5052, !11, i64 5056, !11, i64 5060, !11, i64 5064, !11, i64 5068, !16, i64 5072, !16, i64 5076, !27, i64 5080, !27, i64 5081, !27, i64 5082, !11, i64 5084, !11, i64 5088, !16, i64 5092, !27, i64 5096, !27, i64 5097, !27, i64 5098, !27, i64 5099, !27, i64 5100, !27, i64 5101, !27, i64 5102, !11, i64 5103, !18, i64 5104, !6, i64 5112, !55, i64 5120, !11, i64 5124, !56, i64 5128, !57, i64 5140, !11, i64 5148, !16, i64 5152, !49, i64 5160, !49, i64 5168, !49, i64 5176, !58, i64 5184, !7, i64 5204, !59, i64 7056, !11, i64 7400, !27, i64 7404, !11, i64 7408, !11, i64 7412, !11, i64 7416, !11, i64 7420, !61, i64 7424, !63, i64 7480, !64, i64 7560, !27, i64 7672, !11, i64 7676, !65, i64 7680, !66, i64 7696, !67, i64 7712, !68, i64 7728, !69, i64 7744, !70, i64 7760, !71, i64 7776, !71, i64 7792, !72, i64 7808, !73, i64 7824, !27, i64 7840, !27, i64 7841, !27, i64 7842, !27, i64 7843, !11, i64 7844, !6, i64 7848, !11, i64 7856, !74, i64 7860, !11, i64 7864, !11, i64 7868, !11, i64 7872, !11, i64 7876, !68, i64 7880, !11, i64 7896, !16, i64 7900, !11, i64 7904, !11, i64 7908, !55, i64 7912, !62, i64 7920, !7, i64 7928, !27, i64 7929, !27, i64 7930, !27, i64 7931, !75, i64 7936, !27, i64 7992, !27, i64 7993, !27, i64 7994, !11, i64 7996, !11, i64 8000, !11, i64 8004, !45, i64 8008, !45, i64 8012, !45, i64 8016, !17, i64 8020, !17, i64 8036, !11, i64 8052, !11, i64 8056, !11, i64 8060, !75, i64 8064, !75, i64 8120, !75, i64 8176, !75, i64 8232, !11, i64 8288, !11, i64 8292, !11, i64 8296, !11, i64 8300, !27, i64 8304, !27, i64 8305, !11, i64 8308, !11, i64 8312, !6, i64 8320, !6, i64 8328, !6, i64 8336, !16, i64 8344, !16, i64 8348, !27, i64 8352, !76, i64 8356, !18, i64 8360, !18, i64 8368, !16, i64 8376, !27, i64 8380, !27, i64 8381, !27, i64 8382, !11, i64 8384, !11, i64 8388, !11, i64 8392, !77, i64 8400, !17, i64 8464, !17, i64 8480, !11, i64 8496, !11, i64 8500, !16, i64 8504, !11, i64 8508, !11, i64 8512, !11, i64 8516, !11, i64 8520, !78, i64 8528, !7, i64 8544, !11, i64 8560, !79, i64 8568, !6, i64 8584, !11, i64 8592, !11, i64 8596, !80, i64 8600, !81, i64 8616, !83, i64 8656, !84, i64 8672, !6, i64 8688, !85, i64 8696, !87, i64 8736, !88, i64 8752, !89, i64 8768, !6, i64 8872, !11, i64 8880, !90, i64 8888, !91, i64 8904, !11, i64 8944, !11, i64 8948, !16, i64 8952, !16, i64 8956, !11, i64 8960, !11, i64 8964, !11, i64 8968, !16, i64 8972, !18, i64 8976, !93, i64 8984, !94, i64 9104, !95, i64 9128, !11, i64 9248, !57, i64 9252, !11, i64 9260, !11, i64 9264, !11, i64 9268, !11, i64 9272, !11, i64 9276, !16, i64 9280, !16, i64 9284, !11, i64 9288, !47, i64 9292, !97, i64 9308, !17, i64 9356, !27, i64 9372, !15, i64 9374, !16, i64 9376, !16, i64 9380, !16, i64 9384, !27, i64 9388, !27, i64 9389, !16, i64 9392, !16, i64 9396, !16, i64 9400, !15, i64 9404, !15, i64 9406, !6, i64 9408, !20, i64 9416, !98, i64 9432, !99, i64 9448, !101, i64 9552, !101, i64 9568, !27, i64 9584, !16, i64 9588, !19, i64 9592, !102, i64 9608, !103, i64 9624, !104, i64 9640, !105, i64 9656, !11, i64 9672, !7, i64 9680, !27, i64 9760, !11, i64 9764, !6, i64 9768, !6, i64 9776, !19, i64 9784, !6, i64 9800, !6, i64 9808, !16, i64 9816, !27, i64 9820, !11, i64 9824, !11, i64 9828, !11, i64 9832, !6, i64 9840, !6, i64 9848, !18, i64 9856, !27, i64 9864, !11, i64 9868, !106, i64 9872, !6, i64 9896, !11, i64 9904, !11, i64 9908, !19, i64 9912, !107, i64 9928, !11, i64 9952, !11, i64 9956, !7, i64 9960, !7, i64 9961, !27, i64 9962, !11, i64 9964, !7, i64 9968, !27, i64 9969, !7, i64 9970, !11, i64 9972, !16, i64 9976, !47, i64 9980, !108, i64 9996, !109, i64 10024, !111, i64 10064, !7, i64 10124, !11, i64 10364, !11, i64 10368, !16, i64 10372, !11, i64 10376, !11, i64 10380, !11, i64 10384, !20, i64 10392, !7, i64 10408}
!40 = !{!"_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, !27, i64 60, !6, i64 64, !18, i64 72, !27, i64 80, !27, i64 81, !27, i64 82, !27, i64 83, !27, i64 84, !27, i64 85, !27, i64 86, !27, i64 87, !27, i64 88, !27, i64 89, !27, i64 90, !27, i64 91, !27, i64 92, !27, i64 93, !27, i64 94, !27, i64 95, !27, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !27, i64 124, !27, i64 125, !27, i64 126, !27, i64 127, !27, i64 128, !27, i64 129, !27, i64 130, !27, i64 131, !27, i64 132, !27, i64 133, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !27, i64 176, !27, i64 177, !27, i64 178, !27, i64 179, !27, i64 180, !27, i64 181, !27, i64 182, !16, i64 184, !11, i64 188, !11, i64 192, !11, i64 196, !11, i64 200, !18, i64 204, !6, i64 216, !18, i64 224, !7, i64 232, !16, i64 240, !16, i64 244, !41, i64 248, !27, i64 252, !27, i64 253, !27, i64 254, !27, i64 255, !11, i64 256, !7, i64 260, !27, i64 2724, !18, i64 2728, !7, i64 2736, !7, i64 2776, !7, i64 2816, !7, i64 2821, !7, i64 2826, !7, i64 2836, !7, i64 2846, !7, i64 2851, !7, i64 2856, !27, i64 2861, !27, i64 2862, !7, i64 2864, !7, i64 2884, !7, i64 2904, !16, i64 2924, !27, i64 2928, !27, i64 2929, !15, i64 2930, !42, i64 2936, !6, i64 2952, !6, i64 2960, !6, i64 2968}
!41 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!42 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!43 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !15, i64 56, !6, i64 64}
!44 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !18, i64 24, !18, i64 32, !45, 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, !16, i64 148, !16, i64 152, !16, i64 156, !18, i64 160, !45, i64 168, !18, i64 172, !18, i64 180, !16, i64 188, !18, i64 192, !18, i64 200, !18, i64 208, !18, i64 216, !16, i64 224, !27, i64 228, !27, i64 229, !27, i64 230, !16, i64 232, !16, i64 236, !7, i64 240, !16, i64 1136, !16, i64 1140, !16, i64 1144, !11, i64 1148, !11, i64 1152}
!45 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!46 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !6, i64 16, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !47, i64 40, !11, i64 56, !48, i64 64, !7, i64 80, !16, i64 464, !7, i64 468}
!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 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !11, i64 0, !11, i64 4, !6, i64 8}
!55 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!56 = !{!"_ZTS24ImGuiDeactivatedItemData", !11, i64 0, !11, i64 4, !27, i64 8, !27, i64 9}
!57 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!58 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!59 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !60, i64 312, !60, i64 328}
!60 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!61 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !11, i64 4, !11, i64 8, !62, i64 16, !16, i64 24, !11, i64 28, !11, i64 32, !27, i64 36, !7, i64 37, !57, i64 38, !11, i64 48}
!62 = !{!"long long", !7, i64 0}
!63 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !17, i64 12, !17, i64 28, !17, i64 44, !17, i64 60, !11, i64 76}
!64 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !11, i64 56, !27, i64 60, !17, i64 64, !6, i64 80, !6, i64 88, !16, i64 96, !18, i64 100, !11, i64 108}
!65 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!74 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!75 = !{!"_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, !62, i64 48}
!76 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!77 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !27, i64 57, !27, i64 58}
!78 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!81 = !{!"_ZTS6ImPoolI10ImGuiTableE", !82, i64 0, !53, i64 16, !11, i64 32, !11, i64 36}
!82 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!85 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !86, i64 0, !53, i64 16, !11, i64 32, !11, i64 36}
!86 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!87 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!88 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!89 = !{!"_ZTS19ImGuiBoxSelectState", !11, i64 0, !27, i64 4, !27, i64 5, !27, i64 6, !27, i64 7, !27, i64 8, !11, i64 9, !18, i64 12, !18, i64 20, !18, i64 28, !6, i64 40, !27, i64 48, !17, i64 52, !17, i64 68, !17, i64 84}
!90 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!91 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !92, i64 0, !53, i64 16, !11, i64 32, !11, i64 36}
!92 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !11, i64 0, !11, i64 4, !6, i64 8}
!93 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !6, i64 32, !20, i64 40, !20, i64 56, !20, i64 72, !11, i64 88, !18, i64 92, !16, i64 100, !27, i64 104, !27, i64 105, !27, i64 106, !27, i64 107, !11, i64 108, !11, i64 112}
!94 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !11, i64 0, !20, i64 8}
!95 = !{!"_ZTS6ImFont", !83, i64 0, !16, i64 16, !16, i64 20, !42, i64 24, !96, 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, !27, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !11, i64 112, !7, i64 116}
!96 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!97 = !{!"_ZTS21ImGuiComboPreviewData", !17, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !16, i64 40, !11, i64 44}
!98 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!99 = !{!"_ZTS22ImGuiTypingSelectState", !100, i64 0, !7, i64 24, !11, i64 88, !11, i64 92, !16, i64 96, !27, i64 100}
!100 = !{!"_ZTS24ImGuiTypingSelectRequest", !11, i64 0, !11, i64 4, !6, i64 8, !27, i64 16, !27, i64 17, !7, i64 18}
!101 = !{!"_ZTS20ImGuiPlatformImeData", !27, i64 0, !18, i64 4, !16, i64 12}
!102 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!103 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !20, i64 0}
!104 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !20, i64 0}
!105 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!106 = !{!"_ZTS23ImGuiErrorRecoveryState", !15, i64 0, !15, i64 2, !15, i64 4, !15, i64 6, !15, i64 8, !15, i64 10, !15, i64 12, !15, i64 14, !15, i64 16, !15, i64 18, !15, i64 20}
!107 = !{!"_ZTS14ImGuiTextIndex", !69, i64 0, !11, i64 16}
!108 = !{!"_ZTS18ImGuiMetricsConfig", !27, i64 0, !27, i64 1, !27, i64 2, !27, i64 3, !27, i64 4, !27, i64 5, !27, i64 6, !27, i64 7, !27, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24}
!109 = !{!"_ZTS16ImGuiIDStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !110, i64 16, !27, i64 32, !16, i64 36}
!110 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!111 = !{!"_ZTS19ImGuiDebugAllocInfo", !11, i64 0, !11, i64 4, !15, i64 8, !7, i64 12}
!112 = !{!10, !16, i64 184}
!113 = !{!27, !27, i64 0}
!114 = !{!16, !16, i64 0}
!115 = !{!15, !15, i64 0}
!116 = !{!10, !15, i64 518}
!117 = !{!118, !15, i64 84}
!118 = !{!"_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, !16, i64 32, !17, i64 36, !11, i64 52, !16, i64 56, !16, i64 60, !16, i64 64, !16, i64 68, !16, i64 72, !16, i64 76, !16, i64 80, !15, i64 84, !15, i64 86, !15, i64 88, !15, i64 90, !15, i64 92, !15, i64 94, !15, i64 96, !15, i64 98, !15, i64 100, !27, i64 102, !27, i64 103, !27, i64 104, !27, i64 105, !27, i64 106, !27, i64 107, !27, i64 108, !27, i64 109, !7, i64 110, !7, i64 111, !7, i64 112, !7, i64 113, !7, i64 113, !7, i64 113, !7, i64 114}
!119 = !{!118, !11, i64 52}
!120 = !{!118, !16, i64 32}
!121 = !{!118, !11, i64 0}
!122 = !{!118, !27, i64 104}
!123 = !{!118, !27, i64 103}
!124 = !{!10, !27, i64 574}
!125 = !{!118, !27, i64 102}
!126 = !{!118, !15, i64 94}
!127 = !{!10, !27, i64 569}
!128 = !{!118, !16, i64 16}
!129 = !{!118, !16, i64 28}
!130 = !{!118, !7, i64 112}
!131 = !{!118, !7, i64 111}
!132 = !{!118, !15, i64 88}
!133 = !{!118, !15, i64 90}
!134 = !{!118, !15, i64 92}
!135 = !{!118, !15, i64 86}
!136 = !{!118, !27, i64 109}
!137 = !{!10, !15, i64 120}
!138 = !{!118, !16, i64 20}
!139 = distinct !{!139, !140}
!140 = !{!"llvm.loop.mustprogress"}
!141 = !{!10, !15, i64 512}
!142 = !{!10, !15, i64 542}
!143 = !{!10, !6, i64 384}
!144 = !{!10, !6, i64 392}
!145 = !{!146, !27, i64 207}
!146 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !6, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !18, i64 88, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !11, i64 136, !11, i64 140, !11, i64 144, !11, i64 148, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !18, i64 184, !18, i64 192, !27, i64 200, !27, i64 201, !27, i64 202, !27, i64 203, !27, i64 204, !27, i64 205, !27, i64 206, !27, i64 207, !27, i64 208, !27, i64 209, !27, i64 210, !27, i64 211, !27, i64 212, !27, i64 213, !7, i64 214, !7, i64 215, !15, i64 216, !15, i64 218, !15, i64 220, !15, i64 222, !15, i64 224, !7, i64 226, !7, i64 227, !27, i64 228, !45, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !11, i64 240, !11, i64 241, !11, i64 242, !18, i64 244, !18, i64 252, !98, i64 264, !147, i64 280, !17, i64 512, !17, i64 528, !17, i64 544, !17, i64 560, !17, i64 576, !17, i64 592, !17, i64 608, !150, i64 624, !150, i64 628, !11, i64 632, !16, i64 636, !16, i64 640, !53, i64 648, !151, i64 664, !16, i64 680, !11, i64 684, !6, i64 688, !152, i64 696, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !7, i64 976, !7, i64 984, !7, i64 1016, !11, i64 1032, !11, i64 1036, !11, i64 1040, !27, i64 1044}
!147 = !{!"_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, !27, i64 64, !27, i64 65, !148, i64 68, !148, i64 72, !148, i64 76, !18, i64 80, !74, i64 88, !15, i64 92, !15, i64 94, !27, i64 96, !27, i64 97, !27, i64 98, !27, i64 99, !18, i64 100, !149, 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, !11, i64 188, !16, i64 192, !16, i64 196, !83, i64 200, !83, i64 216}
!148 = !{!"_ZTS6ImVec1", !16, i64 0}
!149 = !{!"_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}
!150 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!151 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!152 = !{!"_ZTS10ImDrawList", !153, i64 0, !42, i64 16, !154, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !48, i64 80, !155, i64 96, !156, i64 128, !157, i64 152, !158, i64 168, !78, i64 184, !16, i64 200, !6, i64 208}
!153 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!154 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!155 = !{!"_ZTS15ImDrawCmdHeader", !47, i64 0, !62, i64 16, !11, i64 24}
!156 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !84, i64 8}
!157 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!158 = !{!"_ZTS8ImVectorIyE", !11, i64 0, !11, i64 4, !6, i64 8}
!159 = !{!10, !15, i64 546}
!160 = !{!10, !15, i64 544}
!161 = !{!118, !27, i64 107}
!162 = !{!10, !27, i64 568}
!163 = !{!10, !16, i64 192}
!164 = distinct !{!164, !140}
!165 = !{!10, !15, i64 516}
!166 = !{!10, !16, i64 216}
!167 = !{i64 0, i64 4, !114, i64 4, i64 4, !114, i64 8, i64 4, !114, i64 12, i64 4, !114}
!168 = !{!10, !16, i64 188}
!169 = !{!10, !16, i64 196}
!170 = !{!10, !16, i64 200}
!171 = !{!10, !27, i64 583}
!172 = !{!146, !27, i64 201}
!173 = !{!39, !16, i64 3172}
!174 = !{!10, !16, i64 204}
!175 = !{!10, !16, i64 208}
!176 = !{!118, !16, i64 4}
!177 = distinct !{!177, !140}
!178 = distinct !{!178, !140}
!179 = !{!21, !11, i64 20}
!180 = !{!21, !11, i64 16}
!181 = !{!10, !15, i64 524}
!182 = !{!10, !15, i64 522}
!183 = !{!10, !16, i64 240}
!184 = !{!10, !16, i64 244}
!185 = !{!10, !16, i64 248}
!186 = !{!10, !16, i64 252}
!187 = !{!21, !16, i64 4}
!188 = !{!39, !11, i64 5084}
!189 = !{!39, !16, i64 232}
!190 = !{!10, !16, i64 232}
!191 = !{!39, !16, i64 236}
!192 = !{!10, !16, i64 236}
!193 = !{!10, !15, i64 556}
!194 = !{!17, !16, i64 0}
!195 = !{!10, !6, i64 88}
!196 = !{!10, !15, i64 552}
!197 = !{!118, !7, i64 110}
!198 = !{!118, !16, i64 44}
!199 = !{!118, !16, i64 36}
!200 = !{!118, !16, i64 56}
!201 = !{!118, !16, i64 12}
!202 = !{!118, !16, i64 8}
!203 = !{!17, !16, i64 4}
!204 = !{!118, !16, i64 40}
!205 = !{!118, !16, i64 48}
!206 = !{!118, !27, i64 106}
!207 = !{!118, !27, i64 105}
!208 = !{!118, !27, i64 108}
!209 = !{!118, !16, i64 64}
!210 = !{!118, !16, i64 24}
!211 = !{!118, !16, i64 60}
!212 = !{!10, !27, i64 585}
!213 = !{!118, !16, i64 68}
!214 = !{!118, !16, i64 72}
!215 = !{!118, !16, i64 76}
!216 = !{!118, !16, i64 80}
!217 = !{!17, !16, i64 8}
!218 = distinct !{!218, !140}
!219 = !{!10, !16, i64 272}
!220 = !{!39, !11, i64 5088}
!221 = !{!10, !27, i64 580}
!222 = !{!10, !16, i64 280}
!223 = !{!10, !16, i64 296}
!224 = !{!10, !16, i64 288}
!225 = !{!10, !16, i64 172}
!226 = !{!10, !16, i64 176}
!227 = !{!146, !16, i64 620}
!228 = !{!39, !16, i64 3152}
!229 = !{!146, !16, i64 564}
!230 = !{!146, !16, i64 572}
!231 = !{!21, !16, i64 8}
!232 = !{!10, !27, i64 570}
!233 = !{!10, !15, i64 526}
!234 = !{!10, !27, i64 571}
!235 = !{!10, !15, i64 548}
!236 = !{!10, !15, i64 122}
!237 = !{!10, !27, i64 581}
!238 = !{!39, !27, i64 8380}
!239 = !{!10, !27, i64 572}
!240 = !{!10, !15, i64 554}
!241 = !{!146, !16, i64 128}
!242 = !{!10, !15, i64 550}
!243 = !{!21, !16, i64 12}
!244 = !{!146, !16, i64 132}
!245 = !{!10, !6, i64 416}
!246 = !{!146, !6, i64 688}


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

; 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 dso_local noundef nonnull align 4 dereferenceable(115) 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 566
  %7 = load i8, ptr %6, align 2, !tbaa !9, !range !28, !noundef !29
  %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 797, 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 !30
  %13 = and i32 %12, 57344
  %14 = getelementptr inbounds i8, ptr %0, i64 575
  store i8 1, ptr %14, align 1, !tbaa !31
  %15 = getelementptr inbounds i8, ptr %0, i64 514
  store i16 0, ptr %15, align 2, !tbaa !32
  %16 = getelementptr inbounds i8, ptr %0, i64 80
  %17 = load ptr, ptr %16, align 8, !tbaa !33
  %18 = getelementptr inbounds i8, ptr %0, i64 108
  %19 = load i32, ptr %18, align 4, !tbaa !34
  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 !35
  %22 = load i32, ptr %18, align 4, !tbaa !34
  tail call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %21, i32 noundef %22)
  %23 = getelementptr inbounds i8, ptr %0, i64 540
  store i16 -1, ptr %23, align 4, !tbaa !36
  %24 = getelementptr inbounds i8, ptr %5, i64 3116
  %25 = load float, ptr %24, align 4, !tbaa !37
  %26 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %25)
  %27 = getelementptr inbounds i8, ptr %0, i64 184
  store float %26, ptr %27, align 8, !tbaa !111
  %28 = load i32, ptr %18, align 4, !tbaa !34
  %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 518
  %33 = getelementptr inbounds i8, ptr %0, i64 574
  %34 = getelementptr inbounds i8, ptr %0, i64 569
  %35 = getelementptr inbounds i8, ptr %0, i64 120
  br label %39

._crit_edge:                                      ; preds = %138, %10
  %36 = phi i32 [ %28, %10 ], [ %140, %138 ]
  %.0516.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2518, %138 ]
  %.0513.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2515, %138 ]
  %.0510.lcssa = phi i8 [ 0, %10 ], [ %.2512, %138 ]
  %.0507.lcssa = phi i1 [ false, %10 ], [ %.2509, %138 ]
  %.0505.lcssa = phi i32 [ -1, %10 ], [ %.1506, %138 ]
  %.0502.lcssa = phi i32 [ 0, %10 ], [ %.2504, %138 ]
  %.0.lcssa = phi i16 [ 0, %10 ], [ %.2, %138 ]
  %37 = load i32, ptr %11, align 4, !tbaa !30
  %38 = and i32 %37, 8
  %.not557 = icmp eq i32 %38, 0
  br i1 %.not557, label %149, label %142

39:                                               ; preds = %.lr.ph, %138
  %.0653 = phi i16 [ 0, %.lr.ph ], [ %.2, %138 ]
  %.0502652 = phi i32 [ 0, %.lr.ph ], [ %.2504, %138 ]
  %.0505651 = phi i32 [ -1, %.lr.ph ], [ %.1506, %138 ]
  %.0507650 = phi i1 [ false, %.lr.ph ], [ %.2509, %138 ]
  %.0510649 = phi i8 [ 0, %.lr.ph ], [ %.2512, %138 ]
  %.0513648 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2515, %138 ]
  %.0516647 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2518, %138 ]
  %.0531646 = phi i32 [ 0, %.lr.ph ], [ %139, %138 ]
  %40 = tail call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %30, i32 noundef %.0531646)
  %41 = load i16, ptr %40, align 2, !tbaa !112
  %42 = sext i16 %41 to i32
  %.not587 = icmp eq i32 %.0531646, %42
  br i1 %.not587, label %44, label %43

43:                                               ; preds = %39
  store i8 0, ptr %14, align 1, !tbaa !31
  br label %44

44:                                               ; preds = %43, %39
  %45 = tail call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %31, i32 noundef %42)
  %46 = load i16, ptr %32, align 2, !tbaa !113
  %.not588 = icmp sgt i16 %46, %41
  br i1 %.not588, label %51, label %47

47:                                               ; preds = %44
  tail call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef nonnull %0, ptr noundef nonnull %45, i32 noundef 0)
  %48 = getelementptr inbounds i8, ptr %45, i64 84
  store i16 -1, ptr %48, align 4, !tbaa !114
  %49 = getelementptr inbounds i8, ptr %45, i64 52
  store i32 0, ptr %49, align 4, !tbaa !116
  %50 = getelementptr inbounds i8, ptr %45, i64 32
  store float -1.000000e+00, ptr %50, align 4, !tbaa !117
  br label %51

51:                                               ; preds = %47, %44
  %52 = load i32, ptr %11, align 4, !tbaa !30
  %53 = and i32 %52, 4
  %.not589 = icmp eq i32 %53, 0
  br i1 %.not589, label %57, label %54

54:                                               ; preds = %51
  %55 = load i32, ptr %45, align 4, !tbaa !118
  %56 = and i32 %55, 128
  %.not590 = icmp eq i32 %56, 0
  br i1 %.not590, label %._crit_edge691, label %57

._crit_edge691:                                   ; preds = %54
  %.phi.trans.insert = getelementptr inbounds i8, ptr %45, i64 104
  %.pre = load i8, ptr %.phi.trans.insert, align 4, !tbaa !119, !range !28
  br label %59

57:                                               ; preds = %54, %51
  %58 = getelementptr inbounds i8, ptr %45, i64 104
  store i8 1, ptr %58, align 4, !tbaa !119
  br label %59

59:                                               ; preds = %._crit_edge691, %57
  %60 = phi i8 [ %.pre, %._crit_edge691 ], [ 1, %57 ]
  %61 = getelementptr inbounds i8, ptr %45, i64 103
  %62 = load i8, ptr %61, align 1, !tbaa !120, !range !28, !noundef !29
  %.not591 = icmp eq i8 %62, %60
  br i1 %.not591, label %64, label %63

63:                                               ; preds = %59
  store i8 %60, ptr %61, align 1, !tbaa !120
  store i8 1, ptr %33, align 2, !tbaa !121
  br label %64

64:                                               ; preds = %63, %59
  %65 = trunc nuw i8 %60 to i1
  %66 = load i32, ptr %45, align 4
  %67 = and i32 %66, 1
  %68 = icmp eq i32 %67, 0
  %69 = select i1 %65, i1 %68, i1 false
  %70 = getelementptr inbounds i8, ptr %45, i64 102
  %71 = zext i1 %69 to i8
  store i8 %71, ptr %70, align 2, !tbaa !122
  %72 = getelementptr inbounds i8, ptr %45, i64 94
  %73 = load i16, ptr %72, align 2, !tbaa !123
  %.not592 = icmp eq i16 %73, -1
  %brmerge = select i1 %.not592, i1 true, i1 %69
  %74 = icmp slt i16 %73, 1
  %75 = and i32 %52, 67108864
  %.not593 = icmp ne i32 %75, 0
  %or.cond634.not.not.not718 = or i1 %.not593, %74
  %.not716 = and i1 %or.cond634.not.not.not718, %brmerge
  br i1 %.not716, label %77, label %76

76:                                               ; preds = %64
  store i8 1, ptr %34, align 1, !tbaa !124
  br label %77

77:                                               ; preds = %64, %76
  %78 = and i32 %66, 16
  %.not594 = icmp eq i32 %78, 0
  %.in595.in.v = select i1 %.not594, i64 28, i64 16
  %.in595.in = getelementptr inbounds i8, ptr %45, i64 %.in595.in.v
  %.in595 = load float, ptr %.in595.in, align 4, !tbaa !125
  %79 = fcmp olt float %.in595, 0.000000e+00
  br i1 %79, label %80, label %83

80:                                               ; preds = %77
  %81 = getelementptr inbounds i8, ptr %45, i64 112
  store i8 7, ptr %81, align 4, !tbaa !126
  %82 = getelementptr inbounds i8, ptr %45, i64 111
  store i8 7, ptr %82, align 1, !tbaa !127
  br label %83

83:                                               ; preds = %80, %77
  br i1 %69, label %86, label %84

84:                                               ; preds = %83
  %85 = getelementptr inbounds i8, ptr %45, i64 88
  store i16 -1, ptr %85, align 4, !tbaa !128
  br label %138

86:                                               ; preds = %83
  %87 = trunc nsw i32 %.0505651 to i16
  %88 = getelementptr inbounds i8, ptr %45, i64 90
  store i16 %87, ptr %88, align 2, !tbaa !129
  %89 = getelementptr inbounds i8, ptr %45, i64 92
  store i16 -1, ptr %89, align 4, !tbaa !130
  %.not596 = icmp eq i32 %.0505651, -1
  br i1 %.not596, label %93, label %90

90:                                               ; preds = %86
  %91 = tail call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %31, i32 noundef %.0505651)
  %92 = getelementptr inbounds i8, ptr %91, i64 92
  br label %93

93:                                               ; preds = %86, %90
  %.sink = phi ptr [ %92, %90 ], [ %23, %86 ]
  store i16 %41, ptr %.sink, align 4, !tbaa !112
  %94 = load i16, ptr %15, align 2, !tbaa !32
  %95 = add i16 %94, 1
  store i16 %95, ptr %15, align 2, !tbaa !32
  %96 = getelementptr inbounds i8, ptr %45, i64 88
  store i16 %94, ptr %96, align 4, !tbaa !128
  %97 = load ptr, ptr %16, align 8, !tbaa !33
  tail call void @_Z16ImBitArraySetBitPji(ptr noundef %97, i32 noundef %42)
  %98 = load ptr, ptr %20, align 8, !tbaa !35
  %99 = getelementptr inbounds i8, ptr %45, i64 86
  %100 = load i16, ptr %99, align 2, !tbaa !131
  %101 = sext i16 %100 to i32
  tail call void @_Z16ImBitArraySetBitPji(ptr noundef %98, i32 noundef %101)
  %102 = load i16, ptr %96, align 4, !tbaa !128
  %103 = load i16, ptr %99, align 2, !tbaa !131
  %.not597 = icmp sgt i16 %102, %103
  br i1 %.not597, label %104, label %105

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

105:                                              ; preds = %93
  %106 = getelementptr inbounds i8, ptr %45, i64 109
  %107 = load i8, ptr %106, align 1, !tbaa !132, !range !28, !noundef !29
  %108 = trunc nuw i8 %107 to i1
  br i1 %108, label %115, label %109

109:                                              ; preds = %105
  %110 = load i16, ptr %35, align 8, !tbaa !133
  %111 = icmp eq i16 %110, 0
  br i1 %111, label %112, label %115

112:                                              ; preds = %109
  %113 = tail call noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef nonnull %0, ptr noundef nonnull %45)
  %114 = getelementptr inbounds i8, ptr %45, i64 20
  store float %113, ptr %114, align 4, !tbaa !134
  br label %115

115:                                              ; preds = %112, %109, %105
  %116 = load i32, ptr %45, align 4, !tbaa !118
  %117 = and i32 %116, 32
  %118 = icmp eq i32 %117, 0
  %spec.select = select i1 %118, i8 1, i8 %.0510649
  %119 = and i32 %116, 16
  %.not598 = icmp eq i32 %119, 0
  br i1 %.not598, label %126, label %120

120:                                              ; preds = %115
  %121 = getelementptr inbounds i8, ptr %45, i64 32
  %122 = load float, ptr %121, align 4, !tbaa !117
  %123 = fcmp ule float %122, 0.000000e+00
  %brmerge602 = or i1 %118, %123
  br i1 %brmerge602, label %126, label %124

124:                                              ; preds = %120
  %125 = getelementptr inbounds i8, ptr %45, i64 20
  store float %122, ptr %125, align 4, !tbaa !134
  br label %126

126:                                              ; preds = %120, %124, %115
  %127 = getelementptr inbounds i8, ptr %45, i64 111
  %128 = load i8, ptr %127, align 1, !tbaa !127
  %.not599 = icmp ne i8 %128, 0
  %spec.select603 = select i1 %.not599, i1 true, i1 %.0507650
  %129 = and i32 %116, 8
  %.not600 = icmp eq i32 %129, 0
  %130 = getelementptr inbounds i8, ptr %45, i64 20
  %131 = load float, ptr %130, align 4, !tbaa !134
  br i1 %.not600, label %135, label %132

132:                                              ; preds = %126
  %133 = fadd float %.0513648, %131
  %134 = add nsw i32 %.0502652, 1
  br label %138

135:                                              ; preds = %126
  %136 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %.0516647, float noundef %131)
  %137 = add i16 %.0653, 1
  br label %138

138:                                              ; preds = %132, %135, %84
  %.2518 = phi float [ %.0516647, %84 ], [ %.0516647, %132 ], [ %136, %135 ]
  %.2515 = phi float [ %.0513648, %84 ], [ %133, %132 ], [ %.0513648, %135 ]
  %.2512 = phi i8 [ %.0510649, %84 ], [ %spec.select, %132 ], [ %spec.select, %135 ]
  %.2509 = phi i1 [ %.0507650, %84 ], [ %spec.select603, %132 ], [ %spec.select603, %135 ]
  %.1506 = phi i32 [ %.0505651, %84 ], [ %42, %132 ], [ %42, %135 ]
  %.2504 = phi i32 [ %.0502652, %84 ], [ %134, %132 ], [ %.0502652, %135 ]
  %.2 = phi i16 [ %.0653, %84 ], [ %.0653, %132 ], [ %137, %135 ]
  %139 = add nuw nsw i32 %.0531646, 1
  %140 = load i32, ptr %18, align 4, !tbaa !34
  %141 = icmp slt i32 %139, %140
  br i1 %141, label %39, label %._crit_edge, !llvm.loop !135

142:                                              ; preds = %._crit_edge
  %143 = getelementptr inbounds i8, ptr %0, i64 512
  %144 = load i16, ptr %143, align 8, !tbaa !137
  %145 = icmp eq i16 %144, 0
  %146 = and i32 %37, 134217728
  %.not558 = icmp eq i32 %146, 0
  %or.cond604 = and i1 %.not558, %145
  br i1 %or.cond604, label %147, label %149

147:                                              ; preds = %142
  %148 = getelementptr inbounds i8, ptr %0, i64 569
  store i8 1, ptr %148, align 1, !tbaa !124
  br label %149

149:                                              ; preds = %147, %142, %._crit_edge
  %150 = trunc nsw i32 %.0505.lcssa to i16
  %151 = getelementptr inbounds i8, ptr %0, i64 542
  store i16 %150, ptr %151, align 2, !tbaa !138
  %152 = load i16, ptr %23, align 4, !tbaa !36
  %153 = icmp sgt i16 %152, -1
  %sext.mask = and i32 %.0505.lcssa, 32768
  %154 = icmp eq i32 %sext.mask, 0
  %or.cond605 = select i1 %153, i1 %154, i1 false
  br i1 %or.cond605, label %155, label %.critedge

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

155:                                              ; preds = %149
  br i1 %.0507.lcssa, label %156, label %.critedge607

156:                                              ; preds = %155
  %157 = getelementptr inbounds i8, ptr %0, i64 384
  %158 = load ptr, ptr %157, align 8, !tbaa !139
  %159 = getelementptr inbounds i8, ptr %0, i64 392
  %160 = load ptr, ptr %159, align 8, !tbaa !140
  %.not559 = icmp eq ptr %158, %160
  br i1 %.not559, label %163, label %161

161:                                              ; preds = %156
  %162 = getelementptr inbounds i8, ptr %160, i64 207
  store i8 0, ptr %162, align 1, !tbaa !141
  br label %163

163:                                              ; preds = %156, %161
  %164 = getelementptr inbounds i8, ptr %0, i64 574
  store i8 1, ptr %164, align 2, !tbaa !121
  br label %.critedge607

.critedge607:                                     ; preds = %155, %163
  %165 = getelementptr inbounds i8, ptr %0, i64 546
  store i16 -1, ptr %165, align 2, !tbaa !155
  %166 = getelementptr inbounds i8, ptr %0, i64 544
  store i16 -1, ptr %166, align 8, !tbaa !156
  %167 = icmp sgt i32 %36, 0
  br i1 %167, label %.lr.ph664, label %._crit_edge665

.lr.ph664:                                        ; preds = %.critedge607
  %168 = getelementptr inbounds i8, ptr %0, i64 24
  %169 = icmp eq i32 %13, 16384
  %170 = getelementptr inbounds i8, ptr %0, i64 568
  %.not719 = icmp eq i32 %13, 24576
  %171 = sitofp i32 %.0502.lcssa to float
  %172 = getelementptr inbounds i8, ptr %0, i64 192
  br label %192

._crit_edge665:                                   ; preds = %283, %.critedge607
  %.0535.lcssa = phi float [ 0.000000e+00, %.critedge607 ], [ %.2537, %283 ]
  %.0532.lcssa = phi float [ 0.000000e+00, %.critedge607 ], [ %.2534, %283 ]
  %.0535.lcssa.fr = freeze float %.0535.lcssa
  %173 = getelementptr inbounds i8, ptr %0, i64 516
  store i16 %.0.lcssa, ptr %173, align 4, !tbaa !157
  %174 = getelementptr inbounds i8, ptr %0, i64 216
  store float %.0535.lcssa.fr, ptr %174, align 8, !tbaa !158
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #11
  %175 = getelementptr inbounds i8, ptr %0, i64 272
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %2, ptr noundef nonnull align 8 dereferenceable(16) %175, i64 16, i1 false), !tbaa.struct !159
  %176 = getelementptr inbounds i8, ptr %0, i64 188
  %177 = load float, ptr %176, align 4, !tbaa !160
  %178 = getelementptr inbounds i8, ptr %0, i64 196
  %179 = load float, ptr %178, align 4, !tbaa !161
  %180 = getelementptr inbounds i8, ptr %0, i64 200
  %181 = load float, ptr %180, align 8, !tbaa !162
  %182 = fadd float %179, %181
  %183 = load i16, ptr %15, align 2, !tbaa !32
  %184 = sext i16 %183 to i32
  %185 = add nsw i32 %184, -1
  %186 = sitofp i32 %185 to float
  %187 = fmul float %182, %186
  %188 = tail call float @llvm.fmuladd.f32(float %177, float 2.000000e+00, float %187)
  %189 = getelementptr inbounds i8, ptr %0, i64 583
  %190 = load i8, ptr %189, align 1, !tbaa !163, !range !28, !noundef !29
  %191 = trunc nuw i8 %190 to i1
  br i1 %191, label %287, label %296

192:                                              ; preds = %.lr.ph664, %283
  %193 = phi i32 [ %36, %.lr.ph664 ], [ %284, %283 ]
  %.0532663 = phi float [ 0.000000e+00, %.lr.ph664 ], [ %.2534, %283 ]
  %.0535662 = phi float [ 0.000000e+00, %.lr.ph664 ], [ %.2537, %283 ]
  %.0539660 = phi i32 [ 0, %.lr.ph664 ], [ %285, %283 ]
  %194 = load ptr, ptr %16, align 8, !tbaa !33
  %195 = lshr i32 %.0539660, 5
  %196 = zext nneg i32 %195 to i64
  %197 = getelementptr inbounds i32, ptr %194, i64 %196
  %198 = load i32, ptr %197, align 4, !tbaa !164
  %199 = and i32 %.0539660, 31
  %200 = shl nuw i32 1, %199
  %201 = and i32 %198, %200
  %.not581 = icmp eq i32 %201, 0
  br i1 %.not581, label %283, label %202

202:                                              ; preds = %192
  %203 = tail call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %168, i32 noundef %.0539660)
  %204 = load i32, ptr %203, align 4, !tbaa !118
  %205 = and i32 %204, 32
  %206 = icmp ne i32 %205, 0
  %207 = and i32 %204, 16
  %.not582 = icmp eq i32 %207, 0
  br i1 %.not582, label %238, label %208

208:                                              ; preds = %202
  %209 = getelementptr inbounds i8, ptr %203, i64 20
  %210 = load float, ptr %209, align 4, !tbaa !134
  %211 = getelementptr inbounds i8, ptr %203, i64 111
  %212 = load i8, ptr %211, align 1, !tbaa !127
  br i1 %169, label %213, label %._crit_edge692

213:                                              ; preds = %208
  %.not584 = icmp ne i8 %212, 0
  %brmerge609 = or i1 %206, %.not584
  br i1 %brmerge609, label %._crit_edge692, label %.thread

._crit_edge692:                                   ; preds = %208, %213
  %214 = phi float [ %.0516.lcssa, %213 ], [ %210, %208 ]
  %.not585 = icmp eq i8 %212, 0
  br i1 %.not585, label %215, label %222

215:                                              ; preds = %._crit_edge692
  br i1 %206, label %216, label %.thread

216:                                              ; preds = %215
  %217 = getelementptr inbounds i8, ptr %203, i64 107
  %218 = load i8, ptr %217, align 1, !tbaa !165, !range !28, !noundef !29
  %219 = trunc nuw i8 %218 to i1
  br i1 %219, label %220, label %.thread

220:                                              ; preds = %216
  %221 = getelementptr inbounds i8, ptr %203, i64 16
  store float %214, ptr %221, align 4, !tbaa !166
  br label %.thread

222:                                              ; preds = %._crit_edge692
  %223 = getelementptr inbounds i8, ptr %203, i64 16
  store float %214, ptr %223, align 4, !tbaa !166
  %.not637 = icmp eq i8 %212, 1
  br i1 %.not637, label %.thread, label %224

224:                                              ; preds = %222
  %225 = load i8, ptr %170, align 8, !tbaa !167, !range !28, !noundef !29
  %226 = trunc nuw i8 %225 to i1
  br i1 %226, label %227, label %.thread

227:                                              ; preds = %224
  %228 = getelementptr inbounds i8, ptr %203, i64 109
  %229 = load i8, ptr %228, align 1, !tbaa !132, !range !28, !noundef !29
  %230 = trunc nuw i8 %229 to i1
  br i1 %230, label %.thread, label %231

231:                                              ; preds = %227
  %232 = load float, ptr %27, align 8, !tbaa !111
  %233 = fmul float %232, 4.000000e+00
  %234 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %214, float noundef %233)
  store float %234, ptr %223, align 4, !tbaa !166
  br label %.thread

.thread:                                          ; preds = %213, %220, %216, %215, %231, %227, %224, %222
  %235 = getelementptr inbounds i8, ptr %203, i64 16
  %236 = load float, ptr %235, align 4, !tbaa !166
  %237 = fadd float %.0532663, %236
  br label %279

238:                                              ; preds = %202
  %239 = getelementptr inbounds i8, ptr %203, i64 111
  %240 = load i8, ptr %239, align 1, !tbaa !127
  %.not583 = icmp ne i8 %240, 0
  %241 = getelementptr inbounds i8, ptr %203, i64 28
  %242 = load float, ptr %241, align 4
  %243 = fcmp olt float %242, 0.000000e+00
  %or.cond613 = select i1 %.not583, i1 true, i1 %243
  %brmerge615 = or i1 %206, %or.cond613
  br i1 %brmerge615, label %.sink.split, label %251

.sink.split:                                      ; preds = %238
  %244 = getelementptr inbounds i8, ptr %203, i64 32
  %245 = load float, ptr %244, align 4, !tbaa !117
  %246 = fcmp ogt float %245, 0.000000e+00
  %247 = getelementptr inbounds i8, ptr %203, i64 20
  %248 = load float, ptr %247, align 4
  %249 = fdiv float %248, %.0513.lcssa
  %250 = fmul float %249, %171
  %.mux = select i1 %.not719, float %250, float 1.000000e+00
  %.sink708 = select i1 %246, float %245, float %.mux
  store float %.sink708, ptr %241, align 4, !tbaa !168
  br label %251

251:                                              ; preds = %.sink.split, %238
  %252 = phi float [ %242, %238 ], [ %.sink708, %.sink.split ]
  %253 = fadd float %.0535662, %252
  %254 = load i16, ptr %166, align 8, !tbaa !156
  %255 = icmp eq i16 %254, -1
  br i1 %255, label %264, label %256

256:                                              ; preds = %251
  %257 = sext i16 %254 to i32
  %258 = tail call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %168, i32 noundef %257)
  %259 = getelementptr inbounds i8, ptr %258, i64 86
  %260 = load i16, ptr %259, align 2, !tbaa !131
  %261 = getelementptr inbounds i8, ptr %203, i64 86
  %262 = load i16, ptr %261, align 2, !tbaa !131
  %263 = icmp sgt i16 %260, %262
  br i1 %263, label %264, label %266

264:                                              ; preds = %256, %251
  %265 = trunc i32 %.0539660 to i16
  store i16 %265, ptr %166, align 8, !tbaa !156
  br label %266

266:                                              ; preds = %264, %256
  %267 = load i16, ptr %165, align 2, !tbaa !155
  %268 = icmp eq i16 %267, -1
  br i1 %268, label %277, label %269

269:                                              ; preds = %266
  %270 = sext i16 %267 to i32
  %271 = tail call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %168, i32 noundef %270)
  %272 = getelementptr inbounds i8, ptr %271, i64 86
  %273 = load i16, ptr %272, align 2, !tbaa !131
  %274 = getelementptr inbounds i8, ptr %203, i64 86
  %275 = load i16, ptr %274, align 2, !tbaa !131
  %276 = icmp slt i16 %273, %275
  br i1 %276, label %277, label %279

277:                                              ; preds = %269, %266
  %278 = trunc i32 %.0539660 to i16
  store i16 %278, ptr %165, align 2, !tbaa !155
  br label %279

279:                                              ; preds = %269, %277, %.thread
  %.1536 = phi float [ %.0535662, %.thread ], [ %253, %277 ], [ %253, %269 ]
  %.1533 = phi float [ %237, %.thread ], [ %.0532663, %277 ], [ %.0532663, %269 ]
  %280 = getelementptr inbounds i8, ptr %203, i64 109
  store i8 0, ptr %280, align 1, !tbaa !132
  %281 = load float, ptr %172, align 8, !tbaa !169
  %282 = tail call float @llvm.fmuladd.f32(float %281, float 2.000000e+00, float %.1533)
  %.pre695 = load i32, ptr %18, align 4, !tbaa !34
  br label %283

283:                                              ; preds = %192, %279
  %284 = phi i32 [ %.pre695, %279 ], [ %193, %192 ]
  %.2537 = phi float [ %.1536, %279 ], [ %.0535662, %192 ]
  %.2534 = phi float [ %282, %279 ], [ %.0532663, %192 ]
  %285 = add nuw nsw i32 %.0539660, 1
  %286 = icmp slt i32 %285, %284
  br i1 %286, label %192, label %._crit_edge665, !llvm.loop !170

287:                                              ; preds = %._crit_edge665
  %288 = getelementptr inbounds i8, ptr %0, i64 392
  %289 = load ptr, ptr %288, align 8, !tbaa !140
  %290 = getelementptr inbounds i8, ptr %289, i64 201
  %291 = load i8, ptr %290, align 1, !tbaa !171, !range !28, !noundef !29
  %292 = trunc nuw i8 %291 to i1
  br i1 %292, label %296, label %293

293:                                              ; preds = %287
  %294 = getelementptr inbounds i8, ptr %5, i64 3172
  %295 = load float, ptr %294, align 4, !tbaa !172
  br label %296

296:                                              ; preds = %._crit_edge665, %287, %293
  %297 = phi float [ %295, %293 ], [ 0.000000e+00, %287 ], [ 0.000000e+00, %._crit_edge665 ]
  %298 = load i32, ptr %11, align 4, !tbaa !30
  %299 = and i32 %298, 16777216
  %.not560 = icmp eq i32 %299, 0
  br i1 %.not560, label %307, label %300

300:                                              ; preds = %296
  %301 = getelementptr inbounds i8, ptr %0, i64 204
  %302 = load float, ptr %301, align 4, !tbaa !173
  %303 = fcmp oeq float %302, 0.000000e+00
  br i1 %303, label %304, label %307

304:                                              ; preds = %300
  %305 = getelementptr inbounds i8, ptr %0, i64 288
  %306 = tail call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %305)
  br label %309

307:                                              ; preds = %300, %296
  %308 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2)
  br label %309

309:                                              ; preds = %307, %304
  %310 = phi float [ %306, %304 ], [ %308, %307 ]
  %311 = fsub float %310, %297
  %312 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %311)
  %313 = fsub float %312, %188
  %314 = fsub float %313, %.0532.lcssa
  %315 = getelementptr inbounds i8, ptr %0, i64 192
  %316 = load float, ptr %315, align 8, !tbaa !169
  %317 = fmul float %316, 2.000000e+00
  %318 = load i16, ptr %15, align 2, !tbaa !32
  %319 = sitofp i16 %318 to float
  %320 = call float @llvm.fmuladd.f32(float %317, float %319, float %188)
  %321 = getelementptr inbounds i8, ptr %0, i64 208
  store float %320, ptr %321, align 8, !tbaa !174
  %322 = load i32, ptr %18, align 4, !tbaa !34
  %323 = icmp sgt i32 %322, 0
  br i1 %323, label %.lr.ph671, label %._crit_edge672

.lr.ph671:                                        ; preds = %309
  %324 = getelementptr inbounds i8, ptr %0, i64 24
  br label %326

._crit_edge672:                                   ; preds = %370, %309
  %.0542.lcssa = phi float [ %314, %309 ], [ %.2544, %370 ]
  %.lcssa = phi i32 [ %322, %309 ], [ %371, %370 ]
  %325 = fcmp ult float %.0542.lcssa, 1.000000e+00
  br i1 %325, label %.critedge3, label %374

326:                                              ; preds = %.lr.ph671, %370
  %327 = phi i32 [ %322, %.lr.ph671 ], [ %371, %370 ]
  %.0541669 = phi i32 [ 0, %.lr.ph671 ], [ %372, %370 ]
  %.0542668 = phi float [ %314, %.lr.ph671 ], [ %.2544, %370 ]
  %328 = load ptr, ptr %16, align 8, !tbaa !33
  %329 = lshr i32 %.0541669, 5
  %330 = zext nneg i32 %329 to i64
  %331 = getelementptr inbounds i32, ptr %328, i64 %330
  %332 = load i32, ptr %331, align 4, !tbaa !164
  %333 = and i32 %.0541669, 31
  %334 = shl nuw i32 1, %333
  %335 = and i32 %332, %334
  %.not578 = icmp eq i32 %335, 0
  br i1 %.not578, label %370, label %336

336:                                              ; preds = %326
  %337 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %324, i32 noundef %.0541669)
  %338 = load i32, ptr %337, align 4, !tbaa !118
  %339 = and i32 %338, 8
  %.not579 = icmp eq i32 %339, 0
  br i1 %.not579, label %352, label %340

340:                                              ; preds = %336
  %341 = getelementptr inbounds i8, ptr %337, i64 28
  %342 = load float, ptr %341, align 4, !tbaa !168
  %343 = fdiv float %342, %.0535.lcssa.fr
  %344 = fmul float %314, %343
  %345 = load float, ptr %27, align 8, !tbaa !111
  %346 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %344, float noundef %345)
  %347 = fadd float %346, 0x3F847AE140000000
  %348 = fptosi float %347 to i32
  %349 = sitofp i32 %348 to float
  %350 = getelementptr inbounds i8, ptr %337, i64 16
  store float %349, ptr %350, align 4, !tbaa !166
  %351 = fsub float %.0542668, %349
  br label %352

352:                                              ; preds = %340, %336
  %.1543 = phi float [ %351, %340 ], [ %.0542668, %336 ]
  %353 = getelementptr inbounds i8, ptr %337, i64 92
  %354 = load i16, ptr %353, align 4, !tbaa !130
  %355 = icmp eq i16 %354, -1
  br i1 %355, label %356, label %361

356:                                              ; preds = %352
  %357 = load i16, ptr %166, align 8, !tbaa !156
  %.not580 = icmp eq i16 %357, -1
  br i1 %.not580, label %361, label %358

358:                                              ; preds = %356
  %359 = load i32, ptr %337, align 4, !tbaa !118
  %360 = or i32 %359, 1073741824
  store i32 %360, ptr %337, align 4, !tbaa !118
  br label %361

361:                                              ; preds = %358, %356, %352
  %362 = getelementptr inbounds i8, ptr %337, i64 16
  %363 = load float, ptr %362, align 4, !tbaa !166
  %364 = load float, ptr %27, align 8, !tbaa !111
  %365 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %363, float noundef %364)
  %366 = call noundef float @_ZL7ImTruncf(float noundef %365)
  %367 = getelementptr inbounds i8, ptr %337, i64 4
  store float %366, ptr %367, align 4, !tbaa !175
  %368 = load float, ptr %321, align 8, !tbaa !174
  %369 = fadd float %366, %368
  store float %369, ptr %321, align 8, !tbaa !174
  %.pre696 = load i32, ptr %18, align 4, !tbaa !34
  br label %370

370:                                              ; preds = %326, %361
  %371 = phi i32 [ %.pre696, %361 ], [ %327, %326 ]
  %.2544 = phi float [ %.1543, %361 ], [ %.0542668, %326 ]
  %372 = add nuw nsw i32 %.0541669, 1
  %373 = icmp slt i32 %372, %371
  br i1 %373, label %326, label %._crit_edge672, !llvm.loop !176

374:                                              ; preds = %._crit_edge672
  %375 = load i32, ptr %11, align 4, !tbaa !30
  %376 = and i32 %375, 524288
  %.not561 = icmp eq i32 %376, 0
  br i1 %.not561, label %.preheader, label %.critedge3

.preheader:                                       ; preds = %374
  %377 = fcmp ogt float %.0535.lcssa.fr, 0.000000e+00
  %378 = icmp sgt i32 %.lcssa, 0
  %or.cond8677 = and i1 %378, %377
  br i1 %or.cond8677, label %.lr.ph680.split.preheader, label %.critedge3

.lr.ph680.split.preheader:                        ; preds = %.preheader
  %379 = getelementptr inbounds i8, ptr %0, i64 24
  %380 = getelementptr inbounds i8, ptr %0, i64 40
  br label %.lr.ph680.split

.lr.ph680.split:                                  ; preds = %.lr.ph680.split.preheader, %404
  %.0538679.in = phi i32 [ %.0538679, %404 ], [ %.lcssa, %.lr.ph680.split.preheader ]
  %.3678 = phi float [ %.5, %404 ], [ %.0542.lcssa, %.lr.ph680.split.preheader ]
  %.0538679 = add nsw i32 %.0538679.in, -1
  %381 = load ptr, ptr %20, align 8, !tbaa !35
  %382 = lshr i32 %.0538679, 5
  %383 = zext nneg i32 %382 to i64
  %384 = getelementptr inbounds i32, ptr %381, i64 %383
  %385 = load i32, ptr %384, align 4, !tbaa !164
  %386 = and i32 %.0538679, 31
  %387 = shl nuw i32 1, %386
  %388 = and i32 %385, %387
  %.not562 = icmp eq i32 %388, 0
  br i1 %.not562, label %404, label %389

389:                                              ; preds = %.lr.ph680.split
  %390 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %380, i32 noundef %.0538679)
  %391 = load i16, ptr %390, align 2, !tbaa !112
  %392 = sext i16 %391 to i32
  %393 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %379, i32 noundef %392)
  %394 = load i32, ptr %393, align 4, !tbaa !118
  %395 = and i32 %394, 8
  %.not563 = icmp eq i32 %395, 0
  br i1 %.not563, label %404, label %396

396:                                              ; preds = %389
  %397 = getelementptr inbounds i8, ptr %393, i64 16
  %398 = load float, ptr %397, align 4, !tbaa !166
  %399 = fadd float %398, 1.000000e+00
  store float %399, ptr %397, align 4, !tbaa !166
  %400 = getelementptr inbounds i8, ptr %393, i64 4
  %401 = load float, ptr %400, align 4, !tbaa !175
  %402 = fadd float %401, 1.000000e+00
  store float %402, ptr %400, align 4, !tbaa !175
  %403 = fadd float %.3678, -1.000000e+00
  br label %404

404:                                              ; preds = %396, %389, %.lr.ph680.split
  %.5 = phi float [ %.3678, %.lr.ph680.split ], [ %403, %396 ], [ %.3678, %389 ]
  %405 = fcmp oge float %.5, 1.000000e+00
  %406 = icmp ugt i32 %.0538679.in, 1
  %or.cond8 = and i1 %405, %406
  br i1 %or.cond8, label %.lr.ph680.split, label %.critedge3, !llvm.loop !177

.critedge3:                                       ; preds = %404, %.preheader, %374, %._crit_edge672
  %407 = getelementptr inbounds i8, ptr %0, i64 120
  %408 = load i16, ptr %407, align 8, !tbaa !133
  %409 = sext i16 %408 to i32
  %410 = call noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %409)
  %411 = getelementptr inbounds i8, ptr %410, i64 20
  %412 = load i32, ptr %411, align 4, !tbaa !178
  %413 = getelementptr inbounds i8, ptr %410, i64 16
  store i32 %412, ptr %413, align 4, !tbaa !179
  store i32 -1, ptr %411, align 4, !tbaa !178
  %414 = getelementptr inbounds i8, ptr %0, i64 524
  store i16 -1, ptr %414, align 4, !tbaa !180
  %415 = getelementptr inbounds i8, ptr %0, i64 522
  store i16 -1, ptr %415, align 2, !tbaa !181
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #11
  %416 = getelementptr inbounds i8, ptr %0, i64 240
  %417 = load float, ptr %416, align 8, !tbaa !182
  %418 = getelementptr inbounds i8, ptr %0, i64 244
  %419 = load float, ptr %418, align 4, !tbaa !183
  %420 = getelementptr inbounds i8, ptr %0, i64 248
  %421 = load float, ptr %420, align 8, !tbaa !184
  %422 = getelementptr inbounds i8, ptr %0, i64 252
  %423 = load float, ptr %422, align 4, !tbaa !185
  %424 = getelementptr inbounds i8, ptr %410, i64 4
  %425 = load float, ptr %424, align 4, !tbaa !186
  %426 = fadd float %419, %425
  %427 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %423, float noundef %426)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %3, float noundef %417, float noundef %419, float noundef %421, float noundef %427)
  %428 = getelementptr inbounds i8, ptr %5, i64 5084
  %429 = load i32, ptr %428, align 4, !tbaa !187
  store i32 0, ptr %428, align 4, !tbaa !187
  %430 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %3, i32 noundef 0, i32 noundef 0)
  store i32 %429, ptr %428, align 4, !tbaa !187
  %431 = getelementptr inbounds i8, ptr %5, i64 232
  %432 = load float, ptr %431, align 8, !tbaa !188
  %433 = getelementptr inbounds i8, ptr %0, i64 232
  %434 = load float, ptr %433, align 8, !tbaa !189
  %435 = fcmp ogt float %434, 0.000000e+00
  br i1 %435, label %436, label %451

436:                                              ; preds = %.critedge3
  %437 = getelementptr inbounds i8, ptr %5, i64 236
  %438 = load float, ptr %437, align 4, !tbaa !190
  %439 = load float, ptr %418, align 4, !tbaa !183
  %440 = fcmp ult float %438, %439
  br i1 %440, label %451, label %441

441:                                              ; preds = %436
  %442 = fadd float %434, %439
  %443 = fcmp ugt float %438, %442
  br i1 %443, label %451, label %444

444:                                              ; preds = %441
  %445 = fsub float %442, %438
  %446 = getelementptr inbounds i8, ptr %0, i64 236
  %447 = load float, ptr %446, align 4, !tbaa !191
  %448 = fmul float %445, %447
  %449 = call noundef float @_ZL7ImTruncf(float noundef %448)
  %450 = fadd float %432, %449
  br label %451

451:                                              ; preds = %436, %441, %444, %.critedge3
  %.0530 = phi float [ %450, %444 ], [ %432, %441 ], [ %432, %436 ], [ %432, %.critedge3 ]
  %452 = getelementptr inbounds i8, ptr %0, i64 556
  %453 = load i16, ptr %452, align 4, !tbaa !192
  %454 = icmp sgt i16 %453, 0
  %. = select i1 %454, ptr %416, ptr %2
  %455 = load float, ptr %., align 4, !tbaa !193
  %456 = load float, ptr %176, align 4, !tbaa !160
  %457 = load float, ptr %178, align 4, !tbaa !161
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %458 = getelementptr inbounds i8, ptr %0, i64 288
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %458, i64 16, i1 false), !tbaa.struct !159
  %459 = getelementptr inbounds i8, ptr %0, i64 88
  %460 = load ptr, ptr %459, align 8, !tbaa !194
  %461 = load i32, ptr %18, align 4, !tbaa !34
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %460, i32 noundef %461)
  %462 = load i32, ptr %18, align 4, !tbaa !34
  %463 = icmp sgt i32 %462, 0
  br i1 %463, label %.lr.ph687, label %._crit_edge688.thread

.lr.ph687:                                        ; preds = %451
  %464 = fadd float %455, %456
  %465 = fsub float %464, %457
  %466 = getelementptr inbounds i8, ptr %0, i64 40
  %467 = getelementptr inbounds i8, ptr %0, i64 24
  %468 = getelementptr inbounds i8, ptr %0, i64 552
  %469 = getelementptr inbounds i8, ptr %2, i64 4
  %470 = getelementptr inbounds i8, ptr %0, i64 585
  %471 = getelementptr inbounds i8, ptr %4, i64 8
  br label %474

._crit_edge688:                                   ; preds = %636
  %472 = and i8 %.2527, 1
  %473 = icmp eq i8 %472, 0
  br i1 %473, label %._crit_edge688.thread, label %649

474:                                              ; preds = %.lr.ph687, %636
  %.0519685 = phi i32 [ 0, %.lr.ph687 ], [ %637, %636 ]
  %.0520684 = phi float [ %465, %.lr.ph687 ], [ %.2522, %636 ]
  %.0523683 = phi i1 [ %454, %.lr.ph687 ], [ %.1524, %636 ]
  %.0525682 = phi i8 [ 0, %.lr.ph687 ], [ %.2527, %636 ]
  %.0528681 = phi i32 [ 0, %.lr.ph687 ], [ %.1529, %636 ]
  %475 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %466, i32 noundef %.0519685)
  %476 = load i16, ptr %475, align 2, !tbaa !112
  %477 = sext i16 %476 to i32
  %478 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %467, i32 noundef %477)
  %479 = load i16, ptr %468, align 8, !tbaa !195
  %480 = icmp sgt i16 %479, 0
  %481 = zext i1 %480 to i8
  %482 = getelementptr inbounds i8, ptr %478, i64 110
  store i8 %481, ptr %482, align 2, !tbaa !196
  br i1 %.0523683, label %483, label %492

483:                                              ; preds = %474
  %484 = load i16, ptr %452, align 4, !tbaa !192
  %485 = sext i16 %484 to i32
  %486 = icmp eq i32 %.0528681, %485
  br i1 %486, label %487, label %492

487:                                              ; preds = %483
  %488 = load float, ptr %2, align 4, !tbaa !193
  %489 = load float, ptr %416, align 8, !tbaa !182
  %490 = fsub float %488, %489
  %491 = fadd float %.0520684, %490
  br label %492

492:                                              ; preds = %487, %483, %474
  %.1524 = phi i1 [ false, %487 ], [ true, %483 ], [ false, %474 ]
  %.1521 = phi float [ %491, %487 ], [ %.0520684, %483 ], [ %.0520684, %474 ]
  %493 = load i32, ptr %478, align 4, !tbaa !118
  %494 = and i32 %493, -251658241
  store i32 %494, ptr %478, align 4, !tbaa !118
  %495 = load ptr, ptr %20, align 8, !tbaa !35
  %496 = lshr i32 %.0519685, 5
  %497 = zext nneg i32 %496 to i64
  %498 = getelementptr inbounds i32, ptr %495, i64 %497
  %499 = load i32, ptr %498, align 4, !tbaa !164
  %500 = and i32 %.0519685, 31
  %501 = shl nuw i32 1, %500
  %502 = and i32 %499, %501
  %.not576 = icmp eq i32 %502, 0
  br i1 %.not576, label %503, label %515

503:                                              ; preds = %492
  %504 = getelementptr inbounds i8, ptr %478, i64 36
  %505 = getelementptr inbounds i8, ptr %478, i64 44
  store float %.1521, ptr %505, align 4, !tbaa !197
  store float %.1521, ptr %504, align 4, !tbaa !198
  %506 = getelementptr inbounds i8, ptr %478, i64 56
  store float %.1521, ptr %506, align 4, !tbaa !199
  %507 = getelementptr inbounds i8, ptr %478, i64 12
  store float %.1521, ptr %507, align 4, !tbaa !200
  %508 = getelementptr inbounds i8, ptr %478, i64 8
  store float %.1521, ptr %508, align 4, !tbaa !201
  %509 = getelementptr inbounds i8, ptr %478, i64 4
  store float 0.000000e+00, ptr %509, align 4, !tbaa !175
  %510 = load float, ptr %469, align 4, !tbaa !202
  %511 = getelementptr inbounds i8, ptr %478, i64 40
  store float %510, ptr %511, align 4, !tbaa !203
  %512 = getelementptr inbounds i8, ptr %478, i64 48
  store float 0x47EFFFFFE0000000, ptr %512, align 4, !tbaa !204
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %504, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %513 = getelementptr inbounds i8, ptr %478, i64 105
  store <4 x i8> <i8 0, i8 0, i8 0, i8 1>, ptr %513, align 1, !tbaa !205
  %514 = getelementptr inbounds i8, ptr %478, i64 64
  store float 1.000000e+00, ptr %514, align 4, !tbaa !206
  br label %636

515:                                              ; preds = %492
  %516 = getelementptr inbounds i8, ptr %478, i64 8
  store float %.1521, ptr %516, align 4, !tbaa !201
  %517 = call noundef float @_ZN5ImGui23TableCalcMaxColumnWidthEPK10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %477)
  %518 = getelementptr inbounds i8, ptr %478, i64 24
  store float %517, ptr %518, align 4, !tbaa !207
  %519 = getelementptr inbounds i8, ptr %478, i64 4
  %520 = load float, ptr %519, align 4, !tbaa !175
  %521 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %520, float noundef %517)
  store float %521, ptr %519, align 4, !tbaa !175
  %522 = getelementptr inbounds i8, ptr %478, i64 16
  %523 = load float, ptr %522, align 4, !tbaa !166
  %524 = load float, ptr %27, align 8, !tbaa !111
  %525 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %523, float noundef %524)
  %526 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %521, float noundef %525)
  store float %526, ptr %519, align 4, !tbaa !175
  %527 = fadd float %.1521, %526
  %528 = load float, ptr %178, align 4, !tbaa !161
  %529 = fadd float %527, %528
  %530 = load float, ptr %180, align 8, !tbaa !162
  %531 = fadd float %529, %530
  %532 = load float, ptr %315, align 8, !tbaa !169
  %533 = call float @llvm.fmuladd.f32(float %532, float 2.000000e+00, float %531)
  %534 = getelementptr inbounds i8, ptr %478, i64 12
  store float %533, ptr %534, align 4, !tbaa !200
  %535 = getelementptr inbounds i8, ptr %478, i64 56
  %536 = load float, ptr %535, align 4, !tbaa !199
  %537 = load float, ptr %516, align 4, !tbaa !201
  %538 = fadd float %532, %537
  %539 = fadd float %528, %538
  store float %539, ptr %535, align 4, !tbaa !199
  %540 = fsub float %533, %532
  %541 = fsub float %540, %530
  %542 = getelementptr inbounds i8, ptr %478, i64 60
  store float %541, ptr %542, align 4, !tbaa !208
  %543 = fmul float %526, 0x3FE4CCCCC0000000
  %544 = call noundef float @_ZL7ImTruncf(float noundef %543)
  %545 = getelementptr inbounds i8, ptr %478, i64 64
  store float %544, ptr %545, align 4, !tbaa !206
  %546 = load float, ptr %516, align 4, !tbaa !201
  %547 = getelementptr inbounds i8, ptr %478, i64 36
  store float %546, ptr %547, align 4, !tbaa !198
  %548 = load float, ptr %469, align 4, !tbaa !202
  %549 = getelementptr inbounds i8, ptr %478, i64 40
  store float %548, ptr %549, align 4, !tbaa !203
  %550 = load float, ptr %534, align 4, !tbaa !200
  %551 = getelementptr inbounds i8, ptr %478, i64 44
  store float %550, ptr %551, align 4, !tbaa !197
  %552 = getelementptr inbounds i8, ptr %478, i64 48
  store float 0x47EFFFFFE0000000, ptr %552, align 4, !tbaa !204
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %547, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %553 = load float, ptr %551, align 4, !tbaa !197
  %554 = load float, ptr %547, align 4, !tbaa !198
  %555 = fcmp ogt float %553, %554
  %556 = getelementptr inbounds i8, ptr %478, i64 105
  %557 = zext i1 %555 to i8
  store i8 %557, ptr %556, align 1, !tbaa !209
  %558 = getelementptr inbounds i8, ptr %478, i64 106
  store i8 1, ptr %558, align 2, !tbaa !210
  br i1 %555, label %559, label %.critedge617

559:                                              ; preds = %515
  %560 = load ptr, ptr %459, align 8, !tbaa !194
  call void @_Z16ImBitArraySetBitPji(ptr noundef %560, i32 noundef %477)
  br label %565

.critedge617:                                     ; preds = %515
  %.old = getelementptr inbounds i8, ptr %478, i64 111
  %.old619 = load i8, ptr %.old, align 1, !tbaa !127
  %.not577.old = icmp eq i8 %.old619, 0
  br i1 %.not577.old, label %561, label %565

561:                                              ; preds = %.critedge617
  %562 = getelementptr inbounds i8, ptr %478, i64 112
  %563 = load i8, ptr %562, align 4, !tbaa !126
  %564 = icmp ne i8 %563, 0
  br label %565

565:                                              ; preds = %559, %561, %.critedge617
  %566 = phi i1 [ true, %.critedge617 ], [ true, %559 ], [ %564, %561 ]
  %567 = getelementptr inbounds i8, ptr %478, i64 107
  %568 = zext i1 %566 to i8
  store i8 %568, ptr %567, align 1, !tbaa !165
  %569 = getelementptr inbounds i8, ptr %478, i64 102
  %570 = load i8, ptr %569, align 2, !tbaa !122, !range !28, !noundef !29
  %571 = trunc nuw i8 %570 to i1
  br i1 %571, label %572, label %575

572:                                              ; preds = %565
  %573 = load i8, ptr %470, align 1, !tbaa !211, !range !28, !noundef !29
  %574 = trunc nuw i8 %573 to i1
  br label %575

575:                                              ; preds = %572, %565
  %576 = phi i1 [ true, %565 ], [ %574, %572 ]
  %577 = getelementptr inbounds i8, ptr %478, i64 108
  %578 = zext i1 %576 to i8
  store i8 %578, ptr %577, align 4, !tbaa !212
  %or.cond6.demorgan = and i1 %555, %576
  br i1 %or.cond6.demorgan, label %579, label %580

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

580:                                              ; preds = %575
  %spec.select621 = select i1 %576, i8 %.0525682, i8 1
  %.1526 = select i1 %566, i8 %spec.select621, i8 %.0525682
  %581 = load i32, ptr %478, align 4, !tbaa !118
  %storemerge.v = select i1 %555, i32 50331648, i32 16777216
  %storemerge = or i32 %581, %storemerge.v
  store i32 %storemerge, ptr %478, align 4, !tbaa !118
  %582 = getelementptr inbounds i8, ptr %478, i64 94
  %583 = load i16, ptr %582, align 2, !tbaa !123
  %.not = icmp eq i16 %583, -1
  br i1 %.not, label %586, label %584

584:                                              ; preds = %580
  %585 = or i32 %storemerge, 67108864
  store i32 %585, ptr %478, align 4, !tbaa !118
  br label %586

586:                                              ; preds = %584, %580
  %587 = phi i32 [ %585, %584 ], [ %storemerge, %580 ]
  %588 = load float, ptr %547, align 4
  %589 = fcmp oge float %.0530, %588
  %or.cond625.not636 = select i1 %430, i1 %589, i1 false
  %590 = load float, ptr %551, align 4
  %591 = fcmp olt float %.0530, %590
  %or.cond628 = select i1 %or.cond625.not636, i1 %591, i1 false
  br i1 %or.cond628, label %592, label %594

592:                                              ; preds = %586
  %593 = or i32 %587, 134217728
  store i32 %593, ptr %478, align 4, !tbaa !118
  store i16 %476, ptr %415, align 2, !tbaa !181
  br label %594

594:                                              ; preds = %592, %586
  %595 = load i16, ptr %407, align 8, !tbaa !133
  %596 = icmp eq i16 %595, 0
  %597 = load float, ptr %535, align 4, !tbaa !199
  br i1 %596, label %598, label %.thread631

598:                                              ; preds = %594
  %599 = getelementptr inbounds i8, ptr %478, i64 68
  %600 = insertelement <4 x float> poison, float %597, i64 0
  %601 = shufflevector <4 x float> %600, <4 x float> poison, <4 x i32> zeroinitializer
  store <4 x float> %601, ptr %599, align 4, !tbaa !125
  %602 = load i8, ptr %470, align 1, !tbaa !211, !range !28, !noundef !29
  %603 = icmp eq i8 %602, 0
  br i1 %603, label %610, label %.thread632

.thread631:                                       ; preds = %594
  %604 = fsub float %597, %536
  %605 = getelementptr inbounds i8, ptr %478, i64 68
  %606 = load <4 x float>, ptr %605, align 4, !tbaa !125
  %607 = insertelement <4 x float> poison, float %604, i64 0
  %608 = shufflevector <4 x float> %607, <4 x float> poison, <4 x i32> zeroinitializer
  %609 = fadd <4 x float> %606, %608
  store <4 x float> %609, ptr %605, align 4, !tbaa !125
  br label %.thread632

610:                                              ; preds = %598
  %611 = getelementptr inbounds i8, ptr %478, i64 111
  %612 = load i8, ptr %611, align 1, !tbaa !127
  %613 = lshr i8 %612, 1
  store i8 %613, ptr %611, align 1, !tbaa !127
  %614 = getelementptr inbounds i8, ptr %478, i64 112
  %615 = load i8, ptr %614, align 4, !tbaa !126
  %616 = lshr i8 %615, 1
  store i8 %616, ptr %614, align 4, !tbaa !126
  br label %.thread632

.thread632:                                       ; preds = %.thread631, %610, %598
  %617 = load i16, ptr %452, align 4, !tbaa !192
  %618 = sext i16 %617 to i32
  %619 = icmp slt i32 %.0528681, %618
  br i1 %619, label %620, label %626

620:                                              ; preds = %.thread632
  %621 = load float, ptr %534, align 4, !tbaa !200
  %622 = fadd float %621, 1.000000e+00
  %623 = load float, ptr %4, align 4, !tbaa !193
  %624 = load float, ptr %471, align 4, !tbaa !213
  %625 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %622, float noundef %623, float noundef %624)
  store float %625, ptr %4, align 4, !tbaa !193
  br label %626

626:                                              ; preds = %620, %.thread632
  %627 = load float, ptr %519, align 4, !tbaa !175
  %628 = load float, ptr %178, align 4, !tbaa !161
  %629 = fadd float %627, %628
  %630 = load float, ptr %180, align 8, !tbaa !162
  %631 = fadd float %629, %630
  %632 = load float, ptr %315, align 8, !tbaa !169
  %633 = call float @llvm.fmuladd.f32(float %632, float 2.000000e+00, float %631)
  %634 = fadd float %.1521, %633
  %635 = add nsw i32 %.0528681, 1
  br label %636

636:                                              ; preds = %626, %503
  %.1529 = phi i32 [ %635, %626 ], [ %.0528681, %503 ]
  %.2527 = phi i8 [ %.1526, %626 ], [ %.0525682, %503 ]
  %.2522 = phi float [ %634, %626 ], [ %.1521, %503 ]
  %637 = add nuw nsw i32 %.0519685, 1
  %638 = load i32, ptr %18, align 4, !tbaa !34
  %639 = icmp slt i32 %637, %638
  br i1 %639, label %474, label %._crit_edge688, !llvm.loop !214

._crit_edge688.thread:                            ; preds = %451, %._crit_edge688
  %640 = getelementptr inbounds i8, ptr %0, i64 24
  %641 = load i16, ptr %23, align 4, !tbaa !36
  %642 = sext i16 %641 to i32
  %643 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %640, i32 noundef %642)
  %644 = getelementptr inbounds i8, ptr %643, i64 107
  store i8 1, ptr %644, align 1, !tbaa !165
  %645 = load i16, ptr %23, align 4, !tbaa !36
  %646 = sext i16 %645 to i32
  %647 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %640, i32 noundef %646)
  %648 = getelementptr inbounds i8, ptr %647, i64 108
  store i8 0, ptr %648, align 4, !tbaa !212
  br label %649

649:                                              ; preds = %._crit_edge688.thread, %._crit_edge688
  %650 = load float, ptr %175, align 8, !tbaa !215
  %651 = getelementptr inbounds i8, ptr %0, i64 24
  %652 = load i16, ptr %151, align 2, !tbaa !138
  %653 = sext i16 %652 to i32
  %654 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %651, i32 noundef %653)
  %655 = getelementptr inbounds i8, ptr %654, i64 44
  %656 = load float, ptr %655, align 4, !tbaa !197
  %657 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %650, float noundef %656)
  br i1 %430, label %658, label %665

658:                                              ; preds = %649
  %659 = load i16, ptr %415, align 2, !tbaa !181
  %660 = icmp ne i16 %659, -1
  %661 = fcmp ult float %.0530, %657
  %or.cond630 = select i1 %660, i1 true, i1 %661
  br i1 %or.cond630, label %665, label %662

662:                                              ; preds = %658
  %663 = load i32, ptr %18, align 4, !tbaa !34
  %664 = trunc i32 %663 to i16
  store i16 %664, ptr %415, align 2, !tbaa !181
  br label %665

665:                                              ; preds = %662, %658, %649
  %666 = and i8 %.0510.lcssa, 1
  %667 = icmp ne i8 %666, 0
  %.pre697.pre = load i32, ptr %11, align 4, !tbaa !30
  %668 = and i32 %.pre697.pre, 1
  %.not564 = icmp eq i32 %668, 0
  %or.cond = select i1 %667, i1 true, i1 %.not564
  br i1 %or.cond, label %671, label %669

669:                                              ; preds = %665
  %670 = and i32 %.pre697.pre, -2
  store i32 %670, ptr %11, align 4, !tbaa !30
  br label %671

671:                                              ; preds = %669, %665
  %.pre697 = phi i32 [ %670, %669 ], [ %.pre697.pre, %665 ]
  %672 = getelementptr inbounds i8, ptr %5, i64 5088
  %673 = load i32, ptr %672, align 8, !tbaa !216
  %674 = icmp ne i32 %673, 0
  %675 = getelementptr inbounds i8, ptr %0, i64 580
  %676 = zext i1 %674 to i8
  store i8 %676, ptr %675, align 4, !tbaa !217
  %677 = load i16, ptr %165, align 2, !tbaa !155
  %.not565 = icmp eq i16 %677, -1
  br i1 %.not565, label %680, label %678

678:                                              ; preds = %671
  %679 = and i32 %.pre697, -65537
  store i32 %679, ptr %11, align 4, !tbaa !30
  br label %680

680:                                              ; preds = %678, %671
  %681 = phi i32 [ %679, %678 ], [ %.pre697, %671 ]
  %682 = and i32 %681, 65536
  %.not566 = icmp eq i32 %682, 0
  br i1 %.not566, label %688, label %683

683:                                              ; preds = %680
  %684 = getelementptr inbounds i8, ptr %0, i64 280
  store float %657, ptr %684, align 8, !tbaa !218
  store float %657, ptr %420, align 8, !tbaa !184
  %685 = getelementptr inbounds i8, ptr %0, i64 296
  %686 = load float, ptr %685, align 8, !tbaa !219
  %687 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %686, float noundef %657)
  store float %687, ptr %685, align 8, !tbaa !219
  br label %688

688:                                              ; preds = %683, %680
  %689 = getelementptr inbounds i8, ptr %0, i64 392
  %690 = load ptr, ptr %689, align 8, !tbaa !140
  %691 = getelementptr inbounds i8, ptr %690, i64 576
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %691, ptr noundef nonnull align 8 dereferenceable(16) %175, i64 16, i1 false), !tbaa.struct !159
  %692 = load float, ptr %458, align 8, !tbaa !220
  %693 = getelementptr inbounds i8, ptr %0, i64 172
  store float %692, ptr %693, align 4, !tbaa !221
  %694 = getelementptr inbounds i8, ptr %0, i64 296
  %695 = load float, ptr %694, align 8, !tbaa !219
  %696 = getelementptr inbounds i8, ptr %0, i64 176
  store float %695, ptr %696, align 8, !tbaa !222
  %697 = load i32, ptr %11, align 4, !tbaa !30
  %698 = and i32 %697, 131072
  %.not567 = icmp eq i32 %698, 0
  br i1 %.not567, label %701, label %699

699:                                              ; preds = %688
  %700 = load float, ptr %422, align 4, !tbaa !185
  br label %711

701:                                              ; preds = %688
  %702 = load ptr, ptr %689, align 8, !tbaa !140
  %703 = getelementptr inbounds i8, ptr %702, i64 620
  %704 = load float, ptr %703, align 4, !tbaa !223
  %705 = and i32 %697, 33554432
  %.not568 = icmp eq i32 %705, 0
  br i1 %.not568, label %706, label %708

706:                                              ; preds = %701
  %707 = load float, ptr %422, align 4, !tbaa !185
  br label %708

708:                                              ; preds = %701, %706
  %709 = phi float [ %707, %706 ], [ 0.000000e+00, %701 ]
  %710 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %704, float noundef %709)
  br label %711

711:                                              ; preds = %708, %699
  %.0501 = phi float [ %700, %699 ], [ %710, %708 ]
  %712 = getelementptr inbounds i8, ptr %5, i64 3152
  %713 = load float, ptr %712, align 4, !tbaa !224
  %714 = fsub float %.0501, %713
  %715 = load ptr, ptr %689, align 8, !tbaa !140
  %716 = getelementptr inbounds i8, ptr %715, i64 564
  %717 = load float, ptr %716, align 4, !tbaa !225
  %718 = getelementptr inbounds i8, ptr %715, i64 572
  %719 = load float, ptr %718, align 4, !tbaa !226
  %720 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %714, float noundef %717, float noundef %719)
  %721 = load ptr, ptr %689, align 8, !tbaa !140
  %722 = getelementptr inbounds i8, ptr %721, i64 572
  store float %720, ptr %722, align 4, !tbaa !226
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef nonnull %0)
  %723 = load i32, ptr %11, align 4, !tbaa !30
  %724 = and i32 %723, 1
  %.not569 = icmp eq i32 %724, 0
  br i1 %.not569, label %726, label %725

725:                                              ; preds = %711
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef nonnull %0)
  br label %726

726:                                              ; preds = %725, %711
  %727 = getelementptr inbounds i8, ptr %410, i64 8
  store float 0.000000e+00, ptr %727, align 4, !tbaa !227
  store i8 1, ptr %6, align 2, !tbaa !9
  %728 = getelementptr inbounds i8, ptr %0, i64 570
  store i8 0, ptr %728, align 2, !tbaa !228
  %729 = getelementptr inbounds i8, ptr %0, i64 526
  store i16 -1, ptr %729, align 2, !tbaa !229
  %730 = getelementptr inbounds i8, ptr %0, i64 571
  %731 = load i8, ptr %730, align 1, !tbaa !230, !range !28, !noundef !29
  %732 = trunc nuw i8 %731 to i1
  br i1 %732, label %733, label %741

733:                                              ; preds = %726
  %734 = getelementptr inbounds i8, ptr %0, i64 548
  %735 = load i16, ptr %734, align 4, !tbaa !231
  %.not570 = icmp eq i16 %735, -1
  br i1 %.not570, label %741, label %736

736:                                              ; preds = %733
  %737 = getelementptr inbounds i8, ptr %0, i64 122
  %738 = load i16, ptr %737, align 2, !tbaa !232
  %739 = load i16, ptr %407, align 8, !tbaa !133
  %740 = icmp eq i16 %738, %739
  br i1 %740, label %.sink.split710, label %741

741:                                              ; preds = %736, %733, %726
  %742 = load i32, ptr %11, align 4, !tbaa !30
  %743 = and i32 %742, 268435456
  %.not571 = icmp eq i32 %743, 0
  br i1 %.not571, label %763, label %744

744:                                              ; preds = %741
  %745 = load i16, ptr %415, align 2, !tbaa !181
  %.not572 = icmp eq i16 %745, -1
  br i1 %.not572, label %763, label %746

746:                                              ; preds = %744
  %747 = sext i16 %745 to i32
  %748 = load i32, ptr %18, align 4, !tbaa !34
  %.not573 = icmp eq i32 %748, %747
  br i1 %.not573, label %763, label %749

749:                                              ; preds = %746
  %750 = load i16, ptr %414, align 4, !tbaa !180
  %751 = icmp eq i16 %750, -1
  br i1 %751, label %752, label %763

752:                                              ; preds = %749
  %753 = load i32, ptr %428, align 4, !tbaa !187
  %754 = icmp eq i32 %753, 0
  br i1 %754, label %.sink.split710, label %755

755:                                              ; preds = %752
  %756 = getelementptr inbounds i8, ptr %0, i64 581
  %757 = load i8, ptr %756, align 1, !tbaa !233, !range !28, !noundef !29
  %758 = trunc nuw i8 %757 to i1
  br i1 %758, label %.sink.split710, label %759

759:                                              ; preds = %755
  %760 = getelementptr inbounds i8, ptr %5, i64 8380
  %761 = load i8, ptr %760, align 4, !tbaa !234, !range !28, !noundef !29
  %762 = trunc nuw i8 %761 to i1
  br i1 %762, label %.sink.split710, label %763

.sink.split710:                                   ; preds = %752, %755, %759, %736
  %.sink711 = phi i16 [ %735, %736 ], [ %745, %759 ], [ %745, %755 ], [ %745, %752 ]
  store i16 %.sink711, ptr %729, align 2, !tbaa !229
  br label %763

763:                                              ; preds = %.sink.split710, %741, %744, %746, %749, %759
  %764 = getelementptr inbounds i8, ptr %0, i64 572
  %765 = load i8, ptr %764, align 4, !tbaa !235, !range !28, !noundef !29
  %766 = icmp eq i8 %765, 0
  br i1 %766, label %767, label %771

767:                                              ; preds = %763
  %768 = call noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef nonnull %0)
  br i1 %768, label %769, label %771

769:                                              ; preds = %767
  %770 = load i32, ptr %11, align 4, !tbaa !30
  call void @_ZN5ImGui27TableDrawDefaultContextMenuEP10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %770)
  call void @_ZN5ImGui8EndPopupEv()
  br label %771

771:                                              ; preds = %769, %767, %763
  %772 = getelementptr inbounds i8, ptr %0, i64 569
  %773 = load i8, ptr %772, align 1, !tbaa !124, !range !28, !noundef !29
  %774 = trunc nuw i8 %773 to i1
  br i1 %774, label %775, label %779

775:                                              ; preds = %771
  %776 = load i32, ptr %11, align 4, !tbaa !30
  %777 = and i32 %776, 8
  %.not574 = icmp eq i32 %777, 0
  br i1 %.not574, label %779, label %778

778:                                              ; preds = %775
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef nonnull %0)
  br label %779

779:                                              ; preds = %778, %775, %771
  %780 = getelementptr inbounds i8, ptr %0, i64 554
  %781 = load i16, ptr %780, align 2, !tbaa !236
  %782 = icmp sgt i16 %781, 0
  br i1 %782, label %783, label %._crit_edge700

._crit_edge700:                                   ; preds = %779
  %.pre698.pre = load ptr, ptr %689, align 8, !tbaa !140
  br label %797

783:                                              ; preds = %779
  %784 = zext nneg i16 %781 to i32
  %785 = getelementptr inbounds i8, ptr %0, i64 40
  %786 = add nsw i32 %784, -1
  %787 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %785, i32 noundef %786)
  %788 = load i16, ptr %787, align 2, !tbaa !112
  %789 = sext i16 %788 to i32
  %790 = call noundef nonnull align 4 dereferenceable(115) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %651, i32 noundef %789)
  %791 = getelementptr inbounds i8, ptr %790, i64 12
  %792 = load float, ptr %791, align 4, !tbaa !200
  %793 = load float, ptr %416, align 8, !tbaa !182
  %794 = fsub float %792, %793
  %795 = load ptr, ptr %689, align 8, !tbaa !140
  %796 = getelementptr inbounds i8, ptr %795, i64 128
  store float %794, ptr %796, align 8, !tbaa !237
  br label %797

797:                                              ; preds = %._crit_edge700, %783
  %.pre698 = phi ptr [ %.pre698.pre, %._crit_edge700 ], [ %795, %783 ]
  %798 = getelementptr inbounds i8, ptr %0, i64 550
  %799 = load i16, ptr %798, align 2, !tbaa !238
  %800 = icmp sgt i16 %799, 0
  br i1 %800, label %801, label %805

801:                                              ; preds = %797
  %802 = getelementptr inbounds i8, ptr %410, i64 12
  %803 = load float, ptr %802, align 4, !tbaa !239
  %804 = getelementptr inbounds i8, ptr %.pre698, i64 132
  store float %803, ptr %804, align 4, !tbaa !240
  br label %805

805:                                              ; preds = %801, %797
  %806 = getelementptr inbounds i8, ptr %410, i64 12
  store float 0.000000e+00, ptr %806, align 4, !tbaa !239
  %807 = load i32, ptr %11, align 4, !tbaa !30
  %808 = and i32 %807, 1048576
  %.not575 = icmp eq i32 %808, 0
  br i1 %.not575, label %814, label %809

809:                                              ; preds = %805
  %810 = getelementptr inbounds i8, ptr %0, i64 416
  %811 = load ptr, ptr %810, align 8, !tbaa !241
  %812 = getelementptr inbounds i8, ptr %.pre698, i64 688
  %813 = load ptr, ptr %812, align 8, !tbaa !242
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %811, ptr noundef %813, i32 noundef 2)
  br label %819

814:                                              ; preds = %805
  %815 = getelementptr inbounds i8, ptr %.pre698, i64 688
  %816 = load ptr, ptr %815, align 8, !tbaa !242
  %817 = getelementptr inbounds i8, ptr %.pre698, i64 544
  %818 = getelementptr inbounds i8, ptr %.pre698, i64 552
  call void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(216) %816, ptr noundef nonnull align 4 dereferenceable(8) %817, ptr noundef nonnull align 4 dereferenceable(8) %818, i1 noundef zeroext false)
  br label %819

819:                                              ; preds = %814, %809
  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 @_ZL7ImTruncf(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 @_ZN5ImGui23TableCalcMaxColumnWidthEPK10ImGuiTablei(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 @_ZN5ImGui27TableDrawDefaultContextMenuEP10ImGuiTablei(ptr noundef, i32 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(216), 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, !27, i64 566}
!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, !16, i64 144, !11, i64 148, !11, i64 150, !11, i64 152, !7, i64 156, !11, i64 164, !11, 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, !16, i64 232, !16, i64 236, !17, i64 240, !17, i64 256, !17, i64 272, !17, i64 288, !17, i64 304, !17, i64 320, !17, i64 336, !17, i64 352, !17, i64 368, !6, i64 384, !6, i64 392, !19, i64 400, !6, i64 416, !21, i64 424, !22, i64 448, !23, i64 464, !25, i64 480, !26, i64 496, !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, !15, i64 554, !15, i64 556, !15, i64 558, !15, i64 560, !15, i64 562, !15, i64 564, !27, i64 566, !27, i64 567, !27, i64 568, !27, i64 569, !27, i64 570, !27, i64 571, !27, i64 572, !27, i64 573, !27, i64 574, !27, i64 575, !27, i64 576, !27, i64 577, !27, i64 578, !27, i64 579, !27, i64 580, !27, i64 581, !27, i64 582, !27, i64 583, !27, i64 584, !27, i64 585}
!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, !24, i64 8}
!24 = !{!"_ZTS18ImGuiSortDirection", !7, i64 0}
!25 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!26 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !27, i64 12}
!27 = !{!"bool", !7, i64 0}
!28 = !{i8 0, i8 2}
!29 = !{}
!30 = !{!10, !11, i64 4}
!31 = !{!10, !27, i64 575}
!32 = !{!10, !15, i64 514}
!33 = !{!10, !6, i64 80}
!34 = !{!10, !11, i64 108}
!35 = !{!10, !6, i64 72}
!36 = !{!10, !15, i64 540}
!37 = !{!38, !16, i64 3116}
!38 = !{!"_ZTS12ImGuiContext", !27, i64 0, !27, i64 1, !39, i64 8, !42, i64 2984, !43, i64 3056, !6, i64 4216, !16, i64 4224, !16, i64 4228, !16, i64 4232, !16, i64 4236, !45, i64 4240, !48, i64 4776, !11, i64 4784, !11, i64 4788, !11, i64 4792, !11, i64 4796, !27, i64 4800, !27, i64 4801, !27, i64 4802, !27, i64 4803, !6, i64 4808, !7, i64 4816, !49, i64 4832, !49, i64 4848, !40, i64 4864, !11, i64 4868, !50, i64 4872, !50, i64 4888, !50, i64 4904, !51, i64 4920, !52, i64 4936, !11, i64 4952, !18, i64 4956, !11, i64 4964, !6, i64 4968, !6, i64 4976, !6, i64 4984, !6, i64 4992, !6, i64 5000, !6, i64 5008, !18, i64 5016, !11, i64 5024, !11, i64 5028, !16, i64 5032, !18, i64 5036, !18, i64 5044, !11, i64 5052, !11, i64 5056, !11, i64 5060, !11, i64 5064, !11, i64 5068, !16, i64 5072, !16, i64 5076, !27, i64 5080, !27, i64 5081, !27, i64 5082, !11, i64 5084, !11, i64 5088, !16, i64 5092, !27, i64 5096, !27, i64 5097, !27, i64 5098, !27, i64 5099, !27, i64 5100, !27, i64 5101, !27, i64 5102, !11, i64 5103, !18, i64 5104, !6, i64 5112, !54, i64 5120, !11, i64 5124, !55, i64 5128, !56, i64 5140, !11, i64 5148, !16, i64 5152, !48, i64 5160, !48, i64 5168, !48, i64 5176, !57, i64 5184, !7, i64 5204, !58, i64 7056, !11, i64 7400, !27, i64 7404, !11, i64 7408, !11, i64 7412, !11, i64 7416, !11, i64 7420, !60, i64 7424, !62, i64 7480, !63, i64 7560, !27, i64 7672, !11, i64 7676, !64, i64 7680, !65, i64 7696, !66, i64 7712, !67, i64 7728, !68, i64 7744, !69, i64 7760, !70, i64 7776, !70, i64 7792, !71, i64 7808, !72, i64 7824, !27, i64 7840, !27, i64 7841, !27, i64 7842, !27, i64 7843, !11, i64 7844, !6, i64 7848, !11, i64 7856, !73, i64 7860, !11, i64 7864, !11, i64 7868, !11, i64 7872, !11, i64 7876, !67, i64 7880, !11, i64 7896, !16, i64 7900, !11, i64 7904, !11, i64 7908, !54, i64 7912, !61, i64 7920, !7, i64 7928, !27, i64 7929, !27, i64 7930, !27, i64 7931, !74, i64 7936, !27, i64 7992, !27, i64 7993, !27, i64 7994, !11, i64 7996, !11, i64 8000, !11, i64 8004, !44, i64 8008, !44, i64 8012, !44, i64 8016, !17, i64 8020, !17, i64 8036, !11, i64 8052, !11, i64 8056, !11, i64 8060, !74, i64 8064, !74, i64 8120, !74, i64 8176, !74, i64 8232, !11, i64 8288, !11, i64 8292, !11, i64 8296, !11, i64 8300, !27, i64 8304, !27, i64 8305, !11, i64 8308, !11, i64 8312, !6, i64 8320, !6, i64 8328, !6, i64 8336, !16, i64 8344, !16, i64 8348, !27, i64 8352, !75, i64 8356, !18, i64 8360, !18, i64 8368, !16, i64 8376, !27, i64 8380, !27, i64 8381, !27, i64 8382, !11, i64 8384, !11, i64 8388, !11, i64 8392, !76, i64 8400, !17, i64 8464, !17, i64 8480, !11, i64 8496, !11, i64 8500, !16, i64 8504, !11, i64 8508, !11, i64 8512, !11, i64 8516, !11, i64 8520, !77, i64 8528, !7, i64 8544, !11, i64 8560, !78, i64 8568, !6, i64 8584, !11, i64 8592, !11, i64 8596, !79, i64 8600, !80, i64 8616, !82, i64 8656, !83, i64 8672, !6, i64 8688, !84, i64 8696, !86, i64 8736, !87, i64 8752, !88, i64 8768, !6, i64 8872, !11, i64 8880, !89, i64 8888, !90, i64 8904, !11, i64 8944, !11, i64 8948, !16, i64 8952, !16, i64 8956, !11, i64 8960, !11, i64 8964, !11, i64 8968, !16, i64 8972, !18, i64 8976, !92, i64 8984, !93, i64 9104, !94, i64 9128, !11, i64 9248, !56, i64 9252, !11, i64 9260, !11, i64 9264, !11, i64 9268, !11, i64 9272, !11, i64 9276, !16, i64 9280, !16, i64 9284, !11, i64 9288, !46, i64 9292, !96, i64 9308, !17, i64 9356, !27, i64 9372, !15, i64 9374, !16, i64 9376, !16, i64 9380, !16, i64 9384, !27, i64 9388, !27, i64 9389, !16, i64 9392, !16, i64 9396, !16, i64 9400, !15, i64 9404, !15, i64 9406, !6, i64 9408, !20, i64 9416, !97, i64 9432, !98, i64 9448, !100, i64 9552, !100, i64 9568, !27, i64 9584, !16, i64 9588, !19, i64 9592, !101, i64 9608, !102, i64 9624, !103, i64 9640, !104, i64 9656, !11, i64 9672, !7, i64 9680, !27, i64 9760, !11, i64 9764, !6, i64 9768, !6, i64 9776, !19, i64 9784, !6, i64 9800, !6, i64 9808, !16, i64 9816, !27, i64 9820, !11, i64 9824, !11, i64 9828, !11, i64 9832, !6, i64 9840, !6, i64 9848, !18, i64 9856, !27, i64 9864, !11, i64 9868, !105, i64 9872, !6, i64 9896, !11, i64 9904, !11, i64 9908, !19, i64 9912, !106, i64 9928, !11, i64 9952, !11, i64 9956, !7, i64 9960, !7, i64 9961, !27, i64 9962, !11, i64 9964, !7, i64 9968, !27, i64 9969, !7, i64 9970, !11, i64 9972, !16, i64 9976, !46, i64 9980, !107, i64 9996, !108, i64 10024, !110, i64 10064, !7, i64 10124, !11, i64 10364, !11, i64 10368, !16, i64 10372, !11, i64 10376, !11, i64 10380, !11, i64 10384, !20, i64 10392, !7, i64 10408}
!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, !27, i64 60, !6, i64 64, !18, i64 72, !27, i64 80, !27, i64 81, !27, i64 82, !27, i64 83, !27, i64 84, !27, i64 85, !27, i64 86, !27, i64 87, !27, i64 88, !27, i64 89, !27, i64 90, !27, i64 91, !27, i64 92, !27, i64 93, !27, i64 94, !27, i64 95, !27, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !27, i64 124, !27, i64 125, !27, i64 126, !27, i64 127, !27, i64 128, !27, i64 129, !27, i64 130, !27, i64 131, !27, i64 132, !27, i64 133, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !27, i64 176, !27, i64 177, !27, i64 178, !27, i64 179, !27, i64 180, !27, i64 181, !27, i64 182, !16, i64 184, !11, i64 188, !11, i64 192, !11, i64 196, !11, i64 200, !18, i64 204, !6, i64 216, !18, i64 224, !7, i64 232, !16, i64 240, !16, i64 244, !40, i64 248, !27, i64 252, !27, i64 253, !27, i64 254, !27, i64 255, !11, i64 256, !7, i64 260, !27, i64 2724, !18, i64 2728, !7, i64 2736, !7, i64 2776, !7, i64 2816, !7, i64 2821, !7, i64 2826, !7, i64 2836, !7, i64 2846, !7, i64 2851, !7, i64 2856, !27, i64 2861, !27, i64 2862, !7, i64 2864, !7, i64 2884, !7, i64 2904, !16, i64 2924, !27, i64 2928, !27, i64 2929, !15, i64 2930, !41, i64 2936, !6, i64 2952, !6, i64 2960, !6, i64 2968}
!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, !15, i64 56, !6, i64 64}
!43 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !18, i64 24, !18, i64 32, !44, 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, !16, i64 148, !16, i64 152, !16, i64 156, !18, i64 160, !44, i64 168, !18, i64 172, !18, i64 180, !16, i64 188, !18, i64 192, !18, i64 200, !18, i64 208, !18, i64 216, !16, i64 224, !27, i64 228, !27, i64 229, !27, i64 230, !16, i64 232, !16, i64 236, !7, i64 240, !16, i64 1136, !16, i64 1140, !16, i64 1144, !11, i64 1148, !11, i64 1152}
!44 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!45 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !6, i64 16, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !46, i64 40, !11, i64 56, !47, i64 64, !7, i64 80, !16, i64 464, !7, i64 468}
!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 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !11, i64 0, !11, i64 4, !6, i64 8}
!54 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!55 = !{!"_ZTS24ImGuiDeactivatedItemData", !11, i64 0, !11, i64 4, !27, i64 8, !27, i64 9}
!56 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!57 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!58 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !59, i64 312, !59, i64 328}
!59 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !11, i64 4, !11, i64 8, !61, i64 16, !16, i64 24, !11, i64 28, !11, i64 32, !27, i64 36, !7, i64 37, !56, i64 38, !11, i64 48}
!61 = !{!"long long", !7, i64 0}
!62 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !17, i64 12, !17, i64 28, !17, i64 44, !17, i64 60, !11, i64 76}
!63 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !11, i64 56, !27, i64 60, !17, i64 64, !6, i64 80, !6, i64 88, !16, i64 96, !18, i64 100, !11, i64 108}
!64 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!73 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!74 = !{!"_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, !61, i64 48}
!75 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!76 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !27, i64 57, !27, i64 58}
!77 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI10ImGuiTableE", !81, i64 0, !52, i64 16, !11, i64 32, !11, i64 36}
!81 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!84 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !85, i64 0, !52, i64 16, !11, i64 32, !11, i64 36}
!85 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!86 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!87 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!88 = !{!"_ZTS19ImGuiBoxSelectState", !11, i64 0, !27, i64 4, !27, i64 5, !27, i64 6, !27, i64 7, !27, i64 8, !11, i64 9, !18, i64 12, !18, i64 20, !18, i64 28, !6, i64 40, !27, i64 48, !17, i64 52, !17, i64 68, !17, i64 84}
!89 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!90 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !91, i64 0, !52, i64 16, !11, i64 32, !11, i64 36}
!91 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !11, i64 0, !11, i64 4, !6, i64 8}
!92 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !6, i64 32, !20, i64 40, !20, i64 56, !20, i64 72, !11, i64 88, !18, i64 92, !16, i64 100, !27, i64 104, !27, i64 105, !27, i64 106, !27, i64 107, !11, i64 108, !11, i64 112}
!93 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !11, i64 0, !20, i64 8}
!94 = !{!"_ZTS6ImFont", !82, i64 0, !16, i64 16, !16, i64 20, !41, i64 24, !95, 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, !27, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !11, i64 112, !7, i64 116}
!95 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!96 = !{!"_ZTS21ImGuiComboPreviewData", !17, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !16, i64 40, !11, i64 44}
!97 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!98 = !{!"_ZTS22ImGuiTypingSelectState", !99, i64 0, !7, i64 24, !11, i64 88, !11, i64 92, !16, i64 96, !27, i64 100}
!99 = !{!"_ZTS24ImGuiTypingSelectRequest", !11, i64 0, !11, i64 4, !6, i64 8, !27, i64 16, !27, i64 17, !7, i64 18}
!100 = !{!"_ZTS20ImGuiPlatformImeData", !27, i64 0, !18, i64 4, !16, i64 12}
!101 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!102 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !20, i64 0}
!103 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !20, i64 0}
!104 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!105 = !{!"_ZTS23ImGuiErrorRecoveryState", !15, i64 0, !15, i64 2, !15, i64 4, !15, i64 6, !15, i64 8, !15, i64 10, !15, i64 12, !15, i64 14, !15, i64 16, !15, i64 18, !15, i64 20}
!106 = !{!"_ZTS14ImGuiTextIndex", !68, i64 0, !11, i64 16}
!107 = !{!"_ZTS18ImGuiMetricsConfig", !27, i64 0, !27, i64 1, !27, i64 2, !27, i64 3, !27, i64 4, !27, i64 5, !27, i64 6, !27, i64 7, !27, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24}
!108 = !{!"_ZTS16ImGuiIDStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !109, i64 16, !27, i64 32, !16, i64 36}
!109 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!110 = !{!"_ZTS19ImGuiDebugAllocInfo", !11, i64 0, !11, i64 4, !15, i64 8, !7, i64 12}
!111 = !{!10, !16, i64 184}
!112 = !{!15, !15, i64 0}
!113 = !{!10, !15, i64 518}
!114 = !{!115, !15, i64 84}
!115 = !{!"_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, !16, i64 32, !17, i64 36, !11, i64 52, !16, i64 56, !16, i64 60, !16, i64 64, !16, i64 68, !16, i64 72, !16, i64 76, !16, i64 80, !15, i64 84, !15, i64 86, !15, i64 88, !15, i64 90, !15, i64 92, !15, i64 94, !15, i64 96, !15, i64 98, !15, i64 100, !27, i64 102, !27, i64 103, !27, i64 104, !27, i64 105, !27, i64 106, !27, i64 107, !27, i64 108, !27, i64 109, !7, i64 110, !7, i64 111, !7, i64 112, !7, i64 113, !7, i64 113, !7, i64 113, !7, i64 114}
!116 = !{!115, !11, i64 52}
!117 = !{!115, !16, i64 32}
!118 = !{!115, !11, i64 0}
!119 = !{!115, !27, i64 104}
!120 = !{!115, !27, i64 103}
!121 = !{!10, !27, i64 574}
!122 = !{!115, !27, i64 102}
!123 = !{!115, !15, i64 94}
!124 = !{!10, !27, i64 569}
!125 = !{!16, !16, i64 0}
!126 = !{!115, !7, i64 112}
!127 = !{!115, !7, i64 111}
!128 = !{!115, !15, i64 88}
!129 = !{!115, !15, i64 90}
!130 = !{!115, !15, i64 92}
!131 = !{!115, !15, i64 86}
!132 = !{!115, !27, i64 109}
!133 = !{!10, !15, i64 120}
!134 = !{!115, !16, i64 20}
!135 = distinct !{!135, !136}
!136 = !{!"llvm.loop.mustprogress"}
!137 = !{!10, !15, i64 512}
!138 = !{!10, !15, i64 542}
!139 = !{!10, !6, i64 384}
!140 = !{!10, !6, i64 392}
!141 = !{!142, !27, i64 207}
!142 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !6, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !18, i64 88, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !11, i64 136, !11, i64 140, !11, i64 144, !11, i64 148, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !18, i64 184, !18, i64 192, !27, i64 200, !27, i64 201, !27, i64 202, !27, i64 203, !27, i64 204, !27, i64 205, !27, i64 206, !27, i64 207, !27, i64 208, !27, i64 209, !27, i64 210, !27, i64 211, !27, i64 212, !27, i64 213, !7, i64 214, !7, i64 215, !15, i64 216, !15, i64 218, !15, i64 220, !15, i64 222, !15, i64 224, !7, i64 226, !7, i64 227, !27, i64 228, !44, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !11, i64 240, !11, i64 241, !11, i64 242, !18, i64 244, !18, i64 252, !97, i64 264, !143, i64 280, !17, i64 512, !17, i64 528, !17, i64 544, !17, i64 560, !17, i64 576, !17, i64 592, !17, i64 608, !146, i64 624, !146, i64 628, !11, i64 632, !16, i64 636, !16, i64 640, !52, i64 648, !147, i64 664, !16, i64 680, !11, i64 684, !6, i64 688, !148, i64 696, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !7, i64 976, !7, i64 984, !7, i64 1016, !11, i64 1032, !11, i64 1036, !11, i64 1040, !27, i64 1044}
!143 = !{!"_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, !27, i64 64, !27, i64 65, !144, i64 68, !144, i64 72, !144, i64 76, !18, i64 80, !73, i64 88, !15, i64 92, !15, i64 94, !27, i64 96, !27, i64 97, !27, i64 98, !27, i64 99, !18, i64 100, !145, 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, !11, i64 188, !16, i64 192, !16, i64 196, !82, i64 200, !82, i64 216}
!144 = !{!"_ZTS6ImVec1", !16, i64 0}
!145 = !{!"_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}
!146 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!147 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!148 = !{!"_ZTS10ImDrawList", !149, i64 0, !41, i64 16, !150, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !47, i64 80, !151, i64 96, !152, i64 128, !153, i64 152, !154, i64 168, !77, i64 184, !16, i64 200, !6, i64 208}
!149 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!150 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!151 = !{!"_ZTS15ImDrawCmdHeader", !46, i64 0, !61, i64 16, !11, i64 24}
!152 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !83, i64 8}
!153 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!154 = !{!"_ZTS8ImVectorIyE", !11, i64 0, !11, i64 4, !6, i64 8}
!155 = !{!10, !15, i64 546}
!156 = !{!10, !15, i64 544}
!157 = !{!10, !15, i64 516}
!158 = !{!10, !16, i64 216}
!159 = !{i64 0, i64 4, !125, i64 4, i64 4, !125, i64 8, i64 4, !125, i64 12, i64 4, !125}
!160 = !{!10, !16, i64 188}
!161 = !{!10, !16, i64 196}
!162 = !{!10, !16, i64 200}
!163 = !{!10, !27, i64 583}
!164 = !{!11, !11, i64 0}
!165 = !{!115, !27, i64 107}
!166 = !{!115, !16, i64 16}
!167 = !{!10, !27, i64 568}
!168 = !{!115, !16, i64 28}
!169 = !{!10, !16, i64 192}
!170 = distinct !{!170, !136}
!171 = !{!142, !27, i64 201}
!172 = !{!38, !16, i64 3172}
!173 = !{!10, !16, i64 204}
!174 = !{!10, !16, i64 208}
!175 = !{!115, !16, i64 4}
!176 = distinct !{!176, !136}
!177 = distinct !{!177, !136}
!178 = !{!21, !11, i64 20}
!179 = !{!21, !11, i64 16}
!180 = !{!10, !15, i64 524}
!181 = !{!10, !15, i64 522}
!182 = !{!10, !16, i64 240}
!183 = !{!10, !16, i64 244}
!184 = !{!10, !16, i64 248}
!185 = !{!10, !16, i64 252}
!186 = !{!21, !16, i64 4}
!187 = !{!38, !11, i64 5084}
!188 = !{!38, !16, i64 232}
!189 = !{!10, !16, i64 232}
!190 = !{!38, !16, i64 236}
!191 = !{!10, !16, i64 236}
!192 = !{!10, !15, i64 556}
!193 = !{!17, !16, i64 0}
!194 = !{!10, !6, i64 88}
!195 = !{!10, !15, i64 552}
!196 = !{!115, !7, i64 110}
!197 = !{!115, !16, i64 44}
!198 = !{!115, !16, i64 36}
!199 = !{!115, !16, i64 56}
!200 = !{!115, !16, i64 12}
!201 = !{!115, !16, i64 8}
!202 = !{!17, !16, i64 4}
!203 = !{!115, !16, i64 40}
!204 = !{!115, !16, i64 48}
!205 = !{!27, !27, i64 0}
!206 = !{!115, !16, i64 64}
!207 = !{!115, !16, i64 24}
!208 = !{!115, !16, i64 60}
!209 = !{!115, !27, i64 105}
!210 = !{!115, !27, i64 106}
!211 = !{!10, !27, i64 585}
!212 = !{!115, !27, i64 108}
!213 = !{!17, !16, i64 8}
!214 = distinct !{!214, !136}
!215 = !{!10, !16, i64 272}
!216 = !{!38, !11, i64 5088}
!217 = !{!10, !27, i64 580}
!218 = !{!10, !16, i64 280}
!219 = !{!10, !16, i64 296}
!220 = !{!10, !16, i64 288}
!221 = !{!10, !16, i64 172}
!222 = !{!10, !16, i64 176}
!223 = !{!142, !16, i64 620}
!224 = !{!38, !16, i64 3152}
!225 = !{!142, !16, i64 564}
!226 = !{!142, !16, i64 572}
!227 = !{!21, !16, i64 8}
!228 = !{!10, !27, i64 570}
!229 = !{!10, !15, i64 526}
!230 = !{!10, !27, i64 571}
!231 = !{!10, !15, i64 548}
!232 = !{!10, !15, i64 122}
!233 = !{!10, !27, i64 581}
!234 = !{!38, !27, i64 8380}
!235 = !{!10, !27, i64 572}
!236 = !{!10, !15, i64 554}
!237 = !{!142, !16, i64 128}
!238 = !{!10, !15, i64 550}
!239 = !{!21, !16, i64 12}
!240 = !{!142, !16, i64 132}
!241 = !{!10, !6, i64 416}
!242 = !{!142, !6, i64 688}


; 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