; LLVM IR from Overload-Technologies/Overload :: Dependencies/ImGui/src/imgui_demo.ll (ZN5ImGui14ShowDemoWindowEPb)

; 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.ImGuiDemoWindowData = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr }
%struct.ImVec2 = type { float, float }
%struct.ImGuiViewport = type <{ i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, [4 x i8] }>
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, %struct.ImVec2, ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, i8, i8, i8, i8, i32, [155 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x double], [5 x i8], [5 x i8], i8, i8, [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], float, i8, i8, i16, %struct.ImVector, ptr, ptr, ptr }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }

@GImGuiDemoMarkerCallback = external dso_local global ptr, align 8
@GImGuiDemoMarkerCallbackUserData = external dso_local global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [102 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui14ShowDemoWindowEPb = external hidden unnamed_addr constant [35 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN5ImGui14ShowDemoWindowEPbE9demo_data = external hidden global %struct.ImGuiDemoWindowData, align 8
@_ZGVZN5ImGui14ShowDemoWindowEPbE9demo_data = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.4 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE7no_menu = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE7no_move = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE9no_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE8no_close = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE6no_nav = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE13no_background = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE10no_docking = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE16unsaved_document = external hidden global i8, align 1
@.str.5 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [188 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [346 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [176 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [177 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [206 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [255 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [177 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [552 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [225 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [180 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [242 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [17 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui14ShowDemoWindowEPb(ptr noundef %0) #0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca %struct.ImVec2, align 4
  %6 = alloca %struct.ImVec2, align 4
  %7 = alloca %struct.ImVec2, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca %struct.ImVec2, align 4
  %11 = alloca %struct.ImVec2, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %12 = call noundef ptr @_ZN5ImGui17GetCurrentContextEv()
  %13 = icmp ne ptr %12, null
  br i1 %13, label %14, label %15

14:                                               ; preds = %1
  br label %15

15:                                               ; preds = %14, %1
  %16 = phi i1 [ false, %1 ], [ true, %14 ]
  br i1 %16, label %17, label %18

17:                                               ; preds = %15
  br label %20

18:                                               ; preds = %15
  call void @__assert_fail(ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 349, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui14ShowDemoWindowEPb) #8
  unreachable

19:                                               ; No predecessors!
  br label %20

20:                                               ; preds = %19, %17
  %21 = call noundef zeroext i1 @_ZN5ImGui30DebugCheckVersionAndDataLayoutEPKcmmmmmm(ptr noundef @.str.3, i64 noundef 3088, i64 noundef 1204, i64 noundef 8, i64 noundef 16, i64 noundef 20, i64 noundef 2)
  %22 = load atomic i8, ptr @_ZGVZN5ImGui14ShowDemoWindowEPbE9demo_data acquire, align 8
  %23 = icmp eq i8 %22, 0
  br i1 %23, label %24, label %29, !prof !9

24:                                               ; preds = %20
  %25 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui14ShowDemoWindowEPbE9demo_data) #3
  %26 = icmp ne i32 %25, 0
  br i1 %26, label %27, label %29

27:                                               ; preds = %24
  %28 = call i32 @__cxa_atexit(ptr @_ZN19ImGuiDemoWindowDataD2Ev, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, ptr @__dso_handle) #3
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui14ShowDemoWindowEPbE9demo_data) #3
  br label %29

29:                                               ; preds = %27, %24, %20
  %30 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, align 8, !tbaa !10, !range !13, !noundef !14
  %31 = trunc i8 %30 to i1
  br i1 %31, label %32, label %33

32:                                               ; preds = %29
  call void @_ZL25ShowExampleAppMainMenuBarv()
  br label %33

33:                                               ; preds = %32, %29
  %34 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 5), align 1, !tbaa !15, !range !13, !noundef !14
  %35 = trunc i8 %34 to i1
  br i1 %35, label %36, label %37

36:                                               ; preds = %33
  call void @_ZL23ShowExampleAppDockSpacePb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 5))
  br label %37

37:                                               ; preds = %36, %33
  %38 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 4), align 4, !tbaa !16, !range !13, !noundef !14
  %39 = trunc i8 %38 to i1
  br i1 %39, label %40, label %41

40:                                               ; preds = %37
  call void @_ZL23ShowExampleAppDocumentsPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 4))
  br label %41

41:                                               ; preds = %40, %37
  %42 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 1), align 1, !tbaa !17, !range !13, !noundef !14
  %43 = trunc i8 %42 to i1
  br i1 %43, label %44, label %45

44:                                               ; preds = %41
  call void @_ZL27ShowExampleAppAssetsBrowserPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 1))
  br label %45

45:                                               ; preds = %44, %41
  %46 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 2), align 2, !tbaa !18, !range !13, !noundef !14
  %47 = trunc i8 %46 to i1
  br i1 %47, label %48, label %49

48:                                               ; preds = %45
  call void @_ZL21ShowExampleAppConsolePb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 2))
  br label %49

49:                                               ; preds = %48, %45
  %50 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 3), align 1, !tbaa !19, !range !13, !noundef !14
  %51 = trunc i8 %50 to i1
  br i1 %51, label %52, label %53

52:                                               ; preds = %49
  call void @_ZL29ShowExampleAppCustomRenderingPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 3))
  br label %53

53:                                               ; preds = %52, %49
  %54 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 6), align 2, !tbaa !20, !range !13, !noundef !14
  %55 = trunc i8 %54 to i1
  br i1 %55, label %56, label %57

56:                                               ; preds = %53
  call void @_ZL17ShowExampleAppLogPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 6))
  br label %57

57:                                               ; preds = %56, %53
  %58 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 7), align 1, !tbaa !21, !range !13, !noundef !14
  %59 = trunc i8 %58 to i1
  br i1 %59, label %60, label %61

60:                                               ; preds = %57
  call void @_ZL20ShowExampleAppLayoutPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 7))
  br label %61

61:                                               ; preds = %60, %57
  %62 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 8), align 8, !tbaa !22, !range !13, !noundef !14
  %63 = trunc i8 %62 to i1
  br i1 %63, label %64, label %65

64:                                               ; preds = %61
  call void @_ZL28ShowExampleAppPropertyEditorPbP19ImGuiDemoWindowData(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 8), ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data)
  br label %65

65:                                               ; preds = %64, %61
  %66 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 9), align 1, !tbaa !23, !range !13, !noundef !14
  %67 = trunc i8 %66 to i1
  br i1 %67, label %68, label %69

68:                                               ; preds = %65
  call void @_ZL27ShowExampleAppSimpleOverlayPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 9))
  br label %69

69:                                               ; preds = %68, %65
  %70 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 10), align 2, !tbaa !24, !range !13, !noundef !14
  %71 = trunc i8 %70 to i1
  br i1 %71, label %72, label %73

72:                                               ; preds = %69
  call void @_ZL24ShowExampleAppAutoResizePb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 10))
  br label %73

73:                                               ; preds = %72, %69
  %74 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 11), align 1, !tbaa !25, !range !13, !noundef !14
  %75 = trunc i8 %74 to i1
  br i1 %75, label %76, label %77

76:                                               ; preds = %73
  call void @_ZL31ShowExampleAppConstrainedResizePb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 11))
  br label %77

77:                                               ; preds = %76, %73
  %78 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 12), align 4, !tbaa !26, !range !13, !noundef !14
  %79 = trunc i8 %78 to i1
  br i1 %79, label %80, label %81

80:                                               ; preds = %77
  call void @_ZL24ShowExampleAppFullscreenPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 12))
  br label %81

81:                                               ; preds = %80, %77
  %82 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 13), align 1, !tbaa !27, !range !13, !noundef !14
  %83 = trunc i8 %82 to i1
  br i1 %83, label %84, label %85

84:                                               ; preds = %81
  call void @_ZL22ShowExampleAppLongTextPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 13))
  br label %85

85:                                               ; preds = %84, %81
  %86 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 14), align 2, !tbaa !28, !range !13, !noundef !14
  %87 = trunc i8 %86 to i1
  br i1 %87, label %88, label %89

88:                                               ; preds = %85
  call void @_ZL26ShowExampleAppWindowTitlesPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 14))
  br label %89

89:                                               ; preds = %88, %85
  %90 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 15), align 1, !tbaa !29, !range !13, !noundef !14
  %91 = trunc i8 %90 to i1
  br i1 %91, label %92, label %93

92:                                               ; preds = %89
  call void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 15))
  br label %93

93:                                               ; preds = %92, %89
  %94 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 16), align 8, !tbaa !30, !range !13, !noundef !14
  %95 = trunc i8 %94 to i1
  br i1 %95, label %96, label %97

96:                                               ; preds = %93
  call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 16))
  br label %97

97:                                               ; preds = %96, %93
  %98 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 17), align 1, !tbaa !31, !range !13, !noundef !14
  %99 = trunc i8 %98 to i1
  br i1 %99, label %100, label %101

100:                                              ; preds = %97
  call void @_ZN5ImGui21ShowIDStackToolWindowEPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 17))
  br label %101

101:                                              ; preds = %100, %97
  %102 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 19), align 1, !tbaa !32, !range !13, !noundef !14
  %103 = trunc i8 %102 to i1
  br i1 %103, label %104, label %105

104:                                              ; preds = %101
  call void @_ZN5ImGui15ShowAboutWindowEPb(ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 19))
  br label %105

105:                                              ; preds = %104, %101
  %106 = load i8, ptr getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 18), align 2, !tbaa !33, !range !13, !noundef !14
  %107 = trunc i8 %106 to i1
  br i1 %107, label %108, label %110

108:                                              ; preds = %105
  %109 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.4, ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 18), i32 noundef 0)
  call void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef null)
  call void @_ZN5ImGui3EndEv()
  br label %110

110:                                              ; preds = %108, %105
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #3
  store i32 0, ptr %3, align 4, !tbaa !34
  %111 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar, align 1, !tbaa !36, !range !13, !noundef !14
  %112 = trunc i8 %111 to i1
  br i1 %112, label %113, label %116

113:                                              ; preds = %110
  %114 = load i32, ptr %3, align 4, !tbaa !34
  %115 = or i32 %114, 1
  store i32 %115, ptr %3, align 4, !tbaa !34
  br label %116

116:                                              ; preds = %113, %110
  %117 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar, align 1, !tbaa !36, !range !13, !noundef !14
  %118 = trunc i8 %117 to i1
  br i1 %118, label %119, label %122

119:                                              ; preds = %116
  %120 = load i32, ptr %3, align 4, !tbaa !34
  %121 = or i32 %120, 8
  store i32 %121, ptr %3, align 4, !tbaa !34
  br label %122

122:                                              ; preds = %119, %116
  %123 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE7no_menu, align 1, !tbaa !36, !range !13, !noundef !14
  %124 = trunc i8 %123 to i1
  br i1 %124, label %128, label %125

125:                                              ; preds = %122
  %126 = load i32, ptr %3, align 4, !tbaa !34
  %127 = or i32 %126, 1024
  store i32 %127, ptr %3, align 4, !tbaa !34
  br label %128

128:                                              ; preds = %125, %122
  %129 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE7no_move, align 1, !tbaa !36, !range !13, !noundef !14
  %130 = trunc i8 %129 to i1
  br i1 %130, label %131, label %134

131:                                              ; preds = %128
  %132 = load i32, ptr %3, align 4, !tbaa !34
  %133 = or i32 %132, 4
  store i32 %133, ptr %3, align 4, !tbaa !34
  br label %134

134:                                              ; preds = %131, %128
  %135 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9no_resize, align 1, !tbaa !36, !range !13, !noundef !14
  %136 = trunc i8 %135 to i1
  br i1 %136, label %137, label %140

137:                                              ; preds = %134
  %138 = load i32, ptr %3, align 4, !tbaa !34
  %139 = or i32 %138, 2
  store i32 %139, ptr %3, align 4, !tbaa !34
  br label %140

140:                                              ; preds = %137, %134
  %141 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse, align 1, !tbaa !36, !range !13, !noundef !14
  %142 = trunc i8 %141 to i1
  br i1 %142, label %143, label %146

143:                                              ; preds = %140
  %144 = load i32, ptr %3, align 4, !tbaa !34
  %145 = or i32 %144, 32
  store i32 %145, ptr %3, align 4, !tbaa !34
  br label %146

146:                                              ; preds = %143, %140
  %147 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE6no_nav, align 1, !tbaa !36, !range !13, !noundef !14
  %148 = trunc i8 %147 to i1
  br i1 %148, label %149, label %152

149:                                              ; preds = %146
  %150 = load i32, ptr %3, align 4, !tbaa !34
  %151 = or i32 %150, 196608
  store i32 %151, ptr %3, align 4, !tbaa !34
  br label %152

152:                                              ; preds = %149, %146
  %153 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE13no_background, align 1, !tbaa !36, !range !13, !noundef !14
  %154 = trunc i8 %153 to i1
  br i1 %154, label %155, label %158

155:                                              ; preds = %152
  %156 = load i32, ptr %3, align 4, !tbaa !34
  %157 = or i32 %156, 128
  store i32 %157, ptr %3, align 4, !tbaa !34
  br label %158

158:                                              ; preds = %155, %152
  %159 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front, align 1, !tbaa !36, !range !13, !noundef !14
  %160 = trunc i8 %159 to i1
  br i1 %160, label %161, label %164

161:                                              ; preds = %158
  %162 = load i32, ptr %3, align 4, !tbaa !34
  %163 = or i32 %162, 8192
  store i32 %163, ptr %3, align 4, !tbaa !34
  br label %164

164:                                              ; preds = %161, %158
  %165 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE10no_docking, align 1, !tbaa !36, !range !13, !noundef !14
  %166 = trunc i8 %165 to i1
  br i1 %166, label %167, label %170

167:                                              ; preds = %164
  %168 = load i32, ptr %3, align 4, !tbaa !34
  %169 = or i32 %168, 524288
  store i32 %169, ptr %3, align 4, !tbaa !34
  br label %170

170:                                              ; preds = %167, %164
  %171 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE16unsaved_document, align 1, !tbaa !36, !range !13, !noundef !14
  %172 = trunc i8 %171 to i1
  br i1 %172, label %173, label %176

173:                                              ; preds = %170
  %174 = load i32, ptr %3, align 4, !tbaa !34
  %175 = or i32 %174, 262144
  store i32 %175, ptr %3, align 4, !tbaa !34
  br label %176

176:                                              ; preds = %173, %170
  %177 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE8no_close, align 1, !tbaa !36, !range !13, !noundef !14
  %178 = trunc i8 %177 to i1
  br i1 %178, label %179, label %180

179:                                              ; preds = %176
  store ptr null, ptr %2, align 8, !tbaa !5
  br label %180

180:                                              ; preds = %179, %176
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #3
  %181 = call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  store ptr %181, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #3
  %182 = load ptr, ptr %4, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.ImGuiViewport, ptr %182, i32 0, i32 4
  %184 = getelementptr inbounds %struct.ImVec2, ptr %183, i32 0, i32 0
  %185 = load float, ptr %184, align 8, !tbaa !37
  %186 = fadd float %185, 6.500000e+02
  %187 = load ptr, ptr %4, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.ImGuiViewport, ptr %187, i32 0, i32 4
  %189 = getelementptr inbounds %struct.ImVec2, ptr %188, i32 0, i32 1
  %190 = load float, ptr %189, align 4, !tbaa !41
  %191 = fadd float %190, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef %186, float noundef %191)
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8) %5, i32 noundef 4, ptr noundef nonnull align 4 dereferenceable(8) %6)
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef 5.500000e+02, float noundef 6.800000e+02)
  call void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8) %7, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #3
  %192 = load ptr, ptr %2, align 8, !tbaa !5
  %193 = load i32, ptr %3, align 4, !tbaa !34
  %194 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.5, ptr noundef %192, i32 noundef %193)
  br i1 %194, label %196, label %195

195:                                              ; preds = %180
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %8, align 4
  br label %522

196:                                              ; preds = %180
  %197 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %198 = fmul float %197, -1.200000e+01
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %198)
  call void @_ZL17DemoWindowMenuBarP19ImGuiDemoWindowData(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.6, ptr noundef @.str.3, i32 noundef 19190)
  call void @_ZN5ImGui7SpacingEv()
  br label %199

199:                                              ; preds = %196
  %200 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %201 = icmp ne ptr %200, null
  br i1 %201, label %202, label %205

202:                                              ; preds = %199
  %203 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %204 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !5
  call void %203(ptr noundef @.str.2, i32 noundef 438, ptr noundef @.str.7, ptr noundef %204)
  br label %205

205:                                              ; preds = %202, %199
  br label %206

206:                                              ; preds = %205
  br label %207

207:                                              ; preds = %206
  %208 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef @.str.7, i32 noundef 0)
  br i1 %208, label %209, label %210

209:                                              ; preds = %207
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.8)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.9)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.10)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.11)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.12)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.13)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.14)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.15)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.16)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui15TextLinkOpenURLEPKcS1_(ptr noundef @.str.17, ptr noundef null)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.18)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.19)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.20)
  call void @_ZN5ImGui13ShowUserGuideEv()
  br label %210

210:                                              ; preds = %209, %207
  br label %211

211:                                              ; preds = %210
  %212 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %213 = icmp ne ptr %212, null
  br i1 %213, label %214, label %217

214:                                              ; preds = %211
  %215 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %216 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !5
  call void %215(ptr noundef @.str.2, i32 noundef 461, ptr noundef @.str.21, ptr noundef %216)
  br label %217

217:                                              ; preds = %214, %211
  br label %218

218:                                              ; preds = %217
  br label %219

219:                                              ; preds = %218
  %220 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef @.str.21, i32 noundef 0)
  br i1 %220, label %221, label %482

221:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #3
  %222 = call noundef nonnull align 8 dereferenceable(3088) ptr @_ZN5ImGui5GetIOEv()
  store ptr %222, ptr %9, align 8, !tbaa !5
  %223 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.22)
  br i1 %223, label %224, label %420

224:                                              ; preds = %221
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.23)
  %225 = load ptr, ptr %9, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.ImGuiIO, ptr %225, i32 0, i32 0
  %227 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.24, ptr noundef %226, i32 noundef 1)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.25)
  %228 = load ptr, ptr %9, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.ImGuiIO, ptr %228, i32 0, i32 0
  %230 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.26, ptr noundef %229, i32 noundef 2)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.27)
  %231 = load ptr, ptr %9, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.ImGuiIO, ptr %231, i32 0, i32 0
  %233 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.28, ptr noundef %232, i32 noundef 16)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.29)
  %234 = load ptr, ptr %9, align 8, !tbaa !5
  %235 = getelementptr inbounds %struct.ImGuiIO, ptr %234, i32 0, i32 0
  %236 = load i32, ptr %235, align 8, !tbaa !42
  %237 = and i32 %236, 16
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %239, label %259

239:                                              ; preds = %224
  %240 = call noundef double @_ZN5ImGui7GetTimeEv()
  %241 = fptrunc double %240 to float
  %242 = call float @fmodf(float noundef %241, float noundef 0x3FD99999A0000000) #3
  %243 = fcmp olt float %242, 0x3FC99999A0000000
  br i1 %243, label %244, label %245

244:                                              ; preds = %239
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.30)
  br label %245

245:                                              ; preds = %244, %239
  %246 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 524, i1 noundef zeroext true)
  br i1 %246, label %253, label %247

247:                                              ; preds = %245
  %248 = load ptr, ptr %9, align 8, !tbaa !5
  %249 = getelementptr inbounds %struct.ImGuiIO, ptr %248, i32 0, i32 0
  %250 = load i32, ptr %249, align 8, !tbaa !42
  %251 = and i32 %250, 64
  %252 = icmp ne i32 %251, 0
  br i1 %252, label %253, label %258

253:                                              ; preds = %247, %245
  %254 = load ptr, ptr %9, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.ImGuiIO, ptr %254, i32 0, i32 0
  %256 = load i32, ptr %255, align 8, !tbaa !42
  %257 = and i32 %256, -17
  store i32 %257, ptr %255, align 8, !tbaa !42
  br label %258

258:                                              ; preds = %253, %247
  br label %259

259:                                              ; preds = %258, %224
  %260 = load ptr, ptr %9, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.ImGuiIO, ptr %260, i32 0, i32 0
  %262 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.31, ptr noundef %261, i32 noundef 32)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.32)
  %263 = load ptr, ptr %9, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.ImGuiIO, ptr %263, i32 0, i32 0
  %265 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.33, ptr noundef %264, i32 noundef 64)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.34)
  %266 = load ptr, ptr %9, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.ImGuiIO, ptr %266, i32 0, i32 30
  %268 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.35, ptr noundef %267)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.36)
  %269 = load ptr, ptr %9, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.ImGuiIO, ptr %269, i32 0, i32 28
  %271 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.37, ptr noundef %270)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.38)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.39)
  %272 = load ptr, ptr %9, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImGuiIO, ptr %272, i32 0, i32 13
  %274 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.40, ptr noundef %273)
  %275 = load ptr, ptr %9, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiIO, ptr %275, i32 0, i32 14
  %277 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.41, ptr noundef %276)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.42)
  %278 = load ptr, ptr %9, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.ImGuiIO, ptr %278, i32 0, i32 15
  %280 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.43, ptr noundef %279)
  %281 = load ptr, ptr %9, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.ImGuiIO, ptr %281, i32 0, i32 16
  %283 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.44, ptr noundef %282)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.45)
  %284 = load ptr, ptr %9, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiIO, ptr %284, i32 0, i32 17
  %286 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.46, ptr noundef %285)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.47)
  %287 = load ptr, ptr %9, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.ImGuiIO, ptr %287, i32 0, i32 18
  %289 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.48, ptr noundef %288)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.49)
  %290 = load ptr, ptr %9, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.ImGuiIO, ptr %290, i32 0, i32 19
  %292 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.50, ptr noundef %291)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.51)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.52)
  %293 = load ptr, ptr %9, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.ImGuiIO, ptr %293, i32 0, i32 0
  %295 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.53, ptr noundef %294, i32 noundef 128)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %296 = load ptr, ptr %9, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.ImGuiIO, ptr %296, i32 0, i32 21
  %298 = load i8, ptr %297, align 8, !tbaa !47, !range !13, !noundef !14
  %299 = trunc i8 %298 to i1
  br i1 %299, label %300, label %301

300:                                              ; preds = %259
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.54)
  br label %302

301:                                              ; preds = %259
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.55)
  br label %302

302:                                              ; preds = %301, %300
  %303 = load ptr, ptr %9, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.ImGuiIO, ptr %303, i32 0, i32 0
  %305 = load i32, ptr %304, align 8, !tbaa !42
  %306 = and i32 %305, 128
  %307 = icmp ne i32 %306, 0
  br i1 %307, label %308, label %321

308:                                              ; preds = %302
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %309 = load ptr, ptr %9, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.ImGuiIO, ptr %309, i32 0, i32 20
  %311 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.56, ptr noundef %310)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.57)
  %312 = load ptr, ptr %9, align 8, !tbaa !5
  %313 = getelementptr inbounds %struct.ImGuiIO, ptr %312, i32 0, i32 21
  %314 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.58, ptr noundef %313)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.59)
  %315 = load ptr, ptr %9, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.ImGuiIO, ptr %315, i32 0, i32 22
  %317 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.60, ptr noundef %316)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.61)
  %318 = load ptr, ptr %9, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.ImGuiIO, ptr %318, i32 0, i32 23
  %320 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.62, ptr noundef %319)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.63)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %321

321:                                              ; preds = %308, %302
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.64)
  %322 = load ptr, ptr %9, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.ImGuiIO, ptr %322, i32 0, i32 0
  %324 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.65, ptr noundef %323, i32 noundef 1024)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.66)
  %325 = load ptr, ptr %9, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.ImGuiIO, ptr %325, i32 0, i32 0
  %327 = load i32, ptr %326, align 8, !tbaa !42
  %328 = and i32 %327, 1024
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %330, label %343

330:                                              ; preds = %321
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %331 = load ptr, ptr %9, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.ImGuiIO, ptr %331, i32 0, i32 24
  %333 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.67, ptr noundef %332)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.68)
  %334 = load ptr, ptr %9, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.ImGuiIO, ptr %334, i32 0, i32 25
  %336 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.69, ptr noundef %335)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.70)
  %337 = load ptr, ptr %9, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.ImGuiIO, ptr %337, i32 0, i32 26
  %339 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.71, ptr noundef %338)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.72)
  %340 = load ptr, ptr %9, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.ImGuiIO, ptr %340, i32 0, i32 27
  %342 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.73, ptr noundef %341)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.74)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %343

343:                                              ; preds = %330, %321
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.75)
  %344 = load ptr, ptr %9, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImGuiIO, ptr %344, i32 0, i32 34
  %346 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.76, ptr noundef %345)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.77)
  %347 = load ptr, ptr %9, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.ImGuiIO, ptr %347, i32 0, i32 35
  %349 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.78, ptr noundef %348)
  %350 = load ptr, ptr %9, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.ImGuiIO, ptr %350, i32 0, i32 36
  %352 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.79, ptr noundef %351)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.80)
  %353 = load ptr, ptr %9, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.ImGuiIO, ptr %353, i32 0, i32 37
  %355 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.81, ptr noundef %354)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.82)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.83)
  %356 = load ptr, ptr %9, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.ImGuiIO, ptr %356, i32 0, i32 31
  %358 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.84, ptr noundef %357)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.85)
  %359 = load ptr, ptr %9, align 8, !tbaa !5
  %360 = getelementptr inbounds %struct.ImGuiIO, ptr %359, i32 0, i32 32
  %361 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.86, ptr noundef %360)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.87)
  %362 = load ptr, ptr %9, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiIO, ptr %362, i32 0, i32 33
  %364 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.88, ptr noundef %363)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.89)
  %365 = load ptr, ptr %9, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.ImGuiIO, ptr %365, i32 0, i32 29
  %367 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.90, ptr noundef %366)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.91)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.92)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.93)
  %368 = load ptr, ptr %9, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.ImGuiIO, ptr %368, i32 0, i32 44
  %370 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.94, ptr noundef %369)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.95)
  %371 = load ptr, ptr %9, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.ImGuiIO, ptr %371, i32 0, i32 45
  %373 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.96, ptr noundef %372)
  %374 = load ptr, ptr %9, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.ImGuiIO, ptr %374, i32 0, i32 46
  %376 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.97, ptr noundef %375)
  %377 = load ptr, ptr %9, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.ImGuiIO, ptr %377, i32 0, i32 47
  %379 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.98, ptr noundef %378)
  %380 = load ptr, ptr %9, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.ImGuiIO, ptr %380, i32 0, i32 45
  %382 = load i8, ptr %381, align 1, !tbaa !48, !range !13, !noundef !14
  %383 = trunc i8 %382 to i1
  br i1 %383, label %401, label %384

384:                                              ; preds = %343
  %385 = load ptr, ptr %9, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.ImGuiIO, ptr %385, i32 0, i32 46
  %387 = load i8, ptr %386, align 2, !tbaa !49, !range !13, !noundef !14
  %388 = trunc i8 %387 to i1
  br i1 %388, label %401, label %389

389:                                              ; preds = %384
  %390 = load ptr, ptr %9, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.ImGuiIO, ptr %390, i32 0, i32 47
  %392 = load i8, ptr %391, align 1, !tbaa !50, !range !13, !noundef !14
  %393 = trunc i8 %392 to i1
  br i1 %393, label %401, label %394

394:                                              ; preds = %389
  %395 = load ptr, ptr %9, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.ImGuiIO, ptr %395, i32 0, i32 47
  store i8 1, ptr %396, align 1, !tbaa !50
  %397 = load ptr, ptr %9, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.ImGuiIO, ptr %397, i32 0, i32 46
  store i8 1, ptr %398, align 2, !tbaa !49
  %399 = load ptr, ptr %9, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImGuiIO, ptr %399, i32 0, i32 45
  store i8 1, ptr %400, align 1, !tbaa !48
  br label %401

401:                                              ; preds = %394, %389, %384, %343
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef @.str.99)
  %402 = load ptr, ptr %9, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.ImGuiIO, ptr %402, i32 0, i32 48
  %404 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.100, ptr noundef %403)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.101)
  %405 = load ptr, ptr %9, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.ImGuiIO, ptr %405, i32 0, i32 49
  %407 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.102, ptr noundef %406)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.103)
  call void @_ZN5ImGui13BeginDisabledEb(i1 noundef zeroext true)
  %408 = load ptr, ptr %9, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.ImGuiIO, ptr %408, i32 0, i32 51
  %410 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.104, ptr noundef %409)
  call void @_ZN5ImGui11EndDisabledEv()
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.105)
  %411 = load ptr, ptr %9, align 8, !tbaa !5
  %412 = getelementptr inbounds %struct.ImGuiIO, ptr %411, i32 0, i32 52
  %413 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.106, ptr noundef %412)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.107)
  %414 = load ptr, ptr %9, align 8, !tbaa !5
  %415 = getelementptr inbounds %struct.ImGuiIO, ptr %414, i32 0, i32 53
  %416 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.108, ptr noundef %415)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.109)
  %417 = load ptr, ptr %9, align 8, !tbaa !5
  %418 = getelementptr inbounds %struct.ImGuiIO, ptr %417, i32 0, i32 54
  %419 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.110, ptr noundef %418)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.111)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui7SpacingEv()
  br label %420

420:                                              ; preds = %401, %221
  br label %421

421:                                              ; preds = %420
  %422 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %423 = icmp ne ptr %422, null
  br i1 %423, label %424, label %427

424:                                              ; preds = %421
  %425 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %426 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !5
  call void %425(ptr noundef @.str.2, i32 noundef 609, ptr noundef @.str.112, ptr noundef %426)
  br label %427

427:                                              ; preds = %424, %421
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  %430 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.113)
  br i1 %430, label %431, label %453

431:                                              ; preds = %429
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.114)
  call void @_ZN5ImGui13BeginDisabledEb(i1 noundef zeroext true)
  %432 = load ptr, ptr %9, align 8, !tbaa !5
  %433 = getelementptr inbounds %struct.ImGuiIO, ptr %432, i32 0, i32 1
  %434 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.115, ptr noundef %433, i32 noundef 1)
  %435 = load ptr, ptr %9, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.ImGuiIO, ptr %435, i32 0, i32 1
  %437 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.116, ptr noundef %436, i32 noundef 2)
  %438 = load ptr, ptr %9, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.ImGuiIO, ptr %438, i32 0, i32 1
  %440 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.117, ptr noundef %439, i32 noundef 4)
  %441 = load ptr, ptr %9, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.ImGuiIO, ptr %441, i32 0, i32 1
  %443 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.118, ptr noundef %442, i32 noundef 1024)
  %444 = load ptr, ptr %9, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.ImGuiIO, ptr %444, i32 0, i32 1
  %446 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.119, ptr noundef %445, i32 noundef 2048)
  %447 = load ptr, ptr %9, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.ImGuiIO, ptr %447, i32 0, i32 1
  %449 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.120, ptr noundef %448, i32 noundef 8)
  %450 = load ptr, ptr %9, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.ImGuiIO, ptr %450, i32 0, i32 1
  %452 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef @.str.121, ptr noundef %451, i32 noundef 4096)
  call void @_ZN5ImGui11EndDisabledEv()
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui7SpacingEv()
  br label %453

453:                                              ; preds = %431, %429
  br label %454

454:                                              ; preds = %453
  %455 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %456 = icmp ne ptr %455, null
  br i1 %456, label %457, label %460

457:                                              ; preds = %454
  %458 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %459 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !5
  call void %458(ptr noundef @.str.2, i32 noundef 632, ptr noundef @.str.122, ptr noundef %459)
  br label %460

460:                                              ; preds = %457, %454
  br label %461

461:                                              ; preds = %460
  br label %462

462:                                              ; preds = %461
  %463 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.123)
  br i1 %463, label %464, label %466

464:                                              ; preds = %462
  %465 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.124, ptr noundef getelementptr inbounds (%struct.ImGuiDemoWindowData, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i32 0, i32 18))
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.125)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui7SpacingEv()
  br label %466

466:                                              ; preds = %464, %462
  br label %467

467:                                              ; preds = %466
  %468 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %469 = icmp ne ptr %468, null
  br i1 %469, label %470, label %473

470:                                              ; preds = %467
  %471 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %472 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !5
  call void %471(ptr noundef @.str.2, i32 noundef 642, ptr noundef @.str.126, ptr noundef %472)
  br label %473

473:                                              ; preds = %470, %467
  br label %474

474:                                              ; preds = %473
  br label %475

475:                                              ; preds = %474
  %476 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.127)
  br i1 %476, label %477, label %481

477:                                              ; preds = %475
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.128)
  call void @_ZN5ImGui10LogButtonsEv()
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.129)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %478 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.130, ptr noundef nonnull align 4 dereferenceable(8) %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #3
  br i1 %478, label %479, label %480

479:                                              ; preds = %477
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.131)
  call void @_ZN5ImGui9LogFinishEv()
  br label %480

480:                                              ; preds = %479, %477
  call void @_ZN5ImGui7TreePopEv()
  br label %481

481:                                              ; preds = %480, %475
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #3
  br label %482

482:                                              ; preds = %481, %219
  br label %483

483:                                              ; preds = %482
  %484 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %485 = icmp ne ptr %484, null
  br i1 %485, label %486, label %489

486:                                              ; preds = %483
  %487 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !5
  %488 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !5
  call void %487(ptr noundef @.str.2, i32 noundef 662, ptr noundef @.str.132, ptr noundef %488)
  br label %489

489:                                              ; preds = %486, %483
  br label %490

490:                                              ; preds = %489
  br label %491

491:                                              ; preds = %490
  %492 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef @.str.132, i32 noundef 0)
  br i1 %492, label %493, label %521

493:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %494 = call noundef zeroext i1 @_ZN5ImGui10BeginTableEPKciiRK6ImVec2f(ptr noundef @.str.133, i32 noundef 3, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #3
  br i1 %494, label %495, label %520

495:                                              ; preds = %493
  %496 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %497 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.134, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar)
  %498 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %499 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.135, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar)
  %500 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %501 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.136, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE7no_menu)
  %502 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %503 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.137, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE7no_move)
  %504 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %505 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.138, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE9no_resize)
  %506 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %507 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.139, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse)
  %508 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %509 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.140, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE8no_close)
  %510 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %511 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.141, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE6no_nav)
  %512 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %513 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.142, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE13no_background)
  %514 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %515 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.143, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front)
  %516 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %517 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.144, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE10no_docking)
  %518 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %519 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.145, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE16unsaved_document)
  call void @_ZN5ImGui8EndTableEv()
  br label %520

520:                                              ; preds = %495, %493
  br label %521

521:                                              ; preds = %520, %491
  call void @_ZL17DemoWindowWidgetsP19ImGuiDemoWindowData(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data)
  call void @_ZL16DemoWindowLayoutv()
  call void @_ZL16DemoWindowPopupsv()
  call void @_ZL16DemoWindowTablesv()
  call void @_ZL16DemoWindowInputsv()
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui3EndEv()
  store i32 0, ptr %8, align 4
  br label %522

522:                                              ; preds = %521, %195
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #3
  %523 = load i32, ptr %8, align 4
  switch i32 %523, label %525 [
    i32 0, label %524
    i32 1, label %524
  ]

524:                                              ; preds = %522, %522
  ret void

525:                                              ; preds = %522
  unreachable
}

declare noundef ptr @_ZN5ImGui17GetCurrentContextEv() #1

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

declare noundef zeroext i1 @_ZN5ImGui30DebugCheckVersionAndDataLayoutEPKcmmmmmm(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef) #1

; Function Attrs: nounwind
declare i32 @__cxa_guard_acquire(ptr) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiDemoWindowDataD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) #3

; Function Attrs: nounwind
declare void @__cxa_guard_release(ptr) #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL25ShowExampleAppMainMenuBarv() #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL23ShowExampleAppDockSpacePb(ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL23ShowExampleAppDocumentsPb(ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL27ShowExampleAppAssetsBrowserPb(ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21ShowExampleAppConsolePb(ptr noundef) #0

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL17ShowExampleAppLogPb(ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL20ShowExampleAppLayoutPb(ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL28ShowExampleAppPropertyEditorPbP19ImGuiDemoWindowData(ptr noundef, ptr noundef) #0

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL24ShowExampleAppAutoResizePb(ptr noundef) #0

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL24ShowExampleAppFullscreenPb(ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL22ShowExampleAppLongTextPb(ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL26ShowExampleAppWindowTitlesPb(ptr noundef) #0

declare void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef) #1

declare void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef) #1

declare void @_ZN5ImGui21ShowIDStackToolWindowEPb(ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui15ShowAboutWindowEPb(ptr noundef) #0

declare noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef, ptr noundef, i32 noundef) #1

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

declare void @_ZN5ImGui3EndEv() #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #6

declare noundef ptr @_ZN5ImGui15GetMainViewportEv() #1

declare void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #4 align 2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #6

declare void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #1

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) #1

declare noundef float @_ZN5ImGui11GetFontSizeEv() #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL17DemoWindowMenuBarP19ImGuiDemoWindowData(ptr noundef) #0

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

declare void @_ZN5ImGui7SpacingEv() #1

declare noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef, i32 noundef) #1

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) #1

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

declare void @_ZN5ImGui8SameLineEff(float noundef, float noundef) #1

declare void @_ZN5ImGui15TextLinkOpenURLEPKcS1_(ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13ShowUserGuideEv() #0

declare noundef nonnull align 8 dereferenceable(3088) ptr @_ZN5ImGui5GetIOEv() #1

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

declare noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL10HelpMarkerPKc(ptr noundef) #0

; Function Attrs: nounwind
declare float @fmodf(float noundef, float noundef) #7

declare noundef double @_ZN5ImGui7GetTimeEv() #1

declare noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef, i1 noundef zeroext) #1

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

declare void @_ZN5ImGui6IndentEf(float noundef) #1

declare void @_ZN5ImGui8UnindentEf(float noundef) #1

declare void @_ZN5ImGui13BeginDisabledEb(i1 noundef zeroext) #1

declare void @_ZN5ImGui11EndDisabledEv() #1

declare void @_ZN5ImGui7TreePopEv() #1

declare void @_ZN5ImGui10LogButtonsEv() #1

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

declare void @_ZN5ImGui14LogToClipboardEi(i32 noundef) #1

declare void @_ZN5ImGui7LogTextEPKcz(ptr noundef, ...) #1

declare void @_ZN5ImGui9LogFinishEv() #1

declare noundef zeroext i1 @_ZN5ImGui10BeginTableEPKciiRK6ImVec2f(ptr noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8), float noundef) #1

declare noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv() #1

declare void @_ZN5ImGui8EndTableEv() #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL17DemoWindowWidgetsP19ImGuiDemoWindowData(ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16DemoWindowLayoutv() #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16DemoWindowPopupsv() #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16DemoWindowTablesv() #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16DemoWindowInputsv() #5

declare void @_ZN5ImGui12PopItemWidthEv() #1

attributes #0 = { 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 #1 = { "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 = { 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 #3 = { nounwind }
attributes #4 = { 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 #5 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { 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 #8 = { 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 = !{!"branch_weights", i32 1, i32 1048575}
!10 = !{!11, !12, i64 0}
!11 = !{!"_ZTS19ImGuiDemoWindowData", !12, i64 0, !12, i64 1, !12, i64 2, !12, i64 3, !12, i64 4, !12, i64 5, !12, i64 6, !12, i64 7, !12, i64 8, !12, i64 9, !12, i64 10, !12, i64 11, !12, i64 12, !12, i64 13, !12, i64 14, !12, i64 15, !12, i64 16, !12, i64 17, !12, i64 18, !12, i64 19, !12, i64 20, !6, i64 24}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!11, !12, i64 5}
!16 = !{!11, !12, i64 4}
!17 = !{!11, !12, i64 1}
!18 = !{!11, !12, i64 2}
!19 = !{!11, !12, i64 3}
!20 = !{!11, !12, i64 6}
!21 = !{!11, !12, i64 7}
!22 = !{!11, !12, i64 8}
!23 = !{!11, !12, i64 9}
!24 = !{!11, !12, i64 10}
!25 = !{!11, !12, i64 11}
!26 = !{!11, !12, i64 12}
!27 = !{!11, !12, i64 13}
!28 = !{!11, !12, i64 14}
!29 = !{!11, !12, i64 15}
!30 = !{!11, !12, i64 16}
!31 = !{!11, !12, i64 17}
!32 = !{!11, !12, i64 19}
!33 = !{!11, !12, i64 18}
!34 = !{!35, !35, i64 0}
!35 = !{!"int", !7, i64 0}
!36 = !{!12, !12, i64 0}
!37 = !{!38, !40, i64 24}
!38 = !{!"_ZTS13ImGuiViewport", !35, i64 0, !35, i64 4, !39, i64 8, !39, i64 16, !39, i64 24, !39, i64 32, !40, i64 40, !35, i64 44, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !12, i64 88, !12, i64 89, !12, i64 90, !12, i64 91}
!39 = !{!"_ZTS6ImVec2", !40, i64 0, !40, i64 4}
!40 = !{!"float", !7, i64 0}
!41 = !{!38, !40, i64 28}
!42 = !{!43, !35, i64 0}
!43 = !{!"_ZTS7ImGuiIO", !35, i64 0, !35, i64 4, !39, i64 8, !40, i64 16, !40, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !40, i64 56, !12, i64 60, !6, i64 64, !39, i64 72, !12, i64 80, !12, i64 81, !12, i64 82, !12, i64 83, !12, i64 84, !12, i64 85, !12, i64 86, !12, i64 87, !12, i64 88, !12, i64 89, !12, i64 90, !12, i64 91, !12, i64 92, !12, i64 93, !12, i64 94, !12, i64 95, !12, i64 96, !12, i64 97, !12, i64 98, !12, i64 99, !12, i64 100, !12, i64 101, !12, i64 102, !12, i64 103, !12, i64 104, !40, i64 108, !40, i64 112, !40, i64 116, !40, i64 120, !40, i64 124, !40, i64 128, !12, i64 132, !12, i64 133, !12, i64 134, !12, i64 135, !12, i64 136, !12, i64 137, !12, i64 138, !12, i64 139, !12, i64 140, !12, i64 141, !12, i64 142, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !12, i64 184, !12, i64 185, !12, i64 186, !12, i64 187, !12, i64 188, !12, i64 189, !12, i64 190, !40, i64 192, !35, i64 196, !35, i64 200, !35, i64 204, !35, i64 208, !39, i64 212, !6, i64 224, !39, i64 232, !7, i64 240, !40, i64 248, !40, i64 252, !44, i64 256, !35, i64 260, !12, i64 264, !12, i64 265, !12, i64 266, !12, i64 267, !35, i64 268, !7, i64 272, !12, i64 2752, !39, i64 2756, !7, i64 2764, !7, i64 2808, !7, i64 2848, !7, i64 2853, !7, i64 2858, !7, i64 2868, !7, i64 2878, !7, i64 2888, !7, i64 2928, !7, i64 2933, !12, i64 2938, !12, i64 2939, !7, i64 2940, !7, i64 2960, !7, i64 2980, !7, i64 3020, !40, i64 3040, !12, i64 3044, !12, i64 3045, !45, i64 3046, !46, i64 3048, !6, i64 3064, !6, i64 3072, !6, i64 3080}
!44 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!45 = !{!"short", !7, i64 0}
!46 = !{!"_ZTS8ImVectorItE", !35, i64 0, !35, i64 4, !6, i64 8}
!47 = !{!43, !12, i64 88}
!48 = !{!43, !12, i64 133}
!49 = !{!43, !12, i64 134}
!50 = !{!43, !12, i64 135}


; 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.ImGuiDemoWindowData = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr }
%struct.ImVec2 = type { float, float }

@GImGuiDemoMarkerCallback = external dso_local local_unnamed_addr global ptr, align 8
@GImGuiDemoMarkerCallbackUserData = external dso_local local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [102 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui14ShowDemoWindowEPb = external hidden unnamed_addr constant [35 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN5ImGui14ShowDemoWindowEPbE9demo_data = external hidden global %struct.ImGuiDemoWindowData, align 8
@_ZGVZN5ImGui14ShowDemoWindowEPbE9demo_data = external hidden global i64, align 8
@__dso_handle = external hidden global i8
@.str.4 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE7no_menu = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE7no_move = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE9no_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE8no_close = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE6no_nav = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE13no_background = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE10no_docking = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE16unsaved_document = external hidden global i8, align 1
@.str.5 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [188 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [346 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [176 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [177 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [206 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [255 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [177 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [552 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [225 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [180 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [242 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [17 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui14ShowDemoWindowEPb(ptr noundef %0) local_unnamed_addr #0 {
  %2 = alloca %struct.ImVec2, align 4
  %3 = alloca %struct.ImVec2, align 4
  %4 = alloca %struct.ImVec2, align 4
  %5 = alloca %struct.ImVec2, align 4
  %6 = alloca %struct.ImVec2, align 4
  %7 = tail call noundef ptr @_ZN5ImGui17GetCurrentContextEv()
  %.not = icmp eq ptr %7, null
  br i1 %.not, label %8, label %9

8:                                                ; preds = %1
  tail call void @__assert_fail(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 349, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui14ShowDemoWindowEPb) #8
  unreachable

9:                                                ; preds = %1
  %10 = tail call noundef zeroext i1 @_ZN5ImGui30DebugCheckVersionAndDataLayoutEPKcmmmmmm(ptr noundef nonnull @.str.3, i64 noundef 3088, i64 noundef 1204, i64 noundef 8, i64 noundef 16, i64 noundef 20, i64 noundef 2)
  %11 = load atomic i8, ptr @_ZGVZN5ImGui14ShowDemoWindowEPbE9demo_data acquire, align 8
  %12 = icmp eq i8 %11, 0
  br i1 %12, label %13, label %17, !prof !5

13:                                               ; preds = %9
  %14 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui14ShowDemoWindowEPbE9demo_data) #9
  %.not82 = icmp eq i32 %14, 0
  br i1 %.not82, label %17, label %15

15:                                               ; preds = %13
  %16 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN19ImGuiDemoWindowDataD2Ev, ptr nonnull @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, ptr nonnull @__dso_handle) #9
  tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN5ImGui14ShowDemoWindowEPbE9demo_data) #9
  br label %17

17:                                               ; preds = %15, %13, %9
  %18 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, align 8, !tbaa !6, !range !12, !noundef !13
  %19 = trunc nuw i8 %18 to i1
  br i1 %19, label %20, label %21

20:                                               ; preds = %17
  tail call void @_ZL25ShowExampleAppMainMenuBarv()
  br label %21

21:                                               ; preds = %20, %17
  %22 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 5), align 1, !tbaa !14, !range !12, !noundef !13
  %23 = trunc nuw i8 %22 to i1
  br i1 %23, label %24, label %25

24:                                               ; preds = %21
  tail call void @_ZL23ShowExampleAppDockSpacePb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 5))
  br label %25

25:                                               ; preds = %24, %21
  %26 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 4), align 4, !tbaa !15, !range !12, !noundef !13
  %27 = trunc nuw i8 %26 to i1
  br i1 %27, label %28, label %29

28:                                               ; preds = %25
  tail call void @_ZL23ShowExampleAppDocumentsPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 4))
  br label %29

29:                                               ; preds = %28, %25
  %30 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 1), align 1, !tbaa !16, !range !12, !noundef !13
  %31 = trunc nuw i8 %30 to i1
  br i1 %31, label %32, label %33

32:                                               ; preds = %29
  tail call void @_ZL27ShowExampleAppAssetsBrowserPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 1))
  br label %33

33:                                               ; preds = %32, %29
  %34 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 2), align 2, !tbaa !17, !range !12, !noundef !13
  %35 = trunc nuw i8 %34 to i1
  br i1 %35, label %36, label %37

36:                                               ; preds = %33
  tail call void @_ZL21ShowExampleAppConsolePb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 2))
  br label %37

37:                                               ; preds = %36, %33
  %38 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 3), align 1, !tbaa !18, !range !12, !noundef !13
  %39 = trunc nuw i8 %38 to i1
  br i1 %39, label %40, label %41

40:                                               ; preds = %37
  tail call void @_ZL29ShowExampleAppCustomRenderingPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 3))
  br label %41

41:                                               ; preds = %40, %37
  %42 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 6), align 2, !tbaa !19, !range !12, !noundef !13
  %43 = trunc nuw i8 %42 to i1
  br i1 %43, label %44, label %45

44:                                               ; preds = %41
  tail call void @_ZL17ShowExampleAppLogPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 6))
  br label %45

45:                                               ; preds = %44, %41
  %46 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 7), align 1, !tbaa !20, !range !12, !noundef !13
  %47 = trunc nuw i8 %46 to i1
  br i1 %47, label %48, label %49

48:                                               ; preds = %45
  tail call void @_ZL20ShowExampleAppLayoutPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 7))
  br label %49

49:                                               ; preds = %48, %45
  %50 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 8), align 8, !tbaa !21, !range !12, !noundef !13
  %51 = trunc nuw i8 %50 to i1
  br i1 %51, label %52, label %53

52:                                               ; preds = %49
  tail call void @_ZL28ShowExampleAppPropertyEditorPbP19ImGuiDemoWindowData(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 8), ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data)
  br label %53

53:                                               ; preds = %52, %49
  %54 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 9), align 1, !tbaa !22, !range !12, !noundef !13
  %55 = trunc nuw i8 %54 to i1
  br i1 %55, label %56, label %57

56:                                               ; preds = %53
  tail call void @_ZL27ShowExampleAppSimpleOverlayPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 9))
  br label %57

57:                                               ; preds = %56, %53
  %58 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 10), align 2, !tbaa !23, !range !12, !noundef !13
  %59 = trunc nuw i8 %58 to i1
  br i1 %59, label %60, label %61

60:                                               ; preds = %57
  tail call void @_ZL24ShowExampleAppAutoResizePb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 10))
  br label %61

61:                                               ; preds = %60, %57
  %62 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 11), align 1, !tbaa !24, !range !12, !noundef !13
  %63 = trunc nuw i8 %62 to i1
  br i1 %63, label %64, label %65

64:                                               ; preds = %61
  tail call void @_ZL31ShowExampleAppConstrainedResizePb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 11))
  br label %65

65:                                               ; preds = %64, %61
  %66 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 12), align 4, !tbaa !25, !range !12, !noundef !13
  %67 = trunc nuw i8 %66 to i1
  br i1 %67, label %68, label %69

68:                                               ; preds = %65
  tail call void @_ZL24ShowExampleAppFullscreenPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 12))
  br label %69

69:                                               ; preds = %68, %65
  %70 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 13), align 1, !tbaa !26, !range !12, !noundef !13
  %71 = trunc nuw i8 %70 to i1
  br i1 %71, label %72, label %73

72:                                               ; preds = %69
  tail call void @_ZL22ShowExampleAppLongTextPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 13))
  br label %73

73:                                               ; preds = %72, %69
  %74 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 14), align 2, !tbaa !27, !range !12, !noundef !13
  %75 = trunc nuw i8 %74 to i1
  br i1 %75, label %76, label %77

76:                                               ; preds = %73
  tail call void @_ZL26ShowExampleAppWindowTitlesPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 14))
  br label %77

77:                                               ; preds = %76, %73
  %78 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 15), align 1, !tbaa !28, !range !12, !noundef !13
  %79 = trunc nuw i8 %78 to i1
  br i1 %79, label %80, label %81

80:                                               ; preds = %77
  tail call void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 15))
  br label %81

81:                                               ; preds = %80, %77
  %82 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 16), align 8, !tbaa !29, !range !12, !noundef !13
  %83 = trunc nuw i8 %82 to i1
  br i1 %83, label %84, label %85

84:                                               ; preds = %81
  tail call void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 16))
  br label %85

85:                                               ; preds = %84, %81
  %86 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 17), align 1, !tbaa !30, !range !12, !noundef !13
  %87 = trunc nuw i8 %86 to i1
  br i1 %87, label %88, label %89

88:                                               ; preds = %85
  tail call void @_ZN5ImGui21ShowIDStackToolWindowEPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 17))
  br label %89

89:                                               ; preds = %88, %85
  %90 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 19), align 1, !tbaa !31, !range !12, !noundef !13
  %91 = trunc nuw i8 %90 to i1
  br i1 %91, label %92, label %93

92:                                               ; preds = %89
  tail call void @_ZN5ImGui15ShowAboutWindowEPb(ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 19))
  br label %93

93:                                               ; preds = %92, %89
  %94 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 18), align 2, !tbaa !32, !range !12, !noundef !13
  %95 = trunc nuw i8 %94 to i1
  br i1 %95, label %96, label %98

96:                                               ; preds = %93
  %97 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.4, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 18), i32 noundef 0)
  tail call void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef null)
  tail call void @_ZN5ImGui3EndEv()
  br label %98

98:                                               ; preds = %96, %93
  %99 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar, align 1, !tbaa !33, !range !12, !noundef !13
  %spec.select = zext nneg i8 %99 to i32
  %100 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar, align 1, !tbaa !33, !range !12, !noundef !13
  %101 = trunc nuw i8 %100 to i1
  %102 = or disjoint i32 %spec.select, 8
  %.1 = select i1 %101, i32 %102, i32 %spec.select
  %103 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE7no_menu, align 1, !tbaa !33, !range !12, !noundef !13
  %104 = trunc nuw i8 %103 to i1
  %105 = or disjoint i32 %.1, 1024
  %.2 = select i1 %104, i32 %.1, i32 %105
  %106 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE7no_move, align 1, !tbaa !33, !range !12, !noundef !13
  %107 = trunc nuw i8 %106 to i1
  %108 = or i32 %.2, 4
  %.3 = select i1 %107, i32 %108, i32 %.2
  %109 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9no_resize, align 1, !tbaa !33, !range !12, !noundef !13
  %110 = trunc nuw i8 %109 to i1
  %111 = or i32 %.3, 2
  %.4 = select i1 %110, i32 %111, i32 %.3
  %112 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse, align 1, !tbaa !33, !range !12, !noundef !13
  %113 = trunc nuw i8 %112 to i1
  %114 = or i32 %.4, 32
  %.5 = select i1 %113, i32 %114, i32 %.4
  %115 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE6no_nav, align 1, !tbaa !33, !range !12, !noundef !13
  %116 = trunc nuw i8 %115 to i1
  %117 = or i32 %.5, 196608
  %.6 = select i1 %116, i32 %117, i32 %.5
  %118 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE13no_background, align 1, !tbaa !33, !range !12, !noundef !13
  %119 = trunc nuw i8 %118 to i1
  %120 = or i32 %.6, 128
  %.7 = select i1 %119, i32 %120, i32 %.6
  %121 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front, align 1, !tbaa !33, !range !12, !noundef !13
  %122 = trunc nuw i8 %121 to i1
  %123 = or i32 %.7, 8192
  %.8 = select i1 %122, i32 %123, i32 %.7
  %124 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE10no_docking, align 1, !tbaa !33, !range !12, !noundef !13
  %125 = trunc nuw i8 %124 to i1
  %126 = or i32 %.8, 524288
  %.9 = select i1 %125, i32 %126, i32 %.8
  %127 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE16unsaved_document, align 1, !tbaa !33, !range !12, !noundef !13
  %128 = trunc nuw i8 %127 to i1
  %129 = or i32 %.9, 262144
  %.10 = select i1 %128, i32 %129, i32 %.9
  %130 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE8no_close, align 1, !tbaa !33, !range !12, !noundef !13
  %131 = trunc nuw i8 %130 to i1
  %.0 = select i1 %131, ptr null, ptr %0
  %132 = tail call noundef ptr @_ZN5ImGui15GetMainViewportEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #9
  %133 = getelementptr inbounds i8, ptr %132, i64 24
  %134 = load float, ptr %133, align 8, !tbaa !34
  %135 = fadd float %134, 6.500000e+02
  %136 = getelementptr inbounds i8, ptr %132, i64 28
  %137 = load float, ptr %136, align 4, !tbaa !39
  %138 = fadd float %137, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef %135, float noundef %138)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %3, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8) %2, i32 noundef 4, ptr noundef nonnull align 4 dereferenceable(8) %3)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 5.500000e+02, float noundef 6.800000e+02)
  call void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8) %4, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  %139 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.5, ptr noundef %.0, i32 noundef %.10)
  br i1 %139, label %140, label %337

140:                                              ; preds = %98
  %141 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %142 = fmul float %141, -1.200000e+01
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %142)
  call void @_ZL17DemoWindowMenuBarP19ImGuiDemoWindowData(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.3, i32 noundef 19190)
  call void @_ZN5ImGui7SpacingEv()
  %143 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !40
  %.not83 = icmp eq ptr %143, null
  br i1 %.not83, label %146, label %144

144:                                              ; preds = %140
  %145 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !40
  call void %143(ptr noundef nonnull @.str.2, i32 noundef 438, ptr noundef nonnull @.str.7, ptr noundef %145)
  br label %146

146:                                              ; preds = %144, %140
  %147 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef nonnull @.str.7, i32 noundef 0)
  br i1 %147, label %148, label %149

148:                                              ; preds = %146
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.8)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.9)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.10)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.11)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.12)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.13)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.14)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.15)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.16)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui15TextLinkOpenURLEPKcS1_(ptr noundef nonnull @.str.17, ptr noundef null)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.18)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.19)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.20)
  call void @_ZN5ImGui13ShowUserGuideEv()
  br label %149

149:                                              ; preds = %146, %148
  %150 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !40
  %.not84 = icmp eq ptr %150, null
  br i1 %.not84, label %153, label %151

151:                                              ; preds = %149
  %152 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !40
  call void %150(ptr noundef nonnull @.str.2, i32 noundef 461, ptr noundef nonnull @.str.21, ptr noundef %152)
  br label %153

153:                                              ; preds = %151, %149
  %154 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef nonnull @.str.21, i32 noundef 0)
  br i1 %154, label %155, label %303

155:                                              ; preds = %153
  %156 = call noundef nonnull align 8 dereferenceable(3088) ptr @_ZN5ImGui5GetIOEv()
  %157 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.22)
  br i1 %157, label %158, label %270

158:                                              ; preds = %155
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.23)
  %159 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.24, ptr noundef nonnull %156, i32 noundef 1)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.25)
  %160 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.26, ptr noundef nonnull %156, i32 noundef 2)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.27)
  %161 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.28, ptr noundef nonnull %156, i32 noundef 16)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.29)
  %162 = load i32, ptr %156, align 8, !tbaa !41
  %163 = and i32 %162, 16
  %.not85 = icmp eq i32 %163, 0
  br i1 %.not85, label %175, label %164

164:                                              ; preds = %158
  %165 = call noundef double @_ZN5ImGui7GetTimeEv()
  %166 = fptrunc double %165 to float
  %167 = call float @fmodf(float noundef %166, float noundef 0x3FD99999A0000000) #9
  %168 = fcmp olt float %167, 0x3FC99999A0000000
  br i1 %168, label %169, label %170

169:                                              ; preds = %164
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.30)
  br label %170

170:                                              ; preds = %169, %164
  %171 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 524, i1 noundef zeroext true)
  %.pre = load i32, ptr %156, align 8, !tbaa !41
  %172 = and i32 %.pre, 64
  %.not86 = icmp ne i32 %172, 0
  %or.cond.not = select i1 %171, i1 true, i1 %.not86
  br i1 %or.cond.not, label %173, label %175

173:                                              ; preds = %170
  %174 = and i32 %.pre, -17
  store i32 %174, ptr %156, align 8, !tbaa !41
  br label %175

175:                                              ; preds = %170, %173, %158
  %176 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.31, ptr noundef nonnull %156, i32 noundef 32)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.32)
  %177 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.33, ptr noundef nonnull %156, i32 noundef 64)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.34)
  %178 = getelementptr inbounds i8, ptr %156, i64 97
  %179 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.35, ptr noundef nonnull %178)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.36)
  %180 = getelementptr inbounds i8, ptr %156, i64 95
  %181 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.37, ptr noundef nonnull %180)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.38)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.39)
  %182 = getelementptr inbounds i8, ptr %156, i64 80
  %183 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.40, ptr noundef nonnull %182)
  %184 = getelementptr inbounds i8, ptr %156, i64 81
  %185 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.41, ptr noundef nonnull %184)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.42)
  %186 = getelementptr inbounds i8, ptr %156, i64 82
  %187 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.43, ptr noundef nonnull %186)
  %188 = getelementptr inbounds i8, ptr %156, i64 83
  %189 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.44, ptr noundef nonnull %188)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.45)
  %190 = getelementptr inbounds i8, ptr %156, i64 84
  %191 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.46, ptr noundef nonnull %190)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.47)
  %192 = getelementptr inbounds i8, ptr %156, i64 85
  %193 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.48, ptr noundef nonnull %192)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.49)
  %194 = getelementptr inbounds i8, ptr %156, i64 86
  %195 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.50, ptr noundef nonnull %194)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.51)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.52)
  %196 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.53, ptr noundef nonnull %156, i32 noundef 128)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %197 = getelementptr inbounds i8, ptr %156, i64 88
  %198 = load i8, ptr %197, align 8, !tbaa !46, !range !12, !noundef !13
  %199 = trunc nuw i8 %198 to i1
  %.str.54..str.55 = select i1 %199, ptr @.str.54, ptr @.str.55
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull %.str.54..str.55)
  %200 = load i32, ptr %156, align 8, !tbaa !41
  %201 = and i32 %200, 128
  %.not87 = icmp eq i32 %201, 0
  br i1 %.not87, label %210, label %202

202:                                              ; preds = %175
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %203 = getelementptr inbounds i8, ptr %156, i64 87
  %204 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.56, ptr noundef nonnull %203)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.57)
  %205 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.58, ptr noundef nonnull %197)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.59)
  %206 = getelementptr inbounds i8, ptr %156, i64 89
  %207 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.60, ptr noundef nonnull %206)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.61)
  %208 = getelementptr inbounds i8, ptr %156, i64 90
  %209 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.62, ptr noundef nonnull %208)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.63)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %210

210:                                              ; preds = %202, %175
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.64)
  %211 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.65, ptr noundef nonnull %156, i32 noundef 1024)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.66)
  %212 = load i32, ptr %156, align 8, !tbaa !41
  %213 = and i32 %212, 1024
  %.not88 = icmp eq i32 %213, 0
  br i1 %.not88, label %223, label %214

214:                                              ; preds = %210
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %215 = getelementptr inbounds i8, ptr %156, i64 91
  %216 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.67, ptr noundef nonnull %215)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.68)
  %217 = getelementptr inbounds i8, ptr %156, i64 92
  %218 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.69, ptr noundef nonnull %217)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.70)
  %219 = getelementptr inbounds i8, ptr %156, i64 93
  %220 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.71, ptr noundef nonnull %219)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.72)
  %221 = getelementptr inbounds i8, ptr %156, i64 94
  %222 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.73, ptr noundef nonnull %221)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.74)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %223

223:                                              ; preds = %214, %210
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.75)
  %224 = getelementptr inbounds i8, ptr %156, i64 101
  %225 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.76, ptr noundef nonnull %224)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.77)
  %226 = getelementptr inbounds i8, ptr %156, i64 102
  %227 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.78, ptr noundef nonnull %226)
  %228 = getelementptr inbounds i8, ptr %156, i64 103
  %229 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.79, ptr noundef nonnull %228)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.80)
  %230 = getelementptr inbounds i8, ptr %156, i64 104
  %231 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.81, ptr noundef nonnull %230)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.82)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.83)
  %232 = getelementptr inbounds i8, ptr %156, i64 98
  %233 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.84, ptr noundef nonnull %232)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.85)
  %234 = getelementptr inbounds i8, ptr %156, i64 99
  %235 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.86, ptr noundef nonnull %234)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.87)
  %236 = getelementptr inbounds i8, ptr %156, i64 100
  %237 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.88, ptr noundef nonnull %236)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.89)
  %238 = getelementptr inbounds i8, ptr %156, i64 96
  %239 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.90, ptr noundef nonnull %238)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.91)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.92)
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.93)
  %240 = getelementptr inbounds i8, ptr %156, i64 132
  %241 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.94, ptr noundef nonnull %240)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.95)
  %242 = getelementptr inbounds i8, ptr %156, i64 133
  %243 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.96, ptr noundef nonnull %242)
  %244 = getelementptr inbounds i8, ptr %156, i64 134
  %245 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.97, ptr noundef nonnull %244)
  %246 = getelementptr inbounds i8, ptr %156, i64 135
  %247 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.98, ptr noundef nonnull %246)
  %248 = load i8, ptr %242, align 1, !tbaa !47, !range !12, !noundef !13
  %249 = trunc nuw i8 %248 to i1
  br i1 %249, label %257, label %250

250:                                              ; preds = %223
  %251 = load i8, ptr %244, align 2, !tbaa !48, !range !12, !noundef !13
  %252 = trunc nuw i8 %251 to i1
  br i1 %252, label %257, label %253

253:                                              ; preds = %250
  %254 = load i8, ptr %246, align 1, !tbaa !49, !range !12, !noundef !13
  %255 = trunc nuw i8 %254 to i1
  br i1 %255, label %257, label %256

256:                                              ; preds = %253
  store i8 1, ptr %246, align 1, !tbaa !49
  store i8 1, ptr %244, align 2, !tbaa !48
  store i8 1, ptr %242, align 1, !tbaa !47
  br label %257

257:                                              ; preds = %256, %253, %250, %223
  call void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef nonnull @.str.99)
  %258 = getelementptr inbounds i8, ptr %156, i64 136
  %259 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.100, ptr noundef nonnull %258)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.101)
  %260 = getelementptr inbounds i8, ptr %156, i64 137
  %261 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.102, ptr noundef nonnull %260)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.103)
  call void @_ZN5ImGui13BeginDisabledEb(i1 noundef zeroext true)
  %262 = getelementptr inbounds i8, ptr %156, i64 139
  %263 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.104, ptr noundef nonnull %262)
  call void @_ZN5ImGui11EndDisabledEv()
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.105)
  %264 = getelementptr inbounds i8, ptr %156, i64 140
  %265 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.106, ptr noundef nonnull %264)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.107)
  %266 = getelementptr inbounds i8, ptr %156, i64 141
  %267 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.108, ptr noundef nonnull %266)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.109)
  %268 = getelementptr inbounds i8, ptr %156, i64 142
  %269 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.110, ptr noundef nonnull %268)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.111)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui7SpacingEv()
  br label %270

270:                                              ; preds = %155, %257
  %271 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !40
  %.not89 = icmp eq ptr %271, null
  br i1 %.not89, label %274, label %272

272:                                              ; preds = %270
  %273 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !40
  call void %271(ptr noundef nonnull @.str.2, i32 noundef 609, ptr noundef nonnull @.str.112, ptr noundef %273)
  br label %274

274:                                              ; preds = %272, %270
  %275 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.113)
  br i1 %275, label %276, label %285

276:                                              ; preds = %274
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.114)
  call void @_ZN5ImGui13BeginDisabledEb(i1 noundef zeroext true)
  %277 = getelementptr inbounds i8, ptr %156, i64 4
  %278 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.115, ptr noundef nonnull %277, i32 noundef 1)
  %279 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.116, ptr noundef nonnull %277, i32 noundef 2)
  %280 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.117, ptr noundef nonnull %277, i32 noundef 4)
  %281 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.118, ptr noundef nonnull %277, i32 noundef 1024)
  %282 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.119, ptr noundef nonnull %277, i32 noundef 2048)
  %283 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.120, ptr noundef nonnull %277, i32 noundef 8)
  %284 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef nonnull @.str.121, ptr noundef nonnull %277, i32 noundef 4096)
  call void @_ZN5ImGui11EndDisabledEv()
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui7SpacingEv()
  br label %285

285:                                              ; preds = %274, %276
  %286 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !40
  %.not90 = icmp eq ptr %286, null
  br i1 %.not90, label %289, label %287

287:                                              ; preds = %285
  %288 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !40
  call void %286(ptr noundef nonnull @.str.2, i32 noundef 632, ptr noundef nonnull @.str.122, ptr noundef %288)
  br label %289

289:                                              ; preds = %287, %285
  %290 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.123)
  br i1 %290, label %291, label %293

291:                                              ; preds = %289
  %292 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.124, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data, i64 18))
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.125)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui7SpacingEv()
  br label %293

293:                                              ; preds = %289, %291
  %294 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !40
  %.not91 = icmp eq ptr %294, null
  br i1 %.not91, label %297, label %295

295:                                              ; preds = %293
  %296 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !40
  call void %294(ptr noundef nonnull @.str.2, i32 noundef 642, ptr noundef nonnull @.str.126, ptr noundef %296)
  br label %297

297:                                              ; preds = %295, %293
  %298 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.127)
  br i1 %298, label %299, label %303

299:                                              ; preds = %297
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.128)
  call void @_ZN5ImGui10LogButtonsEv()
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.129)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %300 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.130, ptr noundef nonnull align 4 dereferenceable(8) %5)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  br i1 %300, label %301, label %302

301:                                              ; preds = %299
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.131)
  call void @_ZN5ImGui9LogFinishEv()
  br label %302

302:                                              ; preds = %301, %299
  call void @_ZN5ImGui7TreePopEv()
  br label %303

303:                                              ; preds = %297, %302, %153
  %304 = load ptr, ptr @GImGuiDemoMarkerCallback, align 8, !tbaa !40
  %.not92 = icmp eq ptr %304, null
  br i1 %.not92, label %307, label %305

305:                                              ; preds = %303
  %306 = load ptr, ptr @GImGuiDemoMarkerCallbackUserData, align 8, !tbaa !40
  call void %304(ptr noundef nonnull @.str.2, i32 noundef 662, ptr noundef nonnull @.str.132, ptr noundef %306)
  br label %307

307:                                              ; preds = %305, %303
  %308 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef nonnull @.str.132, i32 noundef 0)
  br i1 %308, label %309, label %336

309:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %310 = call noundef zeroext i1 @_ZN5ImGui10BeginTableEPKciiRK6ImVec2f(ptr noundef nonnull @.str.133, i32 noundef 3, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  br i1 %310, label %311, label %336

311:                                              ; preds = %309
  %312 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %313 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.134, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar)
  %314 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %315 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.135, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar)
  %316 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %317 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.136, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE7no_menu)
  %318 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %319 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.137, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE7no_move)
  %320 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %321 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.138, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE9no_resize)
  %322 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %323 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.139, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse)
  %324 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %325 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.140, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE8no_close)
  %326 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %327 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.141, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE6no_nav)
  %328 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %329 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.142, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE13no_background)
  %330 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %331 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.143, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front)
  %332 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %333 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.144, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE10no_docking)
  %334 = call noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv()
  %335 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.145, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE16unsaved_document)
  call void @_ZN5ImGui8EndTableEv()
  br label %336

336:                                              ; preds = %309, %311, %307
  call void @_ZL17DemoWindowWidgetsP19ImGuiDemoWindowData(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE9demo_data)
  call void @_ZL16DemoWindowLayoutv()
  call void @_ZL16DemoWindowPopupsv()
  call void @_ZL16DemoWindowTablesv()
  call void @_ZL16DemoWindowInputsv()
  call void @_ZN5ImGui12PopItemWidthEv()
  br label %337

337:                                              ; preds = %98, %336
  call void @_ZN5ImGui3EndEv()
  ret void
}

declare noundef ptr @_ZN5ImGui17GetCurrentContextEv() local_unnamed_addr #1

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

declare noundef zeroext i1 @_ZN5ImGui30DebugCheckVersionAndDataLayoutEPKcmmmmmm(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare i32 @__cxa_guard_acquire(ptr) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiDemoWindowDataD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: nofree nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare void @__cxa_guard_release(ptr) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL25ShowExampleAppMainMenuBarv() local_unnamed_addr #0

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL28ShowExampleAppPropertyEditorPbP19ImGuiDemoWindowData(ptr noundef, ptr noundef) local_unnamed_addr #0

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

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

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

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

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

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

declare void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef) local_unnamed_addr #1

declare void @_ZN5ImGui18ShowDebugLogWindowEPb(ptr noundef) local_unnamed_addr #1

declare void @_ZN5ImGui21ShowIDStackToolWindowEPb(ptr noundef) local_unnamed_addr #1

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

declare noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

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

declare void @_ZN5ImGui3EndEv() local_unnamed_addr #1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #6

declare noundef ptr @_ZN5ImGui15GetMainViewportEv() local_unnamed_addr #1

declare void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #6

declare void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #1

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) local_unnamed_addr #1

declare noundef float @_ZN5ImGui11GetFontSizeEv() local_unnamed_addr #1

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

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

declare void @_ZN5ImGui7SpacingEv() local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @_ZN5ImGui13SeparatorTextEPKc(ptr noundef) local_unnamed_addr #1

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

declare void @_ZN5ImGui8SameLineEff(float noundef, float noundef) local_unnamed_addr #1

declare void @_ZN5ImGui15TextLinkOpenURLEPKcS1_(ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13ShowUserGuideEv() local_unnamed_addr #0

declare noundef nonnull align 8 dereferenceable(3088) ptr @_ZN5ImGui5GetIOEv() local_unnamed_addr #1

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

declare noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPii(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @fmodf(float noundef, float noundef) local_unnamed_addr #7

declare noundef double @_ZN5ImGui7GetTimeEv() local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef, i1 noundef zeroext) local_unnamed_addr #1

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

declare void @_ZN5ImGui6IndentEf(float noundef) local_unnamed_addr #1

declare void @_ZN5ImGui8UnindentEf(float noundef) local_unnamed_addr #1

declare void @_ZN5ImGui13BeginDisabledEb(i1 noundef zeroext) local_unnamed_addr #1

declare void @_ZN5ImGui11EndDisabledEv() local_unnamed_addr #1

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #1

declare void @_ZN5ImGui10LogButtonsEv() local_unnamed_addr #1

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

declare void @_ZN5ImGui14LogToClipboardEi(i32 noundef) local_unnamed_addr #1

declare void @_ZN5ImGui7LogTextEPKcz(ptr noundef, ...) local_unnamed_addr #1

declare void @_ZN5ImGui9LogFinishEv() local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui10BeginTableEPKciiRK6ImVec2f(ptr noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8), float noundef) local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui15TableNextColumnEv() local_unnamed_addr #1

declare void @_ZN5ImGui8EndTableEv() local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16DemoWindowLayoutv() local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16DemoWindowPopupsv() local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16DemoWindowTablesv() local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16DemoWindowInputsv() local_unnamed_addr #5

declare void @_ZN5ImGui12PopItemWidthEv() local_unnamed_addr #1

attributes #0 = { 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 #1 = { "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 = { 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 #3 = { nofree nounwind }
attributes #4 = { 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 #5 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { mustprogress nofree nounwind willreturn memory(write) "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 = { noreturn nounwind }
attributes #9 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!"branch_weights", i32 1, i32 1048575}
!6 = !{!7, !8, i64 0}
!7 = !{!"_ZTS19ImGuiDemoWindowData", !8, i64 0, !8, i64 1, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 5, !8, i64 6, !8, i64 7, !8, i64 8, !8, i64 9, !8, i64 10, !8, i64 11, !8, i64 12, !8, i64 13, !8, i64 14, !8, i64 15, !8, i64 16, !8, i64 17, !8, i64 18, !8, i64 19, !8, i64 20, !11, i64 24}
!8 = !{!"bool", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"any pointer", !9, i64 0}
!12 = !{i8 0, i8 2}
!13 = !{}
!14 = !{!7, !8, i64 5}
!15 = !{!7, !8, i64 4}
!16 = !{!7, !8, i64 1}
!17 = !{!7, !8, i64 2}
!18 = !{!7, !8, i64 3}
!19 = !{!7, !8, i64 6}
!20 = !{!7, !8, i64 7}
!21 = !{!7, !8, i64 8}
!22 = !{!7, !8, i64 9}
!23 = !{!7, !8, i64 10}
!24 = !{!7, !8, i64 11}
!25 = !{!7, !8, i64 12}
!26 = !{!7, !8, i64 13}
!27 = !{!7, !8, i64 14}
!28 = !{!7, !8, i64 15}
!29 = !{!7, !8, i64 16}
!30 = !{!7, !8, i64 17}
!31 = !{!7, !8, i64 19}
!32 = !{!7, !8, i64 18}
!33 = !{!8, !8, i64 0}
!34 = !{!35, !38, i64 24}
!35 = !{!"_ZTS13ImGuiViewport", !36, i64 0, !36, i64 4, !37, i64 8, !37, i64 16, !37, i64 24, !37, i64 32, !38, i64 40, !36, i64 44, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !8, i64 88, !8, i64 89, !8, i64 90, !8, i64 91}
!36 = !{!"int", !9, i64 0}
!37 = !{!"_ZTS6ImVec2", !38, i64 0, !38, i64 4}
!38 = !{!"float", !9, i64 0}
!39 = !{!35, !38, i64 28}
!40 = !{!11, !11, i64 0}
!41 = !{!42, !36, i64 0}
!42 = !{!"_ZTS7ImGuiIO", !36, i64 0, !36, i64 4, !37, i64 8, !38, i64 16, !38, i64 20, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !38, i64 56, !8, i64 60, !11, i64 64, !37, i64 72, !8, i64 80, !8, i64 81, !8, i64 82, !8, i64 83, !8, i64 84, !8, i64 85, !8, i64 86, !8, i64 87, !8, i64 88, !8, i64 89, !8, i64 90, !8, i64 91, !8, i64 92, !8, i64 93, !8, i64 94, !8, i64 95, !8, i64 96, !8, i64 97, !8, i64 98, !8, i64 99, !8, i64 100, !8, i64 101, !8, i64 102, !8, i64 103, !8, i64 104, !38, i64 108, !38, i64 112, !38, i64 116, !38, i64 120, !38, i64 124, !38, i64 128, !8, i64 132, !8, i64 133, !8, i64 134, !8, i64 135, !8, i64 136, !8, i64 137, !8, i64 138, !8, i64 139, !8, i64 140, !8, i64 141, !8, i64 142, !11, i64 144, !11, i64 152, !11, i64 160, !11, i64 168, !11, i64 176, !8, i64 184, !8, i64 185, !8, i64 186, !8, i64 187, !8, i64 188, !8, i64 189, !8, i64 190, !38, i64 192, !36, i64 196, !36, i64 200, !36, i64 204, !36, i64 208, !37, i64 212, !11, i64 224, !37, i64 232, !9, i64 240, !38, i64 248, !38, i64 252, !43, i64 256, !36, i64 260, !8, i64 264, !8, i64 265, !8, i64 266, !8, i64 267, !36, i64 268, !9, i64 272, !8, i64 2752, !37, i64 2756, !9, i64 2764, !9, i64 2808, !9, i64 2848, !9, i64 2853, !9, i64 2858, !9, i64 2868, !9, i64 2878, !9, i64 2888, !9, i64 2928, !9, i64 2933, !8, i64 2938, !8, i64 2939, !9, i64 2940, !9, i64 2960, !9, i64 2980, !9, i64 3020, !38, i64 3040, !8, i64 3044, !8, i64 3045, !44, i64 3046, !45, i64 3048, !11, i64 3064, !11, i64 3072, !11, i64 3080}
!43 = !{!"_ZTS16ImGuiMouseSource", !9, i64 0}
!44 = !{!"short", !9, i64 0}
!45 = !{!"_ZTS8ImVectorItE", !36, i64 0, !36, i64 4, !11, i64 8}
!46 = !{!42, !8, i64 88}
!47 = !{!42, !8, i64 133}
!48 = !{!42, !8, i64 134}
!49 = !{!42, !8, i64 135}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass