; LLVM IR from lbowes/falcon-9-simulation :: 3rd_party/imgui/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.ImVec2 = type { float, float }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [22 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [21 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, i32, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], [512 x float], [512 x float], [21 x float], [21 x float], i16, %struct.ImVector }
%struct.ImVector = type { i32, i32, ptr }

@.str.20 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [91 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui14ShowDemoWindowEPb = external hidden unnamed_addr constant [35 x i8], align 1
@_ZZN5ImGui14ShowDemoWindowEPbE18show_app_documents = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE22show_app_main_menu_bar = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE16show_app_console = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE12show_app_log = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE15show_app_layout = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE24show_app_property_editor = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE18show_app_long_text = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE20show_app_auto_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE27show_app_constrained_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE23show_app_simple_overlay = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE22show_app_window_titles = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE25show_app_custom_rendering = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE16show_app_metrics = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE21show_app_style_editor = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE14show_app_about = external hidden global i8, align 1
@.str.22 = 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
@.str.23 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [164 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [184 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [346 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [182 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [242 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [18 x i8], align 1

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

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

declare noundef nonnull align 8 dereferenceable(5472) ptr @_ZN5ImGui5GetIOEv() #2

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

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #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 %struct.ImVec2, align 4
  %5 = alloca %struct.ImVec2, align 4
  %6 = alloca %struct.ImVec2, align 4
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %struct.ImVec2, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %11 = call noundef ptr @_ZN5ImGui17GetCurrentContextEv()
  %12 = icmp ne ptr %11, null
  br i1 %12, label %13, label %14

13:                                               ; preds = %1
  br label %14

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

16:                                               ; preds = %14
  br label %19

17:                                               ; preds = %14
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.21, i32 noundef 226, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui14ShowDemoWindowEPb) #7
  unreachable

18:                                               ; No predecessors!
  br label %19

19:                                               ; preds = %18, %16
  %20 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_documents, align 1, !tbaa !9, !range !11, !noundef !12
  %21 = trunc i8 %20 to i1
  br i1 %21, label %22, label %23

22:                                               ; preds = %19
  call void @_ZL23ShowExampleAppDocumentsPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_documents)
  br label %23

23:                                               ; preds = %22, %19
  %24 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_main_menu_bar, align 1, !tbaa !9, !range !11, !noundef !12
  %25 = trunc i8 %24 to i1
  br i1 %25, label %26, label %27

26:                                               ; preds = %23
  call void @_ZL25ShowExampleAppMainMenuBarv()
  br label %27

27:                                               ; preds = %26, %23
  %28 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_console, align 1, !tbaa !9, !range !11, !noundef !12
  %29 = trunc i8 %28 to i1
  br i1 %29, label %30, label %31

30:                                               ; preds = %27
  call void @_ZL21ShowExampleAppConsolePb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_console)
  br label %31

31:                                               ; preds = %30, %27
  %32 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE12show_app_log, align 1, !tbaa !9, !range !11, !noundef !12
  %33 = trunc i8 %32 to i1
  br i1 %33, label %34, label %35

34:                                               ; preds = %31
  call void @_ZL17ShowExampleAppLogPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE12show_app_log)
  br label %35

35:                                               ; preds = %34, %31
  %36 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE15show_app_layout, align 1, !tbaa !9, !range !11, !noundef !12
  %37 = trunc i8 %36 to i1
  br i1 %37, label %38, label %39

38:                                               ; preds = %35
  call void @_ZL20ShowExampleAppLayoutPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE15show_app_layout)
  br label %39

39:                                               ; preds = %38, %35
  %40 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE24show_app_property_editor, align 1, !tbaa !9, !range !11, !noundef !12
  %41 = trunc i8 %40 to i1
  br i1 %41, label %42, label %43

42:                                               ; preds = %39
  call void @_ZL28ShowExampleAppPropertyEditorPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE24show_app_property_editor)
  br label %43

43:                                               ; preds = %42, %39
  %44 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_long_text, align 1, !tbaa !9, !range !11, !noundef !12
  %45 = trunc i8 %44 to i1
  br i1 %45, label %46, label %47

46:                                               ; preds = %43
  call void @_ZL22ShowExampleAppLongTextPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_long_text)
  br label %47

47:                                               ; preds = %46, %43
  %48 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE20show_app_auto_resize, align 1, !tbaa !9, !range !11, !noundef !12
  %49 = trunc i8 %48 to i1
  br i1 %49, label %50, label %51

50:                                               ; preds = %47
  call void @_ZL24ShowExampleAppAutoResizePb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE20show_app_auto_resize)
  br label %51

51:                                               ; preds = %50, %47
  %52 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE27show_app_constrained_resize, align 1, !tbaa !9, !range !11, !noundef !12
  %53 = trunc i8 %52 to i1
  br i1 %53, label %54, label %55

54:                                               ; preds = %51
  call void @_ZL31ShowExampleAppConstrainedResizePb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE27show_app_constrained_resize)
  br label %55

55:                                               ; preds = %54, %51
  %56 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE23show_app_simple_overlay, align 1, !tbaa !9, !range !11, !noundef !12
  %57 = trunc i8 %56 to i1
  br i1 %57, label %58, label %59

58:                                               ; preds = %55
  call void @_ZL27ShowExampleAppSimpleOverlayPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE23show_app_simple_overlay)
  br label %59

59:                                               ; preds = %58, %55
  %60 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_window_titles, align 1, !tbaa !9, !range !11, !noundef !12
  %61 = trunc i8 %60 to i1
  br i1 %61, label %62, label %63

62:                                               ; preds = %59
  call void @_ZL26ShowExampleAppWindowTitlesPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_window_titles)
  br label %63

63:                                               ; preds = %62, %59
  %64 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE25show_app_custom_rendering, align 1, !tbaa !9, !range !11, !noundef !12
  %65 = trunc i8 %64 to i1
  br i1 %65, label %66, label %67

66:                                               ; preds = %63
  call void @_ZL29ShowExampleAppCustomRenderingPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE25show_app_custom_rendering)
  br label %67

67:                                               ; preds = %66, %63
  %68 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_metrics, align 1, !tbaa !9, !range !11, !noundef !12
  %69 = trunc i8 %68 to i1
  br i1 %69, label %70, label %71

70:                                               ; preds = %67
  call void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_metrics)
  br label %71

71:                                               ; preds = %70, %67
  %72 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE14show_app_about, align 1, !tbaa !9, !range !11, !noundef !12
  %73 = trunc i8 %72 to i1
  br i1 %73, label %74, label %75

74:                                               ; preds = %71
  call void @_ZN5ImGui15ShowAboutWindowEPb(ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE14show_app_about)
  br label %75

75:                                               ; preds = %74, %71
  %76 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE21show_app_style_editor, align 1, !tbaa !9, !range !11, !noundef !12
  %77 = trunc i8 %76 to i1
  br i1 %77, label %78, label %80

78:                                               ; preds = %75
  %79 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.22, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE21show_app_style_editor, i32 noundef 0)
  call void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef null)
  call void @_ZN5ImGui3EndEv()
  br label %80

80:                                               ; preds = %78, %75
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #8
  store i32 0, ptr %3, align 4, !tbaa !13
  %81 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar, align 1, !tbaa !9, !range !11, !noundef !12
  %82 = trunc i8 %81 to i1
  br i1 %82, label %83, label %86

83:                                               ; preds = %80
  %84 = load i32, ptr %3, align 4, !tbaa !13
  %85 = or i32 %84, 1
  store i32 %85, ptr %3, align 4, !tbaa !13
  br label %86

86:                                               ; preds = %83, %80
  %87 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar, align 1, !tbaa !9, !range !11, !noundef !12
  %88 = trunc i8 %87 to i1
  br i1 %88, label %89, label %92

89:                                               ; preds = %86
  %90 = load i32, ptr %3, align 4, !tbaa !13
  %91 = or i32 %90, 8
  store i32 %91, ptr %3, align 4, !tbaa !13
  br label %92

92:                                               ; preds = %89, %86
  %93 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE7no_menu, align 1, !tbaa !9, !range !11, !noundef !12
  %94 = trunc i8 %93 to i1
  br i1 %94, label %98, label %95

95:                                               ; preds = %92
  %96 = load i32, ptr %3, align 4, !tbaa !13
  %97 = or i32 %96, 1024
  store i32 %97, ptr %3, align 4, !tbaa !13
  br label %98

98:                                               ; preds = %95, %92
  %99 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE7no_move, align 1, !tbaa !9, !range !11, !noundef !12
  %100 = trunc i8 %99 to i1
  br i1 %100, label %101, label %104

101:                                              ; preds = %98
  %102 = load i32, ptr %3, align 4, !tbaa !13
  %103 = or i32 %102, 4
  store i32 %103, ptr %3, align 4, !tbaa !13
  br label %104

104:                                              ; preds = %101, %98
  %105 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9no_resize, align 1, !tbaa !9, !range !11, !noundef !12
  %106 = trunc i8 %105 to i1
  br i1 %106, label %107, label %110

107:                                              ; preds = %104
  %108 = load i32, ptr %3, align 4, !tbaa !13
  %109 = or i32 %108, 2
  store i32 %109, ptr %3, align 4, !tbaa !13
  br label %110

110:                                              ; preds = %107, %104
  %111 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse, align 1, !tbaa !9, !range !11, !noundef !12
  %112 = trunc i8 %111 to i1
  br i1 %112, label %113, label %116

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

116:                                              ; preds = %113, %110
  %117 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE6no_nav, align 1, !tbaa !9, !range !11, !noundef !12
  %118 = trunc i8 %117 to i1
  br i1 %118, label %119, label %122

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

122:                                              ; preds = %119, %116
  %123 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE13no_background, align 1, !tbaa !9, !range !11, !noundef !12
  %124 = trunc i8 %123 to i1
  br i1 %124, label %125, label %128

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

128:                                              ; preds = %125, %122
  %129 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front, align 1, !tbaa !9, !range !11, !noundef !12
  %130 = trunc i8 %129 to i1
  br i1 %130, label %131, label %134

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

134:                                              ; preds = %131, %128
  %135 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE8no_close, align 1, !tbaa !9, !range !11, !noundef !12
  %136 = trunc i8 %135 to i1
  br i1 %136, label %137, label %138

137:                                              ; preds = %134
  store ptr null, ptr %2, align 8, !tbaa !5
  br label %138

138:                                              ; preds = %137, %134
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 6.500000e+02, float noundef 2.000000e+01)
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8) %4, i32 noundef 4, ptr noundef nonnull align 4 dereferenceable(8) %5)
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 5.500000e+02, float noundef 6.800000e+02)
  call void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8) %6, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  %139 = load ptr, ptr %2, align 8, !tbaa !5
  %140 = load i32, ptr %3, align 4, !tbaa !13
  %141 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.23, ptr noundef %139, i32 noundef %140)
  br i1 %141, label %143, label %142

142:                                              ; preds = %138
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %7, align 4
  br label %263

143:                                              ; preds = %138
  %144 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %145 = fmul float %144, -1.200000e+01
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %145)
  %146 = call noundef zeroext i1 @_ZN5ImGui12BeginMenuBarEv()
  br i1 %146, label %147, label %172

147:                                              ; preds = %143
  %148 = call noundef zeroext i1 @_ZN5ImGui9BeginMenuEPKcb(ptr noundef @.str.24, i1 noundef zeroext true)
  br i1 %148, label %149, label %150

149:                                              ; preds = %147
  call void @_ZL19ShowExampleMenuFilev()
  call void @_ZN5ImGui7EndMenuEv()
  br label %150

150:                                              ; preds = %149, %147
  %151 = call noundef zeroext i1 @_ZN5ImGui9BeginMenuEPKcb(ptr noundef @.str.25, i1 noundef zeroext true)
  br i1 %151, label %152, label %165

152:                                              ; preds = %150
  %153 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.26, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_main_menu_bar, i1 noundef zeroext true)
  %154 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.27, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_console, i1 noundef zeroext true)
  %155 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.28, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE12show_app_log, i1 noundef zeroext true)
  %156 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.29, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE15show_app_layout, i1 noundef zeroext true)
  %157 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.30, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE24show_app_property_editor, i1 noundef zeroext true)
  %158 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.31, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_long_text, i1 noundef zeroext true)
  %159 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.32, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE20show_app_auto_resize, i1 noundef zeroext true)
  %160 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.33, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE27show_app_constrained_resize, i1 noundef zeroext true)
  %161 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.34, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE23show_app_simple_overlay, i1 noundef zeroext true)
  %162 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.35, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_window_titles, i1 noundef zeroext true)
  %163 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.36, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE25show_app_custom_rendering, i1 noundef zeroext true)
  %164 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.37, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_documents, i1 noundef zeroext true)
  call void @_ZN5ImGui7EndMenuEv()
  br label %165

165:                                              ; preds = %152, %150
  %166 = call noundef zeroext i1 @_ZN5ImGui9BeginMenuEPKcb(ptr noundef @.str.38, i1 noundef zeroext true)
  br i1 %166, label %167, label %171

167:                                              ; preds = %165
  %168 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.39, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_metrics, i1 noundef zeroext true)
  %169 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.40, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE21show_app_style_editor, i1 noundef zeroext true)
  %170 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef @.str.41, ptr noundef null, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE14show_app_about, i1 noundef zeroext true)
  call void @_ZN5ImGui7EndMenuEv()
  br label %171

171:                                              ; preds = %167, %165
  call void @_ZN5ImGui10EndMenuBarEv()
  br label %172

172:                                              ; preds = %171, %143
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.42, ptr noundef @.str.43)
  call void @_ZN5ImGui7SpacingEv()
  %173 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef @.str.44, i32 noundef 0)
  br i1 %173, label %174, label %175

174:                                              ; preds = %172
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.45)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.46)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.47)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.48)
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.49)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.50)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.51)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.52)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.53)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.54)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.55)
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.56)
  call void @_ZN5ImGui13ShowUserGuideEv()
  br label %175

175:                                              ; preds = %174, %172
  %176 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef @.str.57, i32 noundef 0)
  br i1 %176, label %177, label %249

177:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  %178 = call noundef nonnull align 8 dereferenceable(5472) ptr @_ZN5ImGui5GetIOEv()
  store ptr %178, ptr %8, align 8, !tbaa !5
  %179 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.58)
  br i1 %179, label %180, label %229

180:                                              ; preds = %177
  %181 = load ptr, ptr %8, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.ImGuiIO, ptr %181, i32 0, i32 0
  %183 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef @.str.59, ptr noundef %182, i32 noundef 1)
  %184 = load ptr, ptr %8, align 8, !tbaa !5
  %185 = getelementptr inbounds %struct.ImGuiIO, ptr %184, i32 0, i32 0
  %186 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef @.str.60, ptr noundef %185, i32 noundef 2)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.61)
  %187 = load ptr, ptr %8, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.ImGuiIO, ptr %187, i32 0, i32 0
  %189 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef @.str.62, ptr noundef %188, i32 noundef 4)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.63)
  %190 = load ptr, ptr %8, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.ImGuiIO, ptr %190, i32 0, i32 0
  %192 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef @.str.64, ptr noundef %191, i32 noundef 16)
  %193 = load ptr, ptr %8, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.ImGuiIO, ptr %193, i32 0, i32 0
  %195 = load i32, ptr %194, align 8, !tbaa !15
  %196 = and i32 %195, 16
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %198, label %213

198:                                              ; preds = %180
  %199 = call noundef double @_ZN5ImGui7GetTimeEv()
  %200 = fptrunc double %199 to float
  %201 = call float @fmodf(float noundef %200, float noundef 0x3FD99999A0000000) #8
  %202 = fcmp olt float %201, 0x3FC99999A0000000
  br i1 %202, label %203, label %204

203:                                              ; preds = %198
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.65)
  br label %204

204:                                              ; preds = %203, %198
  %205 = call noundef i32 @_ZN5ImGui11GetKeyIndexEi(i32 noundef 12)
  %206 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedEib(i32 noundef %205, i1 noundef zeroext true)
  br i1 %206, label %207, label %212

207:                                              ; preds = %204
  %208 = load ptr, ptr %8, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.ImGuiIO, ptr %208, i32 0, i32 0
  %210 = load i32, ptr %209, align 8, !tbaa !15
  %211 = and i32 %210, -17
  store i32 %211, ptr %209, align 8, !tbaa !15
  br label %212

212:                                              ; preds = %207, %204
  br label %213

213:                                              ; preds = %212, %180
  %214 = load ptr, ptr %8, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImGuiIO, ptr %214, i32 0, i32 0
  %216 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef @.str.66, ptr noundef %215, i32 noundef 32)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.67)
  %217 = load ptr, ptr %8, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.ImGuiIO, ptr %217, i32 0, i32 21
  %219 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.68, ptr noundef %218)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.69)
  %220 = load ptr, ptr %8, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.ImGuiIO, ptr %220, i32 0, i32 22
  %222 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.70, ptr noundef %221)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.71)
  %223 = load ptr, ptr %8, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.ImGuiIO, ptr %223, i32 0, i32 23
  %225 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.72, ptr noundef %224)
  %226 = load ptr, ptr %8, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.ImGuiIO, ptr %226, i32 0, i32 19
  %228 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.73, ptr noundef %227)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.74)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui9SeparatorEv()
  br label %229

229:                                              ; preds = %213, %177
  %230 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.75)
  br i1 %230, label %231, label %239

231:                                              ; preds = %229
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.76)
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  %232 = load ptr, ptr %8, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.ImGuiIO, ptr %232, i32 0, i32 1
  %234 = load i32, ptr %233, align 4, !tbaa !21
  store i32 %234, ptr %9, align 4, !tbaa !13
  %235 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef @.str.77, ptr noundef %9, i32 noundef 1)
  %236 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef @.str.78, ptr noundef %9, i32 noundef 2)
  %237 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef @.str.79, ptr noundef %9, i32 noundef 4)
  %238 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef @.str.80, ptr noundef %9, i32 noundef 8)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %239

239:                                              ; preds = %231, %229
  %240 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.81)
  br i1 %240, label %241, label %242

241:                                              ; preds = %239
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.82)
  call void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui9SeparatorEv()
  br label %242

242:                                              ; preds = %241, %239
  %243 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.83)
  br i1 %243, label %244, label %248

244:                                              ; preds = %242
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.84)
  call void @_ZN5ImGui10LogButtonsEv()
  call void @_ZL10HelpMarkerPKc(ptr noundef @.str.85)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %245 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.86, ptr noundef nonnull align 4 dereferenceable(8) %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  br i1 %245, label %246, label %247

246:                                              ; preds = %244
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.87)
  call void @_ZN5ImGui9LogFinishEv()
  br label %247

247:                                              ; preds = %246, %244
  call void @_ZN5ImGui7TreePopEv()
  br label %248

248:                                              ; preds = %247, %242
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  br label %249

249:                                              ; preds = %248, %175
  %250 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef @.str.88, i32 noundef 0)
  br i1 %250, label %251, label %262

251:                                              ; preds = %249
  %252 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.89, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar)
  call void @_ZN5ImGui8SameLineEff(float noundef 1.500000e+02, float noundef -1.000000e+00)
  %253 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.90, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar)
  call void @_ZN5ImGui8SameLineEff(float noundef 3.000000e+02, float noundef -1.000000e+00)
  %254 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.91, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE7no_menu)
  %255 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.92, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE7no_move)
  call void @_ZN5ImGui8SameLineEff(float noundef 1.500000e+02, float noundef -1.000000e+00)
  %256 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.93, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE9no_resize)
  call void @_ZN5ImGui8SameLineEff(float noundef 3.000000e+02, float noundef -1.000000e+00)
  %257 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.94, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse)
  %258 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.95, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE8no_close)
  call void @_ZN5ImGui8SameLineEff(float noundef 1.500000e+02, float noundef -1.000000e+00)
  %259 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.96, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE6no_nav)
  call void @_ZN5ImGui8SameLineEff(float noundef 3.000000e+02, float noundef -1.000000e+00)
  %260 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.97, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE13no_background)
  %261 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.98, ptr noundef @_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front)
  br label %262

262:                                              ; preds = %251, %249
  call void @_ZL21ShowDemoWindowWidgetsv()
  call void @_ZL20ShowDemoWindowLayoutv()
  call void @_ZL20ShowDemoWindowPopupsv()
  call void @_ZL21ShowDemoWindowColumnsv()
  call void @_ZL18ShowDemoWindowMiscv()
  call void @_ZN5ImGui3EndEv()
  store i32 0, ptr %7, align 4
  br label %263

263:                                              ; preds = %262, %142
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  %264 = load i32, ptr %7, align 4
  switch i32 %264, label %266 [
    i32 0, label %265
    i32 1, label %265
  ]

265:                                              ; preds = %263, %263
  ret void

266:                                              ; preds = %263
  unreachable
}

declare noundef ptr @_ZN5ImGui17GetCurrentContextEv() #2

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

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

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

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

; 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 @_ZL28ShowExampleAppPropertyEditorPb(ptr noundef) #0

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

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

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

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

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

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

declare void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef) #2

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

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

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

declare void @_ZN5ImGui3EndEv() #2

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

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

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

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) #2

declare noundef float @_ZN5ImGui11GetFontSizeEv() #2

declare noundef zeroext i1 @_ZN5ImGui12BeginMenuBarEv() #2

declare noundef zeroext i1 @_ZN5ImGui9BeginMenuEPKcb(ptr noundef, i1 noundef zeroext) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL19ShowExampleMenuFilev() #4

declare void @_ZN5ImGui7EndMenuEv() #2

declare noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #2

declare void @_ZN5ImGui10EndMenuBarEv() #2

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

declare void @_ZN5ImGui7SpacingEv() #2

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

declare void @_ZN5ImGui9SeparatorEv() #2

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

declare noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef, ptr noundef, i32 noundef) #2

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

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

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

declare noundef double @_ZN5ImGui7GetTimeEv() #2

declare noundef zeroext i1 @_ZN5ImGui12IsKeyPressedEib(i32 noundef, i1 noundef zeroext) #2

declare noundef i32 @_ZN5ImGui11GetKeyIndexEi(i32 noundef) #2

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

declare void @_ZN5ImGui7TreePopEv() #2

declare void @_ZN5ImGui10LogButtonsEv() #2

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

declare void @_ZN5ImGui14LogToClipboardEi(i32 noundef) #2

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

declare void @_ZN5ImGui9LogFinishEv() #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21ShowDemoWindowWidgetsv() #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL20ShowDemoWindowLayoutv() #4

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21ShowDemoWindowColumnsv() #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL18ShowDemoWindowMiscv() #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!16, !14, i64 0}
!16 = !{!"_ZTS7ImGuiIO", !14, i64 0, !14, i64 4, !17, i64 8, !18, i64 16, !18, i64 20, !6, i64 24, !6, i64 32, !18, i64 40, !18, i64 44, !18, i64 48, !7, i64 52, !18, i64 140, !18, i64 144, !6, i64 152, !6, i64 160, !18, i64 168, !10, i64 172, !6, i64 176, !17, i64 184, !10, i64 192, !10, i64 193, !10, i64 194, !10, i64 195, !10, i64 196, !18, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !6, i64 288, !17, i64 296, !7, i64 304, !18, i64 312, !18, i64 316, !10, i64 320, !10, i64 321, !10, i64 322, !10, i64 323, !7, i64 324, !7, i64 836, !10, i64 920, !10, i64 921, !10, i64 922, !10, i64 923, !10, i64 924, !10, i64 925, !10, i64 926, !18, i64 928, !14, i64 932, !14, i64 936, !14, i64 940, !14, i64 944, !14, i64 948, !17, i64 952, !14, i64 960, !17, i64 964, !7, i64 972, !7, i64 1016, !7, i64 1056, !7, i64 1061, !7, i64 1066, !7, i64 1071, !7, i64 1076, !7, i64 1084, !7, i64 1104, !7, i64 1124, !7, i64 1164, !7, i64 1184, !7, i64 3232, !7, i64 5280, !7, i64 5364, !19, i64 5448, !20, i64 5456}
!17 = !{!"_ZTS6ImVec2", !18, i64 0, !18, i64 4}
!18 = !{!"float", !7, i64 0}
!19 = !{!"short", !7, i64 0}
!20 = !{!"_ZTS8ImVectorItE", !14, i64 0, !14, i64 4, !6, i64 8}
!21 = !{!16, !14, i64 4}


; 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.ImVec2 = type { float, float }

@.str.20 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [91 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui14ShowDemoWindowEPb = external hidden unnamed_addr constant [35 x i8], align 1
@_ZZN5ImGui14ShowDemoWindowEPbE18show_app_documents = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE22show_app_main_menu_bar = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE16show_app_console = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE12show_app_log = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE15show_app_layout = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE24show_app_property_editor = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE18show_app_long_text = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE20show_app_auto_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE27show_app_constrained_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE23show_app_simple_overlay = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE22show_app_window_titles = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE25show_app_custom_rendering = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE16show_app_metrics = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE21show_app_style_editor = external hidden global i8, align 1
@_ZZN5ImGui14ShowDemoWindowEPbE14show_app_about = external hidden global i8, align 1
@.str.22 = 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
@.str.23 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [164 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [184 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [346 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [182 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [242 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [18 x i8], align 1

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

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

declare noundef nonnull align 8 dereferenceable(5472) ptr @_ZN5ImGui5GetIOEv() local_unnamed_addr #2

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #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 i32, 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.20, ptr noundef nonnull @.str.21, i32 noundef 226, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui14ShowDemoWindowEPb) #7
  unreachable

9:                                                ; preds = %1
  %10 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_documents, align 1, !tbaa !5, !range !9, !noundef !10
  %11 = trunc nuw i8 %10 to i1
  br i1 %11, label %12, label %13

12:                                               ; preds = %9
  tail call void @_ZL23ShowExampleAppDocumentsPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_documents)
  br label %13

13:                                               ; preds = %12, %9
  %14 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_main_menu_bar, align 1, !tbaa !5, !range !9, !noundef !10
  %15 = trunc nuw i8 %14 to i1
  br i1 %15, label %16, label %17

16:                                               ; preds = %13
  tail call void @_ZL25ShowExampleAppMainMenuBarv()
  br label %17

17:                                               ; preds = %16, %13
  %18 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_console, align 1, !tbaa !5, !range !9, !noundef !10
  %19 = trunc nuw i8 %18 to i1
  br i1 %19, label %20, label %21

20:                                               ; preds = %17
  tail call void @_ZL21ShowExampleAppConsolePb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_console)
  br label %21

21:                                               ; preds = %20, %17
  %22 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE12show_app_log, align 1, !tbaa !5, !range !9, !noundef !10
  %23 = trunc nuw i8 %22 to i1
  br i1 %23, label %24, label %25

24:                                               ; preds = %21
  tail call void @_ZL17ShowExampleAppLogPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE12show_app_log)
  br label %25

25:                                               ; preds = %24, %21
  %26 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE15show_app_layout, align 1, !tbaa !5, !range !9, !noundef !10
  %27 = trunc nuw i8 %26 to i1
  br i1 %27, label %28, label %29

28:                                               ; preds = %25
  tail call void @_ZL20ShowExampleAppLayoutPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE15show_app_layout)
  br label %29

29:                                               ; preds = %28, %25
  %30 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE24show_app_property_editor, align 1, !tbaa !5, !range !9, !noundef !10
  %31 = trunc nuw i8 %30 to i1
  br i1 %31, label %32, label %33

32:                                               ; preds = %29
  tail call void @_ZL28ShowExampleAppPropertyEditorPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE24show_app_property_editor)
  br label %33

33:                                               ; preds = %32, %29
  %34 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_long_text, align 1, !tbaa !5, !range !9, !noundef !10
  %35 = trunc nuw i8 %34 to i1
  br i1 %35, label %36, label %37

36:                                               ; preds = %33
  tail call void @_ZL22ShowExampleAppLongTextPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_long_text)
  br label %37

37:                                               ; preds = %36, %33
  %38 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE20show_app_auto_resize, align 1, !tbaa !5, !range !9, !noundef !10
  %39 = trunc nuw i8 %38 to i1
  br i1 %39, label %40, label %41

40:                                               ; preds = %37
  tail call void @_ZL24ShowExampleAppAutoResizePb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE20show_app_auto_resize)
  br label %41

41:                                               ; preds = %40, %37
  %42 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE27show_app_constrained_resize, align 1, !tbaa !5, !range !9, !noundef !10
  %43 = trunc nuw i8 %42 to i1
  br i1 %43, label %44, label %45

44:                                               ; preds = %41
  tail call void @_ZL31ShowExampleAppConstrainedResizePb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE27show_app_constrained_resize)
  br label %45

45:                                               ; preds = %44, %41
  %46 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE23show_app_simple_overlay, align 1, !tbaa !5, !range !9, !noundef !10
  %47 = trunc nuw i8 %46 to i1
  br i1 %47, label %48, label %49

48:                                               ; preds = %45
  tail call void @_ZL27ShowExampleAppSimpleOverlayPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE23show_app_simple_overlay)
  br label %49

49:                                               ; preds = %48, %45
  %50 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_window_titles, align 1, !tbaa !5, !range !9, !noundef !10
  %51 = trunc nuw i8 %50 to i1
  br i1 %51, label %52, label %53

52:                                               ; preds = %49
  tail call void @_ZL26ShowExampleAppWindowTitlesPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_window_titles)
  br label %53

53:                                               ; preds = %52, %49
  %54 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE25show_app_custom_rendering, align 1, !tbaa !5, !range !9, !noundef !10
  %55 = trunc nuw i8 %54 to i1
  br i1 %55, label %56, label %57

56:                                               ; preds = %53
  tail call void @_ZL29ShowExampleAppCustomRenderingPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE25show_app_custom_rendering)
  br label %57

57:                                               ; preds = %56, %53
  %58 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_metrics, align 1, !tbaa !5, !range !9, !noundef !10
  %59 = trunc nuw i8 %58 to i1
  br i1 %59, label %60, label %61

60:                                               ; preds = %57
  tail call void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_metrics)
  br label %61

61:                                               ; preds = %60, %57
  %62 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE14show_app_about, align 1, !tbaa !5, !range !9, !noundef !10
  %63 = trunc nuw i8 %62 to i1
  br i1 %63, label %64, label %65

64:                                               ; preds = %61
  tail call void @_ZN5ImGui15ShowAboutWindowEPb(ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE14show_app_about)
  br label %65

65:                                               ; preds = %64, %61
  %66 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE21show_app_style_editor, align 1, !tbaa !5, !range !9, !noundef !10
  %67 = trunc nuw i8 %66 to i1
  br i1 %67, label %68, label %70

68:                                               ; preds = %65
  %69 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.22, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE21show_app_style_editor, i32 noundef 0)
  tail call void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef null)
  tail call void @_ZN5ImGui3EndEv()
  br label %70

70:                                               ; preds = %68, %65
  %71 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar, align 1, !tbaa !5, !range !9, !noundef !10
  %spec.select = zext nneg i8 %71 to i32
  %72 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar, align 1, !tbaa !5, !range !9, !noundef !10
  %73 = trunc nuw i8 %72 to i1
  %74 = or disjoint i32 %spec.select, 8
  %.1 = select i1 %73, i32 %74, i32 %spec.select
  %75 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE7no_menu, align 1, !tbaa !5, !range !9, !noundef !10
  %76 = trunc nuw i8 %75 to i1
  %77 = or disjoint i32 %.1, 1024
  %.2 = select i1 %76, i32 %.1, i32 %77
  %78 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE7no_move, align 1, !tbaa !5, !range !9, !noundef !10
  %79 = trunc nuw i8 %78 to i1
  %80 = or i32 %.2, 4
  %.3 = select i1 %79, i32 %80, i32 %.2
  %81 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE9no_resize, align 1, !tbaa !5, !range !9, !noundef !10
  %82 = trunc nuw i8 %81 to i1
  %83 = or i32 %.3, 2
  %.4 = select i1 %82, i32 %83, i32 %.3
  %84 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse, align 1, !tbaa !5, !range !9, !noundef !10
  %85 = trunc nuw i8 %84 to i1
  %86 = or i32 %.4, 32
  %.5 = select i1 %85, i32 %86, i32 %.4
  %87 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE6no_nav, align 1, !tbaa !5, !range !9, !noundef !10
  %88 = trunc nuw i8 %87 to i1
  %89 = or i32 %.5, 786432
  %.6 = select i1 %88, i32 %89, i32 %.5
  %90 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE13no_background, align 1, !tbaa !5, !range !9, !noundef !10
  %91 = trunc nuw i8 %90 to i1
  %92 = or i32 %.6, 128
  %.7 = select i1 %91, i32 %92, i32 %.6
  %93 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front, align 1, !tbaa !5, !range !9, !noundef !10
  %94 = trunc nuw i8 %93 to i1
  %95 = or i32 %.7, 8192
  %.8 = select i1 %94, i32 %95, i32 %.7
  %96 = load i8, ptr @_ZZN5ImGui14ShowDemoWindowEPbE8no_close, align 1, !tbaa !5, !range !9, !noundef !10
  %97 = trunc nuw i8 %96 to i1
  %.0 = select i1 %97, ptr null, ptr %0
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef 6.500000e+02, float noundef 2.000000e+01)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #8
  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) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #8
  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) #8
  %98 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.23, ptr noundef %.0, i32 noundef %.8)
  br i1 %98, label %99, label %197

99:                                               ; preds = %70
  %100 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %101 = fmul float %100, -1.200000e+01
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %101)
  %102 = call noundef zeroext i1 @_ZN5ImGui12BeginMenuBarEv()
  br i1 %102, label %103, label %128

103:                                              ; preds = %99
  %104 = call noundef zeroext i1 @_ZN5ImGui9BeginMenuEPKcb(ptr noundef nonnull @.str.24, i1 noundef zeroext true)
  br i1 %104, label %105, label %106

105:                                              ; preds = %103
  call void @_ZL19ShowExampleMenuFilev()
  call void @_ZN5ImGui7EndMenuEv()
  br label %106

106:                                              ; preds = %105, %103
  %107 = call noundef zeroext i1 @_ZN5ImGui9BeginMenuEPKcb(ptr noundef nonnull @.str.25, i1 noundef zeroext true)
  br i1 %107, label %108, label %121

108:                                              ; preds = %106
  %109 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.26, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_main_menu_bar, i1 noundef zeroext true)
  %110 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.27, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_console, i1 noundef zeroext true)
  %111 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.28, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE12show_app_log, i1 noundef zeroext true)
  %112 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.29, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE15show_app_layout, i1 noundef zeroext true)
  %113 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.30, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE24show_app_property_editor, i1 noundef zeroext true)
  %114 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.31, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_long_text, i1 noundef zeroext true)
  %115 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.32, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE20show_app_auto_resize, i1 noundef zeroext true)
  %116 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.33, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE27show_app_constrained_resize, i1 noundef zeroext true)
  %117 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.34, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE23show_app_simple_overlay, i1 noundef zeroext true)
  %118 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.35, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE22show_app_window_titles, i1 noundef zeroext true)
  %119 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.36, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE25show_app_custom_rendering, i1 noundef zeroext true)
  %120 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.37, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE18show_app_documents, i1 noundef zeroext true)
  call void @_ZN5ImGui7EndMenuEv()
  br label %121

121:                                              ; preds = %108, %106
  %122 = call noundef zeroext i1 @_ZN5ImGui9BeginMenuEPKcb(ptr noundef nonnull @.str.38, i1 noundef zeroext true)
  br i1 %122, label %123, label %127

123:                                              ; preds = %121
  %124 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.39, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE16show_app_metrics, i1 noundef zeroext true)
  %125 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.40, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE21show_app_style_editor, i1 noundef zeroext true)
  %126 = call noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef nonnull @.str.41, ptr noundef null, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE14show_app_about, i1 noundef zeroext true)
  call void @_ZN5ImGui7EndMenuEv()
  br label %127

127:                                              ; preds = %123, %121
  call void @_ZN5ImGui10EndMenuBarEv()
  br label %128

128:                                              ; preds = %127, %99
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.43)
  call void @_ZN5ImGui7SpacingEv()
  %129 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef nonnull @.str.44, i32 noundef 0)
  br i1 %129, label %130, label %131

130:                                              ; preds = %128
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.45)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.46)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.47)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.48)
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.49)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.50)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.51)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.52)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.53)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.54)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.55)
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.56)
  call void @_ZN5ImGui13ShowUserGuideEv()
  br label %131

131:                                              ; preds = %130, %128
  %132 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef nonnull @.str.57, i32 noundef 0)
  br i1 %132, label %133, label %183

133:                                              ; preds = %131
  %134 = call noundef nonnull align 8 dereferenceable(5472) ptr @_ZN5ImGui5GetIOEv()
  %135 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.58)
  br i1 %135, label %136, label %165

136:                                              ; preds = %133
  %137 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef nonnull @.str.59, ptr noundef nonnull %134, i32 noundef 1)
  %138 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef nonnull @.str.60, ptr noundef nonnull %134, i32 noundef 2)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.61)
  %139 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef nonnull @.str.62, ptr noundef nonnull %134, i32 noundef 4)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.63)
  %140 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef nonnull @.str.64, ptr noundef nonnull %134, i32 noundef 16)
  %141 = load i32, ptr %134, align 8, !tbaa !11
  %142 = and i32 %141, 16
  %.not23 = icmp eq i32 %142, 0
  br i1 %.not23, label %155, label %143

143:                                              ; preds = %136
  %144 = call noundef double @_ZN5ImGui7GetTimeEv()
  %145 = fptrunc double %144 to float
  %146 = call float @fmodf(float noundef %145, float noundef 0x3FD99999A0000000) #8
  %147 = fcmp olt float %146, 0x3FC99999A0000000
  br i1 %147, label %148, label %149

148:                                              ; preds = %143
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.65)
  br label %149

149:                                              ; preds = %148, %143
  %150 = call noundef i32 @_ZN5ImGui11GetKeyIndexEi(i32 noundef 12)
  %151 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedEib(i32 noundef %150, i1 noundef zeroext true)
  br i1 %151, label %152, label %155

152:                                              ; preds = %149
  %153 = load i32, ptr %134, align 8, !tbaa !11
  %154 = and i32 %153, -17
  store i32 %154, ptr %134, align 8, !tbaa !11
  br label %155

155:                                              ; preds = %149, %152, %136
  %156 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef nonnull @.str.66, ptr noundef nonnull %134, i32 noundef 32)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.67)
  %157 = getelementptr inbounds i8, ptr %134, i64 194
  %158 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.68, ptr noundef nonnull %157)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.69)
  %159 = getelementptr inbounds i8, ptr %134, i64 195
  %160 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.70, ptr noundef nonnull %159)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.71)
  %161 = getelementptr inbounds i8, ptr %134, i64 196
  %162 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.72, ptr noundef nonnull %161)
  %163 = getelementptr inbounds i8, ptr %134, i64 192
  %164 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.73, ptr noundef nonnull %163)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.74)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui9SeparatorEv()
  br label %165

165:                                              ; preds = %155, %133
  %166 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.75)
  br i1 %166, label %167, label %174

167:                                              ; preds = %165
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.76)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #8
  %168 = getelementptr inbounds i8, ptr %134, i64 4
  %169 = load i32, ptr %168, align 4, !tbaa !19
  store i32 %169, ptr %5, align 4, !tbaa !20
  %170 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef nonnull @.str.77, ptr noundef nonnull %5, i32 noundef 1)
  %171 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef nonnull @.str.78, ptr noundef nonnull %5, i32 noundef 2)
  %172 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef nonnull @.str.79, ptr noundef nonnull %5, i32 noundef 4)
  %173 = call noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef nonnull @.str.80, ptr noundef nonnull %5, i32 noundef 8)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #8
  br label %174

174:                                              ; preds = %167, %165
  %175 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.81)
  br i1 %175, label %176, label %177

176:                                              ; preds = %174
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.82)
  call void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  call void @_ZN5ImGui9SeparatorEv()
  br label %177

177:                                              ; preds = %176, %174
  %178 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.83)
  br i1 %178, label %179, label %183

179:                                              ; preds = %177
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.84)
  call void @_ZN5ImGui10LogButtonsEv()
  call void @_ZL10HelpMarkerPKc(ptr noundef nonnull @.str.85)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %180 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.86, ptr noundef nonnull align 4 dereferenceable(8) %6)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  br i1 %180, label %181, label %182

181:                                              ; preds = %179
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.87)
  call void @_ZN5ImGui9LogFinishEv()
  br label %182

182:                                              ; preds = %181, %179
  call void @_ZN5ImGui7TreePopEv()
  br label %183

183:                                              ; preds = %177, %182, %131
  %184 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKci(ptr noundef nonnull @.str.88, i32 noundef 0)
  br i1 %184, label %185, label %196

185:                                              ; preds = %183
  %186 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.89, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE11no_titlebar)
  call void @_ZN5ImGui8SameLineEff(float noundef 1.500000e+02, float noundef -1.000000e+00)
  %187 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.90, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE12no_scrollbar)
  call void @_ZN5ImGui8SameLineEff(float noundef 3.000000e+02, float noundef -1.000000e+00)
  %188 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.91, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE7no_menu)
  %189 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.92, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE7no_move)
  call void @_ZN5ImGui8SameLineEff(float noundef 1.500000e+02, float noundef -1.000000e+00)
  %190 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.93, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE9no_resize)
  call void @_ZN5ImGui8SameLineEff(float noundef 3.000000e+02, float noundef -1.000000e+00)
  %191 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.94, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE11no_collapse)
  %192 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.95, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE8no_close)
  call void @_ZN5ImGui8SameLineEff(float noundef 1.500000e+02, float noundef -1.000000e+00)
  %193 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.96, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE6no_nav)
  call void @_ZN5ImGui8SameLineEff(float noundef 3.000000e+02, float noundef -1.000000e+00)
  %194 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.97, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE13no_background)
  %195 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.98, ptr noundef nonnull @_ZZN5ImGui14ShowDemoWindowEPbE17no_bring_to_front)
  br label %196

196:                                              ; preds = %185, %183
  call void @_ZL21ShowDemoWindowWidgetsv()
  call void @_ZL20ShowDemoWindowLayoutv()
  call void @_ZL20ShowDemoWindowPopupsv()
  call void @_ZL21ShowDemoWindowColumnsv()
  call void @_ZL18ShowDemoWindowMiscv()
  br label %197

197:                                              ; preds = %70, %196
  call void @_ZN5ImGui3EndEv()
  ret void
}

declare noundef ptr @_ZN5ImGui17GetCurrentContextEv() local_unnamed_addr #2

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL25ShowExampleAppMainMenuBarv() 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 @_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 @_ZL28ShowExampleAppPropertyEditorPb(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 @_ZL24ShowExampleAppAutoResizePb(ptr noundef) local_unnamed_addr #0

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

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

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

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

declare void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef) local_unnamed_addr #2

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

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

declare void @_ZN5ImGui3EndEv() local_unnamed_addr #2

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

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

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

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) local_unnamed_addr #2

declare noundef float @_ZN5ImGui11GetFontSizeEv() local_unnamed_addr #2

declare noundef zeroext i1 @_ZN5ImGui12BeginMenuBarEv() local_unnamed_addr #2

declare noundef zeroext i1 @_ZN5ImGui9BeginMenuEPKcb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL19ShowExampleMenuFilev() local_unnamed_addr #4

declare void @_ZN5ImGui7EndMenuEv() local_unnamed_addr #2

declare noundef zeroext i1 @_ZN5ImGui8MenuItemEPKcS1_Pbb(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

declare void @_ZN5ImGui10EndMenuBarEv() local_unnamed_addr #2

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

declare void @_ZN5ImGui7SpacingEv() local_unnamed_addr #2

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

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #2

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

declare noundef zeroext i1 @_ZN5ImGui13CheckboxFlagsEPKcPjj(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

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

declare noundef double @_ZN5ImGui7GetTimeEv() local_unnamed_addr #2

declare noundef zeroext i1 @_ZN5ImGui12IsKeyPressedEib(i32 noundef, i1 noundef zeroext) local_unnamed_addr #2

declare noundef i32 @_ZN5ImGui11GetKeyIndexEi(i32 noundef) local_unnamed_addr #2

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

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #2

declare void @_ZN5ImGui10LogButtonsEv() local_unnamed_addr #2

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

declare void @_ZN5ImGui14LogToClipboardEi(i32 noundef) local_unnamed_addr #2

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

declare void @_ZN5ImGui9LogFinishEv() local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21ShowDemoWindowWidgetsv() local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL20ShowDemoWindowLayoutv() local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21ShowDemoWindowColumnsv() local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL18ShowDemoWindowMiscv() local_unnamed_addr #4

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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 = { 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 #4 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress 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 #6 = { 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 #7 = { noreturn nounwind }
attributes #8 = { 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 = !{!"bool", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{i8 0, i8 2}
!10 = !{}
!11 = !{!12, !13, i64 0}
!12 = !{!"_ZTS7ImGuiIO", !13, i64 0, !13, i64 4, !14, i64 8, !15, i64 16, !15, i64 20, !16, i64 24, !16, i64 32, !15, i64 40, !15, i64 44, !15, i64 48, !7, i64 52, !15, i64 140, !15, i64 144, !16, i64 152, !16, i64 160, !15, i64 168, !6, i64 172, !16, i64 176, !14, i64 184, !6, i64 192, !6, i64 193, !6, i64 194, !6, i64 195, !6, i64 196, !15, i64 200, !16, i64 208, !16, i64 216, !16, i64 224, !16, i64 232, !16, i64 240, !16, i64 248, !16, i64 256, !16, i64 264, !16, i64 272, !16, i64 280, !16, i64 288, !14, i64 296, !7, i64 304, !15, i64 312, !15, i64 316, !6, i64 320, !6, i64 321, !6, i64 322, !6, i64 323, !7, i64 324, !7, i64 836, !6, i64 920, !6, i64 921, !6, i64 922, !6, i64 923, !6, i64 924, !6, i64 925, !6, i64 926, !15, i64 928, !13, i64 932, !13, i64 936, !13, i64 940, !13, i64 944, !13, i64 948, !14, i64 952, !13, i64 960, !14, i64 964, !7, i64 972, !7, i64 1016, !7, i64 1056, !7, i64 1061, !7, i64 1066, !7, i64 1071, !7, i64 1076, !7, i64 1084, !7, i64 1104, !7, i64 1124, !7, i64 1164, !7, i64 1184, !7, i64 3232, !7, i64 5280, !7, i64 5364, !17, i64 5448, !18, i64 5456}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS6ImVec2", !15, i64 0, !15, i64 4}
!15 = !{!"float", !7, i64 0}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = !{!"_ZTS8ImVectorItE", !13, i64 0, !13, i64 4, !16, i64 8}
!19 = !{!12, !13, i64 4}
!20 = !{!13, !13, i64 0}


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