; LLVM IR from theolundqvist/parallax-voxel-ray-marcher :: src/external/Dear 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.31, %struct.ImSpan.32, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i16, i16, float, float, float, float, float, i32, i32, [2 x i32], i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, ptr, ptr, %struct.ImGuiTextBuffer, ptr, %struct.ImGuiTableColumnSortSpecs, %struct.ImVector.33, %struct.ImGuiTableSortSpecs, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.31 = type { ptr, ptr }
%struct.ImSpan.32 = type { ptr, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.20 }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImGuiTableSortSpecs = type <{ ptr, i32, i8, [3 x i8] }>
%struct.ImGuiContext = type <{ i8, i8, [6 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, [3 x i8], i32, ptr, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.1, %struct.ImGuiStorage, i32, %struct.ImVec2, [4 x i8], ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, float, i32, i32, i8, i8, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, [4 x i8], i64, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, [2 x i8], ptr, i32, float, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, [4 x i8], %struct.ImGuiNextWindowData, %struct.ImVector.3, %struct.ImVector.4, %struct.ImVector.5, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.9, %struct.ImVector.10, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.ImRect, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, [3 x i8], i32, i32, i32, i32, i32, i32, [4 x i8], %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, ptr, i32, [4 x i8], ptr, ptr, ptr, float, float, i8, [7 x i8], ptr, ptr, i32, i32, i32, i32, i8, [3 x i8], float, i32, i8, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, [4 x i8], %struct.ImVector.11, [16 x i8], ptr, i32, [4 x i8], %struct.ImPool, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector.15, ptr, %struct.ImPool.16, %struct.ImVector.18, %struct.ImVector.19, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, float, float, [3 x float], %struct.ImVec4, %struct.ImGuiComboPreviewData, float, i8, i8, [2 x i8], float, float, float, float, i32, float, [4 x i8], %struct.ImVector.20, %struct.ImVector.6, %struct.ImVec2, %struct.ImVec2, i8, i8, [2 x i8], float, %struct.ImGuiTextBuffer, %struct.ImVector.22, %struct.ImChunkStream, %struct.ImChunkStream.23, %struct.ImVector.24, i32, i8, [3 x i8], i32, [4 x i8], ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, [3 x i8], i32, i32, i32, i8, [3 x i8], i32, %struct.ImGuiMetricsConfig, [120 x float], i32, i32, float, i32, i32, i32, [3073 x i8], [3 x i8] }>
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [22 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [20 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, i32, i32, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], [512 x float], [512 x float], [20 x float], [20 x float], float, i16, %struct.ImVector }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.2 }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type <{ ptr, i32, i32, %struct.ImRect, float, float, float, [4 x i8] }>
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.12, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImPool.16 = type { %struct.ImVector.17, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type { i32, i32, i32, %struct.ImVector, %struct.ImVector.20, %struct.ImVector.20, i8, i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i32, ptr, ptr }
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImFont = type <{ %struct.ImVector.14, float, float, %struct.ImVector, %struct.ImVector.21, ptr, ptr, ptr, i16, i16, i16, i16, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.20 }
%struct.ImChunkStream.23 = type { %struct.ImVector.20 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiTableColumn = type <{ i32, float, float, float, float, float, float, float, %struct.ImRect, i32, float, float, float, float, float, float, float, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }>
%struct.ImGuiWindow = type <{ ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, [2 x i8], i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.6, %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.25, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i8, [7 x i8] }>
%struct.ImGuiWindowTempData = type <{ %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, i32, i16, i16, i32, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.0, ptr, ptr, i32, i32, i32, i32, i32, float, float, [4 x i8], %struct.ImVector.14, %struct.ImVector.14, %struct.ImGuiStackSizes, [2 x i8] }>
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImGuiStackSizes = type { i16, i16, i16, i16, i16, i16, i16 }
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.26, %struct.ImVector, %struct.ImVector.27, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.28, %struct.ImVector.29, %struct.ImVector.30, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.15 }

@GImGui = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [115 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
@.str.14 = external hidden unnamed_addr constant [14 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: mustprogress uwtable
declare dso_local void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(103) 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 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17TableUpdateLayoutEP10ImGuiTable(ptr noundef %0) #4 {
  %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 i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca float, align 4
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca %struct.ImRect, align 4
  %35 = alloca i8, align 1
  %36 = alloca i32, align 4
  %37 = alloca i8, align 1
  %38 = alloca float, align 4
  %39 = alloca %struct.ImRect, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca float, align 4
  %44 = alloca i8, align 1
  %45 = alloca float, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca %struct.ImVec2, align 4
  %49 = alloca %struct.ImVec2, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #9
  %50 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %50, ptr %3, align 8, !tbaa !5
  %51 = load ptr, ptr %2, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.ImGuiTable, ptr %51, i32 0, i32 87
  %53 = load i8, ptr %52, align 1, !tbaa !9, !range !26, !noundef !27
  %54 = trunc i8 %53 to i1
  %55 = zext i1 %54 to i32
  %56 = icmp eq i32 %55, 0
  br i1 %56, label %57, label %58

57:                                               ; preds = %1
  br label %60

58:                                               ; preds = %1
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 717, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

59:                                               ; No predecessors!
  br label %60

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

84:                                               ; preds = %372, %60
  %85 = load i32, ptr %12, align 4, !tbaa !29
  %86 = load ptr, ptr %2, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.ImGuiTable, ptr %86, i32 0, i32 14
  %88 = load i32, ptr %87, align 4, !tbaa !88
  %89 = icmp slt i32 %85, %88
  br i1 %89, label %91, label %90

90:                                               ; preds = %84
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %375

91:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %92 = load ptr, ptr %2, align 8, !tbaa !5
  %93 = getelementptr inbounds %struct.ImGuiTable, ptr %92, i32 0, i32 5
  %94 = load i32, ptr %12, align 4, !tbaa !29
  %95 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %93, i32 noundef %94)
  %96 = load i8, ptr %95, align 1, !tbaa !89
  %97 = sext i8 %96 to i32
  store i32 %97, ptr %14, align 4, !tbaa !29
  %98 = load i32, ptr %14, align 4, !tbaa !29
  %99 = load i32, ptr %12, align 4, !tbaa !29
  %100 = icmp ne i32 %98, %99
  br i1 %100, label %101, label %104

101:                                              ; preds = %91
  %102 = load ptr, ptr %2, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.ImGuiTable, ptr %102, i32 0, i32 95
  store i8 0, ptr %103, align 1, !tbaa !30
  br label %104

104:                                              ; preds = %101, %91
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %105 = load ptr, ptr %2, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.ImGuiTable, ptr %105, i32 0, i32 4
  %107 = load i32, ptr %14, align 4, !tbaa !29
  %108 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %106, i32 noundef %107)
  store ptr %108, ptr %15, align 8, !tbaa !5
  %109 = load ptr, ptr %2, align 8, !tbaa !5
  %110 = getelementptr inbounds %struct.ImGuiTable, ptr %109, i32 0, i32 65
  %111 = load i8, ptr %110, align 1, !tbaa !90
  %112 = sext i8 %111 to i32
  %113 = load i32, ptr %14, align 4, !tbaa !29
  %114 = icmp sle i32 %112, %113
  br i1 %114, label %115, label %124

115:                                              ; preds = %104
  %116 = load ptr, ptr %2, align 8, !tbaa !5
  %117 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef %116, ptr noundef %117, i32 noundef 0)
  %118 = load ptr, ptr %15, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %118, i32 0, i32 17
  store i16 -1, ptr %119, align 4, !tbaa !91
  %120 = load ptr, ptr %15, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %120, i32 0, i32 9
  store i32 0, ptr %121, align 4, !tbaa !93
  %122 = load ptr, ptr %15, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %122, i32 0, i32 7
  store float -1.000000e+00, ptr %123, align 4, !tbaa !94
  br label %124

124:                                              ; preds = %115, %104
  %125 = load ptr, ptr %2, align 8, !tbaa !5
  %126 = getelementptr inbounds %struct.ImGuiTable, ptr %125, i32 0, i32 1
  %127 = load i32, ptr %126, align 4, !tbaa !28
  %128 = and i32 %127, 4
  %129 = icmp ne i32 %128, 0
  br i1 %129, label %130, label %136

130:                                              ; preds = %124
  %131 = load ptr, ptr %15, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %131, i32 0, i32 0
  %133 = load i32, ptr %132, align 4, !tbaa !95
  %134 = and i32 %133, 128
  %135 = icmp ne i32 %134, 0
  br i1 %135, label %136, label %139

136:                                              ; preds = %130, %124
  %137 = load ptr, ptr %15, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %137, i32 0, i32 28
  store i8 1, ptr %138, align 4, !tbaa !96
  br label %139

139:                                              ; preds = %136, %130
  %140 = load ptr, ptr %15, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %140, i32 0, i32 27
  %142 = load i8, ptr %141, align 1, !tbaa !97, !range !26, !noundef !27
  %143 = trunc i8 %142 to i1
  %144 = zext i1 %143 to i32
  %145 = load ptr, ptr %15, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %145, i32 0, i32 28
  %147 = load i8, ptr %146, align 4, !tbaa !96, !range !26, !noundef !27
  %148 = trunc i8 %147 to i1
  %149 = zext i1 %148 to i32
  %150 = icmp ne i32 %144, %149
  br i1 %150, label %151, label %161

151:                                              ; preds = %139
  %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 4, !tbaa !96, !range !26, !noundef !27
  %155 = trunc i8 %154 to i1
  %156 = load ptr, ptr %15, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %156, i32 0, i32 27
  %158 = zext i1 %155 to i8
  store i8 %158, ptr %157, align 1, !tbaa !97
  %159 = load ptr, ptr %2, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.ImGuiTable, ptr %159, i32 0, i32 94
  store i8 1, ptr %160, align 8, !tbaa !98
  br label %161

161:                                              ; preds = %151, %139
  %162 = load ptr, ptr %15, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %162, i32 0, i32 27
  %164 = load i8, ptr %163, align 1, !tbaa !97, !range !26, !noundef !27
  %165 = trunc i8 %164 to i1
  br i1 %165, label %166, label %172

166:                                              ; preds = %161
  %167 = load ptr, ptr %15, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %167, i32 0, i32 0
  %169 = load i32, ptr %168, align 4, !tbaa !95
  %170 = and i32 %169, 1
  %171 = icmp eq i32 %170, 0
  br label %172

172:                                              ; preds = %166, %161
  %173 = phi i1 [ false, %161 ], [ %171, %166 ]
  %174 = load ptr, ptr %15, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %174, i32 0, i32 26
  %176 = zext i1 %173 to i8
  store i8 %176, ptr %175, align 2, !tbaa !99
  %177 = load ptr, ptr %15, align 8, !tbaa !5
  %178 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %177, i32 0, i32 22
  %179 = load i8, ptr %178, align 2, !tbaa !100
  %180 = sext i8 %179 to i32
  %181 = icmp ne i32 %180, -1
  br i1 %181, label %182, label %190

182:                                              ; preds = %172
  %183 = load ptr, ptr %15, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %183, i32 0, i32 26
  %185 = load i8, ptr %184, align 2, !tbaa !99, !range !26, !noundef !27
  %186 = trunc i8 %185 to i1
  br i1 %186, label %190, label %187

187:                                              ; preds = %182
  %188 = load ptr, ptr %2, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.ImGuiTable, ptr %188, i32 0, i32 90
  store i8 1, ptr %189, align 4, !tbaa !101
  br label %190

190:                                              ; preds = %187, %182, %172
  %191 = load ptr, ptr %15, align 8, !tbaa !5
  %192 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %191, i32 0, i32 22
  %193 = load i8, ptr %192, align 2, !tbaa !100
  %194 = sext i8 %193 to i32
  %195 = icmp sgt i32 %194, 0
  br i1 %195, label %196, label %205

196:                                              ; preds = %190
  %197 = load ptr, ptr %2, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.ImGuiTable, ptr %197, i32 0, i32 1
  %199 = load i32, ptr %198, align 4, !tbaa !28
  %200 = and i32 %199, 67108864
  %201 = icmp ne i32 %200, 0
  br i1 %201, label %205, label %202

202:                                              ; preds = %196
  %203 = load ptr, ptr %2, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.ImGuiTable, ptr %203, i32 0, i32 90
  store i8 1, ptr %204, align 4, !tbaa !101
  br label %205

205:                                              ; preds = %202, %196, %190
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #9
  %206 = load ptr, ptr %15, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %206, i32 0, i32 0
  %208 = load i32, ptr %207, align 4, !tbaa !95
  %209 = and i32 %208, 16
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %211, label %216

211:                                              ; preds = %205
  %212 = load ptr, ptr %15, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %212, i32 0, i32 4
  %214 = load float, ptr %213, align 4, !tbaa !102
  %215 = fcmp olt float %214, 0.000000e+00
  br label %221

216:                                              ; preds = %205
  %217 = load ptr, ptr %15, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %217, i32 0, i32 6
  %219 = load float, ptr %218, align 4, !tbaa !103
  %220 = fcmp olt float %219, 0.000000e+00
  br label %221

221:                                              ; preds = %216, %211
  %222 = phi i1 [ %215, %211 ], [ %220, %216 ]
  %223 = zext i1 %222 to i8
  store i8 %223, ptr %16, align 1, !tbaa !86
  %224 = load i8, ptr %16, align 1, !tbaa !86, !range !26, !noundef !27
  %225 = trunc i8 %224 to i1
  br i1 %225, label %226, label %231

226:                                              ; preds = %221
  %227 = load ptr, ptr %15, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %227, i32 0, i32 36
  store i8 7, ptr %228, align 4, !tbaa !104
  %229 = load ptr, ptr %15, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %229, i32 0, i32 35
  store i8 7, ptr %230, align 1, !tbaa !105
  br label %231

231:                                              ; preds = %226, %221
  %232 = load ptr, ptr %15, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %232, i32 0, i32 26
  %234 = load i8, ptr %233, align 2, !tbaa !99, !range !26, !noundef !27
  %235 = trunc i8 %234 to i1
  br i1 %235, label %239, label %236

236:                                              ; preds = %231
  %237 = load ptr, ptr %15, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %237, i32 0, i32 19
  store i8 -1, ptr %238, align 1, !tbaa !106
  store i32 4, ptr %13, align 4
  br label %369

239:                                              ; preds = %231
  %240 = load i32, ptr %7, align 4, !tbaa !29
  %241 = trunc i32 %240 to i8
  %242 = load ptr, ptr %15, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %242, i32 0, i32 20
  store i8 %241, ptr %243, align 4, !tbaa !107
  %244 = load ptr, ptr %15, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %244, i32 0, i32 21
  store i8 -1, ptr %245, align 1, !tbaa !108
  %246 = load i32, ptr %7, align 4, !tbaa !29
  %247 = icmp ne i32 %246, -1
  br i1 %247, label %248, label %256

248:                                              ; preds = %239
  %249 = load i32, ptr %14, align 4, !tbaa !29
  %250 = trunc i32 %249 to i8
  %251 = load ptr, ptr %2, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.ImGuiTable, ptr %251, i32 0, i32 4
  %253 = load i32, ptr %7, align 4, !tbaa !29
  %254 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %252, i32 noundef %253)
  %255 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %254, i32 0, i32 21
  store i8 %250, ptr %255, align 1, !tbaa !108
  br label %261

256:                                              ; preds = %239
  %257 = load i32, ptr %14, align 4, !tbaa !29
  %258 = trunc i32 %257 to i8
  %259 = load ptr, ptr %2, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.ImGuiTable, ptr %259, i32 0, i32 74
  store i8 %258, ptr %260, align 4, !tbaa !34
  br label %261

261:                                              ; preds = %256, %248
  %262 = load ptr, ptr %2, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImGuiTable, ptr %262, i32 0, i32 63
  %264 = load i8, ptr %263, align 1, !tbaa !31
  %265 = add i8 %264, 1
  store i8 %265, ptr %263, align 1, !tbaa !31
  %266 = load ptr, ptr %15, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %266, i32 0, i32 19
  store i8 %264, ptr %267, align 1, !tbaa !106
  %268 = load i32, ptr %14, align 4, !tbaa !29
  %269 = zext i32 %268 to i64
  %270 = shl i64 1, %269
  %271 = load ptr, ptr %2, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ImGuiTable, ptr %271, i32 0, i32 8
  %273 = load i64, ptr %272, align 8, !tbaa !32
  %274 = or i64 %273, %270
  store i64 %274, ptr %272, align 8, !tbaa !32
  %275 = load ptr, ptr %15, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %275, i32 0, i32 18
  %277 = load i8, ptr %276, align 2, !tbaa !109
  %278 = sext i8 %277 to i32
  %279 = zext i32 %278 to i64
  %280 = shl i64 1, %279
  %281 = load ptr, ptr %2, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.ImGuiTable, ptr %281, i32 0, i32 7
  %283 = load i64, ptr %282, align 8, !tbaa !33
  %284 = or i64 %283, %280
  store i64 %284, ptr %282, align 8, !tbaa !33
  %285 = load i32, ptr %14, align 4, !tbaa !29
  store i32 %285, ptr %7, align 4, !tbaa !29
  %286 = load ptr, ptr %15, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %286, i32 0, i32 19
  %288 = load i8, ptr %287, align 1, !tbaa !106
  %289 = sext i8 %288 to i32
  %290 = load ptr, ptr %15, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %290, i32 0, i32 18
  %292 = load i8, ptr %291, align 2, !tbaa !109
  %293 = sext i8 %292 to i32
  %294 = icmp sle i32 %289, %293
  br i1 %294, label %295, label %296

295:                                              ; preds = %261
  br label %298

296:                                              ; preds = %261
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 791, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

297:                                              ; No predecessors!
  br label %298

298:                                              ; preds = %297, %295
  %299 = load ptr, ptr %15, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %299, i32 0, i32 33
  %301 = load i8, ptr %300, align 1, !tbaa !110, !range !26, !noundef !27
  %302 = trunc i8 %301 to i1
  br i1 %302, label %309, label %303

303:                                              ; preds = %298
  %304 = load ptr, ptr %2, align 8, !tbaa !5
  %305 = load ptr, ptr %15, align 8, !tbaa !5
  %306 = call noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef %304, ptr noundef %305)
  %307 = load ptr, ptr %15, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %307, i32 0, i32 5
  store float %306, ptr %308, align 4, !tbaa !111
  br label %309

309:                                              ; preds = %303, %298
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #9
  %310 = load ptr, ptr %15, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %310, i32 0, i32 0
  %312 = load i32, ptr %311, align 4, !tbaa !95
  %313 = and i32 %312, 32
  %314 = icmp eq i32 %313, 0
  %315 = zext i1 %314 to i8
  store i8 %315, ptr %17, align 1, !tbaa !86
  %316 = load i8, ptr %17, align 1, !tbaa !86, !range !26, !noundef !27
  %317 = trunc i8 %316 to i1
  br i1 %317, label %318, label %319

318:                                              ; preds = %309
  store i8 1, ptr %9, align 1, !tbaa !86
  br label %319

319:                                              ; preds = %318, %309
  %320 = load ptr, ptr %15, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %320, i32 0, i32 0
  %322 = load i32, ptr %321, align 4, !tbaa !95
  %323 = and i32 %322, 16
  %324 = icmp ne i32 %323, 0
  br i1 %324, label %325, label %339

325:                                              ; preds = %319
  %326 = load ptr, ptr %15, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %326, i32 0, i32 7
  %328 = load float, ptr %327, align 4, !tbaa !94
  %329 = fcmp ogt float %328, 0.000000e+00
  br i1 %329, label %330, label %339

330:                                              ; preds = %325
  %331 = load i8, ptr %17, align 1, !tbaa !86, !range !26, !noundef !27
  %332 = trunc i8 %331 to i1
  br i1 %332, label %339, label %333

333:                                              ; preds = %330
  %334 = load ptr, ptr %15, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %334, i32 0, i32 7
  %336 = load float, ptr %335, align 4, !tbaa !94
  %337 = load ptr, ptr %15, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %337, i32 0, i32 5
  store float %336, ptr %338, align 4, !tbaa !111
  br label %339

339:                                              ; preds = %333, %330, %325, %319
  %340 = load ptr, ptr %15, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %340, i32 0, i32 35
  %342 = load i8, ptr %341, align 1, !tbaa !105
  %343 = zext i8 %342 to i32
  %344 = icmp ne i32 %343, 0
  br i1 %344, label %345, label %346

345:                                              ; preds = %339
  store i8 1, ptr %8, align 1, !tbaa !86
  br label %346

346:                                              ; preds = %345, %339
  %347 = load ptr, ptr %15, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %347, i32 0, i32 0
  %349 = load i32, ptr %348, align 4, !tbaa !95
  %350 = and i32 %349, 8
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %352, label %360

352:                                              ; preds = %346
  %353 = load ptr, ptr %15, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %353, i32 0, i32 5
  %355 = load float, ptr %354, align 4, !tbaa !111
  %356 = load float, ptr %10, align 4, !tbaa !87
  %357 = fadd float %356, %355
  store float %357, ptr %10, align 4, !tbaa !87
  %358 = load i32, ptr %6, align 4, !tbaa !29
  %359 = add nsw i32 %358, 1
  store i32 %359, ptr %6, align 4, !tbaa !29
  br label %368

360:                                              ; preds = %346
  %361 = load float, ptr %11, align 4, !tbaa !87
  %362 = load ptr, ptr %15, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %362, i32 0, i32 5
  %364 = load float, ptr %363, align 4, !tbaa !111
  %365 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %361, float noundef %364)
  store float %365, ptr %11, align 4, !tbaa !87
  %366 = load i32, ptr %5, align 4, !tbaa !29
  %367 = add nsw i32 %366, 1
  store i32 %367, ptr %5, align 4, !tbaa !29
  br label %368

368:                                              ; preds = %360, %352
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  store i32 0, ptr %13, align 4
  br label %369

369:                                              ; preds = %368, %236
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  %370 = load i32, ptr %13, align 4
  switch i32 %370, label %1626 [
    i32 0, label %371
    i32 4, label %372
  ]

371:                                              ; preds = %369
  br label %372

372:                                              ; preds = %371, %369
  %373 = load i32, ptr %12, align 4, !tbaa !29
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr %12, align 4, !tbaa !29
  br label %84, !llvm.loop !112

375:                                              ; preds = %90
  %376 = load ptr, ptr %2, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.ImGuiTable, ptr %376, i32 0, i32 1
  %378 = load i32, ptr %377, align 4, !tbaa !28
  %379 = and i32 %378, 8
  %380 = icmp ne i32 %379, 0
  br i1 %380, label %381, label %396

381:                                              ; preds = %375
  %382 = load ptr, ptr %2, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.ImGuiTable, ptr %382, i32 0, i32 62
  %384 = load i8, ptr %383, align 8, !tbaa !114
  %385 = sext i8 %384 to i32
  %386 = icmp eq i32 %385, 0
  br i1 %386, label %387, label %396

387:                                              ; preds = %381
  %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 !28
  %391 = and i32 %390, 134217728
  %392 = icmp ne i32 %391, 0
  br i1 %392, label %396, label %393

393:                                              ; preds = %387
  %394 = load ptr, ptr %2, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.ImGuiTable, ptr %394, i32 0, i32 90
  store i8 1, ptr %395, align 4, !tbaa !101
  br label %396

396:                                              ; preds = %393, %387, %381, %375
  %397 = load i32, ptr %7, align 4, !tbaa !29
  %398 = trunc i32 %397 to i8
  %399 = load ptr, ptr %2, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImGuiTable, ptr %399, i32 0, i32 75
  store i8 %398, ptr %400, align 1, !tbaa !115
  %401 = load ptr, ptr %2, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.ImGuiTable, ptr %401, i32 0, i32 74
  %403 = load i8, ptr %402, align 4, !tbaa !34
  %404 = sext i8 %403 to i32
  %405 = icmp sge i32 %404, 0
  br i1 %405, label %406, label %412

406:                                              ; preds = %396
  %407 = load ptr, ptr %2, align 8, !tbaa !5
  %408 = getelementptr inbounds %struct.ImGuiTable, ptr %407, i32 0, i32 75
  %409 = load i8, ptr %408, align 1, !tbaa !115
  %410 = sext i8 %409 to i32
  %411 = icmp sge i32 %410, 0
  br label %412

412:                                              ; preds = %406, %396
  %413 = phi i1 [ false, %396 ], [ %411, %406 ]
  br i1 %413, label %414, label %415

414:                                              ; preds = %412
  br label %417

415:                                              ; preds = %412
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 821, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

416:                                              ; No predecessors!
  br label %417

417:                                              ; preds = %416, %414
  %418 = load i8, ptr %8, align 1, !tbaa !86, !range !26, !noundef !27
  %419 = trunc i8 %418 to i1
  br i1 %419, label %420, label %433

420:                                              ; preds = %417
  %421 = load ptr, ptr %2, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.ImGuiTable, ptr %421, i32 0, i32 55
  %423 = load ptr, ptr %422, align 8, !tbaa !116
  %424 = load ptr, ptr %2, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.ImGuiTable, ptr %424, i32 0, i32 56
  %426 = load ptr, ptr %425, align 8, !tbaa !117
  %427 = icmp ne ptr %423, %426
  br i1 %427, label %428, label %433

428:                                              ; preds = %420
  %429 = load ptr, ptr %2, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.ImGuiTable, ptr %429, i32 0, i32 56
  %431 = load ptr, ptr %430, align 8, !tbaa !117
  %432 = getelementptr inbounds %struct.ImGuiWindow, ptr %431, i32 0, i32 28
  store i8 0, ptr %432, align 1, !tbaa !118
  br label %433

433:                                              ; preds = %428, %420, %417
  %434 = load i8, ptr %8, align 1, !tbaa !86, !range !26, !noundef !27
  %435 = trunc i8 %434 to i1
  br i1 %435, label %436, label %439

436:                                              ; preds = %433
  %437 = load ptr, ptr %2, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.ImGuiTable, ptr %437, i32 0, i32 94
  store i8 1, ptr %438, align 8, !tbaa !98
  br label %439

439:                                              ; preds = %436, %433
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  store float 0.000000e+00, ptr %18, align 4, !tbaa !87
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store float 0.000000e+00, ptr %19, align 4, !tbaa !87
  %440 = load ptr, ptr %2, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.ImGuiTable, ptr %440, i32 0, i32 77
  store i8 -1, ptr %441, align 1, !tbaa !134
  %442 = load ptr, ptr %2, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.ImGuiTable, ptr %442, i32 0, i32 76
  store i8 -1, ptr %443, align 2, !tbaa !135
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 0, ptr %20, align 4, !tbaa !29
  br label %444

444:                                              ; preds = %672, %439
  %445 = load i32, ptr %20, align 4, !tbaa !29
  %446 = load ptr, ptr %2, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.ImGuiTable, ptr %446, i32 0, i32 14
  %448 = load i32, ptr %447, align 4, !tbaa !88
  %449 = icmp slt i32 %445, %448
  br i1 %449, label %451, label %450

450:                                              ; preds = %444
  store i32 5, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %675

451:                                              ; preds = %444
  %452 = load ptr, ptr %2, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.ImGuiTable, ptr %452, i32 0, i32 8
  %454 = load i64, ptr %453, align 8, !tbaa !32
  %455 = load i32, ptr %20, align 4, !tbaa !29
  %456 = zext i32 %455 to i64
  %457 = shl i64 1, %456
  %458 = and i64 %454, %457
  %459 = icmp ne i64 %458, 0
  br i1 %459, label %461, label %460

460:                                              ; preds = %451
  br label %672

461:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %462 = load ptr, ptr %2, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.ImGuiTable, ptr %462, i32 0, i32 4
  %464 = load i32, ptr %20, align 4, !tbaa !29
  %465 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %463, i32 noundef %464)
  store ptr %465, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #9
  %466 = load ptr, ptr %21, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %466, i32 0, i32 0
  %468 = load i32, ptr %467, align 4, !tbaa !95
  %469 = and i32 %468, 32
  %470 = icmp eq i32 %469, 0
  %471 = zext i1 %470 to i8
  store i8 %471, ptr %22, align 1, !tbaa !86
  %472 = load ptr, ptr %21, align 8, !tbaa !5
  %473 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %472, i32 0, i32 0
  %474 = load i32, ptr %473, align 4, !tbaa !95
  %475 = and i32 %474, 16
  %476 = icmp ne i32 %475, 0
  br i1 %476, label %477, label %560

477:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %478 = load ptr, ptr %21, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %478, i32 0, i32 5
  %480 = load float, ptr %479, align 4, !tbaa !111
  store float %480, ptr %23, align 4, !tbaa !87
  %481 = load i32, ptr %4, align 4, !tbaa !29
  %482 = icmp eq i32 %481, 16384
  br i1 %482, label %483, label %494

483:                                              ; preds = %477
  %484 = load ptr, ptr %21, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %484, i32 0, i32 35
  %486 = load i8, ptr %485, align 1, !tbaa !105
  %487 = zext i8 %486 to i32
  %488 = icmp ne i32 %487, 0
  br i1 %488, label %492, label %489

489:                                              ; preds = %483
  %490 = load i8, ptr %22, align 1, !tbaa !86, !range !26, !noundef !27
  %491 = trunc i8 %490 to i1
  br i1 %491, label %494, label %492

492:                                              ; preds = %489, %483
  %493 = load float, ptr %11, align 4, !tbaa !87
  store float %493, ptr %23, align 4, !tbaa !87
  br label %494

494:                                              ; preds = %492, %489, %477
  %495 = load ptr, ptr %21, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %495, i32 0, i32 35
  %497 = load i8, ptr %496, align 1, !tbaa !105
  %498 = zext i8 %497 to i32
  %499 = icmp ne i32 %498, 0
  br i1 %499, label %500, label %504

500:                                              ; preds = %494
  %501 = load float, ptr %23, align 4, !tbaa !87
  %502 = load ptr, ptr %21, align 8, !tbaa !5
  %503 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %502, i32 0, i32 4
  store float %501, ptr %503, align 4, !tbaa !102
  br label %527

504:                                              ; preds = %494
  %505 = load ptr, ptr %21, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %505, i32 0, i32 0
  %507 = load i32, ptr %506, align 4, !tbaa !95
  %508 = and i32 %507, 16
  %509 = icmp ne i32 %508, 0
  br i1 %509, label %510, label %526

510:                                              ; preds = %504
  %511 = load i8, ptr %22, align 1, !tbaa !86, !range !26, !noundef !27
  %512 = trunc i8 %511 to i1
  br i1 %512, label %526, label %513

513:                                              ; preds = %510
  %514 = load ptr, ptr %2, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.ImGuiTable, ptr %514, i32 0, i32 10
  %516 = load i64, ptr %515, align 8, !tbaa !136
  %517 = load i32, ptr %20, align 4, !tbaa !29
  %518 = zext i32 %517 to i64
  %519 = shl i64 1, %518
  %520 = and i64 %516, %519
  %521 = icmp ne i64 %520, 0
  br i1 %521, label %522, label %526

522:                                              ; preds = %513
  %523 = load float, ptr %23, align 4, !tbaa !87
  %524 = load ptr, ptr %21, align 8, !tbaa !5
  %525 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %524, i32 0, i32 4
  store float %523, ptr %525, align 4, !tbaa !102
  br label %526

526:                                              ; preds = %522, %513, %510, %504
  br label %527

527:                                              ; preds = %526, %500
  %528 = load ptr, ptr %21, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %528, i32 0, i32 35
  %530 = load i8, ptr %529, align 1, !tbaa !105
  %531 = zext i8 %530 to i32
  %532 = icmp sgt i32 %531, 1
  br i1 %532, label %533, label %554

533:                                              ; preds = %527
  %534 = load ptr, ptr %2, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct.ImGuiTable, ptr %534, i32 0, i32 89
  %536 = load i8, ptr %535, align 1, !tbaa !137, !range !26, !noundef !27
  %537 = trunc i8 %536 to i1
  br i1 %537, label %538, label %554

538:                                              ; preds = %533
  %539 = load ptr, ptr %21, align 8, !tbaa !5
  %540 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %539, i32 0, i32 33
  %541 = load i8, ptr %540, align 1, !tbaa !110, !range !26, !noundef !27
  %542 = trunc i8 %541 to i1
  br i1 %542, label %554, label %543

543:                                              ; preds = %538
  %544 = load ptr, ptr %21, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %544, i32 0, i32 4
  %546 = load float, ptr %545, align 4, !tbaa !102
  %547 = load ptr, ptr %2, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.ImGuiTable, ptr %547, i32 0, i32 32
  %549 = load float, ptr %548, align 4, !tbaa !85
  %550 = fmul float %549, 4.000000e+00
  %551 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %546, float noundef %550)
  %552 = load ptr, ptr %21, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %552, i32 0, i32 4
  store float %551, ptr %553, align 4, !tbaa !102
  br label %554

554:                                              ; preds = %543, %538, %533, %527
  %555 = load ptr, ptr %21, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %555, i32 0, i32 4
  %557 = load float, ptr %556, align 4, !tbaa !102
  %558 = load float, ptr %18, align 4, !tbaa !87
  %559 = fadd float %558, %557
  store float %559, ptr %18, align 4, !tbaa !87
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %664

560:                                              ; preds = %461
  %561 = load ptr, ptr %21, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %561, i32 0, i32 35
  %563 = load i8, ptr %562, align 1, !tbaa !105
  %564 = zext i8 %563 to i32
  %565 = icmp ne i32 %564, 0
  br i1 %565, label %574, label %566

566:                                              ; preds = %560
  %567 = load ptr, ptr %21, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %567, i32 0, i32 6
  %569 = load float, ptr %568, align 4, !tbaa !103
  %570 = fcmp olt float %569, 0.000000e+00
  br i1 %570, label %574, label %571

571:                                              ; preds = %566
  %572 = load i8, ptr %22, align 1, !tbaa !86, !range !26, !noundef !27
  %573 = trunc i8 %572 to i1
  br i1 %573, label %604, label %574

574:                                              ; preds = %571, %566, %560
  %575 = load ptr, ptr %21, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %575, i32 0, i32 7
  %577 = load float, ptr %576, align 4, !tbaa !94
  %578 = fcmp ogt float %577, 0.000000e+00
  br i1 %578, label %579, label %585

579:                                              ; preds = %574
  %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 !94
  %583 = load ptr, ptr %21, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %583, i32 0, i32 6
  store float %582, ptr %584, align 4, !tbaa !103
  br label %603

585:                                              ; preds = %574
  %586 = load i32, ptr %4, align 4, !tbaa !29
  %587 = icmp eq i32 %586, 24576
  br i1 %587, label %588, label %599

588:                                              ; preds = %585
  %589 = load ptr, ptr %21, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %589, i32 0, i32 5
  %591 = load float, ptr %590, align 4, !tbaa !111
  %592 = load float, ptr %10, align 4, !tbaa !87
  %593 = fdiv float %591, %592
  %594 = load i32, ptr %6, align 4, !tbaa !29
  %595 = sitofp i32 %594 to float
  %596 = fmul float %593, %595
  %597 = load ptr, ptr %21, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %597, i32 0, i32 6
  store float %596, ptr %598, align 4, !tbaa !103
  br label %602

599:                                              ; preds = %585
  %600 = load ptr, ptr %21, align 8, !tbaa !5
  %601 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %600, i32 0, i32 6
  store float 1.000000e+00, ptr %601, align 4, !tbaa !103
  br label %602

602:                                              ; preds = %599, %588
  br label %603

603:                                              ; preds = %602, %579
  br label %604

604:                                              ; preds = %603, %571
  %605 = load ptr, ptr %21, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %605, i32 0, i32 6
  %607 = load float, ptr %606, align 4, !tbaa !103
  %608 = load float, ptr %19, align 4, !tbaa !87
  %609 = fadd float %608, %607
  store float %609, ptr %19, align 4, !tbaa !87
  %610 = load ptr, ptr %2, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.ImGuiTable, ptr %610, i32 0, i32 76
  %612 = load i8, ptr %611, align 2, !tbaa !135
  %613 = sext i8 %612 to i32
  %614 = icmp eq i32 %613, -1
  br i1 %614, label %631, label %615

615:                                              ; preds = %604
  %616 = load ptr, ptr %2, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ImGuiTable, ptr %616, i32 0, i32 4
  %618 = load ptr, ptr %2, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.ImGuiTable, ptr %618, i32 0, i32 76
  %620 = load i8, ptr %619, align 2, !tbaa !135
  %621 = sext i8 %620 to i32
  %622 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %617, i32 noundef %621)
  %623 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %622, i32 0, i32 18
  %624 = load i8, ptr %623, align 2, !tbaa !109
  %625 = sext i8 %624 to i32
  %626 = load ptr, ptr %21, align 8, !tbaa !5
  %627 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %626, i32 0, i32 18
  %628 = load i8, ptr %627, align 2, !tbaa !109
  %629 = sext i8 %628 to i32
  %630 = icmp sgt i32 %625, %629
  br i1 %630, label %631, label %636

631:                                              ; preds = %615, %604
  %632 = load i32, ptr %20, align 4, !tbaa !29
  %633 = trunc i32 %632 to i8
  %634 = load ptr, ptr %2, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.ImGuiTable, ptr %634, i32 0, i32 76
  store i8 %633, ptr %635, align 2, !tbaa !135
  br label %636

636:                                              ; preds = %631, %615
  %637 = load ptr, ptr %2, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.ImGuiTable, ptr %637, i32 0, i32 77
  %639 = load i8, ptr %638, align 1, !tbaa !134
  %640 = sext i8 %639 to i32
  %641 = icmp eq i32 %640, -1
  br i1 %641, label %658, label %642

642:                                              ; preds = %636
  %643 = load ptr, ptr %2, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.ImGuiTable, ptr %643, i32 0, i32 4
  %645 = load ptr, ptr %2, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.ImGuiTable, ptr %645, i32 0, i32 77
  %647 = load i8, ptr %646, align 1, !tbaa !134
  %648 = sext i8 %647 to i32
  %649 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %644, i32 noundef %648)
  %650 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %649, i32 0, i32 18
  %651 = load i8, ptr %650, align 2, !tbaa !109
  %652 = sext i8 %651 to i32
  %653 = load ptr, ptr %21, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %653, i32 0, i32 18
  %655 = load i8, ptr %654, align 2, !tbaa !109
  %656 = sext i8 %655 to i32
  %657 = icmp slt i32 %652, %656
  br i1 %657, label %658, label %663

658:                                              ; preds = %642, %636
  %659 = load i32, ptr %20, align 4, !tbaa !29
  %660 = trunc i32 %659 to i8
  %661 = load ptr, ptr %2, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.ImGuiTable, ptr %661, i32 0, i32 77
  store i8 %660, ptr %662, align 1, !tbaa !134
  br label %663

663:                                              ; preds = %658, %642
  br label %664

664:                                              ; preds = %663, %554
  %665 = load ptr, ptr %21, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %665, i32 0, i32 33
  store i8 0, ptr %666, align 1, !tbaa !110
  %667 = load ptr, ptr %2, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.ImGuiTable, ptr %667, i32 0, i32 34
  %669 = load float, ptr %668, align 4, !tbaa !138
  %670 = load float, ptr %18, align 4, !tbaa !87
  %671 = call float @llvm.fmuladd.f32(float %669, float 2.000000e+00, float %670)
  store float %671, ptr %18, align 4, !tbaa !87
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %672

672:                                              ; preds = %664, %460
  %673 = load i32, ptr %20, align 4, !tbaa !29
  %674 = add nsw i32 %673, 1
  store i32 %674, ptr %20, align 4, !tbaa !29
  br label %444, !llvm.loop !139

675:                                              ; preds = %450
  %676 = load i32, ptr %5, align 4, !tbaa !29
  %677 = trunc i32 %676 to i8
  %678 = load ptr, ptr %2, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.ImGuiTable, ptr %678, i32 0, i32 64
  store i8 %677, ptr %679, align 2, !tbaa !140
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #9
  %680 = load ptr, ptr %2, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.ImGuiTable, ptr %680, i32 0, i32 48
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 4 %681, i64 16, i1 false), !tbaa.struct !141
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %682 = load ptr, ptr %2, align 8, !tbaa !5
  %683 = getelementptr inbounds %struct.ImGuiTable, ptr %682, i32 0, i32 33
  %684 = load float, ptr %683, align 8, !tbaa !142
  %685 = load ptr, ptr %2, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.ImGuiTable, ptr %685, i32 0, i32 36
  %687 = load float, ptr %686, align 4, !tbaa !143
  %688 = load ptr, ptr %2, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.ImGuiTable, ptr %688, i32 0, i32 37
  %690 = load float, ptr %689, align 8, !tbaa !144
  %691 = fadd float %687, %690
  %692 = load ptr, ptr %2, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.ImGuiTable, ptr %692, i32 0, i32 63
  %694 = load i8, ptr %693, align 1, !tbaa !31
  %695 = sext i8 %694 to i32
  %696 = sub nsw i32 %695, 1
  %697 = sitofp i32 %696 to float
  %698 = fmul float %691, %697
  %699 = call float @llvm.fmuladd.f32(float %684, float 2.000000e+00, float %698)
  store float %699, ptr %25, align 4, !tbaa !87
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %700 = load ptr, ptr %2, align 8, !tbaa !5
  %701 = getelementptr inbounds %struct.ImGuiTable, ptr %700, i32 0, i32 1
  %702 = load i32, ptr %701, align 4, !tbaa !28
  %703 = and i32 %702, 16777216
  %704 = icmp ne i32 %703, 0
  br i1 %704, label %705, label %714

705:                                              ; preds = %675
  %706 = load ptr, ptr %2, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.ImGuiTable, ptr %706, i32 0, i32 40
  %708 = load float, ptr %707, align 4, !tbaa !145
  %709 = fcmp oeq float %708, 0.000000e+00
  br i1 %709, label %710, label %714

710:                                              ; preds = %705
  %711 = load ptr, ptr %2, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.ImGuiTable, ptr %711, i32 0, i32 49
  %713 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %712)
  br label %716

714:                                              ; preds = %705, %675
  %715 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %24)
  br label %716

716:                                              ; preds = %714, %710
  %717 = phi float [ %713, %710 ], [ %715, %714 ]
  store float %717, ptr %26, align 4, !tbaa !87
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %718 = load float, ptr %26, align 4, !tbaa !87
  %719 = load float, ptr %25, align 4, !tbaa !87
  %720 = fsub float %718, %719
  %721 = load float, ptr %18, align 4, !tbaa !87
  %722 = fsub float %720, %721
  store float %722, ptr %27, align 4, !tbaa !87
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %723 = load float, ptr %27, align 4, !tbaa !87
  store float %723, ptr %28, align 4, !tbaa !87
  %724 = load float, ptr %25, align 4, !tbaa !87
  %725 = load ptr, ptr %2, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.ImGuiTable, ptr %725, i32 0, i32 34
  %727 = load float, ptr %726, align 4, !tbaa !138
  %728 = fmul float %727, 2.000000e+00
  %729 = load ptr, ptr %2, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.ImGuiTable, ptr %729, i32 0, i32 63
  %731 = load i8, ptr %730, align 1, !tbaa !31
  %732 = sext i8 %731 to i32
  %733 = sitofp i32 %732 to float
  %734 = call float @llvm.fmuladd.f32(float %728, float %733, float %724)
  %735 = load ptr, ptr %2, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.ImGuiTable, ptr %735, i32 0, i32 41
  store float %734, ptr %736, align 8, !tbaa !146
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  store i32 0, ptr %29, align 4, !tbaa !29
  br label %737

737:                                              ; preds = %822, %716
  %738 = load i32, ptr %29, align 4, !tbaa !29
  %739 = load ptr, ptr %2, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.ImGuiTable, ptr %739, i32 0, i32 14
  %741 = load i32, ptr %740, align 4, !tbaa !88
  %742 = icmp slt i32 %738, %741
  br i1 %742, label %744, label %743

743:                                              ; preds = %737
  store i32 8, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %825

744:                                              ; preds = %737
  %745 = load ptr, ptr %2, align 8, !tbaa !5
  %746 = getelementptr inbounds %struct.ImGuiTable, ptr %745, i32 0, i32 8
  %747 = load i64, ptr %746, align 8, !tbaa !32
  %748 = load i32, ptr %29, align 4, !tbaa !29
  %749 = zext i32 %748 to i64
  %750 = shl i64 1, %749
  %751 = and i64 %747, %750
  %752 = icmp ne i64 %751, 0
  br i1 %752, label %754, label %753

753:                                              ; preds = %744
  br label %822

754:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %755 = load ptr, ptr %2, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.ImGuiTable, ptr %755, i32 0, i32 4
  %757 = load i32, ptr %29, align 4, !tbaa !29
  %758 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %756, i32 noundef %757)
  store ptr %758, ptr %30, align 8, !tbaa !5
  %759 = load ptr, ptr %30, align 8, !tbaa !5
  %760 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %759, i32 0, i32 0
  %761 = load i32, ptr %760, align 4, !tbaa !95
  %762 = and i32 %761, 8
  %763 = icmp ne i32 %762, 0
  br i1 %763, label %764, label %787

764:                                              ; preds = %754
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %765 = load ptr, ptr %30, align 8, !tbaa !5
  %766 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %765, i32 0, i32 6
  %767 = load float, ptr %766, align 4, !tbaa !103
  %768 = load float, ptr %19, align 4, !tbaa !87
  %769 = fdiv float %767, %768
  store float %769, ptr %31, align 4, !tbaa !87
  %770 = load float, ptr %27, align 4, !tbaa !87
  %771 = load float, ptr %31, align 4, !tbaa !87
  %772 = fmul float %770, %771
  %773 = load ptr, ptr %2, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.ImGuiTable, ptr %773, i32 0, i32 32
  %775 = load float, ptr %774, align 4, !tbaa !85
  %776 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %772, float noundef %775)
  %777 = fadd float %776, 0x3F847AE140000000
  %778 = fptosi float %777 to i32
  %779 = sitofp i32 %778 to float
  %780 = load ptr, ptr %30, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %780, i32 0, i32 4
  store float %779, ptr %781, align 4, !tbaa !102
  %782 = load ptr, ptr %30, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %782, i32 0, i32 4
  %784 = load float, ptr %783, align 4, !tbaa !102
  %785 = load float, ptr %28, align 4, !tbaa !87
  %786 = fsub float %785, %784
  store float %786, ptr %28, align 4, !tbaa !87
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %787

787:                                              ; preds = %764, %754
  %788 = load ptr, ptr %30, align 8, !tbaa !5
  %789 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %788, i32 0, i32 21
  %790 = load i8, ptr %789, align 1, !tbaa !108
  %791 = sext i8 %790 to i32
  %792 = icmp eq i32 %791, -1
  br i1 %792, label %793, label %804

793:                                              ; preds = %787
  %794 = load ptr, ptr %2, align 8, !tbaa !5
  %795 = getelementptr inbounds %struct.ImGuiTable, ptr %794, i32 0, i32 76
  %796 = load i8, ptr %795, align 2, !tbaa !135
  %797 = sext i8 %796 to i32
  %798 = icmp ne i32 %797, -1
  br i1 %798, label %799, label %804

799:                                              ; preds = %793
  %800 = load ptr, ptr %30, align 8, !tbaa !5
  %801 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %800, i32 0, i32 0
  %802 = load i32, ptr %801, align 4, !tbaa !95
  %803 = or i32 %802, 1073741824
  store i32 %803, ptr %801, align 4, !tbaa !95
  br label %804

804:                                              ; preds = %799, %793, %787
  %805 = load ptr, ptr %30, align 8, !tbaa !5
  %806 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %805, i32 0, i32 4
  %807 = load float, ptr %806, align 4, !tbaa !102
  %808 = load ptr, ptr %2, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.ImGuiTable, ptr %808, i32 0, i32 32
  %810 = load float, ptr %809, align 4, !tbaa !85
  %811 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %807, float noundef %810)
  %812 = call noundef float @_ZL7ImFloorf(float noundef %811)
  %813 = load ptr, ptr %30, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %813, i32 0, i32 1
  store float %812, ptr %814, align 4, !tbaa !147
  %815 = load ptr, ptr %30, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %815, i32 0, i32 1
  %817 = load float, ptr %816, align 4, !tbaa !147
  %818 = load ptr, ptr %2, align 8, !tbaa !5
  %819 = getelementptr inbounds %struct.ImGuiTable, ptr %818, i32 0, i32 41
  %820 = load float, ptr %819, align 8, !tbaa !146
  %821 = fadd float %820, %817
  store float %821, ptr %819, align 8, !tbaa !146
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  br label %822

822:                                              ; preds = %804, %753
  %823 = load i32, ptr %29, align 4, !tbaa !29
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr %29, align 4, !tbaa !29
  br label %737, !llvm.loop !148

825:                                              ; preds = %743
  %826 = load float, ptr %28, align 4, !tbaa !87
  %827 = fcmp oge float %826, 1.000000e+00
  br i1 %827, label %828, label %895

828:                                              ; preds = %825
  %829 = load ptr, ptr %2, align 8, !tbaa !5
  %830 = getelementptr inbounds %struct.ImGuiTable, ptr %829, i32 0, i32 1
  %831 = load i32, ptr %830, align 4, !tbaa !28
  %832 = and i32 %831, 524288
  %833 = icmp ne i32 %832, 0
  br i1 %833, label %895, label %834

834:                                              ; preds = %828
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %835 = load ptr, ptr %2, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.ImGuiTable, ptr %835, i32 0, i32 14
  %837 = load i32, ptr %836, align 4, !tbaa !88
  %838 = sub nsw i32 %837, 1
  store i32 %838, ptr %32, align 4, !tbaa !29
  br label %839

839:                                              ; preds = %891, %834
  %840 = load float, ptr %19, align 4, !tbaa !87
  %841 = fcmp ogt float %840, 0.000000e+00
  br i1 %841, label %842, label %848

842:                                              ; preds = %839
  %843 = load float, ptr %28, align 4, !tbaa !87
  %844 = fcmp oge float %843, 1.000000e+00
  br i1 %844, label %845, label %848

845:                                              ; preds = %842
  %846 = load i32, ptr %32, align 4, !tbaa !29
  %847 = icmp sge i32 %846, 0
  br label %848

848:                                              ; preds = %845, %842, %839
  %849 = phi i1 [ false, %842 ], [ false, %839 ], [ %847, %845 ]
  br i1 %849, label %851, label %850

850:                                              ; preds = %848
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %894

851:                                              ; preds = %848
  %852 = load ptr, ptr %2, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.ImGuiTable, ptr %852, i32 0, i32 7
  %854 = load i64, ptr %853, align 8, !tbaa !33
  %855 = load i32, ptr %32, align 4, !tbaa !29
  %856 = zext i32 %855 to i64
  %857 = shl i64 1, %856
  %858 = and i64 %854, %857
  %859 = icmp ne i64 %858, 0
  br i1 %859, label %861, label %860

860:                                              ; preds = %851
  br label %891

861:                                              ; preds = %851
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %862 = load ptr, ptr %2, align 8, !tbaa !5
  %863 = getelementptr inbounds %struct.ImGuiTable, ptr %862, i32 0, i32 4
  %864 = load ptr, ptr %2, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.ImGuiTable, ptr %864, i32 0, i32 5
  %866 = load i32, ptr %32, align 4, !tbaa !29
  %867 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %865, i32 noundef %866)
  %868 = load i8, ptr %867, align 1, !tbaa !89
  %869 = sext i8 %868 to i32
  %870 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %863, i32 noundef %869)
  store ptr %870, ptr %33, align 8, !tbaa !5
  %871 = load ptr, ptr %33, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %871, i32 0, i32 0
  %873 = load i32, ptr %872, align 4, !tbaa !95
  %874 = and i32 %873, 8
  %875 = icmp ne i32 %874, 0
  br i1 %875, label %877, label %876

876:                                              ; preds = %861
  store i32 13, ptr %13, align 4
  br label %888

877:                                              ; preds = %861
  %878 = load ptr, ptr %33, align 8, !tbaa !5
  %879 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %878, i32 0, i32 4
  %880 = load float, ptr %879, align 4, !tbaa !102
  %881 = fadd float %880, 1.000000e+00
  store float %881, ptr %879, align 4, !tbaa !102
  %882 = load ptr, ptr %33, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %882, i32 0, i32 1
  %884 = load float, ptr %883, align 4, !tbaa !147
  %885 = fadd float %884, 1.000000e+00
  store float %885, ptr %883, align 4, !tbaa !147
  %886 = load float, ptr %28, align 4, !tbaa !87
  %887 = fsub float %886, 1.000000e+00
  store float %887, ptr %28, align 4, !tbaa !87
  store i32 0, ptr %13, align 4
  br label %888

888:                                              ; preds = %877, %876
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  %889 = load i32, ptr %13, align 4
  switch i32 %889, label %1626 [
    i32 0, label %890
    i32 13, label %891
  ]

890:                                              ; preds = %888
  br label %891

891:                                              ; preds = %890, %888, %860
  %892 = load i32, ptr %32, align 4, !tbaa !29
  %893 = add nsw i32 %892, -1
  store i32 %893, ptr %32, align 4, !tbaa !29
  br label %839, !llvm.loop !149

894:                                              ; preds = %850
  br label %895

895:                                              ; preds = %894, %828, %825
  %896 = load ptr, ptr %2, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.ImGuiTable, ptr %896, i32 0, i32 66
  store i8 -1, ptr %897, align 4, !tbaa !150
  %898 = load ptr, ptr %2, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.ImGuiTable, ptr %898, i32 0, i32 67
  store i8 -1, ptr %899, align 1, !tbaa !151
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #9
  %900 = load ptr, ptr %2, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.ImGuiTable, ptr %900, i32 0, i32 46
  %902 = getelementptr inbounds %struct.ImRect, ptr %901, i32 0, i32 0
  %903 = getelementptr inbounds %struct.ImVec2, ptr %902, i32 0, i32 0
  %904 = load float, ptr %903, align 4, !tbaa !152
  %905 = load ptr, ptr %2, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.ImGuiTable, ptr %905, i32 0, i32 46
  %907 = getelementptr inbounds %struct.ImRect, ptr %906, i32 0, i32 0
  %908 = getelementptr inbounds %struct.ImVec2, ptr %907, i32 0, i32 1
  %909 = load float, ptr %908, align 4, !tbaa !153
  %910 = load ptr, ptr %2, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.ImGuiTable, ptr %910, i32 0, i32 46
  %912 = getelementptr inbounds %struct.ImRect, ptr %911, i32 0, i32 1
  %913 = getelementptr inbounds %struct.ImVec2, ptr %912, i32 0, i32 0
  %914 = load float, ptr %913, align 4, !tbaa !154
  %915 = load ptr, ptr %2, align 8, !tbaa !5
  %916 = getelementptr inbounds %struct.ImGuiTable, ptr %915, i32 0, i32 46
  %917 = getelementptr inbounds %struct.ImRect, ptr %916, i32 0, i32 1
  %918 = getelementptr inbounds %struct.ImVec2, ptr %917, i32 0, i32 1
  %919 = load float, ptr %918, align 4, !tbaa !155
  %920 = load ptr, ptr %2, align 8, !tbaa !5
  %921 = getelementptr inbounds %struct.ImGuiTable, ptr %920, i32 0, i32 46
  %922 = getelementptr inbounds %struct.ImRect, ptr %921, i32 0, i32 0
  %923 = getelementptr inbounds %struct.ImVec2, ptr %922, i32 0, i32 1
  %924 = load float, ptr %923, align 4, !tbaa !153
  %925 = load ptr, ptr %2, align 8, !tbaa !5
  %926 = getelementptr inbounds %struct.ImGuiTable, ptr %925, i32 0, i32 38
  %927 = load float, ptr %926, align 4, !tbaa !156
  %928 = fadd float %924, %927
  %929 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %919, float noundef %928)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %34, float noundef %904, float noundef %909, float noundef %914, float noundef %929)
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #9
  %930 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectj(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef 0)
  %931 = zext i1 %930 to i8
  store i8 %931, ptr %35, align 1, !tbaa !86
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #9
  %932 = load ptr, ptr %2, align 8, !tbaa !5
  %933 = getelementptr inbounds %struct.ImGuiTable, ptr %932, i32 0, i32 82
  %934 = load i8, ptr %933, align 4, !tbaa !157
  %935 = sext i8 %934 to i32
  %936 = icmp sgt i32 %935, 0
  %937 = zext i1 %936 to i8
  store i8 %937, ptr %37, align 1, !tbaa !86
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %938 = load ptr, ptr %2, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.ImGuiTable, ptr %938, i32 0, i32 82
  %940 = load i8, ptr %939, align 4, !tbaa !157
  %941 = sext i8 %940 to i32
  %942 = icmp sgt i32 %941, 0
  br i1 %942, label %943, label %949

943:                                              ; preds = %895
  %944 = load ptr, ptr %2, align 8, !tbaa !5
  %945 = getelementptr inbounds %struct.ImGuiTable, ptr %944, i32 0, i32 46
  %946 = getelementptr inbounds %struct.ImRect, ptr %945, i32 0, i32 0
  %947 = getelementptr inbounds %struct.ImVec2, ptr %946, i32 0, i32 0
  %948 = load float, ptr %947, align 4, !tbaa !152
  br label %953

949:                                              ; preds = %895
  %950 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %951 = getelementptr inbounds %struct.ImVec2, ptr %950, i32 0, i32 0
  %952 = load float, ptr %951, align 4, !tbaa !158
  br label %953

953:                                              ; preds = %949, %943
  %954 = phi float [ %948, %943 ], [ %952, %949 ]
  %955 = load ptr, ptr %2, align 8, !tbaa !5
  %956 = getelementptr inbounds %struct.ImGuiTable, ptr %955, i32 0, i32 33
  %957 = load float, ptr %956, align 8, !tbaa !142
  %958 = fadd float %954, %957
  %959 = load ptr, ptr %2, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.ImGuiTable, ptr %959, i32 0, i32 36
  %961 = load float, ptr %960, align 4, !tbaa !143
  %962 = fsub float %958, %961
  store float %962, ptr %38, align 4, !tbaa !87
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #9
  %963 = load ptr, ptr %2, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.ImGuiTable, ptr %963, i32 0, i32 49
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %39, ptr align 4 %964, i64 16, i1 false), !tbaa.struct !141
  %965 = load ptr, ptr %2, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.ImGuiTable, ptr %965, i32 0, i32 9
  store i64 0, ptr %966, align 8, !tbaa !159
  %967 = load ptr, ptr %2, align 8, !tbaa !5
  %968 = getelementptr inbounds %struct.ImGuiTable, ptr %967, i32 0, i32 10
  store i64 0, ptr %968, align 8, !tbaa !136
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  store i32 0, ptr %40, align 4, !tbaa !29
  br label %969

969:                                              ; preds = %1422, %953
  %970 = load i32, ptr %40, align 4, !tbaa !29
  %971 = load ptr, ptr %2, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.ImGuiTable, ptr %971, i32 0, i32 14
  %973 = load i32, ptr %972, align 4, !tbaa !88
  %974 = icmp slt i32 %970, %973
  br i1 %974, label %976, label %975

975:                                              ; preds = %969
  store i32 14, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1425

976:                                              ; preds = %969
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %977 = load ptr, ptr %2, align 8, !tbaa !5
  %978 = getelementptr inbounds %struct.ImGuiTable, ptr %977, i32 0, i32 5
  %979 = load i32, ptr %40, align 4, !tbaa !29
  %980 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %978, i32 noundef %979)
  %981 = load i8, ptr %980, align 1, !tbaa !89
  %982 = sext i8 %981 to i32
  store i32 %982, ptr %41, align 4, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %983 = load ptr, ptr %2, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.ImGuiTable, ptr %983, i32 0, i32 4
  %985 = load i32, ptr %41, align 4, !tbaa !29
  %986 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %984, i32 noundef %985)
  store ptr %986, ptr %42, align 8, !tbaa !5
  %987 = load ptr, ptr %2, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.ImGuiTable, ptr %987, i32 0, i32 80
  %989 = load i8, ptr %988, align 2, !tbaa !160
  %990 = sext i8 %989 to i32
  %991 = icmp sgt i32 %990, 0
  br i1 %991, label %999, label %992

992:                                              ; preds = %976
  %993 = load i32, ptr %41, align 4, !tbaa !29
  %994 = load ptr, ptr %2, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.ImGuiTable, ptr %994, i32 0, i32 82
  %996 = load i8, ptr %995, align 4, !tbaa !157
  %997 = sext i8 %996 to i32
  %998 = icmp slt i32 %993, %997
  br label %999

999:                                              ; preds = %992, %976
  %1000 = phi i1 [ true, %976 ], [ %998, %992 ]
  %1001 = zext i1 %1000 to i64
  %1002 = select i1 %1000, i32 1, i32 0
  %1003 = trunc i32 %1002 to i8
  %1004 = load ptr, ptr %42, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1004, i32 0, i32 34
  store i8 %1003, ptr %1005, align 2, !tbaa !161
  %1006 = load i8, ptr %37, align 1, !tbaa !86, !range !26, !noundef !27
  %1007 = trunc i8 %1006 to i1
  br i1 %1007, label %1008, label %1027

1008:                                             ; preds = %999
  %1009 = load ptr, ptr %2, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.ImGuiTable, ptr %1009, i32 0, i32 82
  %1011 = load i8, ptr %1010, align 4, !tbaa !157
  %1012 = sext i8 %1011 to i32
  %1013 = load i32, ptr %36, align 4, !tbaa !29
  %1014 = icmp eq i32 %1012, %1013
  br i1 %1014, label %1015, label %1027

1015:                                             ; preds = %1008
  %1016 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1017 = getelementptr inbounds %struct.ImVec2, ptr %1016, i32 0, i32 0
  %1018 = load float, ptr %1017, align 4, !tbaa !158
  %1019 = load ptr, ptr %2, align 8, !tbaa !5
  %1020 = getelementptr inbounds %struct.ImGuiTable, ptr %1019, i32 0, i32 46
  %1021 = getelementptr inbounds %struct.ImRect, ptr %1020, i32 0, i32 0
  %1022 = getelementptr inbounds %struct.ImVec2, ptr %1021, i32 0, i32 0
  %1023 = load float, ptr %1022, align 4, !tbaa !152
  %1024 = fsub float %1018, %1023
  %1025 = load float, ptr %38, align 4, !tbaa !87
  %1026 = fadd float %1025, %1024
  store float %1026, ptr %38, align 4, !tbaa !87
  store i8 0, ptr %37, align 1, !tbaa !86
  br label %1027

1027:                                             ; preds = %1015, %1008, %999
  %1028 = load ptr, ptr %42, align 8, !tbaa !5
  %1029 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1028, i32 0, i32 0
  %1030 = load i32, ptr %1029, align 4, !tbaa !95
  %1031 = and i32 %1030, -251658241
  store i32 %1031, ptr %1029, align 4, !tbaa !95
  %1032 = load ptr, ptr %2, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.ImGuiTable, ptr %1032, i32 0, i32 7
  %1034 = load i64, ptr %1033, align 8, !tbaa !33
  %1035 = load i32, ptr %40, align 4, !tbaa !29
  %1036 = zext i32 %1035 to i64
  %1037 = shl i64 1, %1036
  %1038 = and i64 %1034, %1037
  %1039 = icmp eq i64 %1038, 0
  br i1 %1039, label %1040, label %1081

1040:                                             ; preds = %1027
  %1041 = load float, ptr %38, align 4, !tbaa !87
  %1042 = load ptr, ptr %42, align 8, !tbaa !5
  %1043 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1042, i32 0, i32 8
  %1044 = getelementptr inbounds %struct.ImRect, ptr %1043, i32 0, i32 1
  %1045 = getelementptr inbounds %struct.ImVec2, ptr %1044, i32 0, i32 0
  store float %1041, ptr %1045, align 4, !tbaa !162
  %1046 = load ptr, ptr %42, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1046, i32 0, i32 8
  %1048 = getelementptr inbounds %struct.ImRect, ptr %1047, i32 0, i32 0
  %1049 = getelementptr inbounds %struct.ImVec2, ptr %1048, i32 0, i32 0
  store float %1041, ptr %1049, align 4, !tbaa !163
  %1050 = load ptr, ptr %42, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1050, i32 0, i32 10
  store float %1041, ptr %1051, align 4, !tbaa !164
  %1052 = load ptr, ptr %42, align 8, !tbaa !5
  %1053 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1052, i32 0, i32 3
  store float %1041, ptr %1053, align 4, !tbaa !165
  %1054 = load ptr, ptr %42, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1054, i32 0, i32 2
  store float %1041, ptr %1055, align 4, !tbaa !166
  %1056 = load ptr, ptr %42, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1056, i32 0, i32 1
  store float 0.000000e+00, ptr %1057, align 4, !tbaa !147
  %1058 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1059 = getelementptr inbounds %struct.ImVec2, ptr %1058, i32 0, i32 1
  %1060 = load float, ptr %1059, align 4, !tbaa !167
  %1061 = load ptr, ptr %42, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1061, i32 0, i32 8
  %1063 = getelementptr inbounds %struct.ImRect, ptr %1062, i32 0, i32 0
  %1064 = getelementptr inbounds %struct.ImVec2, ptr %1063, i32 0, i32 1
  store float %1060, ptr %1064, align 4, !tbaa !168
  %1065 = load ptr, ptr %42, align 8, !tbaa !5
  %1066 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1065, i32 0, i32 8
  %1067 = getelementptr inbounds %struct.ImRect, ptr %1066, i32 0, i32 1
  %1068 = getelementptr inbounds %struct.ImVec2, ptr %1067, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1068, align 4, !tbaa !169
  %1069 = load ptr, ptr %42, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1069, i32 0, i32 8
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1070, ptr noundef nonnull align 4 dereferenceable(16) %39)
  %1071 = load ptr, ptr %42, align 8, !tbaa !5
  %1072 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1071, i32 0, i32 31
  store i8 0, ptr %1072, align 1, !tbaa !170
  %1073 = load ptr, ptr %42, align 8, !tbaa !5
  %1074 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1073, i32 0, i32 30
  store i8 0, ptr %1074, align 2, !tbaa !171
  %1075 = load ptr, ptr %42, align 8, !tbaa !5
  %1076 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1075, i32 0, i32 29
  store i8 0, ptr %1076, align 1, !tbaa !172
  %1077 = load ptr, ptr %42, align 8, !tbaa !5
  %1078 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1077, i32 0, i32 32
  store i8 1, ptr %1078, align 4, !tbaa !173
  %1079 = load ptr, ptr %42, align 8, !tbaa !5
  %1080 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1079, i32 0, i32 12
  store float 1.000000e+00, ptr %1080, align 4, !tbaa !174
  store i32 16, ptr %13, align 4
  br label %1419

1081:                                             ; preds = %1027
  %1082 = load i8, ptr %35, align 1, !tbaa !86, !range !26, !noundef !27
  %1083 = trunc i8 %1082 to i1
  br i1 %1083, label %1084, label %1113

1084:                                             ; preds = %1081
  %1085 = load ptr, ptr %3, align 8, !tbaa !5
  %1086 = getelementptr inbounds %struct.ImGuiContext, ptr %1085, i32 0, i32 3
  %1087 = getelementptr inbounds %struct.ImGuiIO, ptr %1086, i32 0, i32 36
  %1088 = getelementptr inbounds %struct.ImVec2, ptr %1087, i32 0, i32 0
  %1089 = load float, ptr %1088, align 8, !tbaa !175
  %1090 = load ptr, ptr %42, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1090, i32 0, i32 8
  %1092 = getelementptr inbounds %struct.ImRect, ptr %1091, i32 0, i32 0
  %1093 = getelementptr inbounds %struct.ImVec2, ptr %1092, i32 0, i32 0
  %1094 = load float, ptr %1093, align 4, !tbaa !163
  %1095 = fcmp oge float %1089, %1094
  br i1 %1095, label %1096, label %1113

1096:                                             ; preds = %1084
  %1097 = load ptr, ptr %3, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.ImGuiContext, ptr %1097, i32 0, i32 3
  %1099 = getelementptr inbounds %struct.ImGuiIO, ptr %1098, i32 0, i32 36
  %1100 = getelementptr inbounds %struct.ImVec2, ptr %1099, i32 0, i32 0
  %1101 = load float, ptr %1100, align 8, !tbaa !175
  %1102 = load ptr, ptr %42, align 8, !tbaa !5
  %1103 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1102, i32 0, i32 8
  %1104 = getelementptr inbounds %struct.ImRect, ptr %1103, i32 0, i32 1
  %1105 = getelementptr inbounds %struct.ImVec2, ptr %1104, i32 0, i32 0
  %1106 = load float, ptr %1105, align 4, !tbaa !162
  %1107 = fcmp olt float %1101, %1106
  br i1 %1107, label %1108, label %1113

1108:                                             ; preds = %1096
  %1109 = load i32, ptr %41, align 4, !tbaa !29
  %1110 = trunc i32 %1109 to i8
  %1111 = load ptr, ptr %2, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.ImGuiTable, ptr %1111, i32 0, i32 66
  store i8 %1110, ptr %1112, align 4, !tbaa !150
  br label %1113

1113:                                             ; preds = %1108, %1096, %1084, %1081
  %1114 = load float, ptr %38, align 4, !tbaa !87
  %1115 = load ptr, ptr %42, align 8, !tbaa !5
  %1116 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1115, i32 0, i32 2
  store float %1114, ptr %1116, align 4, !tbaa !166
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1117 = load ptr, ptr %2, align 8, !tbaa !5
  %1118 = load i32, ptr %41, align 4, !tbaa !29
  %1119 = call noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef %1117, i32 noundef %1118)
  store float %1119, ptr %43, align 4, !tbaa !87
  %1120 = load ptr, ptr %42, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1120, i32 0, i32 1
  %1122 = load float, ptr %1121, align 4, !tbaa !147
  %1123 = load float, ptr %43, align 4, !tbaa !87
  %1124 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1122, float noundef %1123)
  %1125 = load ptr, ptr %42, align 8, !tbaa !5
  %1126 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1125, i32 0, i32 1
  store float %1124, ptr %1126, align 4, !tbaa !147
  %1127 = load ptr, ptr %42, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1127, i32 0, i32 1
  %1129 = load float, ptr %1128, align 4, !tbaa !147
  %1130 = load ptr, ptr %42, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1130, i32 0, i32 4
  %1132 = load float, ptr %1131, align 4, !tbaa !102
  %1133 = load ptr, ptr %2, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.ImGuiTable, ptr %1133, i32 0, i32 32
  %1135 = load float, ptr %1134, align 4, !tbaa !85
  %1136 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1132, float noundef %1135)
  %1137 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1129, float noundef %1136)
  %1138 = load ptr, ptr %42, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1138, i32 0, i32 1
  store float %1137, ptr %1139, align 4, !tbaa !147
  %1140 = load float, ptr %38, align 4, !tbaa !87
  %1141 = load ptr, ptr %42, align 8, !tbaa !5
  %1142 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1141, i32 0, i32 1
  %1143 = load float, ptr %1142, align 4, !tbaa !147
  %1144 = fadd float %1140, %1143
  %1145 = load ptr, ptr %2, align 8, !tbaa !5
  %1146 = getelementptr inbounds %struct.ImGuiTable, ptr %1145, i32 0, i32 36
  %1147 = load float, ptr %1146, align 4, !tbaa !143
  %1148 = fadd float %1144, %1147
  %1149 = load ptr, ptr %2, align 8, !tbaa !5
  %1150 = getelementptr inbounds %struct.ImGuiTable, ptr %1149, i32 0, i32 37
  %1151 = load float, ptr %1150, align 8, !tbaa !144
  %1152 = fadd float %1148, %1151
  %1153 = load ptr, ptr %2, align 8, !tbaa !5
  %1154 = getelementptr inbounds %struct.ImGuiTable, ptr %1153, i32 0, i32 34
  %1155 = load float, ptr %1154, align 4, !tbaa !138
  %1156 = call float @llvm.fmuladd.f32(float %1155, float 2.000000e+00, float %1152)
  %1157 = load ptr, ptr %42, align 8, !tbaa !5
  %1158 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1157, i32 0, i32 3
  store float %1156, ptr %1158, align 4, !tbaa !165
  %1159 = load ptr, ptr %42, align 8, !tbaa !5
  %1160 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1159, i32 0, i32 2
  %1161 = load float, ptr %1160, align 4, !tbaa !166
  %1162 = load ptr, ptr %2, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.ImGuiTable, ptr %1162, i32 0, i32 34
  %1164 = load float, ptr %1163, align 4, !tbaa !138
  %1165 = fadd float %1161, %1164
  %1166 = load ptr, ptr %2, align 8, !tbaa !5
  %1167 = getelementptr inbounds %struct.ImGuiTable, ptr %1166, i32 0, i32 36
  %1168 = load float, ptr %1167, align 4, !tbaa !143
  %1169 = fadd float %1165, %1168
  %1170 = load ptr, ptr %42, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1170, i32 0, i32 10
  store float %1169, ptr %1171, align 4, !tbaa !164
  %1172 = load ptr, ptr %42, align 8, !tbaa !5
  %1173 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1172, i32 0, i32 3
  %1174 = load float, ptr %1173, align 4, !tbaa !165
  %1175 = load ptr, ptr %2, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.ImGuiTable, ptr %1175, i32 0, i32 34
  %1177 = load float, ptr %1176, align 4, !tbaa !138
  %1178 = fsub float %1174, %1177
  %1179 = load ptr, ptr %2, align 8, !tbaa !5
  %1180 = getelementptr inbounds %struct.ImGuiTable, ptr %1179, i32 0, i32 37
  %1181 = load float, ptr %1180, align 8, !tbaa !144
  %1182 = fsub float %1178, %1181
  %1183 = load ptr, ptr %42, align 8, !tbaa !5
  %1184 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1183, i32 0, i32 11
  store float %1182, ptr %1184, align 4, !tbaa !176
  %1185 = load ptr, ptr %42, align 8, !tbaa !5
  %1186 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1185, i32 0, i32 1
  %1187 = load float, ptr %1186, align 4, !tbaa !147
  %1188 = fmul float %1187, 0x3FE4CCCCC0000000
  %1189 = call noundef float @_ZL7ImFloorf(float noundef %1188)
  %1190 = load ptr, ptr %42, align 8, !tbaa !5
  %1191 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1190, i32 0, i32 12
  store float %1189, ptr %1191, align 4, !tbaa !174
  %1192 = load ptr, ptr %42, align 8, !tbaa !5
  %1193 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1192, i32 0, i32 2
  %1194 = load float, ptr %1193, align 4, !tbaa !166
  %1195 = load ptr, ptr %42, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1195, i32 0, i32 8
  %1197 = getelementptr inbounds %struct.ImRect, ptr %1196, i32 0, i32 0
  %1198 = getelementptr inbounds %struct.ImVec2, ptr %1197, i32 0, i32 0
  store float %1194, ptr %1198, align 4, !tbaa !163
  %1199 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1200 = getelementptr inbounds %struct.ImVec2, ptr %1199, i32 0, i32 1
  %1201 = load float, ptr %1200, align 4, !tbaa !167
  %1202 = load ptr, ptr %42, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1202, i32 0, i32 8
  %1204 = getelementptr inbounds %struct.ImRect, ptr %1203, i32 0, i32 0
  %1205 = getelementptr inbounds %struct.ImVec2, ptr %1204, i32 0, i32 1
  store float %1201, ptr %1205, align 4, !tbaa !168
  %1206 = load ptr, ptr %42, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1206, i32 0, i32 3
  %1208 = load float, ptr %1207, align 4, !tbaa !165
  %1209 = load ptr, ptr %42, align 8, !tbaa !5
  %1210 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1209, i32 0, i32 8
  %1211 = getelementptr inbounds %struct.ImRect, ptr %1210, i32 0, i32 1
  %1212 = getelementptr inbounds %struct.ImVec2, ptr %1211, i32 0, i32 0
  store float %1208, ptr %1212, align 4, !tbaa !162
  %1213 = load ptr, ptr %42, align 8, !tbaa !5
  %1214 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1213, i32 0, i32 8
  %1215 = getelementptr inbounds %struct.ImRect, ptr %1214, i32 0, i32 1
  %1216 = getelementptr inbounds %struct.ImVec2, ptr %1215, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1216, align 4, !tbaa !169
  %1217 = load ptr, ptr %42, align 8, !tbaa !5
  %1218 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1217, i32 0, i32 8
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1218, ptr noundef nonnull align 4 dereferenceable(16) %39)
  %1219 = load ptr, ptr %42, align 8, !tbaa !5
  %1220 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1219, i32 0, i32 8
  %1221 = getelementptr inbounds %struct.ImRect, ptr %1220, i32 0, i32 1
  %1222 = getelementptr inbounds %struct.ImVec2, ptr %1221, i32 0, i32 0
  %1223 = load float, ptr %1222, align 4, !tbaa !162
  %1224 = load ptr, ptr %42, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1224, i32 0, i32 8
  %1226 = getelementptr inbounds %struct.ImRect, ptr %1225, i32 0, i32 0
  %1227 = getelementptr inbounds %struct.ImVec2, ptr %1226, i32 0, i32 0
  %1228 = load float, ptr %1227, align 4, !tbaa !163
  %1229 = fcmp ogt float %1223, %1228
  %1230 = load ptr, ptr %42, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1230, i32 0, i32 29
  %1232 = zext i1 %1229 to i8
  store i8 %1232, ptr %1231, align 1, !tbaa !172
  %1233 = load ptr, ptr %42, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1233, i32 0, i32 30
  store i8 1, ptr %1234, align 2, !tbaa !171
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #9
  %1235 = load ptr, ptr %42, align 8, !tbaa !5
  %1236 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1235, i32 0, i32 29
  %1237 = load i8, ptr %1236, align 1, !tbaa !172, !range !26, !noundef !27
  %1238 = trunc i8 %1237 to i1
  %1239 = zext i1 %1238 to i8
  store i8 %1239, ptr %44, align 1, !tbaa !86
  %1240 = load i8, ptr %44, align 1, !tbaa !86, !range !26, !noundef !27
  %1241 = trunc i8 %1240 to i1
  br i1 %1241, label %1242, label %1250

1242:                                             ; preds = %1113
  %1243 = load i32, ptr %41, align 4, !tbaa !29
  %1244 = zext i32 %1243 to i64
  %1245 = shl i64 1, %1244
  %1246 = load ptr, ptr %2, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.ImGuiTable, ptr %1246, i32 0, i32 9
  %1248 = load i64, ptr %1247, align 8, !tbaa !159
  %1249 = or i64 %1248, %1245
  store i64 %1249, ptr %1247, align 8, !tbaa !159
  br label %1250

1250:                                             ; preds = %1242, %1113
  %1251 = load i8, ptr %44, align 1, !tbaa !86, !range !26, !noundef !27
  %1252 = trunc i8 %1251 to i1
  br i1 %1252, label %1265, label %1253

1253:                                             ; preds = %1250
  %1254 = load ptr, ptr %42, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1254, i32 0, i32 35
  %1256 = load i8, ptr %1255, align 1, !tbaa !105
  %1257 = zext i8 %1256 to i32
  %1258 = icmp ne i32 %1257, 0
  br i1 %1258, label %1265, label %1259

1259:                                             ; preds = %1253
  %1260 = load ptr, ptr %42, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1260, i32 0, i32 36
  %1262 = load i8, ptr %1261, align 4, !tbaa !104
  %1263 = zext i8 %1262 to i32
  %1264 = icmp ne i32 %1263, 0
  br label %1265

1265:                                             ; preds = %1259, %1253, %1250
  %1266 = phi i1 [ true, %1253 ], [ true, %1250 ], [ %1264, %1259 ]
  %1267 = load ptr, ptr %42, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1267, i32 0, i32 31
  %1269 = zext i1 %1266 to i8
  store i8 %1269, ptr %1268, align 1, !tbaa !170
  %1270 = load ptr, ptr %42, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1270, i32 0, i32 31
  %1272 = load i8, ptr %1271, align 1, !tbaa !170, !range !26, !noundef !27
  %1273 = trunc i8 %1272 to i1
  br i1 %1273, label %1274, label %1282

1274:                                             ; preds = %1265
  %1275 = load i32, ptr %41, align 4, !tbaa !29
  %1276 = zext i32 %1275 to i64
  %1277 = shl i64 1, %1276
  %1278 = load ptr, ptr %2, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.ImGuiTable, ptr %1278, i32 0, i32 10
  %1280 = load i64, ptr %1279, align 8, !tbaa !136
  %1281 = or i64 %1280, %1277
  store i64 %1281, ptr %1279, align 8, !tbaa !136
  br label %1282

1282:                                             ; preds = %1274, %1265
  %1283 = load ptr, ptr %42, align 8, !tbaa !5
  %1284 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1283, i32 0, i32 26
  %1285 = load i8, ptr %1284, align 2, !tbaa !99, !range !26, !noundef !27
  %1286 = trunc i8 %1285 to i1
  br i1 %1286, label %1287, label %1292

1287:                                             ; preds = %1282
  %1288 = load ptr, ptr %2, align 8, !tbaa !5
  %1289 = getelementptr inbounds %struct.ImGuiTable, ptr %1288, i32 0, i32 101
  %1290 = load i8, ptr %1289, align 1, !tbaa !177, !range !26, !noundef !27
  %1291 = trunc i8 %1290 to i1
  br label %1292

1292:                                             ; preds = %1287, %1282
  %1293 = phi i1 [ true, %1282 ], [ %1291, %1287 ]
  %1294 = load ptr, ptr %42, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1294, i32 0, i32 32
  %1296 = zext i1 %1293 to i8
  store i8 %1296, ptr %1295, align 4, !tbaa !173
  %1297 = load ptr, ptr %42, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1297, i32 0, i32 32
  %1299 = load i8, ptr %1298, align 4, !tbaa !173, !range !26, !noundef !27
  %1300 = trunc i8 %1299 to i1
  br i1 %1300, label %1301, label %1309

1301:                                             ; preds = %1292
  %1302 = load i8, ptr %44, align 1, !tbaa !86, !range !26, !noundef !27
  %1303 = trunc i8 %1302 to i1
  %1304 = xor i1 %1303, true
  br i1 %1304, label %1305, label %1306

1305:                                             ; preds = %1301
  br label %1308

1306:                                             ; preds = %1301
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 1029, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

1307:                                             ; No predecessors!
  br label %1308

1308:                                             ; preds = %1307, %1305
  br label %1309

1309:                                             ; preds = %1308, %1292
  %1310 = load ptr, ptr %42, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1310, i32 0, i32 0
  %1312 = load i32, ptr %1311, align 4, !tbaa !95
  %1313 = or i32 %1312, 16777216
  store i32 %1313, ptr %1311, align 4, !tbaa !95
  %1314 = load i8, ptr %44, align 1, !tbaa !86, !range !26, !noundef !27
  %1315 = trunc i8 %1314 to i1
  br i1 %1315, label %1316, label %1321

1316:                                             ; preds = %1309
  %1317 = load ptr, ptr %42, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1317, i32 0, i32 0
  %1319 = load i32, ptr %1318, align 4, !tbaa !95
  %1320 = or i32 %1319, 33554432
  store i32 %1320, ptr %1318, align 4, !tbaa !95
  br label %1321

1321:                                             ; preds = %1316, %1309
  %1322 = load ptr, ptr %42, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1322, i32 0, i32 22
  %1324 = load i8, ptr %1323, align 2, !tbaa !100
  %1325 = sext i8 %1324 to i32
  %1326 = icmp ne i32 %1325, -1
  br i1 %1326, label %1327, label %1332

1327:                                             ; preds = %1321
  %1328 = load ptr, ptr %42, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1328, i32 0, i32 0
  %1330 = load i32, ptr %1329, align 4, !tbaa !95
  %1331 = or i32 %1330, 67108864
  store i32 %1331, ptr %1329, align 4, !tbaa !95
  br label %1332

1332:                                             ; preds = %1327, %1321
  %1333 = load ptr, ptr %2, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.ImGuiTable, ptr %1333, i32 0, i32 66
  %1335 = load i8, ptr %1334, align 4, !tbaa !150
  %1336 = sext i8 %1335 to i32
  %1337 = load i32, ptr %41, align 4, !tbaa !29
  %1338 = icmp eq i32 %1336, %1337
  br i1 %1338, label %1339, label %1344

1339:                                             ; preds = %1332
  %1340 = load ptr, ptr %42, align 8, !tbaa !5
  %1341 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1340, i32 0, i32 0
  %1342 = load i32, ptr %1341, align 4, !tbaa !95
  %1343 = or i32 %1342, 134217728
  store i32 %1343, ptr %1341, align 4, !tbaa !95
  br label %1344

1344:                                             ; preds = %1339, %1332
  %1345 = load ptr, ptr %42, align 8, !tbaa !5
  %1346 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1345, i32 0, i32 10
  %1347 = load float, ptr %1346, align 4, !tbaa !164
  %1348 = load ptr, ptr %42, align 8, !tbaa !5
  %1349 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1348, i32 0, i32 14
  store float %1347, ptr %1349, align 4, !tbaa !178
  %1350 = load ptr, ptr %42, align 8, !tbaa !5
  %1351 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1350, i32 0, i32 13
  store float %1347, ptr %1351, align 4, !tbaa !179
  %1352 = load ptr, ptr %42, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1352, i32 0, i32 10
  %1354 = load float, ptr %1353, align 4, !tbaa !164
  %1355 = load ptr, ptr %42, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1355, i32 0, i32 16
  store float %1354, ptr %1356, align 4, !tbaa !180
  %1357 = load ptr, ptr %42, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1357, i32 0, i32 15
  store float %1354, ptr %1358, align 4, !tbaa !181
  %1359 = load ptr, ptr %2, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.ImGuiTable, ptr %1359, i32 0, i32 101
  %1361 = load i8, ptr %1360, align 1, !tbaa !177, !range !26, !noundef !27
  %1362 = trunc i8 %1361 to i1
  %1363 = zext i1 %1362 to i32
  %1364 = icmp eq i32 %1363, 0
  br i1 %1364, label %1365, label %1378

1365:                                             ; preds = %1344
  %1366 = load ptr, ptr %42, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1366, i32 0, i32 35
  %1368 = load i8, ptr %1367, align 1, !tbaa !105
  %1369 = zext i8 %1368 to i32
  %1370 = ashr i32 %1369, 1
  %1371 = trunc i32 %1370 to i8
  store i8 %1371, ptr %1367, align 1, !tbaa !105
  %1372 = load ptr, ptr %42, align 8, !tbaa !5
  %1373 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1372, i32 0, i32 36
  %1374 = load i8, ptr %1373, align 4, !tbaa !104
  %1375 = zext i8 %1374 to i32
  %1376 = ashr i32 %1375, 1
  %1377 = trunc i32 %1376 to i8
  store i8 %1377, ptr %1373, align 4, !tbaa !104
  br label %1378

1378:                                             ; preds = %1365, %1344
  %1379 = load i32, ptr %36, align 4, !tbaa !29
  %1380 = load ptr, ptr %2, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.ImGuiTable, ptr %1380, i32 0, i32 82
  %1382 = load i8, ptr %1381, align 4, !tbaa !157
  %1383 = sext i8 %1382 to i32
  %1384 = icmp slt i32 %1379, %1383
  br i1 %1384, label %1385, label %1399

1385:                                             ; preds = %1378
  %1386 = load ptr, ptr %42, align 8, !tbaa !5
  %1387 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1386, i32 0, i32 3
  %1388 = load float, ptr %1387, align 4, !tbaa !165
  %1389 = fadd float %1388, 1.000000e+00
  %1390 = getelementptr inbounds %struct.ImRect, ptr %39, i32 0, i32 0
  %1391 = getelementptr inbounds %struct.ImVec2, ptr %1390, i32 0, i32 0
  %1392 = load float, ptr %1391, align 4, !tbaa !158
  %1393 = getelementptr inbounds %struct.ImRect, ptr %39, i32 0, i32 1
  %1394 = getelementptr inbounds %struct.ImVec2, ptr %1393, i32 0, i32 0
  %1395 = load float, ptr %1394, align 4, !tbaa !182
  %1396 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1389, float noundef %1392, float noundef %1395)
  %1397 = getelementptr inbounds %struct.ImRect, ptr %39, i32 0, i32 0
  %1398 = getelementptr inbounds %struct.ImVec2, ptr %1397, i32 0, i32 0
  store float %1396, ptr %1398, align 4, !tbaa !158
  br label %1399

1399:                                             ; preds = %1385, %1378
  %1400 = load ptr, ptr %42, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1400, i32 0, i32 1
  %1402 = load float, ptr %1401, align 4, !tbaa !147
  %1403 = load ptr, ptr %2, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.ImGuiTable, ptr %1403, i32 0, i32 36
  %1405 = load float, ptr %1404, align 4, !tbaa !143
  %1406 = fadd float %1402, %1405
  %1407 = load ptr, ptr %2, align 8, !tbaa !5
  %1408 = getelementptr inbounds %struct.ImGuiTable, ptr %1407, i32 0, i32 37
  %1409 = load float, ptr %1408, align 8, !tbaa !144
  %1410 = fadd float %1406, %1409
  %1411 = load ptr, ptr %2, align 8, !tbaa !5
  %1412 = getelementptr inbounds %struct.ImGuiTable, ptr %1411, i32 0, i32 34
  %1413 = load float, ptr %1412, align 4, !tbaa !138
  %1414 = call float @llvm.fmuladd.f32(float %1413, float 2.000000e+00, float %1410)
  %1415 = load float, ptr %38, align 4, !tbaa !87
  %1416 = fadd float %1415, %1414
  store float %1416, ptr %38, align 4, !tbaa !87
  %1417 = load i32, ptr %36, align 4, !tbaa !29
  %1418 = add nsw i32 %1417, 1
  store i32 %1418, ptr %36, align 4, !tbaa !29
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  store i32 0, ptr %13, align 4
  br label %1419

1419:                                             ; preds = %1399, %1040
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  %1420 = load i32, ptr %13, align 4
  switch i32 %1420, label %1626 [
    i32 0, label %1421
    i32 16, label %1422
  ]

1421:                                             ; preds = %1419
  br label %1422

1422:                                             ; preds = %1421, %1419
  %1423 = load i32, ptr %40, align 4, !tbaa !29
  %1424 = add nsw i32 %1423, 1
  store i32 %1424, ptr %40, align 4, !tbaa !29
  br label %969, !llvm.loop !183

1425:                                             ; preds = %975
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %1426 = load ptr, ptr %2, align 8, !tbaa !5
  %1427 = getelementptr inbounds %struct.ImGuiTable, ptr %1426, i32 0, i32 48
  %1428 = getelementptr inbounds %struct.ImRect, ptr %1427, i32 0, i32 0
  %1429 = getelementptr inbounds %struct.ImVec2, ptr %1428, i32 0, i32 0
  %1430 = load float, ptr %1429, align 4, !tbaa !184
  %1431 = load ptr, ptr %2, align 8, !tbaa !5
  %1432 = getelementptr inbounds %struct.ImGuiTable, ptr %1431, i32 0, i32 4
  %1433 = load ptr, ptr %2, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.ImGuiTable, ptr %1433, i32 0, i32 75
  %1435 = load i8, ptr %1434, align 1, !tbaa !115
  %1436 = sext i8 %1435 to i32
  %1437 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1432, i32 noundef %1436)
  %1438 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1437, i32 0, i32 8
  %1439 = getelementptr inbounds %struct.ImRect, ptr %1438, i32 0, i32 1
  %1440 = getelementptr inbounds %struct.ImVec2, ptr %1439, i32 0, i32 0
  %1441 = load float, ptr %1440, align 4, !tbaa !162
  %1442 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1430, float noundef %1441)
  store float %1442, ptr %45, align 4, !tbaa !87
  %1443 = load i8, ptr %35, align 1, !tbaa !86, !range !26, !noundef !27
  %1444 = trunc i8 %1443 to i1
  br i1 %1444, label %1445, label %1467

1445:                                             ; preds = %1425
  %1446 = load ptr, ptr %2, align 8, !tbaa !5
  %1447 = getelementptr inbounds %struct.ImGuiTable, ptr %1446, i32 0, i32 66
  %1448 = load i8, ptr %1447, align 4, !tbaa !150
  %1449 = sext i8 %1448 to i32
  %1450 = icmp eq i32 %1449, -1
  br i1 %1450, label %1451, label %1467

1451:                                             ; preds = %1445
  %1452 = load ptr, ptr %3, align 8, !tbaa !5
  %1453 = getelementptr inbounds %struct.ImGuiContext, ptr %1452, i32 0, i32 3
  %1454 = getelementptr inbounds %struct.ImGuiIO, ptr %1453, i32 0, i32 36
  %1455 = getelementptr inbounds %struct.ImVec2, ptr %1454, i32 0, i32 0
  %1456 = load float, ptr %1455, align 8, !tbaa !175
  %1457 = load float, ptr %45, align 4, !tbaa !87
  %1458 = fcmp oge float %1456, %1457
  br i1 %1458, label %1459, label %1466

1459:                                             ; preds = %1451
  %1460 = load ptr, ptr %2, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.ImGuiTable, ptr %1460, i32 0, i32 14
  %1462 = load i32, ptr %1461, align 4, !tbaa !88
  %1463 = trunc i32 %1462 to i8
  %1464 = load ptr, ptr %2, align 8, !tbaa !5
  %1465 = getelementptr inbounds %struct.ImGuiTable, ptr %1464, i32 0, i32 66
  store i8 %1463, ptr %1465, align 4, !tbaa !150
  br label %1466

1466:                                             ; preds = %1459, %1451
  br label %1467

1467:                                             ; preds = %1466, %1445, %1425
  %1468 = load i8, ptr %9, align 1, !tbaa !86, !range !26, !noundef !27
  %1469 = trunc i8 %1468 to i1
  %1470 = zext i1 %1469 to i32
  %1471 = icmp eq i32 %1470, 0
  br i1 %1471, label %1472, label %1483

1472:                                             ; preds = %1467
  %1473 = load ptr, ptr %2, align 8, !tbaa !5
  %1474 = getelementptr inbounds %struct.ImGuiTable, ptr %1473, i32 0, i32 1
  %1475 = load i32, ptr %1474, align 4, !tbaa !28
  %1476 = and i32 %1475, 1
  %1477 = icmp ne i32 %1476, 0
  br i1 %1477, label %1478, label %1483

1478:                                             ; preds = %1472
  %1479 = load ptr, ptr %2, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.ImGuiTable, ptr %1479, i32 0, i32 1
  %1481 = load i32, ptr %1480, align 4, !tbaa !28
  %1482 = and i32 %1481, -2
  store i32 %1482, ptr %1480, align 4, !tbaa !28
  br label %1483

1483:                                             ; preds = %1478, %1472, %1467
  %1484 = load ptr, ptr %2, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.ImGuiTable, ptr %1484, i32 0, i32 77
  %1486 = load i8, ptr %1485, align 1, !tbaa !134
  %1487 = sext i8 %1486 to i32
  %1488 = icmp ne i32 %1487, -1
  br i1 %1488, label %1489, label %1494

1489:                                             ; preds = %1483
  %1490 = load ptr, ptr %2, align 8, !tbaa !5
  %1491 = getelementptr inbounds %struct.ImGuiTable, ptr %1490, i32 0, i32 1
  %1492 = load i32, ptr %1491, align 4, !tbaa !28
  %1493 = and i32 %1492, -65537
  store i32 %1493, ptr %1491, align 4, !tbaa !28
  br label %1494

1494:                                             ; preds = %1489, %1483
  %1495 = load ptr, ptr %2, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.ImGuiTable, ptr %1495, i32 0, i32 1
  %1497 = load i32, ptr %1496, align 4, !tbaa !28
  %1498 = and i32 %1497, 65536
  %1499 = icmp ne i32 %1498, 0
  br i1 %1499, label %1500, label %1521

1500:                                             ; preds = %1494
  %1501 = load float, ptr %45, align 4, !tbaa !87
  %1502 = load ptr, ptr %2, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.ImGuiTable, ptr %1502, i32 0, i32 48
  %1504 = getelementptr inbounds %struct.ImRect, ptr %1503, i32 0, i32 1
  %1505 = getelementptr inbounds %struct.ImVec2, ptr %1504, i32 0, i32 0
  store float %1501, ptr %1505, align 4, !tbaa !185
  %1506 = load ptr, ptr %2, align 8, !tbaa !5
  %1507 = getelementptr inbounds %struct.ImGuiTable, ptr %1506, i32 0, i32 46
  %1508 = getelementptr inbounds %struct.ImRect, ptr %1507, i32 0, i32 1
  %1509 = getelementptr inbounds %struct.ImVec2, ptr %1508, i32 0, i32 0
  store float %1501, ptr %1509, align 4, !tbaa !154
  %1510 = load ptr, ptr %2, align 8, !tbaa !5
  %1511 = getelementptr inbounds %struct.ImGuiTable, ptr %1510, i32 0, i32 49
  %1512 = getelementptr inbounds %struct.ImRect, ptr %1511, i32 0, i32 1
  %1513 = getelementptr inbounds %struct.ImVec2, ptr %1512, i32 0, i32 0
  %1514 = load float, ptr %1513, align 4, !tbaa !186
  %1515 = load float, ptr %45, align 4, !tbaa !87
  %1516 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1514, float noundef %1515)
  %1517 = load ptr, ptr %2, align 8, !tbaa !5
  %1518 = getelementptr inbounds %struct.ImGuiTable, ptr %1517, i32 0, i32 49
  %1519 = getelementptr inbounds %struct.ImRect, ptr %1518, i32 0, i32 1
  %1520 = getelementptr inbounds %struct.ImVec2, ptr %1519, i32 0, i32 0
  store float %1516, ptr %1520, align 4, !tbaa !186
  br label %1521

1521:                                             ; preds = %1500, %1494
  %1522 = load ptr, ptr %2, align 8, !tbaa !5
  %1523 = getelementptr inbounds %struct.ImGuiTable, ptr %1522, i32 0, i32 48
  %1524 = load ptr, ptr %2, align 8, !tbaa !5
  %1525 = getelementptr inbounds %struct.ImGuiTable, ptr %1524, i32 0, i32 56
  %1526 = load ptr, ptr %1525, align 8, !tbaa !117
  %1527 = getelementptr inbounds %struct.ImGuiWindow, ptr %1526, i32 0, i32 59
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1527, ptr align 4 %1523, i64 16, i1 false), !tbaa.struct !141
  %1528 = load ptr, ptr %2, align 8, !tbaa !5
  %1529 = getelementptr inbounds %struct.ImGuiTable, ptr %1528, i32 0, i32 49
  %1530 = getelementptr inbounds %struct.ImRect, ptr %1529, i32 0, i32 0
  %1531 = getelementptr inbounds %struct.ImVec2, ptr %1530, i32 0, i32 0
  %1532 = load float, ptr %1531, align 4, !tbaa !187
  %1533 = load ptr, ptr %2, align 8, !tbaa !5
  %1534 = getelementptr inbounds %struct.ImGuiTable, ptr %1533, i32 0, i32 29
  store float %1532, ptr %1534, align 8, !tbaa !188
  %1535 = load ptr, ptr %2, align 8, !tbaa !5
  %1536 = getelementptr inbounds %struct.ImGuiTable, ptr %1535, i32 0, i32 49
  %1537 = getelementptr inbounds %struct.ImRect, ptr %1536, i32 0, i32 1
  %1538 = getelementptr inbounds %struct.ImVec2, ptr %1537, i32 0, i32 0
  %1539 = load float, ptr %1538, align 4, !tbaa !186
  %1540 = load ptr, ptr %2, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.ImGuiTable, ptr %1540, i32 0, i32 30
  store float %1539, ptr %1541, align 4, !tbaa !189
  %1542 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef %1542)
  %1543 = load ptr, ptr %2, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.ImGuiTable, ptr %1543, i32 0, i32 1
  %1545 = load i32, ptr %1544, align 4, !tbaa !28
  %1546 = and i32 %1545, 1
  %1547 = icmp ne i32 %1546, 0
  br i1 %1547, label %1548, label %1550

1548:                                             ; preds = %1521
  %1549 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef %1549)
  br label %1550

1550:                                             ; preds = %1548, %1521
  %1551 = load ptr, ptr %2, align 8, !tbaa !5
  %1552 = getelementptr inbounds %struct.ImGuiTable, ptr %1551, i32 0, i32 39
  store float 0.000000e+00, ptr %1552, align 8, !tbaa !190
  %1553 = load ptr, ptr %2, align 8, !tbaa !5
  %1554 = getelementptr inbounds %struct.ImGuiTable, ptr %1553, i32 0, i32 87
  store i8 1, ptr %1554, align 1, !tbaa !9
  %1555 = load ptr, ptr %2, align 8, !tbaa !5
  %1556 = getelementptr inbounds %struct.ImGuiTable, ptr %1555, i32 0, i32 91
  store i8 0, ptr %1556, align 1, !tbaa !191
  %1557 = load ptr, ptr %2, align 8, !tbaa !5
  %1558 = getelementptr inbounds %struct.ImGuiTable, ptr %1557, i32 0, i32 92
  %1559 = load i8, ptr %1558, align 2, !tbaa !192, !range !26, !noundef !27
  %1560 = trunc i8 %1559 to i1
  br i1 %1560, label %1561, label %1584

1561:                                             ; preds = %1550
  %1562 = load ptr, ptr %2, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.ImGuiTable, ptr %1562, i32 0, i32 17
  %1564 = load i16, ptr %1563, align 8, !tbaa !193
  %1565 = sext i16 %1564 to i32
  %1566 = load ptr, ptr %2, align 8, !tbaa !5
  %1567 = getelementptr inbounds %struct.ImGuiTable, ptr %1566, i32 0, i32 18
  %1568 = load i16, ptr %1567, align 2, !tbaa !194
  %1569 = sext i16 %1568 to i32
  %1570 = icmp eq i32 %1565, %1569
  br i1 %1570, label %1571, label %1584

1571:                                             ; preds = %1561
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %1572 = load ptr, ptr %2, align 8, !tbaa !5
  %1573 = getelementptr inbounds %struct.ImGuiTable, ptr %1572, i32 0, i32 0
  %1574 = load i32, ptr %1573, align 8, !tbaa !195
  %1575 = call noundef i32 @_Z9ImHashStrPKcmj(ptr noundef @.str.14, i64 noundef 0, i32 noundef %1574)
  store i32 %1575, ptr %46, align 4, !tbaa !29
  %1576 = load i32, ptr %46, align 4, !tbaa !29
  %1577 = call noundef zeroext i1 @_ZN5ImGui12BeginPopupExEji(i32 noundef %1576, i32 noundef 321)
  br i1 %1577, label %1578, label %1580

1578:                                             ; preds = %1571
  %1579 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui20TableDrawContextMenuEP10ImGuiTable(ptr noundef %1579)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1583

1580:                                             ; preds = %1571
  %1581 = load ptr, ptr %2, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.ImGuiTable, ptr %1581, i32 0, i32 92
  store i8 0, ptr %1582, align 2, !tbaa !192
  br label %1583

1583:                                             ; preds = %1580, %1578
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %1584

1584:                                             ; preds = %1583, %1561, %1550
  %1585 = load ptr, ptr %2, align 8, !tbaa !5
  %1586 = getelementptr inbounds %struct.ImGuiTable, ptr %1585, i32 0, i32 90
  %1587 = load i8, ptr %1586, align 4, !tbaa !101, !range !26, !noundef !27
  %1588 = trunc i8 %1587 to i1
  br i1 %1588, label %1589, label %1597

1589:                                             ; preds = %1584
  %1590 = load ptr, ptr %2, align 8, !tbaa !5
  %1591 = getelementptr inbounds %struct.ImGuiTable, ptr %1590, i32 0, i32 1
  %1592 = load i32, ptr %1591, align 4, !tbaa !28
  %1593 = and i32 %1592, 8
  %1594 = icmp ne i32 %1593, 0
  br i1 %1594, label %1595, label %1597

1595:                                             ; preds = %1589
  %1596 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef %1596)
  br label %1597

1597:                                             ; preds = %1595, %1589, %1584
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %1598 = load ptr, ptr %2, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.ImGuiTable, ptr %1598, i32 0, i32 56
  %1600 = load ptr, ptr %1599, align 8, !tbaa !117
  store ptr %1600, ptr %47, align 8, !tbaa !5
  %1601 = load ptr, ptr %2, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.ImGuiTable, ptr %1601, i32 0, i32 1
  %1603 = load i32, ptr %1602, align 4, !tbaa !28
  %1604 = and i32 %1603, 1048576
  %1605 = icmp ne i32 %1604, 0
  br i1 %1605, label %1606, label %1613

1606:                                             ; preds = %1597
  %1607 = load ptr, ptr %2, align 8, !tbaa !5
  %1608 = getelementptr inbounds %struct.ImGuiTable, ptr %1607, i32 0, i32 58
  %1609 = load ptr, ptr %1608, align 8, !tbaa !196
  %1610 = load ptr, ptr %47, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.ImGuiWindow, ptr %1610, i32 0, i32 72
  %1612 = load ptr, ptr %1611, align 8, !tbaa !197
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %1609, ptr noundef %1612, i32 noundef 2)
  br label %1625

1613:                                             ; preds = %1597
  %1614 = load ptr, ptr %47, align 8, !tbaa !5
  %1615 = getelementptr inbounds %struct.ImGuiWindow, ptr %1614, i32 0, i32 72
  %1616 = load ptr, ptr %1615, align 8, !tbaa !197
  %1617 = load ptr, ptr %47, align 8, !tbaa !5
  %1618 = getelementptr inbounds %struct.ImGuiWindow, ptr %1617, i32 0, i32 60
  %1619 = getelementptr inbounds %struct.ImRect, ptr %1618, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %48, ptr align 8 %1619, i64 8, i1 false), !tbaa.struct !198
  %1620 = load ptr, ptr %47, align 8, !tbaa !5
  %1621 = getelementptr inbounds %struct.ImGuiWindow, ptr %1620, i32 0, i32 60
  %1622 = getelementptr inbounds %struct.ImRect, ptr %1621, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %49, ptr align 8 %1622, i64 8, i1 false), !tbaa.struct !198
  %1623 = load <2 x float>, ptr %48, align 4
  %1624 = load <2 x float>, ptr %49, align 4
  call void @_ZN10ImDrawList12PushClipRectE6ImVec2S0_b(ptr noundef nonnull align 8 dereferenceable(196) %1616, <2 x float> %1623, <2 x float> %1624, i1 noundef zeroext false)
  br label %1625

1625:                                             ; preds = %1613, %1606
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  ret void

1626:                                             ; preds = %1419, %888, %369
  unreachable
}

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

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

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

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

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

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

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

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

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

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

declare noundef i32 @_Z9ImHashStrPKcmj(ptr noundef, i64 noundef, i32 noundef) #8

declare noundef zeroext i1 @_ZN5ImGui12BeginPopupExEji(i32 noundef, i32 noundef) #8

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

declare void @_ZN5ImGui8EndPopupEv() #8

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

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

declare void @_ZN10ImDrawList12PushClipRectE6ImVec2S0_b(ptr noundef nonnull align 8 dereferenceable(196), <2 x float>, <2 x float>, i1 noundef zeroext) #8

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 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { 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, !25, i64 505}
!10 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !12, i64 24, !13, i64 40, !14, i64 56, !15, i64 72, !15, i64 80, !15, i64 88, !15, i64 96, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !11, i64 120, !11, i64 124, !16, i64 128, !16, i64 130, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !17, i64 148, !11, i64 152, !11, i64 154, !11, i64 156, !7, i64 160, !11, i64 168, !11, i64 172, !17, i64 176, !17, i64 180, !17, i64 184, !17, i64 188, !17, i64 192, !17, i64 196, !17, i64 200, !17, i64 204, !17, i64 208, !17, i64 212, !17, i64 216, !17, i64 220, !17, i64 224, !17, i64 228, !17, i64 232, !17, i64 236, !17, i64 240, !18, i64 244, !18, i64 260, !18, i64 276, !18, i64 292, !18, i64 308, !18, i64 324, !18, i64 340, !18, i64 356, !18, i64 372, !6, i64 392, !6, i64 400, !20, i64 408, !6, i64 424, !22, i64 432, !23, i64 448, !24, i64 464, !7, i64 480, !7, i64 481, !7, i64 482, !7, i64 483, !7, i64 484, !7, i64 485, !7, i64 486, !7, i64 487, !7, i64 488, !7, i64 489, !7, i64 490, !7, i64 491, !7, i64 492, !7, i64 493, !7, i64 494, !7, i64 495, !7, i64 496, !7, i64 497, !7, i64 498, !7, i64 499, !7, i64 500, !7, i64 501, !7, i64 502, !7, i64 503, !7, i64 504, !25, i64 505, !25, i64 506, !25, i64 507, !25, i64 508, !25, i64 509, !25, i64 510, !25, i64 511, !25, i64 512, !25, i64 513, !25, i64 514, !25, i64 515, !25, i64 516, !25, i64 517, !25, i64 518, !25, i64 519}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!13 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!14 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!15 = !{!"long long", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"float", !7, i64 0}
!18 = !{!"_ZTS6ImRect", !19, i64 0, !19, i64 8}
!19 = !{!"_ZTS6ImVec2", !17, i64 0, !17, i64 4}
!20 = !{!"_ZTS15ImGuiTextBuffer", !21, i64 0}
!21 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!22 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !16, i64 4, !16, i64 6, !11, i64 8}
!23 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!24 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !25, i64 12}
!25 = !{!"bool", !7, i64 0}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!10, !11, i64 4}
!29 = !{!11, !11, i64 0}
!30 = !{!10, !25, i64 513}
!31 = !{!10, !7, i64 481}
!32 = !{!10, !15, i64 80}
!33 = !{!10, !15, i64 72}
!34 = !{!10, !7, i64 492}
!35 = !{!36, !17, i64 5524}
!36 = !{!"_ZTS12ImGuiContext", !25, i64 0, !25, i64 1, !37, i64 8, !39, i64 5464, !6, i64 6512, !17, i64 6520, !17, i64 6524, !40, i64 6528, !42, i64 7040, !11, i64 7048, !11, i64 7052, !11, i64 7056, !25, i64 7060, !25, i64 7061, !25, i64 7062, !25, i64 7063, !25, i64 7064, !11, i64 7068, !6, i64 7072, !43, i64 7080, !43, i64 7096, !43, i64 7112, !44, i64 7128, !45, i64 7144, !11, i64 7160, !19, i64 7164, !6, i64 7176, !6, i64 7184, !6, i64 7192, !6, i64 7200, !6, i64 7208, !19, i64 7216, !17, i64 7224, !11, i64 7228, !11, i64 7232, !25, i64 7236, !25, i64 7237, !25, i64 7238, !25, i64 7239, !17, i64 7240, !17, i64 7244, !11, i64 7248, !11, i64 7252, !17, i64 7256, !25, i64 7260, !25, i64 7261, !25, i64 7262, !25, i64 7263, !25, i64 7264, !25, i64 7265, !25, i64 7266, !11, i64 7268, !11, i64 7272, !15, i64 7280, !19, i64 7288, !6, i64 7296, !47, i64 7304, !11, i64 7308, !11, i64 7312, !25, i64 7316, !25, i64 7317, !6, i64 7320, !11, i64 7328, !17, i64 7332, !11, i64 7336, !48, i64 7340, !49, i64 7360, !50, i64 7408, !51, i64 7520, !52, i64 7536, !53, i64 7552, !54, i64 7568, !55, i64 7584, !56, i64 7600, !57, i64 7616, !57, i64 7632, !58, i64 7648, !6, i64 7664, !11, i64 7672, !11, i64 7676, !11, i64 7680, !11, i64 7684, !11, i64 7688, !11, i64 7692, !11, i64 7696, !11, i64 7700, !11, i64 7704, !11, i64 7708, !11, i64 7712, !47, i64 7716, !18, i64 7720, !11, i64 7736, !59, i64 7740, !11, i64 7744, !25, i64 7748, !25, i64 7749, !25, i64 7750, !25, i64 7751, !25, i64 7752, !25, i64 7753, !25, i64 7754, !11, i64 7756, !18, i64 7760, !25, i64 7776, !11, i64 7780, !60, i64 7784, !11, i64 7788, !11, i64 7792, !11, i64 7796, !11, i64 7800, !61, i64 7808, !61, i64 7856, !61, i64 7904, !6, i64 7952, !11, i64 7960, !6, i64 7968, !6, i64 7976, !6, i64 7984, !17, i64 7992, !17, i64 7996, !25, i64 8000, !6, i64 8008, !6, i64 8016, !11, i64 8024, !11, i64 8028, !11, i64 8032, !11, i64 8036, !25, i64 8040, !17, i64 8044, !11, i64 8048, !25, i64 8052, !25, i64 8053, !25, i64 8054, !11, i64 8056, !11, i64 8060, !11, i64 8064, !62, i64 8072, !18, i64 8136, !11, i64 8152, !11, i64 8156, !17, i64 8160, !11, i64 8164, !11, i64 8168, !11, i64 8172, !11, i64 8176, !63, i64 8184, !7, i64 8200, !6, i64 8216, !11, i64 8224, !64, i64 8232, !66, i64 8272, !67, i64 8288, !68, i64 8304, !6, i64 8320, !69, i64 8328, !71, i64 8368, !72, i64 8384, !19, i64 8400, !73, i64 8408, !76, i64 12144, !11, i64 12256, !11, i64 12260, !17, i64 12264, !17, i64 12268, !7, i64 12272, !41, i64 12284, !78, i64 12300, !17, i64 12348, !25, i64 12352, !25, i64 12353, !17, i64 12356, !17, i64 12360, !17, i64 12364, !17, i64 12368, !11, i64 12372, !17, i64 12376, !21, i64 12384, !54, i64 12400, !19, i64 12416, !19, i64 12424, !7, i64 12432, !25, i64 12433, !17, i64 12436, !20, i64 12440, !79, i64 12456, !80, i64 12472, !81, i64 12488, !82, i64 12504, !11, i64 12520, !25, i64 12524, !83, i64 12528, !6, i64 12536, !20, i64 12544, !6, i64 12560, !6, i64 12568, !17, i64 12576, !25, i64 12580, !11, i64 12584, !11, i64 12588, !11, i64 12592, !25, i64 12596, !11, i64 12600, !84, i64 12604, !7, i64 12620, !11, i64 13100, !11, i64 13104, !17, i64 13108, !11, i64 13112, !11, i64 13116, !11, i64 13120, !7, i64 13124}
!37 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !19, i64 8, !17, i64 16, !17, i64 20, !6, i64 24, !6, i64 32, !17, i64 40, !17, i64 44, !17, i64 48, !7, i64 52, !17, i64 140, !17, i64 144, !6, i64 152, !6, i64 160, !17, i64 168, !25, i64 172, !6, i64 176, !19, i64 184, !25, i64 192, !25, i64 193, !25, i64 194, !25, i64 195, !25, i64 196, !25, i64 197, !17, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !19, i64 288, !7, i64 296, !17, i64 304, !17, i64 308, !25, i64 312, !25, i64 313, !25, i64 314, !25, i64 315, !7, i64 316, !7, i64 828, !25, i64 908, !25, i64 909, !25, i64 910, !25, i64 911, !25, i64 912, !25, i64 913, !25, i64 914, !17, i64 916, !11, i64 920, !11, i64 924, !11, i64 928, !11, i64 932, !11, i64 936, !19, i64 940, !11, i64 948, !11, i64 952, !19, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1076, !7, i64 1096, !7, i64 1116, !7, i64 1156, !7, i64 1176, !7, i64 3224, !7, i64 5272, !7, i64 5352, !17, i64 5432, !16, i64 5436, !38, i64 5440}
!38 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!39 = !{!"_ZTS10ImGuiStyle", !17, i64 0, !17, i64 4, !19, i64 8, !17, i64 16, !17, i64 20, !19, i64 24, !19, i64 32, !11, i64 40, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !19, i64 60, !17, i64 68, !17, i64 72, !19, i64 76, !19, i64 84, !19, i64 92, !19, i64 100, !17, i64 108, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !17, i64 128, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !11, i64 148, !19, i64 152, !19, i64 160, !19, i64 168, !19, i64 176, !17, i64 184, !25, i64 188, !25, i64 189, !25, i64 190, !17, i64 192, !17, i64 196, !7, i64 200}
!40 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !17, i64 16, !17, i64 20, !17, i64 24, !41, i64 28, !11, i64 44, !7, i64 48, !17, i64 432, !7, i64 436, !6, i64 504}
!41 = !{!"_ZTS6ImVec4", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12}
!42 = !{!"double", !7, i64 0}
!43 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!45 = !{!"_ZTS12ImGuiStorage", !46, i64 0}
!46 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!47 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!48 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !17, i64 4, !11, i64 8, !11, i64 12, !25, i64 16}
!49 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !18, i64 12, !18, i64 28}
!50 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !25, i64 56, !18, i64 60, !6, i64 80, !6, i64 88, !17, i64 96, !19, i64 100}
!51 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!52 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!53 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!54 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!55 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!60 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!61 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !18, i64 16, !17, i64 32, !17, i64 36, !17, i64 40}
!62 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !25, i64 57, !25, i64 58}
!63 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!64 = !{!"_ZTS6ImPoolI10ImGuiTableE", !65, i64 0, !45, i64 16, !11, i64 32, !11, i64 36}
!65 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !70, i64 0, !45, i64 16, !11, i64 32, !11, i64 36}
!70 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!73 = !{!"_ZTS19ImGuiInputTextState", !11, i64 0, !11, i64 4, !11, i64 8, !38, i64 16, !21, i64 32, !21, i64 48, !25, i64 64, !11, i64 68, !17, i64 72, !74, i64 76, !17, i64 3704, !25, i64 3708, !25, i64 3709, !25, i64 3710, !11, i64 3712, !6, i64 3720, !6, i64 3728}
!74 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 12, !11, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !17, i64 28, !75, i64 32}
!75 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !11, i64 3588, !11, i64 3592}
!76 = !{!"_ZTS6ImFont", !67, i64 0, !17, i64 16, !17, i64 20, !38, i64 24, !77, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !16, i64 80, !16, i64 82, !16, i64 84, !16, i64 86, !25, i64 88, !17, i64 92, !17, i64 96, !17, i64 100, !11, i64 104, !7, i64 108}
!77 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS21ImGuiComboPreviewData", !18, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !17, i64 40, !11, i64 44}
!79 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !21, i64 0}
!81 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !21, i64 0}
!82 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!83 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!84 = !{!"_ZTS18ImGuiMetricsConfig", !25, i64 0, !25, i64 1, !25, i64 2, !25, i64 3, !25, i64 4, !11, i64 8, !11, i64 12}
!85 = !{!10, !17, i64 188}
!86 = !{!25, !25, i64 0}
!87 = !{!17, !17, i64 0}
!88 = !{!10, !11, i64 116}
!89 = !{!7, !7, i64 0}
!90 = !{!10, !7, i64 483}
!91 = !{!92, !16, i64 80}
!92 = !{!"_ZTS16ImGuiTableColumn", !11, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !17, i64 16, !17, i64 20, !17, i64 24, !17, i64 28, !18, i64 32, !11, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !17, i64 64, !17, i64 68, !17, i64 72, !17, i64 76, !16, i64 80, !7, i64 82, !7, i64 83, !7, i64 84, !7, i64 85, !7, i64 86, !7, i64 87, !7, i64 88, !7, i64 89, !25, i64 90, !25, i64 91, !25, i64 92, !25, i64 93, !25, i64 94, !25, i64 95, !25, i64 96, !25, i64 97, !7, i64 98, !7, i64 99, !7, i64 100, !7, i64 101, !7, i64 101, !7, i64 101, !7, i64 102}
!93 = !{!92, !11, i64 48}
!94 = !{!92, !17, i64 28}
!95 = !{!92, !11, i64 0}
!96 = !{!92, !25, i64 92}
!97 = !{!92, !25, i64 91}
!98 = !{!10, !25, i64 512}
!99 = !{!92, !25, i64 90}
!100 = !{!92, !7, i64 86}
!101 = !{!10, !25, i64 508}
!102 = !{!92, !17, i64 16}
!103 = !{!92, !17, i64 24}
!104 = !{!92, !7, i64 100}
!105 = !{!92, !7, i64 99}
!106 = !{!92, !7, i64 83}
!107 = !{!92, !7, i64 84}
!108 = !{!92, !7, i64 85}
!109 = !{!92, !7, i64 82}
!110 = !{!92, !25, i64 97}
!111 = !{!92, !17, i64 20}
!112 = distinct !{!112, !113}
!113 = !{!"llvm.loop.mustprogress"}
!114 = !{!10, !7, i64 480}
!115 = !{!10, !7, i64 493}
!116 = !{!10, !6, i64 392}
!117 = !{!10, !6, i64 400}
!118 = !{!119, !25, i64 147}
!119 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !11, i64 8, !11, i64 12, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !19, i64 56, !19, i64 64, !17, i64 72, !17, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !19, i64 92, !19, i64 100, !19, i64 108, !19, i64 116, !19, i64 124, !19, i64 132, !25, i64 140, !25, i64 141, !25, i64 142, !25, i64 143, !25, i64 144, !25, i64 145, !25, i64 146, !25, i64 147, !25, i64 148, !25, i64 149, !25, i64 150, !25, i64 151, !7, i64 152, !16, i64 154, !16, i64 156, !16, i64 158, !16, i64 160, !11, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !25, i64 171, !11, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !19, i64 184, !19, i64 192, !54, i64 200, !120, i64 216, !18, i64 464, !18, i64 480, !18, i64 496, !18, i64 512, !18, i64 528, !18, i64 544, !18, i64 560, !124, i64 576, !124, i64 580, !11, i64 584, !17, i64 588, !17, i64 592, !45, i64 600, !125, i64 616, !17, i64 632, !11, i64 636, !6, i64 640, !126, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !11, i64 928, !11, i64 932, !25, i64 936}
!120 = !{!"_ZTS19ImGuiWindowTempData", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !17, i64 56, !17, i64 60, !121, i64 64, !121, i64 68, !121, i64 72, !59, i64 76, !16, i64 80, !16, i64 82, !11, i64 84, !25, i64 88, !25, i64 89, !25, i64 90, !19, i64 92, !122, i64 100, !11, i64 128, !11, i64 132, !43, i64 136, !6, i64 152, !6, i64 160, !11, i64 168, !11, i64 172, !11, i64 176, !11, i64 180, !11, i64 184, !17, i64 188, !17, i64 192, !67, i64 200, !67, i64 216, !123, i64 232}
!121 = !{!"_ZTS6ImVec1", !17, i64 0}
!122 = !{!"_ZTS16ImGuiMenuColumns", !11, i64 0, !11, i64 4, !16, i64 8, !16, i64 10, !16, i64 12, !16, i64 14, !16, i64 16, !7, i64 18}
!123 = !{!"_ZTS15ImGuiStackSizes", !16, i64 0, !16, i64 2, !16, i64 4, !16, i64 6, !16, i64 8, !16, i64 10, !16, i64 12}
!124 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!125 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!126 = !{!"_ZTS10ImDrawList", !127, i64 0, !38, i64 16, !128, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !129, i64 88, !130, i64 104, !131, i64 120, !132, i64 136, !133, i64 168, !17, i64 192}
!127 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!128 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!129 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!130 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!131 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!132 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !6, i64 16, !11, i64 24}
!133 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !68, i64 8}
!134 = !{!10, !7, i64 495}
!135 = !{!10, !7, i64 494}
!136 = !{!10, !15, i64 96}
!137 = !{!10, !25, i64 507}
!138 = !{!10, !17, i64 196}
!139 = distinct !{!139, !113}
!140 = !{!10, !7, i64 482}
!141 = !{i64 0, i64 4, !87, i64 4, i64 4, !87, i64 8, i64 4, !87, i64 12, i64 4, !87}
!142 = !{!10, !17, i64 192}
!143 = !{!10, !17, i64 204}
!144 = !{!10, !17, i64 208}
!145 = !{!10, !17, i64 220}
!146 = !{!10, !17, i64 224}
!147 = !{!92, !17, i64 4}
!148 = distinct !{!148, !113}
!149 = distinct !{!149, !113}
!150 = !{!10, !7, i64 484}
!151 = !{!10, !7, i64 485}
!152 = !{!10, !17, i64 244}
!153 = !{!10, !17, i64 248}
!154 = !{!10, !17, i64 252}
!155 = !{!10, !17, i64 256}
!156 = !{!10, !17, i64 212}
!157 = !{!10, !7, i64 500}
!158 = !{!18, !17, i64 0}
!159 = !{!10, !15, i64 88}
!160 = !{!10, !7, i64 498}
!161 = !{!92, !7, i64 98}
!162 = !{!92, !17, i64 40}
!163 = !{!92, !17, i64 32}
!164 = !{!92, !17, i64 52}
!165 = !{!92, !17, i64 12}
!166 = !{!92, !17, i64 8}
!167 = !{!18, !17, i64 4}
!168 = !{!92, !17, i64 36}
!169 = !{!92, !17, i64 44}
!170 = !{!92, !25, i64 95}
!171 = !{!92, !25, i64 94}
!172 = !{!92, !25, i64 93}
!173 = !{!92, !25, i64 96}
!174 = !{!92, !17, i64 60}
!175 = !{!36, !17, i64 296}
!176 = !{!92, !17, i64 56}
!177 = !{!10, !25, i64 519}
!178 = !{!92, !17, i64 68}
!179 = !{!92, !17, i64 64}
!180 = !{!92, !17, i64 76}
!181 = !{!92, !17, i64 72}
!182 = !{!18, !17, i64 8}
!183 = distinct !{!183, !113}
!184 = !{!10, !17, i64 276}
!185 = !{!10, !17, i64 284}
!186 = !{!10, !17, i64 300}
!187 = !{!10, !17, i64 292}
!188 = !{!10, !17, i64 176}
!189 = !{!10, !17, i64 180}
!190 = !{!10, !17, i64 216}
!191 = !{!10, !25, i64 509}
!192 = !{!10, !25, i64 510}
!193 = !{!10, !16, i64 128}
!194 = !{!10, !16, i64 130}
!195 = !{!10, !11, i64 0}
!196 = !{!10, !6, i64 424}
!197 = !{!119, !6, i64 640}
!198 = !{i64 0, i64 4, !87, i64 4, i64 4, !87}


; 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.2 = external hidden unnamed_addr constant [115 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
@.str.14 = external hidden unnamed_addr constant [14 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: mustprogress uwtable
declare dso_local void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(103) 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 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(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 #4 {
  %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 505
  %7 = load i8, ptr %6, align 1, !tbaa !9, !range !26, !noundef !27
  %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.2, i32 noundef 717, 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 !28
  %13 = and i32 %12, 57344
  %14 = getelementptr inbounds i8, ptr %0, i64 513
  store i8 1, ptr %14, align 1, !tbaa !29
  %15 = getelementptr inbounds i8, ptr %0, i64 481
  store i8 0, ptr %15, align 1, !tbaa !30
  %16 = getelementptr inbounds i8, ptr %0, i64 80
  %17 = getelementptr inbounds i8, ptr %0, i64 72
  %18 = getelementptr inbounds i8, ptr %0, i64 492
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, i8 0, i64 16, i1 false)
  store i8 -1, ptr %18, align 4, !tbaa !31
  %19 = getelementptr inbounds i8, ptr %5, i64 5524
  %20 = load float, ptr %19, align 4, !tbaa !32
  %21 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %20)
  %22 = getelementptr inbounds i8, ptr %0, i64 188
  store float %21, ptr %22, align 4, !tbaa !82
  %23 = getelementptr inbounds i8, ptr %0, i64 116
  %24 = load i32, ptr %23, align 4, !tbaa !83
  %25 = icmp sgt i32 %24, 0
  br i1 %25, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %10
  %26 = getelementptr inbounds i8, ptr %0, i64 40
  %27 = getelementptr inbounds i8, ptr %0, i64 24
  %28 = getelementptr inbounds i8, ptr %0, i64 483
  %29 = getelementptr inbounds i8, ptr %0, i64 512
  %30 = getelementptr inbounds i8, ptr %0, i64 508
  br label %34

._crit_edge:                                      ; preds = %135, %10
  %31 = phi i32 [ %24, %10 ], [ %137, %135 ]
  %.0431.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2433, %135 ]
  %.0428.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2430, %135 ]
  %.0425.lcssa = phi i8 [ 0, %10 ], [ %.2427, %135 ]
  %.0422.lcssa = phi i1 [ false, %10 ], [ %.2424, %135 ]
  %.0420.lcssa = phi i32 [ -1, %10 ], [ %.1421, %135 ]
  %.0417.lcssa = phi i32 [ 0, %10 ], [ %.2419, %135 ]
  %.0.lcssa = phi i8 [ 0, %10 ], [ %.2, %135 ]
  %32 = load i32, ptr %11, align 4, !tbaa !28
  %33 = and i32 %32, 8
  %.not463 = icmp eq i32 %33, 0
  br i1 %.not463, label %146, label %139

34:                                               ; preds = %.lr.ph, %135
  %.0545 = phi i8 [ 0, %.lr.ph ], [ %.2, %135 ]
  %.0417544 = phi i32 [ 0, %.lr.ph ], [ %.2419, %135 ]
  %.0420543 = phi i32 [ -1, %.lr.ph ], [ %.1421, %135 ]
  %.0422542 = phi i1 [ false, %.lr.ph ], [ %.2424, %135 ]
  %.0425541 = phi i8 [ 0, %.lr.ph ], [ %.2427, %135 ]
  %.0428540 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2430, %135 ]
  %.0431539 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2433, %135 ]
  %.0434538 = phi i32 [ 0, %.lr.ph ], [ %136, %135 ]
  %35 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %26, i32 noundef %.0434538)
  %36 = load i8, ptr %35, align 1, !tbaa !84
  %37 = sext i8 %36 to i32
  %.not487 = icmp eq i32 %.0434538, %37
  br i1 %.not487, label %39, label %38

38:                                               ; preds = %34
  store i8 0, ptr %14, align 1, !tbaa !29
  br label %39

39:                                               ; preds = %38, %34
  %40 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %27, i32 noundef %37)
  %41 = load i8, ptr %28, align 1, !tbaa !85
  %.not488 = icmp sgt i8 %41, %36
  br i1 %.not488, label %46, label %42

42:                                               ; preds = %39
  tail call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef nonnull %0, ptr noundef nonnull %40, i32 noundef 0)
  %43 = getelementptr inbounds i8, ptr %40, i64 80
  store i16 -1, ptr %43, align 4, !tbaa !86
  %44 = getelementptr inbounds i8, ptr %40, i64 48
  store i32 0, ptr %44, align 4, !tbaa !88
  %45 = getelementptr inbounds i8, ptr %40, i64 28
  store float -1.000000e+00, ptr %45, align 4, !tbaa !89
  br label %46

46:                                               ; preds = %42, %39
  %47 = load i32, ptr %11, align 4, !tbaa !28
  %48 = and i32 %47, 4
  %.not489 = icmp eq i32 %48, 0
  br i1 %.not489, label %52, label %49

49:                                               ; preds = %46
  %50 = load i32, ptr %40, align 4, !tbaa !90
  %51 = and i32 %50, 128
  %.not490 = icmp eq i32 %51, 0
  br i1 %.not490, label %._crit_edge589, label %52

._crit_edge589:                                   ; preds = %49
  %.phi.trans.insert = getelementptr inbounds i8, ptr %40, i64 92
  %.pre = load i8, ptr %.phi.trans.insert, align 4, !tbaa !91, !range !26
  br label %54

52:                                               ; preds = %49, %46
  %53 = getelementptr inbounds i8, ptr %40, i64 92
  store i8 1, ptr %53, align 4, !tbaa !91
  br label %54

54:                                               ; preds = %._crit_edge589, %52
  %55 = phi i8 [ %.pre, %._crit_edge589 ], [ 1, %52 ]
  %56 = getelementptr inbounds i8, ptr %40, i64 91
  %57 = load i8, ptr %56, align 1, !tbaa !92, !range !26, !noundef !27
  %.not491 = icmp eq i8 %57, %55
  br i1 %.not491, label %59, label %58

58:                                               ; preds = %54
  store i8 %55, ptr %56, align 1, !tbaa !92
  store i8 1, ptr %29, align 8, !tbaa !93
  br label %59

59:                                               ; preds = %58, %54
  %60 = trunc nuw i8 %55 to i1
  %61 = load i32, ptr %40, align 4
  %62 = and i32 %61, 1
  %63 = icmp eq i32 %62, 0
  %64 = select i1 %60, i1 %63, i1 false
  %65 = getelementptr inbounds i8, ptr %40, i64 90
  %66 = zext i1 %64 to i8
  store i8 %66, ptr %65, align 2, !tbaa !94
  %67 = getelementptr inbounds i8, ptr %40, i64 86
  %68 = load i8, ptr %67, align 2, !tbaa !95
  %.not492 = icmp eq i8 %68, -1
  %brmerge = select i1 %.not492, i1 true, i1 %64
  %69 = icmp slt i8 %68, 1
  %70 = and i32 %47, 67108864
  %.not493 = icmp ne i32 %70, 0
  %or.cond527.not.not.not615 = or i1 %.not493, %69
  %.not613 = and i1 %or.cond527.not.not.not615, %brmerge
  br i1 %.not613, label %72, label %71

71:                                               ; preds = %59
  store i8 1, ptr %30, align 4, !tbaa !96
  br label %72

72:                                               ; preds = %59, %71
  %73 = and i32 %61, 16
  %.not494 = icmp eq i32 %73, 0
  %.in495.in.v = select i1 %.not494, i64 24, i64 16
  %.in495.in = getelementptr inbounds i8, ptr %40, i64 %.in495.in.v
  %.in495 = load float, ptr %.in495.in, align 4, !tbaa !97
  %74 = fcmp olt float %.in495, 0.000000e+00
  br i1 %74, label %75, label %78

75:                                               ; preds = %72
  %76 = getelementptr inbounds i8, ptr %40, i64 100
  store i8 7, ptr %76, align 4, !tbaa !98
  %77 = getelementptr inbounds i8, ptr %40, i64 99
  store i8 7, ptr %77, align 1, !tbaa !99
  br label %78

78:                                               ; preds = %75, %72
  br i1 %64, label %81, label %79

79:                                               ; preds = %78
  %80 = getelementptr inbounds i8, ptr %40, i64 83
  store i8 -1, ptr %80, align 1, !tbaa !100
  br label %135

81:                                               ; preds = %78
  %82 = trunc nsw i32 %.0420543 to i8
  %83 = getelementptr inbounds i8, ptr %40, i64 84
  store i8 %82, ptr %83, align 4, !tbaa !101
  %84 = getelementptr inbounds i8, ptr %40, i64 85
  store i8 -1, ptr %84, align 1, !tbaa !102
  %.not496 = icmp eq i32 %.0420543, -1
  br i1 %.not496, label %88, label %85

85:                                               ; preds = %81
  %86 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %27, i32 noundef %.0420543)
  %87 = getelementptr inbounds i8, ptr %86, i64 85
  store i8 %36, ptr %87, align 1, !tbaa !102
  br label %89

88:                                               ; preds = %81
  store i8 %36, ptr %18, align 4, !tbaa !31
  br label %89

89:                                               ; preds = %88, %85
  %90 = load i8, ptr %15, align 1, !tbaa !30
  %91 = add i8 %90, 1
  store i8 %91, ptr %15, align 1, !tbaa !30
  %92 = getelementptr inbounds i8, ptr %40, i64 83
  store i8 %90, ptr %92, align 1, !tbaa !100
  %93 = zext nneg i32 %37 to i64
  %94 = shl nuw i64 1, %93
  %95 = load i64, ptr %16, align 8, !tbaa !103
  %96 = or i64 %95, %94
  store i64 %96, ptr %16, align 8, !tbaa !103
  %97 = getelementptr inbounds i8, ptr %40, i64 82
  %98 = load i8, ptr %97, align 2, !tbaa !104
  %99 = sext i8 %98 to i64
  %100 = and i64 %99, 4294967295
  %101 = shl nuw i64 1, %100
  %102 = load i64, ptr %17, align 8, !tbaa !105
  %103 = or i64 %101, %102
  store i64 %103, ptr %17, align 8, !tbaa !105
  %.not497 = icmp sgt i8 %90, %98
  br i1 %.not497, label %104, label %105

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

105:                                              ; preds = %89
  %106 = getelementptr inbounds i8, ptr %40, i64 97
  %107 = load i8, ptr %106, align 1, !tbaa !106, !range !26, !noundef !27
  %108 = trunc nuw i8 %107 to i1
  br i1 %108, label %112, label %109

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

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

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

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

123:                                              ; preds = %117, %121, %112
  %124 = getelementptr inbounds i8, ptr %40, i64 99
  %125 = load i8, ptr %124, align 1, !tbaa !99
  %.not499 = icmp ne i8 %125, 0
  %spec.select503 = select i1 %.not499, i1 true, i1 %.0422542
  %126 = and i32 %113, 8
  %.not500 = icmp eq i32 %126, 0
  %127 = getelementptr inbounds i8, ptr %40, i64 20
  %128 = load float, ptr %127, align 4, !tbaa !107
  br i1 %.not500, label %132, label %129

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

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

135:                                              ; preds = %129, %132, %79
  %.2433 = phi float [ %.0431539, %79 ], [ %.0431539, %129 ], [ %133, %132 ]
  %.2430 = phi float [ %.0428540, %79 ], [ %130, %129 ], [ %.0428540, %132 ]
  %.2427 = phi i8 [ %.0425541, %79 ], [ %spec.select, %129 ], [ %spec.select, %132 ]
  %.2424 = phi i1 [ %.0422542, %79 ], [ %spec.select503, %129 ], [ %spec.select503, %132 ]
  %.1421 = phi i32 [ %.0420543, %79 ], [ %37, %129 ], [ %37, %132 ]
  %.2419 = phi i32 [ %.0417544, %79 ], [ %131, %129 ], [ %.0417544, %132 ]
  %.2 = phi i8 [ %.0545, %79 ], [ %.0545, %129 ], [ %134, %132 ]
  %136 = add nuw nsw i32 %.0434538, 1
  %137 = load i32, ptr %23, align 4, !tbaa !83
  %138 = icmp slt i32 %136, %137
  br i1 %138, label %34, label %._crit_edge, !llvm.loop !108

139:                                              ; preds = %._crit_edge
  %140 = getelementptr inbounds i8, ptr %0, i64 480
  %141 = load i8, ptr %140, align 8, !tbaa !110
  %142 = icmp eq i8 %141, 0
  %143 = and i32 %32, 134217728
  %.not464 = icmp eq i32 %143, 0
  %or.cond504 = and i1 %.not464, %142
  br i1 %or.cond504, label %144, label %146

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

146:                                              ; preds = %144, %139, %._crit_edge
  %147 = trunc nsw i32 %.0420.lcssa to i8
  %148 = getelementptr inbounds i8, ptr %0, i64 493
  store i8 %147, ptr %148, align 1, !tbaa !111
  %149 = load i8, ptr %18, align 4, !tbaa !31
  %150 = icmp sgt i8 %149, -1
  %sext.mask = and i32 %.0420.lcssa, 128
  %151 = icmp eq i32 %sext.mask, 0
  %or.cond505 = select i1 %150, i1 %151, i1 false
  br i1 %or.cond505, label %152, label %.critedge

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

152:                                              ; preds = %146
  br i1 %.0422.lcssa, label %153, label %.critedge507

153:                                              ; preds = %152
  %154 = getelementptr inbounds i8, ptr %0, i64 392
  %155 = load ptr, ptr %154, align 8, !tbaa !112
  %156 = getelementptr inbounds i8, ptr %0, i64 400
  %157 = load ptr, ptr %156, align 8, !tbaa !113
  %.not465 = icmp eq ptr %155, %157
  br i1 %.not465, label %160, label %158

158:                                              ; preds = %153
  %159 = getelementptr inbounds i8, ptr %157, i64 147
  store i8 0, ptr %159, align 1, !tbaa !114
  br label %160

160:                                              ; preds = %153, %158
  %161 = getelementptr inbounds i8, ptr %0, i64 512
  store i8 1, ptr %161, align 8, !tbaa !93
  br label %.critedge507

.critedge507:                                     ; preds = %152, %160
  %162 = getelementptr inbounds i8, ptr %0, i64 495
  store i8 -1, ptr %162, align 1, !tbaa !130
  %163 = getelementptr inbounds i8, ptr %0, i64 494
  store i8 -1, ptr %163, align 2, !tbaa !131
  %164 = icmp sgt i32 %31, 0
  br i1 %164, label %.lr.ph556, label %._crit_edge557

.lr.ph556:                                        ; preds = %.critedge507
  %165 = getelementptr inbounds i8, ptr %0, i64 24
  %166 = icmp eq i32 %13, 16384
  %167 = getelementptr inbounds i8, ptr %0, i64 507
  %168 = getelementptr inbounds i8, ptr %0, i64 96
  %.not616 = icmp eq i32 %13, 24576
  %169 = sitofp i32 %.0417.lcssa to float
  %170 = getelementptr inbounds i8, ptr %0, i64 196
  br label %188

._crit_edge557.loopexit:                          ; preds = %274
  %.pre594 = load i32, ptr %11, align 4, !tbaa !28
  br label %._crit_edge557

._crit_edge557:                                   ; preds = %._crit_edge557.loopexit, %.critedge507
  %171 = phi i32 [ %32, %.critedge507 ], [ %.pre594, %._crit_edge557.loopexit ]
  %.0446.lcssa = phi float [ 0.000000e+00, %.critedge507 ], [ %.2448, %._crit_edge557.loopexit ]
  %.0443.lcssa = phi float [ 0.000000e+00, %.critedge507 ], [ %.2445, %._crit_edge557.loopexit ]
  %.0446.lcssa.fr = freeze float %.0446.lcssa
  %172 = getelementptr inbounds i8, ptr %0, i64 482
  store i8 %.0.lcssa, ptr %172, align 2, !tbaa !132
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #11
  %173 = getelementptr inbounds i8, ptr %0, i64 276
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %2, ptr noundef nonnull align 4 dereferenceable(16) %173, i64 16, i1 false), !tbaa.struct !133
  %174 = getelementptr inbounds i8, ptr %0, i64 192
  %175 = load float, ptr %174, align 8, !tbaa !134
  %176 = getelementptr inbounds i8, ptr %0, i64 204
  %177 = load float, ptr %176, align 4, !tbaa !135
  %178 = getelementptr inbounds i8, ptr %0, i64 208
  %179 = load float, ptr %178, align 8, !tbaa !136
  %180 = fadd float %177, %179
  %181 = load i8, ptr %15, align 1, !tbaa !30
  %182 = sext i8 %181 to i32
  %183 = add nsw i32 %182, -1
  %184 = sitofp i32 %183 to float
  %185 = fmul float %180, %184
  %186 = tail call float @llvm.fmuladd.f32(float %175, float 2.000000e+00, float %185)
  %187 = and i32 %171, 16777216
  %.not466 = icmp eq i32 %187, 0
  br i1 %.not466, label %285, label %278

188:                                              ; preds = %.lr.ph556, %274
  %189 = phi i32 [ %31, %.lr.ph556 ], [ %275, %274 ]
  %indvars.iv = phi i64 [ 0, %.lr.ph556 ], [ %indvars.iv.next, %274 ]
  %.0443555 = phi float [ 0.000000e+00, %.lr.ph556 ], [ %.2445, %274 ]
  %.0446554 = phi float [ 0.000000e+00, %.lr.ph556 ], [ %.2448, %274 ]
  %190 = load i64, ptr %16, align 8, !tbaa !103
  %191 = shl nuw i64 1, %indvars.iv
  %192 = and i64 %190, %191
  %.not480 = icmp eq i64 %192, 0
  br i1 %.not480, label %274, label %193

193:                                              ; preds = %188
  %194 = trunc nuw nsw i64 %indvars.iv to i32
  %195 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %165, i32 noundef %194)
  %196 = load i32, ptr %195, align 4, !tbaa !90
  %197 = and i32 %196, 32
  %198 = icmp ne i32 %197, 0
  %199 = and i32 %196, 16
  %.not481 = icmp eq i32 %199, 0
  br i1 %.not481, label %229, label %200

200:                                              ; preds = %193
  %201 = getelementptr inbounds i8, ptr %195, i64 20
  %202 = load float, ptr %201, align 4, !tbaa !107
  %203 = getelementptr inbounds i8, ptr %195, i64 99
  %204 = load i8, ptr %203, align 1, !tbaa !99
  br i1 %166, label %205, label %._crit_edge590

205:                                              ; preds = %200
  %.not483 = icmp ne i8 %204, 0
  %brmerge509 = or i1 %198, %.not483
  br i1 %brmerge509, label %._crit_edge590, label %.thread

._crit_edge590:                                   ; preds = %200, %205
  %206 = phi float [ %.0431.lcssa, %205 ], [ %202, %200 ]
  %.not484 = icmp eq i8 %204, 0
  br i1 %.not484, label %207, label %213

207:                                              ; preds = %._crit_edge590
  br i1 %198, label %208, label %.thread

208:                                              ; preds = %207
  %209 = load i64, ptr %168, align 8, !tbaa !137
  %210 = and i64 %209, %191
  %.not486 = icmp eq i64 %210, 0
  br i1 %.not486, label %.thread, label %211

211:                                              ; preds = %208
  %212 = getelementptr inbounds i8, ptr %195, i64 16
  store float %206, ptr %212, align 4, !tbaa !138
  br label %.thread

213:                                              ; preds = %._crit_edge590
  %214 = getelementptr inbounds i8, ptr %195, i64 16
  store float %206, ptr %214, align 4, !tbaa !138
  %.not528 = icmp eq i8 %204, 1
  br i1 %.not528, label %.thread, label %215

215:                                              ; preds = %213
  %216 = load i8, ptr %167, align 1, !tbaa !139, !range !26, !noundef !27
  %217 = trunc nuw i8 %216 to i1
  br i1 %217, label %218, label %.thread

218:                                              ; preds = %215
  %219 = getelementptr inbounds i8, ptr %195, i64 97
  %220 = load i8, ptr %219, align 1, !tbaa !106, !range !26, !noundef !27
  %221 = trunc nuw i8 %220 to i1
  br i1 %221, label %.thread, label %222

222:                                              ; preds = %218
  %223 = load float, ptr %22, align 4, !tbaa !82
  %224 = fmul float %223, 4.000000e+00
  %225 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %206, float noundef %224)
  store float %225, ptr %214, align 4, !tbaa !138
  br label %.thread

.thread:                                          ; preds = %205, %211, %208, %207, %222, %218, %215, %213
  %226 = getelementptr inbounds i8, ptr %195, i64 16
  %227 = load float, ptr %226, align 4, !tbaa !138
  %228 = fadd float %.0443555, %227
  br label %270

229:                                              ; preds = %193
  %230 = getelementptr inbounds i8, ptr %195, i64 99
  %231 = load i8, ptr %230, align 1, !tbaa !99
  %.not482 = icmp ne i8 %231, 0
  %232 = getelementptr inbounds i8, ptr %195, i64 24
  %233 = load float, ptr %232, align 4
  %234 = fcmp olt float %233, 0.000000e+00
  %or.cond513 = select i1 %.not482, i1 true, i1 %234
  %brmerge515 = or i1 %198, %or.cond513
  br i1 %brmerge515, label %.sink.split, label %242

.sink.split:                                      ; preds = %229
  %235 = getelementptr inbounds i8, ptr %195, i64 28
  %236 = load float, ptr %235, align 4, !tbaa !89
  %237 = fcmp ogt float %236, 0.000000e+00
  %238 = getelementptr inbounds i8, ptr %195, i64 20
  %239 = load float, ptr %238, align 4
  %240 = fdiv float %239, %.0428.lcssa
  %241 = fmul float %240, %169
  %.mux = select i1 %.not616, float %241, float 1.000000e+00
  %.sink = select i1 %237, float %236, float %.mux
  store float %.sink, ptr %232, align 4, !tbaa !140
  br label %242

242:                                              ; preds = %.sink.split, %229
  %243 = phi float [ %233, %229 ], [ %.sink, %.sink.split ]
  %244 = fadd float %.0446554, %243
  %245 = load i8, ptr %163, align 2, !tbaa !131
  %246 = icmp eq i8 %245, -1
  br i1 %246, label %255, label %247

247:                                              ; preds = %242
  %248 = sext i8 %245 to i32
  %249 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %165, i32 noundef %248)
  %250 = getelementptr inbounds i8, ptr %249, i64 82
  %251 = load i8, ptr %250, align 2, !tbaa !104
  %252 = getelementptr inbounds i8, ptr %195, i64 82
  %253 = load i8, ptr %252, align 2, !tbaa !104
  %254 = icmp sgt i8 %251, %253
  br i1 %254, label %255, label %257

255:                                              ; preds = %247, %242
  %256 = trunc i64 %indvars.iv to i8
  store i8 %256, ptr %163, align 2, !tbaa !131
  br label %257

257:                                              ; preds = %255, %247
  %258 = load i8, ptr %162, align 1, !tbaa !130
  %259 = icmp eq i8 %258, -1
  br i1 %259, label %268, label %260

260:                                              ; preds = %257
  %261 = sext i8 %258 to i32
  %262 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %165, i32 noundef %261)
  %263 = getelementptr inbounds i8, ptr %262, i64 82
  %264 = load i8, ptr %263, align 2, !tbaa !104
  %265 = getelementptr inbounds i8, ptr %195, i64 82
  %266 = load i8, ptr %265, align 2, !tbaa !104
  %267 = icmp slt i8 %264, %266
  br i1 %267, label %268, label %270

268:                                              ; preds = %260, %257
  %269 = trunc i64 %indvars.iv to i8
  store i8 %269, ptr %162, align 1, !tbaa !130
  br label %270

270:                                              ; preds = %260, %268, %.thread
  %.1447 = phi float [ %.0446554, %.thread ], [ %244, %268 ], [ %244, %260 ]
  %.1444 = phi float [ %228, %.thread ], [ %.0443555, %268 ], [ %.0443555, %260 ]
  %271 = getelementptr inbounds i8, ptr %195, i64 97
  store i8 0, ptr %271, align 1, !tbaa !106
  %272 = load float, ptr %170, align 4, !tbaa !141
  %273 = tail call float @llvm.fmuladd.f32(float %272, float 2.000000e+00, float %.1444)
  %.pre593 = load i32, ptr %23, align 4, !tbaa !83
  br label %274

274:                                              ; preds = %188, %270
  %275 = phi i32 [ %.pre593, %270 ], [ %189, %188 ]
  %.2448 = phi float [ %.1447, %270 ], [ %.0446554, %188 ]
  %.2445 = phi float [ %273, %270 ], [ %.0443555, %188 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %276 = sext i32 %275 to i64
  %277 = icmp slt i64 %indvars.iv.next, %276
  br i1 %277, label %188, label %._crit_edge557.loopexit, !llvm.loop !142

278:                                              ; preds = %._crit_edge557
  %279 = getelementptr inbounds i8, ptr %0, i64 220
  %280 = load float, ptr %279, align 4, !tbaa !143
  %281 = fcmp oeq float %280, 0.000000e+00
  br i1 %281, label %282, label %285

282:                                              ; preds = %278
  %283 = getelementptr inbounds i8, ptr %0, i64 292
  %284 = tail call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %283)
  br label %287

285:                                              ; preds = %278, %._crit_edge557
  %286 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2)
  br label %287

287:                                              ; preds = %285, %282
  %288 = phi float [ %284, %282 ], [ %286, %285 ]
  %289 = fsub float %288, %186
  %290 = fsub float %289, %.0443.lcssa
  %291 = getelementptr inbounds i8, ptr %0, i64 196
  %292 = load float, ptr %291, align 4, !tbaa !141
  %293 = fmul float %292, 2.000000e+00
  %294 = load i8, ptr %15, align 1, !tbaa !30
  %295 = sitofp i8 %294 to float
  %296 = call float @llvm.fmuladd.f32(float %293, float %295, float %186)
  %297 = getelementptr inbounds i8, ptr %0, i64 224
  store float %296, ptr %297, align 8, !tbaa !144
  %298 = load i32, ptr %23, align 4, !tbaa !83
  %299 = icmp sgt i32 %298, 0
  br i1 %299, label %.lr.ph563, label %._crit_edge564

.lr.ph563:                                        ; preds = %287
  %300 = getelementptr inbounds i8, ptr %0, i64 24
  br label %302

._crit_edge564:                                   ; preds = %342, %287
  %.0453.lcssa = phi float [ %290, %287 ], [ %.2455, %342 ]
  %.lcssa = phi i32 [ %298, %287 ], [ %343, %342 ]
  %301 = fcmp ult float %.0453.lcssa, 1.000000e+00
  br i1 %301, label %.critedge3, label %346

302:                                              ; preds = %.lr.ph563, %342
  %303 = phi i32 [ %298, %.lr.ph563 ], [ %343, %342 ]
  %indvars.iv581 = phi i64 [ 0, %.lr.ph563 ], [ %indvars.iv.next582, %342 ]
  %.0453560 = phi float [ %290, %.lr.ph563 ], [ %.2455, %342 ]
  %304 = load i64, ptr %16, align 8, !tbaa !103
  %305 = shl nuw i64 1, %indvars.iv581
  %306 = and i64 %304, %305
  %.not477 = icmp eq i64 %306, 0
  br i1 %.not477, label %342, label %307

307:                                              ; preds = %302
  %308 = trunc nuw nsw i64 %indvars.iv581 to i32
  %309 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %300, i32 noundef %308)
  %310 = load i32, ptr %309, align 4, !tbaa !90
  %311 = and i32 %310, 8
  %.not478 = icmp eq i32 %311, 0
  br i1 %.not478, label %324, label %312

312:                                              ; preds = %307
  %313 = getelementptr inbounds i8, ptr %309, i64 24
  %314 = load float, ptr %313, align 4, !tbaa !140
  %315 = fdiv float %314, %.0446.lcssa.fr
  %316 = fmul float %290, %315
  %317 = load float, ptr %22, align 4, !tbaa !82
  %318 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %316, float noundef %317)
  %319 = fadd float %318, 0x3F847AE140000000
  %320 = fptosi float %319 to i32
  %321 = sitofp i32 %320 to float
  %322 = getelementptr inbounds i8, ptr %309, i64 16
  store float %321, ptr %322, align 4, !tbaa !138
  %323 = fsub float %.0453560, %321
  br label %324

324:                                              ; preds = %312, %307
  %.1454 = phi float [ %323, %312 ], [ %.0453560, %307 ]
  %325 = getelementptr inbounds i8, ptr %309, i64 85
  %326 = load i8, ptr %325, align 1, !tbaa !102
  %327 = icmp eq i8 %326, -1
  br i1 %327, label %328, label %333

328:                                              ; preds = %324
  %329 = load i8, ptr %163, align 2, !tbaa !131
  %.not479 = icmp eq i8 %329, -1
  br i1 %.not479, label %333, label %330

330:                                              ; preds = %328
  %331 = load i32, ptr %309, align 4, !tbaa !90
  %332 = or i32 %331, 1073741824
  store i32 %332, ptr %309, align 4, !tbaa !90
  br label %333

333:                                              ; preds = %330, %328, %324
  %334 = getelementptr inbounds i8, ptr %309, i64 16
  %335 = load float, ptr %334, align 4, !tbaa !138
  %336 = load float, ptr %22, align 4, !tbaa !82
  %337 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %335, float noundef %336)
  %338 = call noundef float @_ZL7ImFloorf(float noundef %337)
  %339 = getelementptr inbounds i8, ptr %309, i64 4
  store float %338, ptr %339, align 4, !tbaa !145
  %340 = load float, ptr %297, align 8, !tbaa !144
  %341 = fadd float %338, %340
  store float %341, ptr %297, align 8, !tbaa !144
  %.pre595 = load i32, ptr %23, align 4, !tbaa !83
  br label %342

342:                                              ; preds = %302, %333
  %343 = phi i32 [ %.pre595, %333 ], [ %303, %302 ]
  %.2455 = phi float [ %.1454, %333 ], [ %.0453560, %302 ]
  %indvars.iv.next582 = add nuw nsw i64 %indvars.iv581, 1
  %344 = sext i32 %343 to i64
  %345 = icmp slt i64 %indvars.iv.next582, %344
  br i1 %345, label %302, label %._crit_edge564, !llvm.loop !146

346:                                              ; preds = %._crit_edge564
  %347 = load i32, ptr %11, align 4, !tbaa !28
  %348 = and i32 %347, 524288
  %.not467 = icmp eq i32 %348, 0
  br i1 %.not467, label %.preheader, label %.critedge3

.preheader:                                       ; preds = %346
  %349 = fcmp ogt float %.0446.lcssa.fr, 0.000000e+00
  %350 = icmp sgt i32 %.lcssa, 0
  %or.cond8569 = and i1 %350, %349
  br i1 %or.cond8569, label %.lr.ph572.split.preheader, label %.critedge3

.lr.ph572.split.preheader:                        ; preds = %.preheader
  %351 = getelementptr inbounds i8, ptr %0, i64 24
  %352 = getelementptr inbounds i8, ptr %0, i64 40
  %.0449567 = add nsw i32 %.lcssa, -1
  %353 = zext nneg i32 %.0449567 to i64
  br label %.lr.ph572.split

.lr.ph572.split:                                  ; preds = %.lr.ph572.split.preheader, %373
  %indvars.iv584 = phi i64 [ %353, %.lr.ph572.split.preheader ], [ %indvars.iv.next585, %373 ]
  %.3570 = phi float [ %.0453.lcssa, %.lr.ph572.split.preheader ], [ %.5, %373 ]
  %354 = load i64, ptr %17, align 8, !tbaa !105
  %355 = shl nuw i64 1, %indvars.iv584
  %356 = and i64 %354, %355
  %.not468 = icmp eq i64 %356, 0
  br i1 %.not468, label %373, label %357

357:                                              ; preds = %.lr.ph572.split
  %358 = trunc nuw nsw i64 %indvars.iv584 to i32
  %359 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %352, i32 noundef %358)
  %360 = load i8, ptr %359, align 1, !tbaa !84
  %361 = sext i8 %360 to i32
  %362 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %351, i32 noundef %361)
  %363 = load i32, ptr %362, align 4, !tbaa !90
  %364 = and i32 %363, 8
  %.not469 = icmp eq i32 %364, 0
  br i1 %.not469, label %373, label %365

365:                                              ; preds = %357
  %366 = getelementptr inbounds i8, ptr %362, i64 16
  %367 = load float, ptr %366, align 4, !tbaa !138
  %368 = fadd float %367, 1.000000e+00
  store float %368, ptr %366, align 4, !tbaa !138
  %369 = getelementptr inbounds i8, ptr %362, i64 4
  %370 = load float, ptr %369, align 4, !tbaa !145
  %371 = fadd float %370, 1.000000e+00
  store float %371, ptr %369, align 4, !tbaa !145
  %372 = fadd float %.3570, -1.000000e+00
  br label %373

373:                                              ; preds = %365, %357, %.lr.ph572.split
  %.5 = phi float [ %.3570, %.lr.ph572.split ], [ %372, %365 ], [ %.3570, %357 ]
  %indvars.iv.next585 = add nsw i64 %indvars.iv584, -1
  %374 = fcmp oge float %.5, 1.000000e+00
  %375 = icmp sgt i64 %indvars.iv584, 0
  %or.cond8 = and i1 %374, %375
  br i1 %or.cond8, label %.lr.ph572.split, label %.critedge3, !llvm.loop !147

.critedge3:                                       ; preds = %373, %.preheader, %346, %._crit_edge564
  %376 = getelementptr inbounds i8, ptr %0, i64 484
  store i8 -1, ptr %376, align 4, !tbaa !148
  %377 = getelementptr inbounds i8, ptr %0, i64 485
  store i8 -1, ptr %377, align 1, !tbaa !149
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #11
  %378 = getelementptr inbounds i8, ptr %0, i64 244
  %379 = load float, ptr %378, align 4, !tbaa !150
  %380 = getelementptr inbounds i8, ptr %0, i64 248
  %381 = load float, ptr %380, align 4, !tbaa !151
  %382 = getelementptr inbounds i8, ptr %0, i64 252
  %383 = load float, ptr %382, align 4, !tbaa !152
  %384 = getelementptr inbounds i8, ptr %0, i64 256
  %385 = load float, ptr %384, align 4, !tbaa !153
  %386 = getelementptr inbounds i8, ptr %0, i64 212
  %387 = load float, ptr %386, align 4, !tbaa !154
  %388 = fadd float %381, %387
  %389 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %385, float noundef %388)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %3, float noundef %379, float noundef %381, float noundef %383, float noundef %389)
  %390 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectj(ptr noundef nonnull align 4 dereferenceable(16) %3, i32 noundef 0)
  %391 = getelementptr inbounds i8, ptr %0, i64 500
  %392 = load i8, ptr %391, align 4, !tbaa !155
  %393 = icmp sgt i8 %392, 0
  %. = select i1 %393, ptr %378, ptr %2
  %394 = load float, ptr %., align 4, !tbaa !156
  %395 = load float, ptr %174, align 8, !tbaa !134
  %396 = load float, ptr %176, align 4, !tbaa !135
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %397 = getelementptr inbounds i8, ptr %0, i64 292
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %4, ptr noundef nonnull align 4 dereferenceable(16) %397, i64 16, i1 false), !tbaa.struct !133
  %398 = getelementptr inbounds i8, ptr %0, i64 88
  %399 = getelementptr inbounds i8, ptr %0, i64 96
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %398, i8 0, i64 16, i1 false)
  %400 = load i32, ptr %23, align 4, !tbaa !83
  %401 = icmp sgt i32 %400, 0
  br i1 %401, label %.lr.ph577, label %._crit_edge578

.lr.ph577:                                        ; preds = %.critedge3
  %402 = fadd float %394, %395
  %403 = fsub float %402, %396
  %404 = getelementptr inbounds i8, ptr %0, i64 40
  %405 = getelementptr inbounds i8, ptr %0, i64 24
  %406 = getelementptr inbounds i8, ptr %0, i64 498
  %407 = getelementptr inbounds i8, ptr %5, i64 296
  %408 = getelementptr inbounds i8, ptr %2, i64 4
  %409 = getelementptr inbounds i8, ptr %0, i64 519
  %410 = getelementptr inbounds i8, ptr %4, i64 8
  br label %419

._crit_edge578:                                   ; preds = %588, %.critedge3
  %411 = load float, ptr %173, align 4, !tbaa !157
  %412 = getelementptr inbounds i8, ptr %0, i64 24
  %413 = load i8, ptr %148, align 1, !tbaa !111
  %414 = sext i8 %413 to i32
  %415 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %412, i32 noundef %414)
  %416 = getelementptr inbounds i8, ptr %415, i64 40
  %417 = load float, ptr %416, align 4, !tbaa !158
  %418 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %411, float noundef %417)
  br i1 %390, label %592, label %602

419:                                              ; preds = %.lr.ph577, %588
  %indvars.iv587 = phi i64 [ 0, %.lr.ph577 ], [ %indvars.iv.next588, %588 ]
  %.0436575 = phi float [ %403, %.lr.ph577 ], [ %.2438, %588 ]
  %.0439574 = phi i1 [ %393, %.lr.ph577 ], [ %.1440, %588 ]
  %.0441573 = phi i32 [ 0, %.lr.ph577 ], [ %.1442, %588 ]
  %420 = trunc nuw nsw i64 %indvars.iv587 to i32
  %421 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %404, i32 noundef %420)
  %422 = load i8, ptr %421, align 1, !tbaa !84
  %423 = sext i8 %422 to i32
  %424 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %405, i32 noundef %423)
  %425 = load i8, ptr %406, align 2, !tbaa !159
  %426 = icmp sgt i8 %425, 0
  br i1 %426, label %430, label %427

427:                                              ; preds = %419
  %428 = load i8, ptr %391, align 4, !tbaa !155
  %429 = icmp slt i8 %422, %428
  br label %430

430:                                              ; preds = %427, %419
  %431 = phi i1 [ true, %419 ], [ %429, %427 ]
  %432 = zext i1 %431 to i8
  %433 = getelementptr inbounds i8, ptr %424, i64 98
  store i8 %432, ptr %433, align 2, !tbaa !160
  br i1 %.0439574, label %434, label %443

434:                                              ; preds = %430
  %435 = load i8, ptr %391, align 4, !tbaa !155
  %436 = sext i8 %435 to i32
  %437 = icmp eq i32 %.0441573, %436
  br i1 %437, label %438, label %443

438:                                              ; preds = %434
  %439 = load float, ptr %2, align 4, !tbaa !156
  %440 = load float, ptr %378, align 4, !tbaa !150
  %441 = fsub float %439, %440
  %442 = fadd float %.0436575, %441
  br label %443

443:                                              ; preds = %438, %434, %430
  %.1440 = phi i1 [ false, %438 ], [ true, %434 ], [ false, %430 ]
  %.1437 = phi float [ %442, %438 ], [ %.0436575, %434 ], [ %.0436575, %430 ]
  %444 = load i32, ptr %424, align 4, !tbaa !90
  %445 = and i32 %444, -251658241
  store i32 %445, ptr %424, align 4, !tbaa !90
  %446 = load i64, ptr %17, align 8, !tbaa !105
  %447 = shl nuw i64 1, %indvars.iv587
  %448 = and i64 %446, %447
  %449 = icmp eq i64 %448, 0
  br i1 %449, label %450, label %462

450:                                              ; preds = %443
  %451 = getelementptr inbounds i8, ptr %424, i64 32
  %452 = getelementptr inbounds i8, ptr %424, i64 40
  store float %.1437, ptr %452, align 4, !tbaa !158
  store float %.1437, ptr %451, align 4, !tbaa !161
  %453 = getelementptr inbounds i8, ptr %424, i64 52
  store float %.1437, ptr %453, align 4, !tbaa !162
  %454 = getelementptr inbounds i8, ptr %424, i64 12
  store float %.1437, ptr %454, align 4, !tbaa !163
  %455 = getelementptr inbounds i8, ptr %424, i64 8
  store float %.1437, ptr %455, align 4, !tbaa !164
  %456 = getelementptr inbounds i8, ptr %424, i64 4
  store float 0.000000e+00, ptr %456, align 4, !tbaa !145
  %457 = load float, ptr %408, align 4, !tbaa !165
  %458 = getelementptr inbounds i8, ptr %424, i64 36
  store float %457, ptr %458, align 4, !tbaa !166
  %459 = getelementptr inbounds i8, ptr %424, i64 44
  store float 0x47EFFFFFE0000000, ptr %459, align 4, !tbaa !167
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %451, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %460 = getelementptr inbounds i8, ptr %424, i64 93
  store <4 x i8> <i8 0, i8 0, i8 0, i8 1>, ptr %460, align 1, !tbaa !168
  %461 = getelementptr inbounds i8, ptr %424, i64 60
  store float 1.000000e+00, ptr %461, align 4, !tbaa !169
  br label %588

462:                                              ; preds = %443
  br i1 %390, label %463, label %472

463:                                              ; preds = %462
  %464 = load float, ptr %407, align 8, !tbaa !170
  %465 = getelementptr inbounds i8, ptr %424, i64 32
  %466 = load float, ptr %465, align 4, !tbaa !161
  %467 = fcmp oge float %464, %466
  %468 = getelementptr inbounds i8, ptr %424, i64 40
  %469 = load float, ptr %468, align 4
  %470 = fcmp olt float %464, %469
  %or.cond518 = select i1 %467, i1 %470, i1 false
  br i1 %or.cond518, label %471, label %472

471:                                              ; preds = %463
  store i8 %422, ptr %376, align 4, !tbaa !148
  br label %472

472:                                              ; preds = %471, %463, %462
  %473 = getelementptr inbounds i8, ptr %424, i64 8
  store float %.1437, ptr %473, align 4, !tbaa !164
  %474 = call noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %423)
  %475 = getelementptr inbounds i8, ptr %424, i64 4
  %476 = load float, ptr %475, align 4, !tbaa !145
  %477 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %476, float noundef %474)
  store float %477, ptr %475, align 4, !tbaa !145
  %478 = getelementptr inbounds i8, ptr %424, i64 16
  %479 = load float, ptr %478, align 4, !tbaa !138
  %480 = load float, ptr %22, align 4, !tbaa !82
  %481 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %479, float noundef %480)
  %482 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %477, float noundef %481)
  store float %482, ptr %475, align 4, !tbaa !145
  %483 = fadd float %.1437, %482
  %484 = load float, ptr %176, align 4, !tbaa !135
  %485 = fadd float %483, %484
  %486 = load float, ptr %178, align 8, !tbaa !136
  %487 = fadd float %485, %486
  %488 = load float, ptr %291, align 4, !tbaa !141
  %489 = call float @llvm.fmuladd.f32(float %488, float 2.000000e+00, float %487)
  %490 = getelementptr inbounds i8, ptr %424, i64 12
  store float %489, ptr %490, align 4, !tbaa !163
  %491 = load float, ptr %473, align 4, !tbaa !164
  %492 = fadd float %488, %491
  %493 = fadd float %484, %492
  %494 = getelementptr inbounds i8, ptr %424, i64 52
  store float %493, ptr %494, align 4, !tbaa !162
  %495 = fsub float %489, %488
  %496 = fsub float %495, %486
  %497 = getelementptr inbounds i8, ptr %424, i64 56
  store float %496, ptr %497, align 4, !tbaa !171
  %498 = fmul float %482, 0x3FE4CCCCC0000000
  %499 = call noundef float @_ZL7ImFloorf(float noundef %498)
  %500 = getelementptr inbounds i8, ptr %424, i64 60
  store float %499, ptr %500, align 4, !tbaa !169
  %501 = load float, ptr %473, align 4, !tbaa !164
  %502 = getelementptr inbounds i8, ptr %424, i64 32
  store float %501, ptr %502, align 4, !tbaa !161
  %503 = load float, ptr %408, align 4, !tbaa !165
  %504 = getelementptr inbounds i8, ptr %424, i64 36
  store float %503, ptr %504, align 4, !tbaa !166
  %505 = load float, ptr %490, align 4, !tbaa !163
  %506 = getelementptr inbounds i8, ptr %424, i64 40
  store float %505, ptr %506, align 4, !tbaa !158
  %507 = getelementptr inbounds i8, ptr %424, i64 44
  store float 0x47EFFFFFE0000000, ptr %507, align 4, !tbaa !167
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %502, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %508 = load float, ptr %506, align 4, !tbaa !158
  %509 = load float, ptr %502, align 4, !tbaa !161
  %510 = fcmp ogt float %508, %509
  %511 = getelementptr inbounds i8, ptr %424, i64 93
  %512 = zext i1 %510 to i8
  store i8 %512, ptr %511, align 1, !tbaa !172
  %513 = getelementptr inbounds i8, ptr %424, i64 94
  store i8 1, ptr %513, align 2, !tbaa !173
  br i1 %510, label %514, label %.critedge520

514:                                              ; preds = %472
  %515 = zext nneg i32 %423 to i64
  %516 = shl nuw i64 1, %515
  %517 = load i64, ptr %398, align 8, !tbaa !174
  %518 = or i64 %517, %516
  store i64 %518, ptr %398, align 8, !tbaa !174
  br label %.critedge525

.critedge520:                                     ; preds = %472
  %.old = getelementptr inbounds i8, ptr %424, i64 99
  %.old522 = load i8, ptr %.old, align 1, !tbaa !99
  %.not476.old = icmp eq i8 %.old522, 0
  br i1 %.not476.old, label %519, label %.critedge525

519:                                              ; preds = %.critedge520
  %520 = getelementptr inbounds i8, ptr %424, i64 100
  %521 = load i8, ptr %520, align 4, !tbaa !98
  %522 = icmp ne i8 %521, 0
  %523 = getelementptr inbounds i8, ptr %424, i64 95
  %524 = zext i1 %522 to i8
  store i8 %524, ptr %523, align 1, !tbaa !175
  br i1 %522, label %526, label %531

.critedge525:                                     ; preds = %514, %.critedge520
  %525 = getelementptr inbounds i8, ptr %424, i64 95
  store i8 1, ptr %525, align 1, !tbaa !175
  br label %526

526:                                              ; preds = %.critedge525, %519
  %527 = zext nneg i32 %423 to i64
  %528 = shl nuw i64 1, %527
  %529 = load i64, ptr %399, align 8, !tbaa !137
  %530 = or i64 %529, %528
  store i64 %530, ptr %399, align 8, !tbaa !137
  br label %531

531:                                              ; preds = %526, %519
  %532 = getelementptr inbounds i8, ptr %424, i64 90
  %533 = load i8, ptr %532, align 2, !tbaa !94, !range !26, !noundef !27
  %534 = trunc nuw i8 %533 to i1
  br i1 %534, label %535, label %538

535:                                              ; preds = %531
  %536 = load i8, ptr %409, align 1, !tbaa !176, !range !26, !noundef !27
  %537 = trunc nuw i8 %536 to i1
  br label %538

538:                                              ; preds = %535, %531
  %539 = phi i1 [ true, %531 ], [ %537, %535 ]
  %540 = getelementptr inbounds i8, ptr %424, i64 96
  %541 = zext i1 %539 to i8
  store i8 %541, ptr %540, align 4, !tbaa !177
  %or.cond6.demorgan = and i1 %510, %539
  br i1 %or.cond6.demorgan, label %542, label %543

542:                                              ; preds = %538
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.2, i32 noundef 1029, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

543:                                              ; preds = %538
  %544 = load i32, ptr %424, align 4, !tbaa !90
  %storemerge.v = select i1 %510, i32 50331648, i32 16777216
  %storemerge = or i32 %544, %storemerge.v
  store i32 %storemerge, ptr %424, align 4, !tbaa !90
  %545 = getelementptr inbounds i8, ptr %424, i64 86
  %546 = load i8, ptr %545, align 2, !tbaa !95
  %.not = icmp eq i8 %546, -1
  br i1 %.not, label %549, label %547

547:                                              ; preds = %543
  %548 = or i32 %storemerge, 67108864
  store i32 %548, ptr %424, align 4, !tbaa !90
  br label %549

549:                                              ; preds = %547, %543
  %550 = phi i32 [ %548, %547 ], [ %storemerge, %543 ]
  %551 = load i8, ptr %376, align 4, !tbaa !148
  %552 = icmp eq i8 %551, %422
  br i1 %552, label %553, label %555

553:                                              ; preds = %549
  %554 = or i32 %550, 134217728
  store i32 %554, ptr %424, align 4, !tbaa !90
  br label %555

555:                                              ; preds = %553, %549
  %556 = load <4 x float>, ptr %494, align 4
  %557 = getelementptr inbounds i8, ptr %424, i64 64
  %558 = shufflevector <4 x float> %556, <4 x float> poison, <4 x i32> zeroinitializer
  store <4 x float> %558, ptr %557, align 4, !tbaa !97
  %559 = load i8, ptr %409, align 1, !tbaa !176, !range !26, !noundef !27
  %560 = icmp eq i8 %559, 0
  br i1 %560, label %561, label %568

561:                                              ; preds = %555
  %562 = getelementptr inbounds i8, ptr %424, i64 99
  %563 = load i8, ptr %562, align 1, !tbaa !99
  %564 = lshr i8 %563, 1
  store i8 %564, ptr %562, align 1, !tbaa !99
  %565 = getelementptr inbounds i8, ptr %424, i64 100
  %566 = load i8, ptr %565, align 4, !tbaa !98
  %567 = lshr i8 %566, 1
  store i8 %567, ptr %565, align 4, !tbaa !98
  br label %568

568:                                              ; preds = %561, %555
  %569 = load i8, ptr %391, align 4, !tbaa !155
  %570 = sext i8 %569 to i32
  %571 = icmp slt i32 %.0441573, %570
  br i1 %571, label %572, label %578

572:                                              ; preds = %568
  %573 = load float, ptr %490, align 4, !tbaa !163
  %574 = fadd float %573, 1.000000e+00
  %575 = load float, ptr %4, align 4, !tbaa !156
  %576 = load float, ptr %410, align 4, !tbaa !178
  %577 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %574, float noundef %575, float noundef %576)
  store float %577, ptr %4, align 4, !tbaa !156
  br label %578

578:                                              ; preds = %572, %568
  %579 = load float, ptr %475, align 4, !tbaa !145
  %580 = load float, ptr %176, align 4, !tbaa !135
  %581 = fadd float %579, %580
  %582 = load float, ptr %178, align 8, !tbaa !136
  %583 = fadd float %581, %582
  %584 = load float, ptr %291, align 4, !tbaa !141
  %585 = call float @llvm.fmuladd.f32(float %584, float 2.000000e+00, float %583)
  %586 = fadd float %.1437, %585
  %587 = add nsw i32 %.0441573, 1
  br label %588

588:                                              ; preds = %578, %450
  %.1442 = phi i32 [ %.0441573, %450 ], [ %587, %578 ]
  %.2438 = phi float [ %.1437, %450 ], [ %586, %578 ]
  %indvars.iv.next588 = add nuw nsw i64 %indvars.iv587, 1
  %589 = load i32, ptr %23, align 4, !tbaa !83
  %590 = sext i32 %589 to i64
  %591 = icmp slt i64 %indvars.iv.next588, %590
  br i1 %591, label %419, label %._crit_edge578, !llvm.loop !179

592:                                              ; preds = %._crit_edge578
  %593 = load i8, ptr %376, align 4, !tbaa !148
  %594 = icmp eq i8 %593, -1
  br i1 %594, label %595, label %602

595:                                              ; preds = %592
  %596 = getelementptr inbounds i8, ptr %5, i64 296
  %597 = load float, ptr %596, align 8, !tbaa !170
  %598 = fcmp ult float %597, %418
  br i1 %598, label %602, label %599

599:                                              ; preds = %595
  %600 = load i32, ptr %23, align 4, !tbaa !83
  %601 = trunc i32 %600 to i8
  store i8 %601, ptr %376, align 4, !tbaa !148
  br label %602

602:                                              ; preds = %595, %599, %592, %._crit_edge578
  %603 = and i8 %.0425.lcssa, 1
  %604 = icmp ne i8 %603, 0
  %.pre596.pre = load i32, ptr %11, align 4, !tbaa !28
  %605 = and i32 %.pre596.pre, 1
  %.not470 = icmp eq i32 %605, 0
  %or.cond = select i1 %604, i1 true, i1 %.not470
  br i1 %or.cond, label %608, label %606

606:                                              ; preds = %602
  %607 = and i32 %.pre596.pre, -2
  store i32 %607, ptr %11, align 4, !tbaa !28
  br label %608

608:                                              ; preds = %606, %602
  %.pre596 = phi i32 [ %607, %606 ], [ %.pre596.pre, %602 ]
  %609 = load i8, ptr %162, align 1, !tbaa !130
  %.not471 = icmp eq i8 %609, -1
  br i1 %.not471, label %612, label %610

610:                                              ; preds = %608
  %611 = and i32 %.pre596, -65537
  store i32 %611, ptr %11, align 4, !tbaa !28
  br label %612

612:                                              ; preds = %610, %608
  %613 = phi i32 [ %611, %610 ], [ %.pre596, %608 ]
  %614 = and i32 %613, 65536
  %.not472 = icmp eq i32 %614, 0
  br i1 %.not472, label %620, label %615

615:                                              ; preds = %612
  %616 = getelementptr inbounds i8, ptr %0, i64 284
  store float %418, ptr %616, align 4, !tbaa !180
  store float %418, ptr %382, align 4, !tbaa !152
  %617 = getelementptr inbounds i8, ptr %0, i64 300
  %618 = load float, ptr %617, align 4, !tbaa !181
  %619 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %618, float noundef %418)
  store float %619, ptr %617, align 4, !tbaa !181
  br label %620

620:                                              ; preds = %615, %612
  %621 = getelementptr inbounds i8, ptr %0, i64 400
  %622 = load ptr, ptr %621, align 8, !tbaa !113
  %623 = getelementptr inbounds i8, ptr %622, i64 528
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %623, ptr noundef nonnull align 4 dereferenceable(16) %173, i64 16, i1 false), !tbaa.struct !133
  %624 = load float, ptr %397, align 4, !tbaa !182
  %625 = getelementptr inbounds i8, ptr %0, i64 176
  store float %624, ptr %625, align 8, !tbaa !183
  %626 = getelementptr inbounds i8, ptr %0, i64 300
  %627 = load float, ptr %626, align 4, !tbaa !181
  %628 = getelementptr inbounds i8, ptr %0, i64 180
  store float %627, ptr %628, align 4, !tbaa !184
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef nonnull %0)
  %629 = load i32, ptr %11, align 4, !tbaa !28
  %630 = and i32 %629, 1
  %.not473 = icmp eq i32 %630, 0
  br i1 %.not473, label %632, label %631

631:                                              ; preds = %620
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef nonnull %0)
  br label %632

632:                                              ; preds = %631, %620
  %633 = getelementptr inbounds i8, ptr %0, i64 216
  store float 0.000000e+00, ptr %633, align 8, !tbaa !185
  store i8 1, ptr %6, align 1, !tbaa !9
  %634 = getelementptr inbounds i8, ptr %0, i64 509
  store i8 0, ptr %634, align 1, !tbaa !186
  %635 = getelementptr inbounds i8, ptr %0, i64 510
  %636 = load i8, ptr %635, align 2, !tbaa !187, !range !26, !noundef !27
  %637 = trunc nuw i8 %636 to i1
  br i1 %637, label %638, label %650

638:                                              ; preds = %632
  %639 = getelementptr inbounds i8, ptr %0, i64 128
  %640 = load i16, ptr %639, align 8, !tbaa !188
  %641 = getelementptr inbounds i8, ptr %0, i64 130
  %642 = load i16, ptr %641, align 2, !tbaa !189
  %643 = icmp eq i16 %640, %642
  br i1 %643, label %644, label %650

644:                                              ; preds = %638
  %645 = load i32, ptr %0, align 8, !tbaa !190
  %646 = call noundef i32 @_Z9ImHashStrPKcmj(ptr noundef nonnull @.str.14, i64 noundef 0, i32 noundef %645)
  %647 = call noundef zeroext i1 @_ZN5ImGui12BeginPopupExEji(i32 noundef %646, i32 noundef 321)
  br i1 %647, label %648, label %649

648:                                              ; preds = %644
  call void @_ZN5ImGui20TableDrawContextMenuEP10ImGuiTable(ptr noundef nonnull %0)
  call void @_ZN5ImGui8EndPopupEv()
  br label %650

649:                                              ; preds = %644
  store i8 0, ptr %635, align 2, !tbaa !187
  br label %650

650:                                              ; preds = %648, %649, %638, %632
  %651 = getelementptr inbounds i8, ptr %0, i64 508
  %652 = load i8, ptr %651, align 4, !tbaa !96, !range !26, !noundef !27
  %653 = trunc nuw i8 %652 to i1
  %.pre598 = load i32, ptr %11, align 4, !tbaa !28
  %654 = and i32 %.pre598, 8
  %.not474 = icmp ne i32 %654, 0
  %or.cond608.not = select i1 %653, i1 %.not474, i1 false
  br i1 %or.cond608.not, label %655, label %656

655:                                              ; preds = %650
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef nonnull %0)
  %.pre597 = load i32, ptr %11, align 4, !tbaa !28
  br label %656

656:                                              ; preds = %655, %650
  %657 = phi i32 [ %.pre597, %655 ], [ %.pre598, %650 ]
  %658 = load ptr, ptr %621, align 8, !tbaa !113
  %659 = and i32 %657, 1048576
  %.not475 = icmp eq i32 %659, 0
  br i1 %.not475, label %665, label %660

660:                                              ; preds = %656
  %661 = getelementptr inbounds i8, ptr %0, i64 424
  %662 = load ptr, ptr %661, align 8, !tbaa !191
  %663 = getelementptr inbounds i8, ptr %658, i64 640
  %664 = load ptr, ptr %663, align 8, !tbaa !192
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %662, ptr noundef %664, i32 noundef 2)
  br label %670

665:                                              ; preds = %656
  %666 = getelementptr inbounds i8, ptr %658, i64 640
  %667 = load ptr, ptr %666, align 8, !tbaa !192
  %668 = getelementptr inbounds i8, ptr %658, i64 544
  %.sroa.09.0.copyload = load <2 x float>, ptr %668, align 8
  %669 = getelementptr inbounds i8, ptr %658, i64 552
  %.sroa.0.0.copyload = load <2 x float>, ptr %669, align 8
  call void @_ZN10ImDrawList12PushClipRectE6ImVec2S0_b(ptr noundef nonnull align 8 dereferenceable(196) %667, <2 x float> %.sroa.09.0.copyload, <2 x float> %.sroa.0.0.copyload, i1 noundef zeroext false)
  br label %670

670:                                              ; preds = %665, %660
  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: mustprogress uwtable
declare hidden void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

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

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

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

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

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

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

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

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

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

declare noundef i32 @_Z9ImHashStrPKcmj(ptr noundef, i64 noundef, i32 noundef) local_unnamed_addr #8

declare noundef zeroext i1 @_ZN5ImGui12BeginPopupExEji(i32 noundef, i32 noundef) local_unnamed_addr #8

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

declare void @_ZN5ImGui8EndPopupEv() local_unnamed_addr #8

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

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

declare void @_ZN10ImDrawList12PushClipRectE6ImVec2S0_b(ptr noundef nonnull align 8 dereferenceable(196), <2 x float>, <2 x float>, i1 noundef zeroext) local_unnamed_addr #8

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #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 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { "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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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, !25, i64 505}
!10 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !12, i64 24, !13, i64 40, !14, i64 56, !15, i64 72, !15, i64 80, !15, i64 88, !15, i64 96, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !11, i64 120, !11, i64 124, !16, i64 128, !16, i64 130, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !17, i64 148, !11, i64 152, !11, i64 154, !11, i64 156, !7, i64 160, !11, i64 168, !11, i64 172, !17, i64 176, !17, i64 180, !17, i64 184, !17, i64 188, !17, i64 192, !17, i64 196, !17, i64 200, !17, i64 204, !17, i64 208, !17, i64 212, !17, i64 216, !17, i64 220, !17, i64 224, !17, i64 228, !17, i64 232, !17, i64 236, !17, i64 240, !18, i64 244, !18, i64 260, !18, i64 276, !18, i64 292, !18, i64 308, !18, i64 324, !18, i64 340, !18, i64 356, !18, i64 372, !6, i64 392, !6, i64 400, !20, i64 408, !6, i64 424, !22, i64 432, !23, i64 448, !24, i64 464, !7, i64 480, !7, i64 481, !7, i64 482, !7, i64 483, !7, i64 484, !7, i64 485, !7, i64 486, !7, i64 487, !7, i64 488, !7, i64 489, !7, i64 490, !7, i64 491, !7, i64 492, !7, i64 493, !7, i64 494, !7, i64 495, !7, i64 496, !7, i64 497, !7, i64 498, !7, i64 499, !7, i64 500, !7, i64 501, !7, i64 502, !7, i64 503, !7, i64 504, !25, i64 505, !25, i64 506, !25, i64 507, !25, i64 508, !25, i64 509, !25, i64 510, !25, i64 511, !25, i64 512, !25, i64 513, !25, i64 514, !25, i64 515, !25, i64 516, !25, i64 517, !25, i64 518, !25, i64 519}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!13 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!14 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!15 = !{!"long long", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"float", !7, i64 0}
!18 = !{!"_ZTS6ImRect", !19, i64 0, !19, i64 8}
!19 = !{!"_ZTS6ImVec2", !17, i64 0, !17, i64 4}
!20 = !{!"_ZTS15ImGuiTextBuffer", !21, i64 0}
!21 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!22 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !16, i64 4, !16, i64 6, !11, i64 8}
!23 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!24 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !25, i64 12}
!25 = !{!"bool", !7, i64 0}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!10, !11, i64 4}
!29 = !{!10, !25, i64 513}
!30 = !{!10, !7, i64 481}
!31 = !{!10, !7, i64 492}
!32 = !{!33, !17, i64 5524}
!33 = !{!"_ZTS12ImGuiContext", !25, i64 0, !25, i64 1, !34, i64 8, !36, i64 5464, !6, i64 6512, !17, i64 6520, !17, i64 6524, !37, i64 6528, !39, i64 7040, !11, i64 7048, !11, i64 7052, !11, i64 7056, !25, i64 7060, !25, i64 7061, !25, i64 7062, !25, i64 7063, !25, i64 7064, !11, i64 7068, !6, i64 7072, !40, i64 7080, !40, i64 7096, !40, i64 7112, !41, i64 7128, !42, i64 7144, !11, i64 7160, !19, i64 7164, !6, i64 7176, !6, i64 7184, !6, i64 7192, !6, i64 7200, !6, i64 7208, !19, i64 7216, !17, i64 7224, !11, i64 7228, !11, i64 7232, !25, i64 7236, !25, i64 7237, !25, i64 7238, !25, i64 7239, !17, i64 7240, !17, i64 7244, !11, i64 7248, !11, i64 7252, !17, i64 7256, !25, i64 7260, !25, i64 7261, !25, i64 7262, !25, i64 7263, !25, i64 7264, !25, i64 7265, !25, i64 7266, !11, i64 7268, !11, i64 7272, !15, i64 7280, !19, i64 7288, !6, i64 7296, !44, i64 7304, !11, i64 7308, !11, i64 7312, !25, i64 7316, !25, i64 7317, !6, i64 7320, !11, i64 7328, !17, i64 7332, !11, i64 7336, !45, i64 7340, !46, i64 7360, !47, i64 7408, !48, i64 7520, !49, i64 7536, !50, i64 7552, !51, i64 7568, !52, i64 7584, !53, i64 7600, !54, i64 7616, !54, i64 7632, !55, i64 7648, !6, i64 7664, !11, i64 7672, !11, i64 7676, !11, i64 7680, !11, i64 7684, !11, i64 7688, !11, i64 7692, !11, i64 7696, !11, i64 7700, !11, i64 7704, !11, i64 7708, !11, i64 7712, !44, i64 7716, !18, i64 7720, !11, i64 7736, !56, i64 7740, !11, i64 7744, !25, i64 7748, !25, i64 7749, !25, i64 7750, !25, i64 7751, !25, i64 7752, !25, i64 7753, !25, i64 7754, !11, i64 7756, !18, i64 7760, !25, i64 7776, !11, i64 7780, !57, i64 7784, !11, i64 7788, !11, i64 7792, !11, i64 7796, !11, i64 7800, !58, i64 7808, !58, i64 7856, !58, i64 7904, !6, i64 7952, !11, i64 7960, !6, i64 7968, !6, i64 7976, !6, i64 7984, !17, i64 7992, !17, i64 7996, !25, i64 8000, !6, i64 8008, !6, i64 8016, !11, i64 8024, !11, i64 8028, !11, i64 8032, !11, i64 8036, !25, i64 8040, !17, i64 8044, !11, i64 8048, !25, i64 8052, !25, i64 8053, !25, i64 8054, !11, i64 8056, !11, i64 8060, !11, i64 8064, !59, i64 8072, !18, i64 8136, !11, i64 8152, !11, i64 8156, !17, i64 8160, !11, i64 8164, !11, i64 8168, !11, i64 8172, !11, i64 8176, !60, i64 8184, !7, i64 8200, !6, i64 8216, !11, i64 8224, !61, i64 8232, !63, i64 8272, !64, i64 8288, !65, i64 8304, !6, i64 8320, !66, i64 8328, !68, i64 8368, !69, i64 8384, !19, i64 8400, !70, i64 8408, !73, i64 12144, !11, i64 12256, !11, i64 12260, !17, i64 12264, !17, i64 12268, !7, i64 12272, !38, i64 12284, !75, i64 12300, !17, i64 12348, !25, i64 12352, !25, i64 12353, !17, i64 12356, !17, i64 12360, !17, i64 12364, !17, i64 12368, !11, i64 12372, !17, i64 12376, !21, i64 12384, !51, i64 12400, !19, i64 12416, !19, i64 12424, !7, i64 12432, !25, i64 12433, !17, i64 12436, !20, i64 12440, !76, i64 12456, !77, i64 12472, !78, i64 12488, !79, i64 12504, !11, i64 12520, !25, i64 12524, !80, i64 12528, !6, i64 12536, !20, i64 12544, !6, i64 12560, !6, i64 12568, !17, i64 12576, !25, i64 12580, !11, i64 12584, !11, i64 12588, !11, i64 12592, !25, i64 12596, !11, i64 12600, !81, i64 12604, !7, i64 12620, !11, i64 13100, !11, i64 13104, !17, i64 13108, !11, i64 13112, !11, i64 13116, !11, i64 13120, !7, i64 13124}
!34 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !19, i64 8, !17, i64 16, !17, i64 20, !6, i64 24, !6, i64 32, !17, i64 40, !17, i64 44, !17, i64 48, !7, i64 52, !17, i64 140, !17, i64 144, !6, i64 152, !6, i64 160, !17, i64 168, !25, i64 172, !6, i64 176, !19, i64 184, !25, i64 192, !25, i64 193, !25, i64 194, !25, i64 195, !25, i64 196, !25, i64 197, !17, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !19, i64 288, !7, i64 296, !17, i64 304, !17, i64 308, !25, i64 312, !25, i64 313, !25, i64 314, !25, i64 315, !7, i64 316, !7, i64 828, !25, i64 908, !25, i64 909, !25, i64 910, !25, i64 911, !25, i64 912, !25, i64 913, !25, i64 914, !17, i64 916, !11, i64 920, !11, i64 924, !11, i64 928, !11, i64 932, !11, i64 936, !19, i64 940, !11, i64 948, !11, i64 952, !19, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1076, !7, i64 1096, !7, i64 1116, !7, i64 1156, !7, i64 1176, !7, i64 3224, !7, i64 5272, !7, i64 5352, !17, i64 5432, !16, i64 5436, !35, i64 5440}
!35 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!36 = !{!"_ZTS10ImGuiStyle", !17, i64 0, !17, i64 4, !19, i64 8, !17, i64 16, !17, i64 20, !19, i64 24, !19, i64 32, !11, i64 40, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !19, i64 60, !17, i64 68, !17, i64 72, !19, i64 76, !19, i64 84, !19, i64 92, !19, i64 100, !17, i64 108, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !17, i64 128, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !11, i64 148, !19, i64 152, !19, i64 160, !19, i64 168, !19, i64 176, !17, i64 184, !25, i64 188, !25, i64 189, !25, i64 190, !17, i64 192, !17, i64 196, !7, i64 200}
!37 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !17, i64 16, !17, i64 20, !17, i64 24, !38, i64 28, !11, i64 44, !7, i64 48, !17, i64 432, !7, i64 436, !6, i64 504}
!38 = !{!"_ZTS6ImVec4", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12}
!39 = !{!"double", !7, i64 0}
!40 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!41 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!42 = !{!"_ZTS12ImGuiStorage", !43, i64 0}
!43 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!45 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !17, i64 4, !11, i64 8, !11, i64 12, !25, i64 16}
!46 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !18, i64 12, !18, i64 28}
!47 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !25, i64 56, !18, i64 60, !6, i64 80, !6, i64 88, !17, i64 96, !19, i64 100}
!48 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!49 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!50 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!52 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!53 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!54 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!55 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!56 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!57 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!58 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !18, i64 16, !17, i64 32, !17, i64 36, !17, i64 40}
!59 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !25, i64 57, !25, i64 58}
!60 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!61 = !{!"_ZTS6ImPoolI10ImGuiTableE", !62, i64 0, !42, i64 16, !11, i64 32, !11, i64 36}
!62 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!63 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !67, i64 0, !42, i64 16, !11, i64 32, !11, i64 36}
!67 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!70 = !{!"_ZTS19ImGuiInputTextState", !11, i64 0, !11, i64 4, !11, i64 8, !35, i64 16, !21, i64 32, !21, i64 48, !25, i64 64, !11, i64 68, !17, i64 72, !71, i64 76, !17, i64 3704, !25, i64 3708, !25, i64 3709, !25, i64 3710, !11, i64 3712, !6, i64 3720, !6, i64 3728}
!71 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 12, !11, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !17, i64 28, !72, i64 32}
!72 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !11, i64 3588, !11, i64 3592}
!73 = !{!"_ZTS6ImFont", !64, i64 0, !17, i64 16, !17, i64 20, !35, i64 24, !74, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !16, i64 80, !16, i64 82, !16, i64 84, !16, i64 86, !25, i64 88, !17, i64 92, !17, i64 96, !17, i64 100, !11, i64 104, !7, i64 108}
!74 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!75 = !{!"_ZTS21ImGuiComboPreviewData", !18, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !17, i64 40, !11, i64 44}
!76 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!77 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !21, i64 0}
!78 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !21, i64 0}
!79 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!81 = !{!"_ZTS18ImGuiMetricsConfig", !25, i64 0, !25, i64 1, !25, i64 2, !25, i64 3, !25, i64 4, !11, i64 8, !11, i64 12}
!82 = !{!10, !17, i64 188}
!83 = !{!10, !11, i64 116}
!84 = !{!7, !7, i64 0}
!85 = !{!10, !7, i64 483}
!86 = !{!87, !16, i64 80}
!87 = !{!"_ZTS16ImGuiTableColumn", !11, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !17, i64 16, !17, i64 20, !17, i64 24, !17, i64 28, !18, i64 32, !11, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !17, i64 64, !17, i64 68, !17, i64 72, !17, i64 76, !16, i64 80, !7, i64 82, !7, i64 83, !7, i64 84, !7, i64 85, !7, i64 86, !7, i64 87, !7, i64 88, !7, i64 89, !25, i64 90, !25, i64 91, !25, i64 92, !25, i64 93, !25, i64 94, !25, i64 95, !25, i64 96, !25, i64 97, !7, i64 98, !7, i64 99, !7, i64 100, !7, i64 101, !7, i64 101, !7, i64 101, !7, i64 102}
!88 = !{!87, !11, i64 48}
!89 = !{!87, !17, i64 28}
!90 = !{!87, !11, i64 0}
!91 = !{!87, !25, i64 92}
!92 = !{!87, !25, i64 91}
!93 = !{!10, !25, i64 512}
!94 = !{!87, !25, i64 90}
!95 = !{!87, !7, i64 86}
!96 = !{!10, !25, i64 508}
!97 = !{!17, !17, i64 0}
!98 = !{!87, !7, i64 100}
!99 = !{!87, !7, i64 99}
!100 = !{!87, !7, i64 83}
!101 = !{!87, !7, i64 84}
!102 = !{!87, !7, i64 85}
!103 = !{!10, !15, i64 80}
!104 = !{!87, !7, i64 82}
!105 = !{!10, !15, i64 72}
!106 = !{!87, !25, i64 97}
!107 = !{!87, !17, i64 20}
!108 = distinct !{!108, !109}
!109 = !{!"llvm.loop.mustprogress"}
!110 = !{!10, !7, i64 480}
!111 = !{!10, !7, i64 493}
!112 = !{!10, !6, i64 392}
!113 = !{!10, !6, i64 400}
!114 = !{!115, !25, i64 147}
!115 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !11, i64 8, !11, i64 12, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !19, i64 56, !19, i64 64, !17, i64 72, !17, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !19, i64 92, !19, i64 100, !19, i64 108, !19, i64 116, !19, i64 124, !19, i64 132, !25, i64 140, !25, i64 141, !25, i64 142, !25, i64 143, !25, i64 144, !25, i64 145, !25, i64 146, !25, i64 147, !25, i64 148, !25, i64 149, !25, i64 150, !25, i64 151, !7, i64 152, !16, i64 154, !16, i64 156, !16, i64 158, !16, i64 160, !11, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !25, i64 171, !11, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !19, i64 184, !19, i64 192, !51, i64 200, !116, i64 216, !18, i64 464, !18, i64 480, !18, i64 496, !18, i64 512, !18, i64 528, !18, i64 544, !18, i64 560, !120, i64 576, !120, i64 580, !11, i64 584, !17, i64 588, !17, i64 592, !42, i64 600, !121, i64 616, !17, i64 632, !11, i64 636, !6, i64 640, !122, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !11, i64 928, !11, i64 932, !25, i64 936}
!116 = !{!"_ZTS19ImGuiWindowTempData", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !17, i64 56, !17, i64 60, !117, i64 64, !117, i64 68, !117, i64 72, !56, i64 76, !16, i64 80, !16, i64 82, !11, i64 84, !25, i64 88, !25, i64 89, !25, i64 90, !19, i64 92, !118, i64 100, !11, i64 128, !11, i64 132, !40, i64 136, !6, i64 152, !6, i64 160, !11, i64 168, !11, i64 172, !11, i64 176, !11, i64 180, !11, i64 184, !17, i64 188, !17, i64 192, !64, i64 200, !64, i64 216, !119, i64 232}
!117 = !{!"_ZTS6ImVec1", !17, i64 0}
!118 = !{!"_ZTS16ImGuiMenuColumns", !11, i64 0, !11, i64 4, !16, i64 8, !16, i64 10, !16, i64 12, !16, i64 14, !16, i64 16, !7, i64 18}
!119 = !{!"_ZTS15ImGuiStackSizes", !16, i64 0, !16, i64 2, !16, i64 4, !16, i64 6, !16, i64 8, !16, i64 10, !16, i64 12}
!120 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!121 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!122 = !{!"_ZTS10ImDrawList", !123, i64 0, !35, i64 16, !124, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !125, i64 88, !126, i64 104, !127, i64 120, !128, i64 136, !129, i64 168, !17, i64 192}
!123 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!124 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!125 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!126 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!127 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!128 = !{!"_ZTS15ImDrawCmdHeader", !38, i64 0, !6, i64 16, !11, i64 24}
!129 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !65, i64 8}
!130 = !{!10, !7, i64 495}
!131 = !{!10, !7, i64 494}
!132 = !{!10, !7, i64 482}
!133 = !{i64 0, i64 4, !97, i64 4, i64 4, !97, i64 8, i64 4, !97, i64 12, i64 4, !97}
!134 = !{!10, !17, i64 192}
!135 = !{!10, !17, i64 204}
!136 = !{!10, !17, i64 208}
!137 = !{!10, !15, i64 96}
!138 = !{!87, !17, i64 16}
!139 = !{!10, !25, i64 507}
!140 = !{!87, !17, i64 24}
!141 = !{!10, !17, i64 196}
!142 = distinct !{!142, !109}
!143 = !{!10, !17, i64 220}
!144 = !{!10, !17, i64 224}
!145 = !{!87, !17, i64 4}
!146 = distinct !{!146, !109}
!147 = distinct !{!147, !109}
!148 = !{!10, !7, i64 484}
!149 = !{!10, !7, i64 485}
!150 = !{!10, !17, i64 244}
!151 = !{!10, !17, i64 248}
!152 = !{!10, !17, i64 252}
!153 = !{!10, !17, i64 256}
!154 = !{!10, !17, i64 212}
!155 = !{!10, !7, i64 500}
!156 = !{!18, !17, i64 0}
!157 = !{!10, !17, i64 276}
!158 = !{!87, !17, i64 40}
!159 = !{!10, !7, i64 498}
!160 = !{!87, !7, i64 98}
!161 = !{!87, !17, i64 32}
!162 = !{!87, !17, i64 52}
!163 = !{!87, !17, i64 12}
!164 = !{!87, !17, i64 8}
!165 = !{!18, !17, i64 4}
!166 = !{!87, !17, i64 36}
!167 = !{!87, !17, i64 44}
!168 = !{!25, !25, i64 0}
!169 = !{!87, !17, i64 60}
!170 = !{!33, !17, i64 296}
!171 = !{!87, !17, i64 56}
!172 = !{!87, !25, i64 93}
!173 = !{!87, !25, i64 94}
!174 = !{!10, !15, i64 88}
!175 = !{!87, !25, i64 95}
!176 = !{!10, !25, i64 519}
!177 = !{!87, !25, i64 96}
!178 = !{!18, !17, i64 8}
!179 = distinct !{!179, !109}
!180 = !{!10, !17, i64 284}
!181 = !{!10, !17, i64 300}
!182 = !{!10, !17, i64 292}
!183 = !{!10, !17, i64 176}
!184 = !{!10, !17, i64 180}
!185 = !{!10, !17, i64 216}
!186 = !{!10, !25, i64 509}
!187 = !{!10, !25, i64 510}
!188 = !{!10, !16, i64 128}
!189 = !{!10, !16, i64 130}
!190 = !{!10, !11, i64 0}
!191 = !{!10, !6, i64 424}
!192 = !{!115, !6, i64 640}


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