; LLVM IR from Eukky/TRender :: lib/imgui/imgui_demo.ll (ZN5ImGui15ShowStyleEditorEP10ImGuiStyle)

; 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.ImGuiStyle = type { float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, float, [42 x %struct.ImVec4] }
%struct.ImVec2 = type { float, float }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiTextFilter = type <{ [256 x i8], %class.ImVector.9, i32, [4 x i8] }>
%class.ImVector.9 = type { i32, i32, ptr }
%struct.ImColor = type { %struct.ImVec4 }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [21 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, i8, [512 x i8], [17 x i16], [21 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, [5 x %struct.ImVec2], [5 x float], [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] }
%struct.ImFontAtlas = type <{ i32, [4 x i8], ptr, i32, i32, ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %class.ImVector.6, %class.ImVector.7, %class.ImVector.8, [1 x i32], [4 x i8] }>
%class.ImVector.6 = type { i32, i32, ptr }
%class.ImVector.7 = type { i32, i32, ptr }
%class.ImVector.8 = type { i32, i32, ptr }
%struct.ImFont = type { float, float, %struct.ImVec2, %class.ImVector.10, %class.ImVector.11, %class.ImVector.0, ptr, float, i16, i16, ptr, ptr, float, float, i8, i32 }
%class.ImVector.10 = type { i32, i32, ptr }
%class.ImVector.11 = type { i32, i32, ptr }
%class.ImVector.0 = type { i32, i32, ptr }
%struct.ImFontConfig = type { ptr, i32, i8, i32, float, i32, i32, i8, %struct.ImVec2, %struct.ImVec2, ptr, float, float, i8, i32, float, [40 x i8], ptr }
%struct.ImFontGlyph = type { i16, float, float, float, float, float, float, float, float, float }

@.str.158 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [1 x i8], align 1
@__dso_handle = external hidden global i8
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style = external hidden global %struct.ImGuiStyle, align 4
@_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style = external hidden global i64, align 8
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE4init = external hidden global i8, align 1
@.str.690 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.691 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.692 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.693 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.694 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.695 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.696 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.697 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.698 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.699 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.700 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.701 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.702 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.703 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.704 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.705 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.706 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.707 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.708 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.709 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.710 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.711 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.712 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.713 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.714 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.715 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.716 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.717 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.718 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.719 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.720 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.721 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.722 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.723 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.724 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.725 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.726 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.727 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11output_dest = external hidden global i32, align 4
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE20output_only_modified = external hidden global i8, align 1
@.str.734 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.735 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.736 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.740 = external hidden unnamed_addr constant [95 x i8], align 1
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter = external hidden global %struct.ImGuiTextFilter, align 8
@_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter = external hidden global i64, align 8
@.str.741 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags = external hidden global i32, align 4
@.str.742 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.743 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.744 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.745 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.746 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.747 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.748 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.750 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.751 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.752 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.753 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.754 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.755 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.756 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.757 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.758 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.759 = external hidden unnamed_addr constant [421 x i8], align 1
@.str.760 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.761 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.762 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.763 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.764 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.765 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.766 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.767 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.768 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.769 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.770 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.771 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.772 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE12window_scale = external hidden global float, align 4
@.str.773 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [13 x i8], align 1

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

declare noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv() #0

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef %0) #1 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i8, align 1
  %7 = alloca i8, align 1
  %8 = alloca i8, align 1
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca %struct.ImVec2, align 4
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca %struct.ImVec2, align 4
  %21 = alloca i8, align 1
  %22 = alloca ptr, align 8
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec4, align 4
  %27 = alloca %struct.ImColor, align 4
  %28 = alloca %struct.ImVec4, align 4
  %29 = alloca %struct.ImColor, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i8, align 1
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca %struct.ImVec2, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca ptr, align 8
  %46 = alloca %struct.ImVec2, align 4
  %47 = alloca %struct.ImVec2, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #8
  %48 = call noundef nonnull align 4 dereferenceable(824) ptr @_ZN5ImGui8GetStyleEv()
  store ptr %48, ptr %3, align 8, !tbaa !5
  %49 = load atomic i8, ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style acquire, align 8
  %50 = icmp eq i8 %49, 0
  br i1 %50, label %51, label %56, !prof !9

51:                                               ; preds = %1
  %52 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style) #8
  %53 = icmp ne i32 %52, 0
  br i1 %53, label %54, label %56

54:                                               ; preds = %51
  invoke void @_ZN10ImGuiStyleC1Ev(ptr noundef nonnull align 4 dereferenceable(824) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style)
          to label %55 unwind label %64

55:                                               ; preds = %54
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style) #8
  br label %56

56:                                               ; preds = %55, %51, %1
  %57 = load i8, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE4init, align 1, !tbaa !10, !range !12, !noundef !13
  %58 = trunc i8 %57 to i1
  br i1 %58, label %59, label %68

59:                                               ; preds = %56
  %60 = load ptr, ptr %2, align 8, !tbaa !5
  %61 = icmp eq ptr %60, null
  br i1 %61, label %62, label %68

62:                                               ; preds = %59
  %63 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style, ptr align 4 %63, i64 824, i1 false), !tbaa.struct !14
  br label %68

64:                                               ; preds = %54
  %65 = landingpad { ptr, i32 }
          cleanup
  %66 = extractvalue { ptr, i32 } %65, 0
  store ptr %66, ptr %4, align 8
  %67 = extractvalue { ptr, i32 } %65, 1
  store i32 %67, ptr %5, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style) #8
  br label %756

68:                                               ; preds = %62, %59, %56
  store i8 0, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE4init, align 1, !tbaa !10
  %69 = load ptr, ptr %2, align 8, !tbaa !5
  %70 = icmp eq ptr %69, null
  br i1 %70, label %71, label %72

71:                                               ; preds = %68
  store ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style, ptr %2, align 8, !tbaa !5
  br label %72

72:                                               ; preds = %71, %68
  %73 = call noundef float @_ZN5ImGui14GetWindowWidthEv()
  %74 = fmul float %73, 5.000000e-01
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %74)
  %75 = call noundef zeroext i1 @_ZN5ImGui17ShowStyleSelectorEPKc(ptr noundef @.str.690)
  br i1 %75, label %76, label %78

76:                                               ; preds = %72
  %77 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style, ptr align 4 %77, i64 824, i1 false), !tbaa.struct !14
  br label %78

78:                                               ; preds = %76, %72
  call void @_ZN5ImGui16ShowFontSelectorEPKc(ptr noundef @.str.691)
  %79 = load ptr, ptr %3, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.ImGuiStyle, ptr %79, i32 0, i32 11
  %81 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.692, ptr noundef %80, float noundef 0.000000e+00, float noundef 1.200000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  br i1 %81, label %82, label %88

82:                                               ; preds = %78
  %83 = load ptr, ptr %3, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.ImGuiStyle, ptr %83, i32 0, i32 11
  %85 = load float, ptr %84, align 4, !tbaa !18
  %86 = load ptr, ptr %3, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.ImGuiStyle, ptr %86, i32 0, i32 21
  store float %85, ptr %87, align 4, !tbaa !21
  br label %88

88:                                               ; preds = %82, %78
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #8
  %89 = load ptr, ptr %3, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.ImGuiStyle, ptr %89, i32 0, i32 3
  %91 = load float, ptr %90, align 4, !tbaa !22
  %92 = fcmp ogt float %91, 0.000000e+00
  %93 = zext i1 %92 to i8
  store i8 %93, ptr %6, align 1, !tbaa !10
  %94 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.693, ptr noundef %6)
  br i1 %94, label %95, label %102

95:                                               ; preds = %88
  %96 = load i8, ptr %6, align 1, !tbaa !10, !range !12, !noundef !13
  %97 = trunc i8 %96 to i1
  %98 = zext i1 %97 to i64
  %99 = select i1 %97, float 1.000000e+00, float 0.000000e+00
  %100 = load ptr, ptr %3, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.ImGuiStyle, ptr %100, i32 0, i32 3
  store float %99, ptr %101, align 4, !tbaa !22
  br label %102

102:                                              ; preds = %95, %88
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #8
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #8
  %103 = load ptr, ptr %3, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.ImGuiStyle, ptr %103, i32 0, i32 12
  %105 = load float, ptr %104, align 4, !tbaa !23
  %106 = fcmp ogt float %105, 0.000000e+00
  %107 = zext i1 %106 to i8
  store i8 %107, ptr %7, align 1, !tbaa !10
  %108 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.694, ptr noundef %7)
  br i1 %108, label %109, label %116

109:                                              ; preds = %102
  %110 = load i8, ptr %7, align 1, !tbaa !10, !range !12, !noundef !13
  %111 = trunc i8 %110 to i1
  %112 = zext i1 %111 to i64
  %113 = select i1 %111, float 1.000000e+00, float 0.000000e+00
  %114 = load ptr, ptr %3, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.ImGuiStyle, ptr %114, i32 0, i32 12
  store float %113, ptr %115, align 4, !tbaa !23
  br label %116

116:                                              ; preds = %109, %102
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #8
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #8
  %117 = load ptr, ptr %3, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.ImGuiStyle, ptr %117, i32 0, i32 9
  %119 = load float, ptr %118, align 4, !tbaa !24
  %120 = fcmp ogt float %119, 0.000000e+00
  %121 = zext i1 %120 to i8
  store i8 %121, ptr %8, align 1, !tbaa !10
  %122 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.695, ptr noundef %8)
  br i1 %122, label %123, label %130

123:                                              ; preds = %116
  %124 = load i8, ptr %8, align 1, !tbaa !10, !range !12, !noundef !13
  %125 = trunc i8 %124 to i1
  %126 = zext i1 %125 to i64
  %127 = select i1 %125, float 1.000000e+00, float 0.000000e+00
  %128 = load ptr, ptr %3, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.ImGuiStyle, ptr %128, i32 0, i32 9
  store float %127, ptr %129, align 4, !tbaa !24
  br label %130

130:                                              ; preds = %123, %116
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %131 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.696, ptr noundef nonnull align 4 dereferenceable(8) %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  br i1 %131, label %132, label %135

132:                                              ; preds = %130
  %133 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style, ptr align 4 %133, i64 824, i1 false), !tbaa.struct !14
  %134 = load ptr, ptr %2, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %134, ptr align 4 @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style, i64 824, i1 false), !tbaa.struct !14
  br label %135

135:                                              ; preds = %132, %130
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  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)
  %136 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.697, ptr noundef nonnull align 4 dereferenceable(8) %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  br i1 %136, label %137, label %140

137:                                              ; preds = %135
  %138 = load ptr, ptr %2, align 8, !tbaa !5
  %139 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %139, ptr align 4 %138, i64 824, i1 false), !tbaa.struct !14
  br label %140

140:                                              ; preds = %137, %135
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef @.str.698)
  %141 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.699)
  br i1 %141, label %142, label %163

142:                                              ; preds = %140
  %143 = load ptr, ptr %3, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.ImGuiStyle, ptr %143, i32 0, i32 26
  %145 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.700, ptr noundef %144)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef @.str.701)
  %146 = load ptr, ptr %3, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.ImGuiStyle, ptr %146, i32 0, i32 27
  %148 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.702, ptr noundef %147)
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 1.000000e+02)
  %149 = load ptr, ptr %3, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.ImGuiStyle, ptr %149, i32 0, i32 28
  %151 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef @.str.703, ptr noundef %150, float noundef 0x3F947AE140000000, float noundef 0x3FB99999A0000000, float noundef 0x47EFFFFFE0000000, ptr noundef null, float noundef 2.000000e+00)
  %152 = load ptr, ptr %3, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.ImGuiStyle, ptr %152, i32 0, i32 28
  %154 = load float, ptr %153, align 4, !tbaa !25
  %155 = fcmp olt float %154, 0.000000e+00
  br i1 %155, label %156, label %159

156:                                              ; preds = %142
  %157 = load ptr, ptr %3, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.ImGuiStyle, ptr %157, i32 0, i32 28
  store float 0x3FB99999A0000000, ptr %158, align 4, !tbaa !25
  br label %159

159:                                              ; preds = %156, %142
  %160 = load ptr, ptr %3, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.ImGuiStyle, ptr %160, i32 0, i32 0
  %162 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef @.str.704, ptr noundef %161, float noundef 0x3F747AE140000000, float noundef 0x3FC99999A0000000, float noundef 1.000000e+00, ptr noundef @.str.705, float noundef 1.000000e+00)
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui7TreePopEv()
  br label %163

163:                                              ; preds = %159, %140
  %164 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.706)
  br i1 %164, label %165, label %229

165:                                              ; preds = %163
  %166 = load ptr, ptr %3, align 8, !tbaa !5
  %167 = getelementptr inbounds %struct.ImGuiStyle, ptr %166, i32 0, i32 1
  %168 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef @.str.707, ptr noundef %167, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %169 = load ptr, ptr %3, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.ImGuiStyle, ptr %169, i32 0, i32 8
  %171 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.708, ptr noundef %170, float noundef 0.000000e+00, float noundef 1.600000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %172 = load ptr, ptr %3, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.ImGuiStyle, ptr %172, i32 0, i32 10
  %174 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef @.str.709, ptr noundef %173, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %175 = load ptr, ptr %3, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.ImGuiStyle, ptr %175, i32 0, i32 13
  %177 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef @.str.710, ptr noundef %176, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %178 = load ptr, ptr %3, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.ImGuiStyle, ptr %178, i32 0, i32 14
  %180 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef @.str.711, ptr noundef %179, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %181 = load ptr, ptr %3, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.ImGuiStyle, ptr %181, i32 0, i32 15
  %183 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef @.str.712, ptr noundef %182, float noundef 0.000000e+00, float noundef 1.000000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %184 = load ptr, ptr %3, align 8, !tbaa !5
  %185 = getelementptr inbounds %struct.ImGuiStyle, ptr %184, i32 0, i32 16
  %186 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.713, ptr noundef %185, float noundef 0.000000e+00, float noundef 3.000000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %187 = load ptr, ptr %3, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.ImGuiStyle, ptr %187, i32 0, i32 18
  %189 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.714, ptr noundef %188, float noundef 1.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %190 = load ptr, ptr %3, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.ImGuiStyle, ptr %190, i32 0, i32 20
  %192 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.715, ptr noundef %191, float noundef 1.000000e+00, float noundef 2.000000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.716)
  %193 = load ptr, ptr %3, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.ImGuiStyle, ptr %193, i32 0, i32 3
  %195 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.717, ptr noundef %194, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.158, float noundef 1.000000e+00)
  %196 = load ptr, ptr %3, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.ImGuiStyle, ptr %196, i32 0, i32 7
  %198 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.718, ptr noundef %197, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.158, float noundef 1.000000e+00)
  %199 = load ptr, ptr %3, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiStyle, ptr %199, i32 0, i32 9
  %201 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.719, ptr noundef %200, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.158, float noundef 1.000000e+00)
  %202 = load ptr, ptr %3, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.ImGuiStyle, ptr %202, i32 0, i32 12
  %204 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.720, ptr noundef %203, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.158, float noundef 1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.721)
  %205 = load ptr, ptr %3, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.ImGuiStyle, ptr %205, i32 0, i32 2
  %207 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.722, ptr noundef %206, float noundef 0.000000e+00, float noundef 1.400000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %208 = load ptr, ptr %3, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.ImGuiStyle, ptr %208, i32 0, i32 6
  %210 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.723, ptr noundef %209, float noundef 0.000000e+00, float noundef 1.600000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %211 = load ptr, ptr %3, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.ImGuiStyle, ptr %211, i32 0, i32 11
  %213 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.692, ptr noundef %212, float noundef 0.000000e+00, float noundef 1.200000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %214 = load ptr, ptr %3, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImGuiStyle, ptr %214, i32 0, i32 19
  %216 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.724, ptr noundef %215, float noundef 0.000000e+00, float noundef 1.200000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  %217 = load ptr, ptr %3, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.ImGuiStyle, ptr %217, i32 0, i32 21
  %219 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.725, ptr noundef %218, float noundef 0.000000e+00, float noundef 1.200000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.726)
  %220 = load ptr, ptr %3, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.ImGuiStyle, ptr %220, i32 0, i32 5
  %222 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef @.str.727, ptr noundef %221, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.705, float noundef 1.000000e+00)
  %223 = load ptr, ptr %3, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.ImGuiStyle, ptr %223, i32 0, i32 22
  %225 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef @.str.728, ptr noundef %224, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.705, float noundef 1.000000e+00)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef @.str.729)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.730)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef @.str.731)
  %226 = load ptr, ptr %3, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.ImGuiStyle, ptr %226, i32 0, i32 24
  %228 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef @.str.732, ptr noundef %227, float noundef 0.000000e+00, float noundef 3.000000e+01, ptr noundef @.str.158, float noundef 1.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %229

229:                                              ; preds = %165, %163
  %230 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.733)
  br i1 %230, label %231, label %390

231:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %232 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.734, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  br i1 %232, label %233, label %289

233:                                              ; preds = %231
  %234 = load i32, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11output_dest, align 4, !tbaa !26
  %235 = icmp eq i32 %234, 0
  br i1 %235, label %236, label %237

236:                                              ; preds = %233
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  br label %238

237:                                              ; preds = %233
  call void @_ZN5ImGui8LogToTTYEi(i32 noundef -1)
  br label %238

238:                                              ; preds = %237, %236
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.735)
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  store i32 0, ptr %12, align 4, !tbaa !26
  br label %239

239:                                              ; preds = %285, %238
  %240 = load i32, ptr %12, align 4, !tbaa !26
  %241 = icmp slt i32 %240, 42
  br i1 %241, label %243, label %242

242:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %288

243:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  %244 = load ptr, ptr %3, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.ImGuiStyle, ptr %244, i32 0, i32 29
  %246 = load i32, ptr %12, align 4, !tbaa !26
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds [42 x %struct.ImVec4], ptr %245, i64 0, i64 %247
  store ptr %248, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %249 = load i32, ptr %12, align 4, !tbaa !26
  %250 = call noundef ptr @_ZN5ImGui17GetStyleColorNameEi(i32 noundef %249)
  store ptr %250, ptr %14, align 8, !tbaa !5
  %251 = load i8, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE20output_only_modified, align 1, !tbaa !10, !range !12, !noundef !13
  %252 = trunc i8 %251 to i1
  br i1 %252, label %253, label %262

253:                                              ; preds = %243
  %254 = load ptr, ptr %13, align 8, !tbaa !5
  %255 = load ptr, ptr %2, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.ImGuiStyle, ptr %255, i32 0, i32 29
  %257 = load i32, ptr %12, align 4, !tbaa !26
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds [42 x %struct.ImVec4], ptr %256, i64 0, i64 %258
  %260 = call i32 @memcmp(ptr noundef %254, ptr noundef %259, i64 noundef 16) #11
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %262, label %284

262:                                              ; preds = %253, %243
  %263 = load ptr, ptr %14, align 8, !tbaa !5
  %264 = load ptr, ptr %14, align 8, !tbaa !5
  %265 = call i64 @strlen(ptr noundef %264) #11
  %266 = trunc i64 %265 to i32
  %267 = sub nsw i32 23, %266
  %268 = load ptr, ptr %13, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.ImVec4, ptr %268, i32 0, i32 0
  %270 = load float, ptr %269, align 4, !tbaa !28
  %271 = fpext float %270 to double
  %272 = load ptr, ptr %13, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImVec4, ptr %272, i32 0, i32 1
  %274 = load float, ptr %273, align 4, !tbaa !30
  %275 = fpext float %274 to double
  %276 = load ptr, ptr %13, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct.ImVec4, ptr %276, i32 0, i32 2
  %278 = load float, ptr %277, align 4, !tbaa !31
  %279 = fpext float %278 to double
  %280 = load ptr, ptr %13, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.ImVec4, ptr %280, i32 0, i32 3
  %282 = load float, ptr %281, align 4, !tbaa !32
  %283 = fpext float %282 to double
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef @.str.736, ptr noundef %263, i32 noundef %267, ptr noundef @.str.357, double noundef %271, double noundef %275, double noundef %279, double noundef %283)
  br label %284

284:                                              ; preds = %262, %253
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  br label %285

285:                                              ; preds = %284
  %286 = load i32, ptr %12, align 4, !tbaa !26
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr %12, align 4, !tbaa !26
  br label %239, !llvm.loop !33

288:                                              ; preds = %242
  call void @_ZN5ImGui9LogFinishEv()
  br label %289

289:                                              ; preds = %288, %231
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 1.200000e+02)
  %290 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef @.str.737, ptr noundef @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11output_dest, ptr noundef @.str.738, i32 noundef -1)
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %291 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.739, ptr noundef @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE20output_only_modified)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.740)
  %292 = load atomic i8, ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter acquire, align 8
  %293 = icmp eq i8 %292, 0
  br i1 %293, label %294, label %300, !prof !9

294:                                              ; preds = %289
  %295 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter) #8
  %296 = icmp ne i32 %295, 0
  br i1 %296, label %297, label %300

297:                                              ; preds = %294
  invoke void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter, ptr noundef @.str.357)
          to label %298 unwind label %310

298:                                              ; preds = %297
  %299 = call i32 @__cxa_atexit(ptr @_ZN15ImGuiTextFilterD2Ev, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter, ptr @__dso_handle) #8
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter) #8
  br label %300

300:                                              ; preds = %298, %294, %289
  %301 = call noundef zeroext i1 @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter, ptr noundef @.str.741, float noundef 2.000000e+02)
  %302 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef @.str.742, ptr noundef @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags, i32 noundef 0)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %303 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef @.str.743, ptr noundef @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags, i32 noundef 131072)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %304 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef @.str.744, ptr noundef @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags, i32 noundef 262144)
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 0.000000e+00, float noundef 3.000000e+02)
  %305 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2bi(ptr noundef @.str.745, ptr noundef nonnull align 4 dereferenceable(8) %15, i1 noundef zeroext true, i32 noundef 8437760)
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @_ZN5ImGui13PushItemWidthEf(float noundef -1.600000e+02)
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  store i32 0, ptr %16, align 4, !tbaa !26
  br label %306

306:                                              ; preds = %386, %300
  %307 = load i32, ptr %16, align 4, !tbaa !26
  %308 = icmp slt i32 %307, 42
  br i1 %308, label %314, label %309

309:                                              ; preds = %306
  store i32 5, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %389

310:                                              ; preds = %297
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %4, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %5, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter) #8
  br label %756

314:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %315 = load i32, ptr %16, align 4, !tbaa !26
  %316 = call noundef ptr @_ZN5ImGui17GetStyleColorNameEi(i32 noundef %315)
  store ptr %316, ptr %18, align 8, !tbaa !5
  %317 = load ptr, ptr %18, align 8, !tbaa !5
  %318 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKcS1_(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter, ptr noundef %317, ptr noundef null)
  br i1 %318, label %320, label %319

319:                                              ; preds = %314
  store i32 7, ptr %17, align 4
  br label %383

320:                                              ; preds = %314
  %321 = load i32, ptr %16, align 4, !tbaa !26
  call void @_ZN5ImGui6PushIDEi(i32 noundef %321)
  %322 = load ptr, ptr %3, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.ImGuiStyle, ptr %322, i32 0, i32 29
  %324 = load i32, ptr %16, align 4, !tbaa !26
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds [42 x %struct.ImVec4], ptr %323, i64 0, i64 %325
  %327 = load i32, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags, align 4, !tbaa !26
  %328 = or i32 65536, %327
  %329 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef @.str.746, ptr noundef %326, i32 noundef %328)
  %330 = load ptr, ptr %3, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.ImGuiStyle, ptr %330, i32 0, i32 29
  %332 = load i32, ptr %16, align 4, !tbaa !26
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds [42 x %struct.ImVec4], ptr %331, i64 0, i64 %333
  %335 = load ptr, ptr %2, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.ImGuiStyle, ptr %335, i32 0, i32 29
  %337 = load i32, ptr %16, align 4, !tbaa !26
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds [42 x %struct.ImVec4], ptr %336, i64 0, i64 %338
  %340 = call i32 @memcmp(ptr noundef %334, ptr noundef %339, i64 noundef 16) #11
  %341 = icmp ne i32 %340, 0
  br i1 %341, label %342, label %377

342:                                              ; preds = %320
  %343 = load ptr, ptr %3, align 8, !tbaa !5
  %344 = getelementptr inbounds %struct.ImGuiStyle, ptr %343, i32 0, i32 14
  %345 = getelementptr inbounds %struct.ImVec2, ptr %344, i32 0, i32 0
  %346 = load float, ptr %345, align 4, !tbaa !35
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %346)
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %347 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.747, ptr noundef nonnull align 4 dereferenceable(8) %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br i1 %347, label %348, label %359

348:                                              ; preds = %342
  %349 = load ptr, ptr %3, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.ImGuiStyle, ptr %349, i32 0, i32 29
  %351 = load i32, ptr %16, align 4, !tbaa !26
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds [42 x %struct.ImVec4], ptr %350, i64 0, i64 %352
  %354 = load ptr, ptr %2, align 8, !tbaa !5
  %355 = getelementptr inbounds %struct.ImGuiStyle, ptr %354, i32 0, i32 29
  %356 = load i32, ptr %16, align 4, !tbaa !26
  %357 = sext i32 %356 to i64
  %358 = getelementptr inbounds [42 x %struct.ImVec4], ptr %355, i64 0, i64 %357
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %358, ptr align 4 %353, i64 16, i1 false), !tbaa.struct !36
  br label %359

359:                                              ; preds = %348, %342
  %360 = load ptr, ptr %3, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.ImGuiStyle, ptr %360, i32 0, i32 14
  %362 = getelementptr inbounds %struct.ImVec2, ptr %361, i32 0, i32 0
  %363 = load float, ptr %362, align 4, !tbaa !35
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %363)
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %364 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.748, ptr noundef nonnull align 4 dereferenceable(8) %20)
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br i1 %364, label %365, label %376

365:                                              ; preds = %359
  %366 = load ptr, ptr %2, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.ImGuiStyle, ptr %366, i32 0, i32 29
  %368 = load i32, ptr %16, align 4, !tbaa !26
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds [42 x %struct.ImVec4], ptr %367, i64 0, i64 %369
  %371 = load ptr, ptr %3, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.ImGuiStyle, ptr %371, i32 0, i32 29
  %373 = load i32, ptr %16, align 4, !tbaa !26
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds [42 x %struct.ImVec4], ptr %372, i64 0, i64 %374
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %375, ptr align 4 %370, i64 16, i1 false), !tbaa.struct !36
  br label %376

376:                                              ; preds = %365, %359
  br label %377

377:                                              ; preds = %376, %320
  %378 = load ptr, ptr %3, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.ImGuiStyle, ptr %378, i32 0, i32 14
  %380 = getelementptr inbounds %struct.ImVec2, ptr %379, i32 0, i32 0
  %381 = load float, ptr %380, align 4, !tbaa !35
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %381)
  %382 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef %382, ptr noundef null)
  call void @_ZN5ImGui5PopIDEv()
  store i32 0, ptr %17, align 4
  br label %383

383:                                              ; preds = %377, %319
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  %384 = load i32, ptr %17, align 4
  switch i32 %384, label %762 [
    i32 0, label %385
    i32 7, label %386
  ]

385:                                              ; preds = %383
  br label %386

386:                                              ; preds = %385, %383
  %387 = load i32, ptr %16, align 4, !tbaa !26
  %388 = add nsw i32 %387, 1
  store i32 %388, ptr %16, align 4, !tbaa !26
  br label %306, !llvm.loop !37

389:                                              ; preds = %309
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui7TreePopEv()
  br label %390

390:                                              ; preds = %389, %229
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #8
  %391 = call noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv()
  %392 = getelementptr inbounds %struct.ImGuiIO, ptr %391, i32 0, i32 14
  %393 = load ptr, ptr %392, align 8, !tbaa !38
  %394 = getelementptr inbounds %struct.ImFontAtlas, ptr %393, i32 0, i32 11
  %395 = getelementptr inbounds %class.ImVector.6, ptr %394, i32 0, i32 0
  %396 = load i32, ptr %395, align 8, !tbaa !40
  %397 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.749, ptr noundef @.str.750, i32 noundef %396)
  %398 = zext i1 %397 to i8
  store i8 %398, ptr %21, align 1, !tbaa !10
  %399 = load i8, ptr %21, align 1, !tbaa !10, !range !12, !noundef !13
  %400 = trunc i8 %399 to i1
  br i1 %400, label %401, label %755

401:                                              ; preds = %390
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %402 = call noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv()
  %403 = getelementptr inbounds %struct.ImGuiIO, ptr %402, i32 0, i32 14
  %404 = load ptr, ptr %403, align 8, !tbaa !38
  store ptr %404, ptr %22, align 8, !tbaa !5
  %405 = load ptr, ptr %22, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.ImFontAtlas, ptr %405, i32 0, i32 7
  %407 = load i32, ptr %406, align 8, !tbaa !45
  %408 = load ptr, ptr %22, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.ImFontAtlas, ptr %408, i32 0, i32 8
  %410 = load i32, ptr %409, align 4, !tbaa !46
  %411 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.751, ptr noundef @.str.752, i32 noundef %407, i32 noundef %410)
  br i1 %411, label %412, label %434

412:                                              ; preds = %401
  %413 = load ptr, ptr %22, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.ImFontAtlas, ptr %413, i32 0, i32 2
  %415 = load ptr, ptr %414, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %416 = load ptr, ptr %22, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.ImFontAtlas, ptr %416, i32 0, i32 7
  %418 = load i32, ptr %417, align 8, !tbaa !45
  %419 = sitofp i32 %418 to float
  %420 = load ptr, ptr %22, align 8, !tbaa !5
  %421 = getelementptr inbounds %struct.ImFontAtlas, ptr %420, i32 0, i32 8
  %422 = load i32, ptr %421, align 4, !tbaa !46
  %423 = sitofp i32 %422 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef %419, float noundef %423)
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #8
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %27, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 255)
  %424 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %425 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %26, i32 0, i32 0
  %426 = extractvalue { <2 x float>, <2 x float> } %424, 0
  store <2 x float> %426, ptr %425, align 4
  %427 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %26, i32 0, i32 1
  %428 = extractvalue { <2 x float>, <2 x float> } %424, 1
  store <2 x float> %428, ptr %427, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #8
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %29, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 128)
  %429 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %29)
  %430 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %28, i32 0, i32 0
  %431 = extractvalue { <2 x float>, <2 x float> } %429, 0
  store <2 x float> %431, ptr %430, align 4
  %432 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %28, i32 0, i32 1
  %433 = extractvalue { <2 x float>, <2 x float> } %429, 1
  store <2 x float> %433, ptr %432, align 4
  call void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef %415, ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(16) %26, ptr noundef nonnull align 4 dereferenceable(16) %28)
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @_ZN5ImGui7TreePopEv()
  br label %434

434:                                              ; preds = %412, %401
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 1.000000e+02)
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  store i32 0, ptr %30, align 4, !tbaa !26
  br label %435

435:                                              ; preds = %746, %434
  %436 = load i32, ptr %30, align 4, !tbaa !26
  %437 = load ptr, ptr %22, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.ImFontAtlas, ptr %437, i32 0, i32 11
  %439 = getelementptr inbounds %class.ImVector.6, ptr %438, i32 0, i32 0
  %440 = load i32, ptr %439, align 8, !tbaa !40
  %441 = icmp slt i32 %436, %440
  br i1 %441, label %443, label %442

442:                                              ; preds = %435
  store i32 8, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %749

443:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %444 = load ptr, ptr %22, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.ImFontAtlas, ptr %444, i32 0, i32 11
  %446 = load i32, ptr %30, align 4, !tbaa !26
  %447 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEi(ptr noundef nonnull align 8 dereferenceable(16) %445, i32 noundef %446)
  %448 = load ptr, ptr %447, align 8, !tbaa !5
  store ptr %448, ptr %31, align 8, !tbaa !5
  %449 = load ptr, ptr %31, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %449)
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  %450 = load ptr, ptr %31, align 8, !tbaa !5
  %451 = load i32, ptr %30, align 4, !tbaa !26
  %452 = load ptr, ptr %31, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.ImFont, ptr %452, i32 0, i32 10
  %454 = load ptr, ptr %453, align 8, !tbaa !48
  %455 = icmp ne ptr %454, null
  br i1 %455, label %456, label %463

456:                                              ; preds = %443
  %457 = load ptr, ptr %31, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.ImFont, ptr %457, i32 0, i32 10
  %459 = load ptr, ptr %458, align 8, !tbaa !48
  %460 = getelementptr inbounds %struct.ImFontConfig, ptr %459, i64 0
  %461 = getelementptr inbounds %struct.ImFontConfig, ptr %460, i32 0, i32 16
  %462 = getelementptr inbounds [40 x i8], ptr %461, i64 0, i64 0
  br label %464

463:                                              ; preds = %443
  br label %464

464:                                              ; preds = %463, %456
  %465 = phi ptr [ %462, %456 ], [ @.str.357, %463 ]
  %466 = load ptr, ptr %31, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.ImFont, ptr %466, i32 0, i32 0
  %468 = load float, ptr %467, align 8, !tbaa !54
  %469 = fpext float %468 to double
  %470 = load ptr, ptr %31, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.ImFont, ptr %470, i32 0, i32 3
  %472 = getelementptr inbounds %class.ImVector.10, ptr %471, i32 0, i32 0
  %473 = load i32, ptr %472, align 8, !tbaa !55
  %474 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef %450, ptr noundef @.str.753, i32 noundef %451, ptr noundef %465, double noundef %469, i32 noundef %473)
  %475 = zext i1 %474 to i8
  store i8 %475, ptr %32, align 1, !tbaa !10
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %476 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.754)
  br i1 %476, label %477, label %481

477:                                              ; preds = %464
  %478 = load ptr, ptr %31, align 8, !tbaa !5
  %479 = call noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv()
  %480 = getelementptr inbounds %struct.ImGuiIO, ptr %479, i32 0, i32 17
  store ptr %478, ptr %480, align 8, !tbaa !56
  br label %481

481:                                              ; preds = %477, %464
  %482 = load i8, ptr %32, align 1, !tbaa !10, !range !12, !noundef !13
  %483 = trunc i8 %482 to i1
  br i1 %483, label %484, label %745

484:                                              ; preds = %481
  %485 = load ptr, ptr %31, align 8, !tbaa !5
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef %485)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.755)
  call void @_ZN5ImGui7PopFontEv()
  %486 = load ptr, ptr %31, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.ImFont, ptr %486, i32 0, i32 1
  %488 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef @.str.756, ptr noundef %487, float noundef 0x3F747AE140000000, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef @.str.757, float noundef 1.000000e+00)
  %489 = load ptr, ptr %31, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.ImFont, ptr %489, i32 0, i32 2
  %491 = getelementptr inbounds %struct.ImVec2, ptr %490, i32 0, i32 1
  %492 = call noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef @.str.758, ptr noundef %491, float noundef 1.000000e+00, float noundef 1.000000e+00, i32 noundef 0, i32 noundef 0)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef @.str.759)
  %493 = load ptr, ptr %31, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.ImFont, ptr %493, i32 0, i32 12
  %495 = load float, ptr %494, align 8, !tbaa !57
  %496 = fpext float %495 to double
  %497 = load ptr, ptr %31, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.ImFont, ptr %497, i32 0, i32 13
  %499 = load float, ptr %498, align 4, !tbaa !58
  %500 = fpext float %499 to double
  %501 = load ptr, ptr %31, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.ImFont, ptr %501, i32 0, i32 12
  %503 = load float, ptr %502, align 8, !tbaa !57
  %504 = load ptr, ptr %31, align 8, !tbaa !5
  %505 = getelementptr inbounds %struct.ImFont, ptr %504, i32 0, i32 13
  %506 = load float, ptr %505, align 4, !tbaa !58
  %507 = fsub float %503, %506
  %508 = fpext float %507 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.760, double noundef %496, double noundef %500, double noundef %508)
  %509 = load ptr, ptr %31, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.ImFont, ptr %509, i32 0, i32 8
  %511 = load i16, ptr %510, align 4, !tbaa !59
  %512 = zext i16 %511 to i32
  %513 = load ptr, ptr %31, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.ImFont, ptr %513, i32 0, i32 8
  %515 = load i16, ptr %514, align 4, !tbaa !59
  %516 = zext i16 %515 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.761, i32 noundef %512, i32 noundef %516)
  %517 = load ptr, ptr %31, align 8, !tbaa !5
  %518 = getelementptr inbounds %struct.ImFont, ptr %517, i32 0, i32 15
  %519 = load i32, ptr %518, align 4, !tbaa !60
  %520 = load ptr, ptr %31, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.ImFont, ptr %520, i32 0, i32 15
  %522 = load i32, ptr %521, align 4, !tbaa !60
  %523 = sitofp i32 %522 to float
  %524 = call float @sqrtf(float noundef %523) #8
  %525 = fptosi float %524 to i32
  %526 = load ptr, ptr %31, align 8, !tbaa !5
  %527 = getelementptr inbounds %struct.ImFont, ptr %526, i32 0, i32 15
  %528 = load i32, ptr %527, align 4, !tbaa !60
  %529 = sitofp i32 %528 to float
  %530 = call float @sqrtf(float noundef %529) #8
  %531 = fptosi float %530 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.762, i32 noundef %519, i32 noundef %525, i32 noundef %531)
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store i32 0, ptr %33, align 4, !tbaa !26
  br label %532

532:                                              ; preds = %566, %484
  %533 = load i32, ptr %33, align 4, !tbaa !26
  %534 = load ptr, ptr %31, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct.ImFont, ptr %534, i32 0, i32 9
  %536 = load i16, ptr %535, align 2, !tbaa !61
  %537 = sext i16 %536 to i32
  %538 = icmp slt i32 %533, %537
  br i1 %538, label %540, label %539

539:                                              ; preds = %532
  store i32 11, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %569

540:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %541 = load ptr, ptr %31, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.ImFont, ptr %541, i32 0, i32 10
  %543 = load ptr, ptr %542, align 8, !tbaa !48
  %544 = load i32, ptr %33, align 4, !tbaa !26
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds %struct.ImFontConfig, ptr %543, i64 %545
  store ptr %546, ptr %34, align 8, !tbaa !5
  %547 = load ptr, ptr %34, align 8, !tbaa !5
  %548 = icmp ne ptr %547, null
  br i1 %548, label %549, label %565

549:                                              ; preds = %540
  %550 = load i32, ptr %33, align 4, !tbaa !26
  %551 = load ptr, ptr %34, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.ImFontConfig, ptr %551, i32 0, i32 16
  %553 = getelementptr inbounds [40 x i8], ptr %552, i64 0, i64 0
  %554 = load ptr, ptr %34, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.ImFontConfig, ptr %554, i32 0, i32 5
  %556 = load i32, ptr %555, align 8, !tbaa !62
  %557 = load ptr, ptr %34, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct.ImFontConfig, ptr %557, i32 0, i32 6
  %559 = load i32, ptr %558, align 4, !tbaa !64
  %560 = load ptr, ptr %34, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.ImFontConfig, ptr %560, i32 0, i32 7
  %562 = load i8, ptr %561, align 8, !tbaa !65, !range !12, !noundef !13
  %563 = trunc i8 %562 to i1
  %564 = zext i1 %563 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.763, i32 noundef %550, ptr noundef %553, i32 noundef %556, i32 noundef %559, i32 noundef %564)
  br label %565

565:                                              ; preds = %549, %540
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %566

566:                                              ; preds = %565
  %567 = load i32, ptr %33, align 4, !tbaa !26
  %568 = add nsw i32 %567, 1
  store i32 %568, ptr %33, align 4, !tbaa !26
  br label %532, !llvm.loop !66

569:                                              ; preds = %539
  %570 = load ptr, ptr %31, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.ImFont, ptr %570, i32 0, i32 3
  %572 = getelementptr inbounds %class.ImVector.10, ptr %571, i32 0, i32 0
  %573 = load i32, ptr %572, align 8, !tbaa !55
  %574 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.764, ptr noundef @.str.765, i32 noundef %573)
  br i1 %574, label %575, label %744

575:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  store i32 0, ptr %35, align 4, !tbaa !26
  br label %576

576:                                              ; preds = %740, %575
  %577 = load i32, ptr %35, align 4, !tbaa !26
  %578 = icmp slt i32 %577, 65536
  br i1 %578, label %580, label %579

579:                                              ; preds = %576
  store i32 14, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %743

580:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  store i32 0, ptr %36, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  store i32 0, ptr %37, align 4, !tbaa !26
  br label %581

581:                                              ; preds = %597, %580
  %582 = load i32, ptr %37, align 4, !tbaa !26
  %583 = icmp slt i32 %582, 256
  br i1 %583, label %585, label %584

584:                                              ; preds = %581
  store i32 17, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %600

585:                                              ; preds = %581
  %586 = load ptr, ptr %31, align 8, !tbaa !5
  %587 = load i32, ptr %35, align 4, !tbaa !26
  %588 = load i32, ptr %37, align 4, !tbaa !26
  %589 = add nsw i32 %587, %588
  %590 = trunc i32 %589 to i16
  %591 = call noundef ptr @_ZNK6ImFont19FindGlyphNoFallbackEt(ptr noundef nonnull align 8 dereferenceable(112) %586, i16 noundef zeroext %590)
  %592 = icmp ne ptr %591, null
  %593 = zext i1 %592 to i64
  %594 = select i1 %592, i32 1, i32 0
  %595 = load i32, ptr %36, align 4, !tbaa !26
  %596 = add nsw i32 %595, %594
  store i32 %596, ptr %36, align 4, !tbaa !26
  br label %597

597:                                              ; preds = %585
  %598 = load i32, ptr %37, align 4, !tbaa !26
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr %37, align 4, !tbaa !26
  br label %581, !llvm.loop !67

600:                                              ; preds = %584
  %601 = load i32, ptr %36, align 4, !tbaa !26
  %602 = icmp sgt i32 %601, 0
  br i1 %602, label %603, label %739

603:                                              ; preds = %600
  %604 = load i32, ptr %35, align 4, !tbaa !26
  %605 = sext i32 %604 to i64
  %606 = inttoptr i64 %605 to ptr
  %607 = load i32, ptr %35, align 4, !tbaa !26
  %608 = load i32, ptr %35, align 4, !tbaa !26
  %609 = add nsw i32 %608, 255
  %610 = load i32, ptr %36, align 4, !tbaa !26
  %611 = load i32, ptr %36, align 4, !tbaa !26
  %612 = icmp sgt i32 %611, 1
  %613 = zext i1 %612 to i64
  %614 = select i1 %612, ptr @.str.767, ptr @.str.768
  %615 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef %606, ptr noundef @.str.766, i32 noundef %607, i32 noundef %609, i32 noundef %610, ptr noundef %614)
  br i1 %615, label %616, label %739

616:                                              ; preds = %603
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %617 = load ptr, ptr %31, align 8, !tbaa !5
  %618 = getelementptr inbounds %struct.ImFont, ptr %617, i32 0, i32 0
  %619 = load float, ptr %618, align 8, !tbaa !54
  %620 = fmul float %619, 1.000000e+00
  store float %620, ptr %38, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %621 = load ptr, ptr %3, align 8, !tbaa !5
  %622 = getelementptr inbounds %struct.ImGuiStyle, ptr %621, i32 0, i32 13
  %623 = getelementptr inbounds %struct.ImVec2, ptr %622, i32 0, i32 1
  %624 = load float, ptr %623, align 4, !tbaa !68
  store float %624, ptr %39, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %625 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %625, ptr %40, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %626 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  store ptr %626, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  store i32 0, ptr %42, align 4, !tbaa !26
  br label %627

627:                                              ; preds = %727, %616
  %628 = load i32, ptr %42, align 4, !tbaa !26
  %629 = icmp slt i32 %628, 256
  br i1 %629, label %631, label %630

630:                                              ; preds = %627
  store i32 20, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %730

631:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %632 = getelementptr inbounds %struct.ImVec2, ptr %40, i32 0, i32 0
  %633 = load float, ptr %632, align 4, !tbaa !69
  %634 = load i32, ptr %42, align 4, !tbaa !26
  %635 = srem i32 %634, 16
  %636 = sitofp i32 %635 to float
  %637 = load float, ptr %38, align 4, !tbaa !15
  %638 = load float, ptr %39, align 4, !tbaa !15
  %639 = fadd float %637, %638
  %640 = call float @llvm.fmuladd.f32(float %636, float %639, float %633)
  %641 = getelementptr inbounds %struct.ImVec2, ptr %40, i32 0, i32 1
  %642 = load float, ptr %641, align 4, !tbaa !70
  %643 = load i32, ptr %42, align 4, !tbaa !26
  %644 = sdiv i32 %643, 16
  %645 = sitofp i32 %644 to float
  %646 = load float, ptr %38, align 4, !tbaa !15
  %647 = load float, ptr %39, align 4, !tbaa !15
  %648 = fadd float %646, %647
  %649 = call float @llvm.fmuladd.f32(float %645, float %648, float %642)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef %640, float noundef %649)
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %650 = getelementptr inbounds %struct.ImVec2, ptr %43, i32 0, i32 0
  %651 = load float, ptr %650, align 4, !tbaa !69
  %652 = load float, ptr %38, align 4, !tbaa !15
  %653 = fadd float %651, %652
  %654 = getelementptr inbounds %struct.ImVec2, ptr %43, i32 0, i32 1
  %655 = load float, ptr %654, align 4, !tbaa !70
  %656 = load float, ptr %38, align 4, !tbaa !15
  %657 = fadd float %655, %656
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %653, float noundef %657)
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %658 = load ptr, ptr %31, align 8, !tbaa !5
  %659 = load i32, ptr %35, align 4, !tbaa !26
  %660 = load i32, ptr %42, align 4, !tbaa !26
  %661 = add nsw i32 %659, %660
  %662 = trunc i32 %661 to i16
  %663 = call noundef ptr @_ZNK6ImFont19FindGlyphNoFallbackEt(ptr noundef nonnull align 8 dereferenceable(112) %658, i16 noundef zeroext %662)
  store ptr %663, ptr %45, align 8, !tbaa !5
  %664 = load ptr, ptr %41, align 8, !tbaa !5
  %665 = load ptr, ptr %45, align 8, !tbaa !5
  %666 = icmp ne ptr %665, null
  %667 = zext i1 %666 to i64
  %668 = select i1 %666, i32 1694498815, i32 855638015
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(168) %664, ptr noundef nonnull align 4 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(8) %44, i32 noundef %668, float noundef 0.000000e+00, i32 noundef 15, float noundef 1.000000e+00)
  %669 = load ptr, ptr %45, align 8, !tbaa !5
  %670 = icmp ne ptr %669, null
  br i1 %670, label %671, label %681

671:                                              ; preds = %631
  %672 = load ptr, ptr %31, align 8, !tbaa !5
  %673 = load ptr, ptr %41, align 8, !tbaa !5
  %674 = load float, ptr %38, align 4, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %43, i64 8, i1 false), !tbaa.struct !71
  %675 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  %676 = load i32, ptr %35, align 4, !tbaa !26
  %677 = load i32, ptr %42, align 4, !tbaa !26
  %678 = add nsw i32 %676, %677
  %679 = trunc i32 %678 to i16
  %680 = load <2 x float>, ptr %46, align 4
  call void @_ZNK6ImFont10RenderCharEP10ImDrawListf6ImVec2jt(ptr noundef nonnull align 8 dereferenceable(112) %672, ptr noundef %673, float noundef %674, <2 x float> %680, i32 noundef %675, i16 noundef zeroext %679)
  br label %681

681:                                              ; preds = %671, %631
  %682 = load ptr, ptr %45, align 8, !tbaa !5
  %683 = icmp ne ptr %682, null
  br i1 %683, label %684, label %726

684:                                              ; preds = %681
  %685 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(8) %44, i1 noundef zeroext true)
  br i1 %685, label %686, label %726

686:                                              ; preds = %684
  call void @_ZN5ImGui12BeginTooltipEv()
  %687 = load i32, ptr %35, align 4, !tbaa !26
  %688 = load i32, ptr %42, align 4, !tbaa !26
  %689 = add nsw i32 %687, %688
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.769, i32 noundef %689)
  call void @_ZN5ImGui9SeparatorEv()
  %690 = load ptr, ptr %45, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.ImFontGlyph, ptr %690, i32 0, i32 1
  %692 = load float, ptr %691, align 4, !tbaa !72
  %693 = fpext float %692 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.770, double noundef %693)
  %694 = load ptr, ptr %45, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImFontGlyph, ptr %694, i32 0, i32 2
  %696 = load float, ptr %695, align 4, !tbaa !74
  %697 = fpext float %696 to double
  %698 = load ptr, ptr %45, align 8, !tbaa !5
  %699 = getelementptr inbounds %struct.ImFontGlyph, ptr %698, i32 0, i32 3
  %700 = load float, ptr %699, align 4, !tbaa !75
  %701 = fpext float %700 to double
  %702 = load ptr, ptr %45, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.ImFontGlyph, ptr %702, i32 0, i32 4
  %704 = load float, ptr %703, align 4, !tbaa !76
  %705 = fpext float %704 to double
  %706 = load ptr, ptr %45, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.ImFontGlyph, ptr %706, i32 0, i32 5
  %708 = load float, ptr %707, align 4, !tbaa !77
  %709 = fpext float %708 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.771, double noundef %697, double noundef %701, double noundef %705, double noundef %709)
  %710 = load ptr, ptr %45, align 8, !tbaa !5
  %711 = getelementptr inbounds %struct.ImFontGlyph, ptr %710, i32 0, i32 6
  %712 = load float, ptr %711, align 4, !tbaa !78
  %713 = fpext float %712 to double
  %714 = load ptr, ptr %45, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.ImFontGlyph, ptr %714, i32 0, i32 7
  %716 = load float, ptr %715, align 4, !tbaa !79
  %717 = fpext float %716 to double
  %718 = load ptr, ptr %45, align 8, !tbaa !5
  %719 = getelementptr inbounds %struct.ImFontGlyph, ptr %718, i32 0, i32 8
  %720 = load float, ptr %719, align 4, !tbaa !80
  %721 = fpext float %720 to double
  %722 = load ptr, ptr %45, align 8, !tbaa !5
  %723 = getelementptr inbounds %struct.ImFontGlyph, ptr %722, i32 0, i32 9
  %724 = load float, ptr %723, align 4, !tbaa !81
  %725 = fpext float %724 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.772, double noundef %713, double noundef %717, double noundef %721, double noundef %725)
  call void @_ZN5ImGui10EndTooltipEv()
  br label %726

726:                                              ; preds = %686, %684, %681
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %727

727:                                              ; preds = %726
  %728 = load i32, ptr %42, align 4, !tbaa !26
  %729 = add nsw i32 %728, 1
  store i32 %729, ptr %42, align 4, !tbaa !26
  br label %627, !llvm.loop !82

730:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %731 = load float, ptr %38, align 4, !tbaa !15
  %732 = load float, ptr %39, align 4, !tbaa !15
  %733 = fadd float %731, %732
  %734 = fmul float %733, 1.600000e+01
  %735 = load float, ptr %38, align 4, !tbaa !15
  %736 = load float, ptr %39, align 4, !tbaa !15
  %737 = fadd float %735, %736
  %738 = fmul float %737, 1.600000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %47, float noundef %734, float noundef %738)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %47)
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %739

739:                                              ; preds = %730, %603, %600
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %740

740:                                              ; preds = %739
  %741 = load i32, ptr %35, align 4, !tbaa !26
  %742 = add nsw i32 %741, 256
  store i32 %742, ptr %35, align 4, !tbaa !26
  br label %576, !llvm.loop !83

743:                                              ; preds = %579
  call void @_ZN5ImGui7TreePopEv()
  br label %744

744:                                              ; preds = %743, %569
  call void @_ZN5ImGui7TreePopEv()
  br label %745

745:                                              ; preds = %744, %481
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %746

746:                                              ; preds = %745
  %747 = load i32, ptr %30, align 4, !tbaa !26
  %748 = add nsw i32 %747, 1
  store i32 %748, ptr %30, align 4, !tbaa !26
  br label %435, !llvm.loop !84

749:                                              ; preds = %442
  %750 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef @.str.773, ptr noundef @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE12window_scale, float noundef 0x3F747AE140000000, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef @.str.757, float noundef 1.000000e+00)
  %751 = call noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv()
  %752 = getelementptr inbounds %struct.ImGuiIO, ptr %751, i32 0, i32 15
  %753 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef @.str.774, ptr noundef %752, float noundef 0x3F747AE140000000, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef @.str.757, float noundef 1.000000e+00)
  call void @_ZN5ImGui12PopItemWidthEv()
  %754 = load float, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE12window_scale, align 4, !tbaa !15
  call void @_ZN5ImGui18SetWindowFontScaleEf(float noundef %754)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %755

755:                                              ; preds = %749, %390
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #8
  ret void

756:                                              ; preds = %310, %64
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #8
  br label %757

757:                                              ; preds = %756
  %758 = load ptr, ptr %4, align 8
  %759 = load i32, ptr %5, align 4
  %760 = insertvalue { ptr, i32 } poison, ptr %758, 0
  %761 = insertvalue { ptr, i32 } %760, i32 %759, 1
  resume { ptr, i32 } %761

762:                                              ; preds = %383
  unreachable
}

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

declare void @_ZN5ImGui9SeparatorEv() #0

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

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

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

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) #0

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

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

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

declare void @_ZN5ImGui7TreePopEv() #0

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

declare noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef, ptr noundef, i32 noundef) #0

declare void @_ZN5ImGui6PushIDEi(i32 noundef) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16)) #4 align 2

declare void @_ZN5ImGui5PopIDEv() #0

declare noundef nonnull align 4 dereferenceable(824) ptr @_ZN5ImGui8GetStyleEv() #0

declare void @_ZN5ImGui12BeginTooltipEv() #0

declare void @_ZN5ImGui10EndTooltipEv() #0

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #5

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

declare noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, float noundef, ptr noundef, float noundef) #0

declare noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) #0

declare noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef, ptr noundef, i32 noundef) #0

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef, ptr noundef, ...) #0

declare noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef) #0

declare <2 x float> @_ZN5ImGui18GetCursorScreenPosEv() #0

declare noundef ptr @_ZN5ImGui17GetWindowDrawListEv() #0

declare void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef, float noundef) #0

declare void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #0

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #0

declare void @_ZN5ImGui12PopItemWidthEv() #0

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nounwind
declare void @__cxa_guard_abort(ptr) #8

declare noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) #0

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

declare void @_ZN5ImGui8EndChildEv() #0

declare noundef float @_ZN5ImGui14GetWindowWidthEv() #0

declare void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) #0

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, ptr noundef) #0

declare void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef) unnamed_addr #0

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

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

declare noundef zeroext i1 @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef, float noundef) #0

declare noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKcS1_(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef, ptr noundef) #0

declare noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef, float noundef) #0

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

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

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

declare void @_ZN10ImGuiStyleC1Ev(ptr noundef nonnull align 4 dereferenceable(824)) unnamed_addr #0

declare void @_ZN5ImGui14LogToClipboardEi(i32 noundef) #0

declare void @_ZN5ImGui8LogToTTYEi(i32 noundef) #0

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

declare noundef ptr @_ZN5ImGui17GetStyleColorNameEi(i32 noundef) #0

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #9

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #9

declare void @_ZN5ImGui9LogFinishEv() #0

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef, ptr noundef, ...) #0

declare void @_ZN5ImGui6PushIDEPKv(ptr noundef) #0

declare void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef) #0

declare void @_ZN5ImGui7PopFontEv() #0

declare noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef, ptr noundef, float noundef, float noundef, i32 noundef, i32 noundef) #0

; Function Attrs: nounwind
declare float @sqrtf(float noundef) #10

declare noundef ptr @_ZNK6ImFont19FindGlyphNoFallbackEt(ptr noundef nonnull align 8 dereferenceable(112), i16 noundef zeroext) #0

declare void @_ZNK6ImFont10RenderCharEP10ImDrawListf6ImVec2jt(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef, float noundef, <2 x float>, i32 noundef, i16 noundef zeroext) #0

declare noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) #0

declare void @_ZN5ImGui18SetWindowFontScaleEf(float noundef) #0

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!"branch_weights", i32 1, i32 1048575}
!10 = !{!11, !11, i64 0}
!11 = !{!"bool", !7, i64 0}
!12 = !{i8 0, i8 2}
!13 = !{}
!14 = !{i64 0, i64 4, !15, i64 4, i64 4, !15, i64 8, i64 4, !15, i64 12, i64 4, !15, i64 16, i64 4, !15, i64 20, i64 4, !15, i64 24, i64 4, !15, i64 28, i64 4, !15, i64 32, i64 4, !15, i64 36, i64 4, !15, i64 40, i64 4, !15, i64 44, i64 4, !15, i64 48, i64 4, !15, i64 52, i64 4, !15, i64 56, i64 4, !15, i64 60, i64 4, !15, i64 64, i64 4, !15, i64 68, i64 4, !15, i64 72, i64 4, !15, i64 76, i64 4, !15, i64 80, i64 4, !15, i64 84, i64 4, !15, i64 88, i64 4, !15, i64 92, i64 4, !15, i64 96, i64 4, !15, i64 100, i64 4, !15, i64 104, i64 4, !15, i64 108, i64 4, !15, i64 112, i64 4, !15, i64 116, i64 4, !15, i64 120, i64 4, !15, i64 124, i64 4, !15, i64 128, i64 4, !15, i64 132, i64 4, !15, i64 136, i64 4, !15, i64 140, i64 4, !15, i64 144, i64 1, !10, i64 145, i64 1, !10, i64 148, i64 4, !15, i64 152, i64 672, !17}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!7, !7, i64 0}
!18 = !{!19, !16, i64 60}
!19 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !20, i64 4, !16, i64 12, !16, i64 16, !20, i64 20, !20, i64 28, !16, i64 36, !16, i64 40, !16, i64 44, !16, i64 48, !20, i64 52, !16, i64 60, !16, i64 64, !20, i64 68, !20, i64 76, !20, i64 84, !16, i64 92, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !20, i64 116, !20, i64 124, !20, i64 132, !16, i64 140, !11, i64 144, !11, i64 145, !16, i64 148, !7, i64 152}
!20 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!21 = !{!19, !16, i64 112}
!22 = !{!19, !16, i64 16}
!23 = !{!19, !16, i64 64}
!24 = !{!19, !16, i64 48}
!25 = !{!19, !16, i64 148}
!26 = !{!27, !27, i64 0}
!27 = !{!"int", !7, i64 0}
!28 = !{!29, !16, i64 0}
!29 = !{!"_ZTS6ImVec4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!30 = !{!29, !16, i64 4}
!31 = !{!29, !16, i64 8}
!32 = !{!29, !16, i64 12}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = !{!19, !16, i64 76}
!36 = !{i64 0, i64 4, !15, i64 4, i64 4, !15, i64 8, i64 4, !15, i64 12, i64 4, !15}
!37 = distinct !{!37, !34}
!38 = !{!39, !6, i64 152}
!39 = !{!"_ZTS7ImGuiIO", !27, i64 0, !27, i64 4, !20, i64 8, !16, i64 16, !16, i64 20, !6, i64 24, !6, i64 32, !16, i64 40, !16, i64 44, !16, i64 48, !7, i64 52, !16, i64 136, !16, i64 140, !6, i64 144, !6, i64 152, !16, i64 160, !11, i64 164, !6, i64 168, !20, i64 176, !20, i64 184, !20, i64 192, !11, i64 200, !11, i64 201, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !20, i64 256, !7, i64 264, !16, i64 272, !16, i64 276, !11, i64 280, !11, i64 281, !11, i64 282, !11, i64 283, !11, i64 284, !7, i64 285, !7, i64 798, !7, i64 832, !11, i64 916, !11, i64 917, !11, i64 918, !11, i64 919, !11, i64 920, !11, i64 921, !11, i64 922, !16, i64 924, !27, i64 928, !27, i64 932, !27, i64 936, !20, i64 940, !20, i64 948, !7, i64 956, !7, i64 996, !7, i64 1016, !7, i64 1021, !7, i64 1026, !7, i64 1031, !7, i64 1036, !7, i64 1056, !7, i64 1076, !7, i64 1116, !7, i64 1136, !7, i64 3184, !7, i64 5232, !7, i64 5316}
!40 = !{!41, !27, i64 64}
!41 = !{!"_ZTS11ImFontAtlas", !27, i64 0, !6, i64 8, !27, i64 16, !27, i64 20, !6, i64 24, !6, i64 32, !27, i64 40, !27, i64 44, !20, i64 48, !20, i64 56, !42, i64 64, !43, i64 80, !44, i64 96, !7, i64 112}
!42 = !{!"_ZTS8ImVectorIP6ImFontE", !27, i64 0, !27, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorIN11ImFontAtlas10CustomRectEE", !27, i64 0, !27, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorI12ImFontConfigE", !27, i64 0, !27, i64 4, !6, i64 8}
!45 = !{!41, !27, i64 40}
!46 = !{!41, !27, i64 44}
!47 = !{!41, !6, i64 8}
!48 = !{!49, !6, i64 80}
!49 = !{!"_ZTS6ImFont", !16, i64 0, !16, i64 4, !20, i64 8, !50, i64 16, !51, i64 32, !52, i64 48, !6, i64 64, !16, i64 72, !53, i64 76, !53, i64 78, !6, i64 80, !6, i64 88, !16, i64 96, !16, i64 100, !11, i64 104, !27, i64 108}
!50 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !27, i64 0, !27, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIfE", !27, i64 0, !27, i64 4, !6, i64 8}
!52 = !{!"_ZTS8ImVectorItE", !27, i64 0, !27, i64 4, !6, i64 8}
!53 = !{!"short", !7, i64 0}
!54 = !{!49, !16, i64 0}
!55 = !{!49, !27, i64 16}
!56 = !{!39, !6, i64 168}
!57 = !{!49, !16, i64 96}
!58 = !{!49, !16, i64 100}
!59 = !{!49, !53, i64 76}
!60 = !{!49, !27, i64 108}
!61 = !{!49, !53, i64 78}
!62 = !{!63, !27, i64 24}
!63 = !{!"_ZTS12ImFontConfig", !6, i64 0, !27, i64 8, !11, i64 12, !27, i64 16, !16, i64 20, !27, i64 24, !27, i64 28, !11, i64 32, !20, i64 36, !20, i64 44, !6, i64 56, !16, i64 64, !16, i64 68, !11, i64 72, !27, i64 76, !16, i64 80, !7, i64 84, !6, i64 128}
!64 = !{!63, !27, i64 28}
!65 = !{!63, !11, i64 32}
!66 = distinct !{!66, !34}
!67 = distinct !{!67, !34}
!68 = !{!19, !16, i64 72}
!69 = !{!20, !16, i64 0}
!70 = !{!20, !16, i64 4}
!71 = !{i64 0, i64 4, !15, i64 4, i64 4, !15}
!72 = !{!73, !16, i64 4}
!73 = !{!"_ZTS11ImFontGlyph", !53, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36}
!74 = !{!73, !16, i64 8}
!75 = !{!73, !16, i64 12}
!76 = !{!73, !16, i64 16}
!77 = !{!73, !16, i64 20}
!78 = !{!73, !16, i64 24}
!79 = !{!73, !16, i64 28}
!80 = !{!73, !16, i64 32}
!81 = !{!73, !16, i64 36}
!82 = distinct !{!82, !34}
!83 = distinct !{!83, !34}
!84 = distinct !{!84, !34}


; 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.ImGuiStyle = type { float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, float, [42 x %struct.ImVec4] }
%struct.ImVec2 = type { float, float }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiTextFilter = type <{ [256 x i8], %class.ImVector.9, i32, [4 x i8] }>
%class.ImVector.9 = type { i32, i32, ptr }
%struct.ImColor = type { %struct.ImVec4 }
%struct.ImFontConfig = type { ptr, i32, i8, i32, float, i32, i32, i8, %struct.ImVec2, %struct.ImVec2, ptr, float, float, i8, i32, float, [40 x i8], ptr }

@.str.158 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [1 x i8], align 1
@__dso_handle = external hidden global i8
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style = external hidden global %struct.ImGuiStyle, align 4
@_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style = external hidden global i64, align 8
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE4init = external hidden local_unnamed_addr global i8, align 1
@.str.690 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.691 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.692 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.693 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.694 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.695 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.696 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.697 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.698 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.699 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.700 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.701 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.702 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.703 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.704 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.705 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.706 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.707 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.708 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.709 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.710 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.711 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.712 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.713 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.714 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.715 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.716 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.717 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.718 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.719 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.720 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.721 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.722 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.723 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.724 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.725 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.726 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.727 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11output_dest = external hidden global i32, align 4
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE20output_only_modified = external hidden global i8, align 1
@.str.734 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.735 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.736 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.740 = external hidden unnamed_addr constant [95 x i8], align 1
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter = external hidden global %struct.ImGuiTextFilter, align 8
@_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter = external hidden global i64, align 8
@.str.741 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags = external hidden global i32, align 4
@.str.742 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.743 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.744 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.745 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.746 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.747 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.748 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.750 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.751 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.752 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.753 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.754 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.755 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.756 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.757 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.758 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.759 = external hidden unnamed_addr constant [421 x i8], align 1
@.str.760 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.761 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.762 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.763 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.764 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.765 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.766 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.767 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.768 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.769 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.770 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.771 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.772 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE12window_scale = external hidden global float, align 4
@.str.773 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [13 x i8], align 1

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

declare noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv() local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef %0) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
  %2 = alloca i8, align 1
  %3 = alloca i8, align 1
  %4 = alloca i8, align 1
  %5 = alloca %struct.ImVec2, align 4
  %6 = alloca %struct.ImVec2, align 4
  %7 = alloca %struct.ImVec2, align 4
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca %struct.ImVec2, align 4
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 4
  %13 = alloca %struct.ImVec2, align 4
  %14 = alloca %struct.ImVec4, align 8
  %15 = alloca %struct.ImColor, align 4
  %16 = alloca %struct.ImVec4, align 8
  %17 = alloca %struct.ImColor, align 4
  %18 = alloca %struct.ImVec2, align 8
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca %struct.ImVec2, align 4
  %21 = tail call noundef nonnull align 4 dereferenceable(824) ptr @_ZN5ImGui8GetStyleEv()
  %22 = load atomic i8, ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style acquire, align 8
  %23 = icmp eq i8 %22, 0
  br i1 %23, label %24, label %28, !prof !5

24:                                               ; preds = %1
  %25 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style) #13
  %.not = icmp eq i32 %25, 0
  br i1 %.not, label %28, label %26

26:                                               ; preds = %24
  invoke void @_ZN10ImGuiStyleC1Ev(ptr noundef nonnull align 4 dereferenceable(824) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style)
          to label %27 unwind label %33

27:                                               ; preds = %26
  tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style) #13
  br label %28

28:                                               ; preds = %27, %24, %1
  %29 = load i8, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE4init, align 1, !tbaa !6, !range !10, !noundef !11
  %30 = trunc nuw i8 %29 to i1
  %31 = icmp eq ptr %0, null
  %or.cond = and i1 %31, %30
  br i1 %or.cond, label %32, label %35

32:                                               ; preds = %28
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(824) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style, ptr noundef nonnull align 4 dereferenceable(824) %21, i64 824, i1 false), !tbaa.struct !12
  br label %35

33:                                               ; preds = %26
  %34 = landingpad { ptr, i32 }
          cleanup
  tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style) #13
  br label %401

35:                                               ; preds = %32, %28
  store i8 0, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE4init, align 1, !tbaa !6
  %spec.store.select = select i1 %31, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style, ptr %0
  %36 = tail call noundef float @_ZN5ImGui14GetWindowWidthEv()
  %37 = fmul float %36, 5.000000e-01
  tail call void @_ZN5ImGui13PushItemWidthEf(float noundef %37)
  %38 = tail call noundef zeroext i1 @_ZN5ImGui17ShowStyleSelectorEPKc(ptr noundef nonnull @.str.690)
  br i1 %38, label %39, label %40

39:                                               ; preds = %35
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(824) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style, ptr noundef nonnull align 4 dereferenceable(824) %21, i64 824, i1 false), !tbaa.struct !12
  br label %40

40:                                               ; preds = %39, %35
  tail call void @_ZN5ImGui16ShowFontSelectorEPKc(ptr noundef nonnull @.str.691)
  %41 = getelementptr inbounds i8, ptr %21, i64 60
  %42 = tail call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.692, ptr noundef nonnull %41, float noundef 0.000000e+00, float noundef 1.200000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  br i1 %42, label %43, label %46

43:                                               ; preds = %40
  %44 = load float, ptr %41, align 4, !tbaa !16
  %45 = getelementptr inbounds i8, ptr %21, i64 112
  store float %44, ptr %45, align 4, !tbaa !19
  br label %46

46:                                               ; preds = %43, %40
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %2) #13
  %47 = getelementptr inbounds i8, ptr %21, i64 16
  %48 = load float, ptr %47, align 4, !tbaa !20
  %49 = fcmp ogt float %48, 0.000000e+00
  %50 = zext i1 %49 to i8
  store i8 %50, ptr %2, align 1, !tbaa !6
  %51 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.693, ptr noundef nonnull %2)
  br i1 %51, label %52, label %56

52:                                               ; preds = %46
  %53 = load i8, ptr %2, align 1, !tbaa !6, !range !10, !noundef !11
  %54 = trunc nuw i8 %53 to i1
  %55 = select i1 %54, float 1.000000e+00, float 0.000000e+00
  store float %55, ptr %47, align 4, !tbaa !20
  br label %56

56:                                               ; preds = %52, %46
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #13
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #13
  %57 = getelementptr inbounds i8, ptr %21, i64 64
  %58 = load float, ptr %57, align 4, !tbaa !21
  %59 = fcmp ogt float %58, 0.000000e+00
  %60 = zext i1 %59 to i8
  store i8 %60, ptr %3, align 1, !tbaa !6
  %61 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.694, ptr noundef nonnull %3)
  br i1 %61, label %62, label %66

62:                                               ; preds = %56
  %63 = load i8, ptr %3, align 1, !tbaa !6, !range !10, !noundef !11
  %64 = trunc nuw i8 %63 to i1
  %65 = select i1 %64, float 1.000000e+00, float 0.000000e+00
  store float %65, ptr %57, align 4, !tbaa !21
  br label %66

66:                                               ; preds = %62, %56
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #13
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #13
  %67 = getelementptr inbounds i8, ptr %21, i64 48
  %68 = load float, ptr %67, align 4, !tbaa !22
  %69 = fcmp ogt float %68, 0.000000e+00
  %70 = zext i1 %69 to i8
  store i8 %70, ptr %4, align 1, !tbaa !6
  %71 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.695, ptr noundef nonnull %4)
  br i1 %71, label %72, label %76

72:                                               ; preds = %66
  %73 = load i8, ptr %4, align 1, !tbaa !6, !range !10, !noundef !11
  %74 = trunc nuw i8 %73 to i1
  %75 = select i1 %74, float 1.000000e+00, float 0.000000e+00
  store float %75, ptr %67, align 4, !tbaa !22
  br label %76

76:                                               ; preds = %72, %66
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %77 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.696, ptr noundef nonnull align 4 dereferenceable(8) %5)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #13
  br i1 %77, label %78, label %79

78:                                               ; preds = %76
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(824) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE15ref_saved_style, ptr noundef nonnull align 4 dereferenceable(824) %21, i64 824, i1 false), !tbaa.struct !12
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(824) %spec.store.select, ptr noundef nonnull align 4 dereferenceable(824) %21, i64 824, i1 false)
  br label %79

79:                                               ; preds = %78, %76
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %80 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.697, ptr noundef nonnull align 4 dereferenceable(8) %6)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #13
  br i1 %80, label %81, label %82

81:                                               ; preds = %79
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(824) %21, ptr noundef nonnull align 4 dereferenceable(824) %spec.store.select, i64 824, i1 false), !tbaa.struct !12
  br label %82

82:                                               ; preds = %81, %79
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef nonnull @.str.698)
  %83 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.699)
  br i1 %83, label %84, label %96

84:                                               ; preds = %82
  %85 = getelementptr inbounds i8, ptr %21, i64 144
  %86 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.700, ptr noundef nonnull %85)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef nonnull @.str.701)
  %87 = getelementptr inbounds i8, ptr %21, i64 145
  %88 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.702, ptr noundef nonnull %87)
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 1.000000e+02)
  %89 = getelementptr inbounds i8, ptr %21, i64 148
  %90 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef nonnull @.str.703, ptr noundef nonnull %89, float noundef 0x3F947AE140000000, float noundef 0x3FB99999A0000000, float noundef 0x47EFFFFFE0000000, ptr noundef null, float noundef 2.000000e+00)
  %91 = load float, ptr %89, align 4, !tbaa !23
  %92 = fcmp olt float %91, 0.000000e+00
  br i1 %92, label %93, label %94

93:                                               ; preds = %84
  store float 0x3FB99999A0000000, ptr %89, align 4, !tbaa !23
  br label %94

94:                                               ; preds = %93, %84
  %95 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef nonnull @.str.704, ptr noundef nonnull %21, float noundef 0x3F747AE140000000, float noundef 0x3FC99999A0000000, float noundef 1.000000e+00, ptr noundef nonnull @.str.705, float noundef 1.000000e+00)
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui7TreePopEv()
  br label %96

96:                                               ; preds = %94, %82
  %97 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.706)
  br i1 %97, label %98, label %137

98:                                               ; preds = %96
  %99 = getelementptr inbounds i8, ptr %21, i64 4
  %100 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef nonnull @.str.707, ptr noundef nonnull %99, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %101 = getelementptr inbounds i8, ptr %21, i64 44
  %102 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.708, ptr noundef nonnull %101, float noundef 0.000000e+00, float noundef 1.600000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %103 = getelementptr inbounds i8, ptr %21, i64 52
  %104 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef nonnull @.str.709, ptr noundef nonnull %103, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %105 = getelementptr inbounds i8, ptr %21, i64 68
  %106 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef nonnull @.str.710, ptr noundef nonnull %105, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %107 = getelementptr inbounds i8, ptr %21, i64 76
  %108 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef nonnull @.str.711, ptr noundef nonnull %107, float noundef 0.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %109 = getelementptr inbounds i8, ptr %21, i64 84
  %110 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef nonnull @.str.712, ptr noundef nonnull %109, float noundef 0.000000e+00, float noundef 1.000000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %111 = getelementptr inbounds i8, ptr %21, i64 92
  %112 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.713, ptr noundef nonnull %111, float noundef 0.000000e+00, float noundef 3.000000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %113 = getelementptr inbounds i8, ptr %21, i64 100
  %114 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.714, ptr noundef nonnull %113, float noundef 1.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %115 = getelementptr inbounds i8, ptr %21, i64 108
  %116 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.715, ptr noundef nonnull %115, float noundef 1.000000e+00, float noundef 2.000000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.716)
  %117 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.717, ptr noundef nonnull %47, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %118 = getelementptr inbounds i8, ptr %21, i64 40
  %119 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.718, ptr noundef nonnull %118, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %120 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.719, ptr noundef nonnull %67, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %121 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.720, ptr noundef nonnull %57, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.721)
  %122 = getelementptr inbounds i8, ptr %21, i64 12
  %123 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.722, ptr noundef nonnull %122, float noundef 0.000000e+00, float noundef 1.400000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %124 = getelementptr inbounds i8, ptr %21, i64 36
  %125 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.723, ptr noundef nonnull %124, float noundef 0.000000e+00, float noundef 1.600000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %126 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.692, ptr noundef nonnull %41, float noundef 0.000000e+00, float noundef 1.200000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %127 = getelementptr inbounds i8, ptr %21, i64 104
  %128 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.724, ptr noundef nonnull %127, float noundef 0.000000e+00, float noundef 1.200000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  %129 = getelementptr inbounds i8, ptr %21, i64 112
  %130 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.725, ptr noundef nonnull %129, float noundef 0.000000e+00, float noundef 1.200000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.726)
  %131 = getelementptr inbounds i8, ptr %21, i64 28
  %132 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef nonnull @.str.727, ptr noundef nonnull %131, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.705, float noundef 1.000000e+00)
  %133 = getelementptr inbounds i8, ptr %21, i64 116
  %134 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef nonnull @.str.728, ptr noundef nonnull %133, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.705, float noundef 1.000000e+00)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef nonnull @.str.729)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.730)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef nonnull @.str.731)
  %135 = getelementptr inbounds i8, ptr %21, i64 132
  %136 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef nonnull @.str.732, ptr noundef nonnull %135, float noundef 0.000000e+00, float noundef 3.000000e+01, ptr noundef nonnull @.str.158, float noundef 1.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %137

137:                                              ; preds = %98, %96
  %138 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.733)
  br i1 %138, label %139, label %217

139:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %140 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.734, ptr noundef nonnull align 4 dereferenceable(8) %7)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #13
  br i1 %140, label %141, label %174

141:                                              ; preds = %139
  %142 = load i32, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11output_dest, align 4, !tbaa !24
  %143 = icmp eq i32 %142, 0
  br i1 %143, label %144, label %145

144:                                              ; preds = %141
  call void @_ZN5ImGui14LogToClipboardEi(i32 noundef -1)
  br label %146

145:                                              ; preds = %141
  call void @_ZN5ImGui8LogToTTYEi(i32 noundef -1)
  br label %146

146:                                              ; preds = %145, %144
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.735)
  %147 = getelementptr inbounds i8, ptr %21, i64 152
  %148 = getelementptr inbounds i8, ptr %spec.store.select, i64 152
  br label %150

149:                                              ; preds = %173
  call void @_ZN5ImGui9LogFinishEv()
  br label %174

150:                                              ; preds = %146, %173
  %indvars.iv = phi i64 [ 0, %146 ], [ %indvars.iv.next, %173 ]
  %151 = getelementptr inbounds [42 x %struct.ImVec4], ptr %147, i64 0, i64 %indvars.iv
  %152 = trunc nuw nsw i64 %indvars.iv to i32
  %153 = call noundef ptr @_ZN5ImGui17GetStyleColorNameEi(i32 noundef %152)
  %154 = load i8, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE20output_only_modified, align 1, !tbaa !6, !range !10, !noundef !11
  %155 = trunc nuw i8 %154 to i1
  br i1 %155, label %156, label %158

156:                                              ; preds = %150
  %157 = getelementptr inbounds [42 x %struct.ImVec4], ptr %148, i64 0, i64 %indvars.iv
  %bcmp202 = call i32 @bcmp(ptr noundef nonnull dereferenceable(16) %151, ptr noundef nonnull dereferenceable(16) %157, i64 16)
  %.not203 = icmp eq i32 %bcmp202, 0
  br i1 %.not203, label %173, label %158

158:                                              ; preds = %156, %150
  %159 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %153) #14
  %160 = trunc i64 %159 to i32
  %161 = sub nsw i32 23, %160
  %162 = load float, ptr %151, align 4, !tbaa !26
  %163 = fpext float %162 to double
  %164 = getelementptr inbounds i8, ptr %151, i64 4
  %165 = load float, ptr %164, align 4, !tbaa !28
  %166 = fpext float %165 to double
  %167 = getelementptr inbounds i8, ptr %151, i64 8
  %168 = load float, ptr %167, align 4, !tbaa !29
  %169 = fpext float %168 to double
  %170 = getelementptr inbounds i8, ptr %151, i64 12
  %171 = load float, ptr %170, align 4, !tbaa !30
  %172 = fpext float %171 to double
  call void (ptr, ...) @_ZN5ImGui7LogTextEPKcz(ptr noundef nonnull @.str.736, ptr noundef %153, i32 noundef %161, ptr noundef nonnull @.str.357, double noundef %163, double noundef %166, double noundef %169, double noundef %172)
  br label %173

173:                                              ; preds = %158, %156
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 42
  br i1 %exitcond.not, label %149, label %150, !llvm.loop !31

174:                                              ; preds = %149, %139
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 1.200000e+02)
  %175 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef nonnull @.str.737, ptr noundef nonnull @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11output_dest, ptr noundef nonnull @.str.738, i32 noundef -1)
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %176 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.739, ptr noundef nonnull @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE20output_only_modified)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.740)
  %177 = load atomic i8, ptr @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter acquire, align 8
  %178 = icmp eq i8 %177, 0
  br i1 %178, label %179, label %184, !prof !5

179:                                              ; preds = %174
  %180 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter) #13
  %.not193 = icmp eq i32 %180, 0
  br i1 %.not193, label %184, label %181

181:                                              ; preds = %179
  invoke void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter, ptr noundef nonnull @.str.357)
          to label %182 unwind label %194

182:                                              ; preds = %181
  %183 = call i32 @__cxa_atexit(ptr nonnull @_ZN15ImGuiTextFilterD2Ev, ptr nonnull @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter, ptr nonnull @__dso_handle) #13
  call void @__cxa_guard_release(ptr nonnull @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter) #13
  br label %184

184:                                              ; preds = %182, %179, %174
  %185 = call noundef zeroext i1 @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter, ptr noundef nonnull @.str.741, float noundef 2.000000e+02)
  %186 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef nonnull @.str.742, ptr noundef nonnull @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags, i32 noundef 0)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %187 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef nonnull @.str.743, ptr noundef nonnull @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags, i32 noundef 131072)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %188 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef nonnull @.str.744, ptr noundef nonnull @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags, i32 noundef 262144)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 0.000000e+00, float noundef 3.000000e+02)
  %189 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2bi(ptr noundef nonnull @.str.745, ptr noundef nonnull align 4 dereferenceable(8) %8, i1 noundef zeroext true, i32 noundef 8437760)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #13
  call void @_ZN5ImGui13PushItemWidthEf(float noundef -1.600000e+02)
  %190 = getelementptr inbounds i8, ptr %21, i64 152
  %191 = getelementptr inbounds i8, ptr %spec.store.select, i64 152
  %192 = getelementptr inbounds i8, ptr %21, i64 76
  br label %196

193:                                              ; preds = %216
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui7TreePopEv()
  br label %217

194:                                              ; preds = %181
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_guard_abort(ptr nonnull @_ZGVZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter) #13
  br label %401

196:                                              ; preds = %184, %216
  %indvars.iv218 = phi i64 [ 0, %184 ], [ %indvars.iv.next219, %216 ]
  %197 = trunc nuw nsw i64 %indvars.iv218 to i32
  %198 = call noundef ptr @_ZN5ImGui17GetStyleColorNameEi(i32 noundef %197)
  %199 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKcS1_(ptr noundef nonnull align 8 dereferenceable(276) @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE6filter, ptr noundef %198, ptr noundef null)
  br i1 %199, label %200, label %216

200:                                              ; preds = %196
  call void @_ZN5ImGui6PushIDEi(i32 noundef %197)
  %201 = getelementptr inbounds [42 x %struct.ImVec4], ptr %190, i64 0, i64 %indvars.iv218
  %202 = load i32, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE11alpha_flags, align 4, !tbaa !24
  %203 = or i32 %202, 65536
  %204 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef nonnull @.str.746, ptr noundef nonnull %201, i32 noundef %203)
  %205 = getelementptr inbounds [42 x %struct.ImVec4], ptr %191, i64 0, i64 %indvars.iv218
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(16) %201, ptr noundef nonnull dereferenceable(16) %205, i64 16)
  %.not201 = icmp eq i32 %bcmp, 0
  br i1 %.not201, label %214, label %206

206:                                              ; preds = %200
  %207 = load float, ptr %192, align 4, !tbaa !33
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %207)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %208 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.747, ptr noundef nonnull align 4 dereferenceable(8) %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #13
  br i1 %208, label %209, label %210

209:                                              ; preds = %206
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %205, ptr noundef nonnull align 4 dereferenceable(16) %201, i64 16, i1 false), !tbaa.struct !34
  br label %210

210:                                              ; preds = %209, %206
  %211 = load float, ptr %192, align 4, !tbaa !33
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %211)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %212 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.748, ptr noundef nonnull align 4 dereferenceable(8) %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #13
  br i1 %212, label %213, label %214

213:                                              ; preds = %210
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %201, ptr noundef nonnull align 4 dereferenceable(16) %205, i64 16, i1 false), !tbaa.struct !34
  br label %214

214:                                              ; preds = %210, %213, %200
  %215 = load float, ptr %192, align 4, !tbaa !33
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef %215)
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef %198, ptr noundef null)
  call void @_ZN5ImGui5PopIDEv()
  br label %216

216:                                              ; preds = %196, %214
  %indvars.iv.next219 = add nuw nsw i64 %indvars.iv218, 1
  %exitcond221.not = icmp eq i64 %indvars.iv.next219, 42
  br i1 %exitcond221.not, label %193, label %196, !llvm.loop !35

217:                                              ; preds = %193, %137
  %218 = call noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv()
  %219 = getelementptr inbounds i8, ptr %218, i64 152
  %220 = load ptr, ptr %219, align 8, !tbaa !36
  %221 = getelementptr inbounds i8, ptr %220, i64 64
  %222 = load i32, ptr %221, align 8, !tbaa !39
  %223 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.749, ptr noundef nonnull @.str.750, i32 noundef %222)
  br i1 %223, label %224, label %400

224:                                              ; preds = %217
  %225 = call noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv()
  %226 = getelementptr inbounds i8, ptr %225, i64 152
  %227 = load ptr, ptr %226, align 8, !tbaa !36
  %228 = getelementptr inbounds i8, ptr %227, i64 40
  %229 = load i32, ptr %228, align 8, !tbaa !44
  %230 = getelementptr inbounds i8, ptr %227, i64 44
  %231 = load i32, ptr %230, align 4, !tbaa !45
  %232 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.751, ptr noundef nonnull @.str.752, i32 noundef %229, i32 noundef %231)
  br i1 %232, label %233, label %248

233:                                              ; preds = %224
  %234 = getelementptr inbounds i8, ptr %227, i64 8
  %235 = load ptr, ptr %234, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #13
  %236 = load i32, ptr %228, align 8, !tbaa !44
  %237 = sitofp i32 %236 to float
  %238 = load i32, ptr %230, align 4, !tbaa !45
  %239 = sitofp i32 %238 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef %237, float noundef %239)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %12, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %13, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #13
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %15, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 255)
  %240 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %15)
  %241 = extractvalue { <2 x float>, <2 x float> } %240, 0
  store <2 x float> %241, ptr %14, align 8
  %242 = getelementptr inbounds i8, ptr %14, i64 8
  %243 = extractvalue { <2 x float>, <2 x float> } %240, 1
  store <2 x float> %243, ptr %242, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #13
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %17, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 128)
  %244 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %17)
  %245 = extractvalue { <2 x float>, <2 x float> } %244, 0
  store <2 x float> %245, ptr %16, align 8
  %246 = getelementptr inbounds i8, ptr %16, i64 8
  %247 = extractvalue { <2 x float>, <2 x float> } %244, 1
  store <2 x float> %247, ptr %246, align 8
  call void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef %235, ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %12, ptr noundef nonnull align 4 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(16) %14, ptr noundef nonnull align 4 dereferenceable(16) %16)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #13
  call void @_ZN5ImGui7TreePopEv()
  br label %248

248:                                              ; preds = %233, %224
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 1.000000e+02)
  %249 = getelementptr inbounds i8, ptr %227, i64 64
  %250 = load i32, ptr %249, align 8, !tbaa !39
  %251 = icmp sgt i32 %250, 0
  br i1 %251, label %.lr.ph214, label %._crit_edge215

.lr.ph214:                                        ; preds = %248
  %252 = getelementptr inbounds i8, ptr %21, i64 72
  %253 = getelementptr inbounds i8, ptr %18, i64 4
  br label %259

._crit_edge215:                                   ; preds = %396, %248
  %254 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef nonnull @.str.773, ptr noundef nonnull @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE12window_scale, float noundef 0x3F747AE140000000, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef nonnull @.str.757, float noundef 1.000000e+00)
  %255 = call noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv()
  %256 = getelementptr inbounds i8, ptr %255, i64 160
  %257 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef nonnull @.str.774, ptr noundef nonnull %256, float noundef 0x3F747AE140000000, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef nonnull @.str.757, float noundef 1.000000e+00)
  call void @_ZN5ImGui12PopItemWidthEv()
  %258 = load float, ptr @_ZZN5ImGui15ShowStyleEditorEP10ImGuiStyleE12window_scale, align 4, !tbaa !13
  call void @_ZN5ImGui18SetWindowFontScaleEf(float noundef %258)
  call void @_ZN5ImGui7TreePopEv()
  br label %400

259:                                              ; preds = %.lr.ph214, %396
  %.0188212 = phi i32 [ 0, %.lr.ph214 ], [ %397, %396 ]
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEi(ptr noundef nonnull align 8 dereferenceable(16) %249, i32 noundef %.0188212)
  %261 = load ptr, ptr %260, align 8, !tbaa !47
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %261)
  %262 = getelementptr inbounds i8, ptr %261, i64 80
  %263 = load ptr, ptr %262, align 8, !tbaa !48
  %.not195 = icmp eq ptr %263, null
  %264 = getelementptr inbounds i8, ptr %263, i64 84
  %spec.select = select i1 %.not195, ptr @.str.357, ptr %264
  %265 = load float, ptr %261, align 8, !tbaa !54
  %266 = fpext float %265 to double
  %267 = getelementptr inbounds i8, ptr %261, i64 16
  %268 = load i32, ptr %267, align 8, !tbaa !55
  %269 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef nonnull %261, ptr noundef nonnull @.str.753, i32 noundef %.0188212, ptr noundef nonnull %spec.select, double noundef %266, i32 noundef %268)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %270 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.754)
  br i1 %270, label %271, label %274

271:                                              ; preds = %259
  %272 = call noundef nonnull align 8 dereferenceable(5400) ptr @_ZN5ImGui5GetIOEv()
  %273 = getelementptr inbounds i8, ptr %272, i64 168
  store ptr %261, ptr %273, align 8, !tbaa !56
  br label %274

274:                                              ; preds = %271, %259
  br i1 %269, label %275, label %396

275:                                              ; preds = %274
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef nonnull %261)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.755)
  call void @_ZN5ImGui7PopFontEv()
  %276 = getelementptr inbounds i8, ptr %261, i64 4
  %277 = call noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef nonnull @.str.756, ptr noundef nonnull %276, float noundef 0x3F747AE140000000, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef nonnull @.str.757, float noundef 1.000000e+00)
  %278 = getelementptr inbounds i8, ptr %261, i64 12
  %279 = call noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef nonnull @.str.758, ptr noundef nonnull %278, float noundef 1.000000e+00, float noundef 1.000000e+00, i32 noundef 0, i32 noundef 0)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL14ShowHelpMarkerPKc(ptr noundef nonnull @.str.759)
  %280 = getelementptr inbounds i8, ptr %261, i64 96
  %281 = load float, ptr %280, align 8, !tbaa !57
  %282 = fpext float %281 to double
  %283 = getelementptr inbounds i8, ptr %261, i64 100
  %284 = load float, ptr %283, align 4, !tbaa !58
  %285 = fpext float %284 to double
  %286 = fsub float %281, %284
  %287 = fpext float %286 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.760, double noundef %282, double noundef %285, double noundef %287)
  %288 = getelementptr inbounds i8, ptr %261, i64 76
  %289 = load i16, ptr %288, align 4, !tbaa !59
  %290 = zext i16 %289 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.761, i32 noundef %290, i32 noundef %290)
  %291 = getelementptr inbounds i8, ptr %261, i64 108
  %292 = load i32, ptr %291, align 4, !tbaa !60
  %293 = sitofp i32 %292 to float
  %294 = call float @sqrtf(float noundef %293) #13
  %295 = fptosi float %294 to i32
  %296 = load i32, ptr %291, align 4, !tbaa !60
  %297 = sitofp i32 %296 to float
  %298 = call float @sqrtf(float noundef %297) #13
  %299 = fptosi float %298 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.762, i32 noundef %292, i32 noundef %295, i32 noundef %299)
  %300 = getelementptr inbounds i8, ptr %261, i64 78
  %301 = load i16, ptr %300, align 2, !tbaa !61
  %302 = icmp sgt i16 %301, 0
  br i1 %302, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %275
  %303 = load ptr, ptr %262, align 8, !tbaa !48
  %304 = icmp eq ptr %303, null
  br i1 %304, label %._crit_edge, label %.lr.ph.split

._crit_edge:                                      ; preds = %320, %.lr.ph, %275
  %305 = load i32, ptr %267, align 8, !tbaa !55
  %306 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.764, ptr noundef nonnull @.str.765, i32 noundef %305)
  br i1 %306, label %.preheader, label %395

.lr.ph.splitthread-pre-split:                     ; preds = %320
  %.pr = load ptr, ptr %262, align 8, !tbaa !48
  br label %.lr.ph.split

.lr.ph.split:                                     ; preds = %.lr.ph, %.lr.ph.splitthread-pre-split
  %307 = phi ptr [ %.pr, %.lr.ph.splitthread-pre-split ], [ %303, %.lr.ph ]
  %308 = phi i16 [ %321, %.lr.ph.splitthread-pre-split ], [ %301, %.lr.ph ]
  %indvars.iv222 = phi i64 [ %indvars.iv.next223, %.lr.ph.splitthread-pre-split ], [ 0, %.lr.ph ]
  %.not200 = icmp eq ptr %307, null
  br i1 %.not200, label %320, label %309

309:                                              ; preds = %.lr.ph.split
  %310 = getelementptr inbounds %struct.ImFontConfig, ptr %307, i64 %indvars.iv222
  %311 = getelementptr inbounds i8, ptr %310, i64 84
  %312 = getelementptr inbounds i8, ptr %310, i64 24
  %313 = load i32, ptr %312, align 8, !tbaa !62
  %314 = getelementptr inbounds i8, ptr %310, i64 28
  %315 = load i32, ptr %314, align 4, !tbaa !64
  %316 = getelementptr inbounds i8, ptr %310, i64 32
  %317 = load i8, ptr %316, align 8, !tbaa !65, !range !10, !noundef !11
  %318 = zext nneg i8 %317 to i32
  %319 = trunc nuw nsw i64 %indvars.iv222 to i32
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.763, i32 noundef %319, ptr noundef nonnull %311, i32 noundef %313, i32 noundef %315, i32 noundef %318)
  %.pre = load i16, ptr %300, align 2, !tbaa !61
  br label %320

320:                                              ; preds = %309, %.lr.ph.split
  %321 = phi i16 [ %.pre, %309 ], [ %308, %.lr.ph.split ]
  %indvars.iv.next223 = add nuw nsw i64 %indvars.iv222, 1
  %322 = sext i16 %321 to i64
  %323 = icmp slt i64 %indvars.iv.next223, %322
  br i1 %323, label %.lr.ph.splitthread-pre-split, label %._crit_edge, !llvm.loop !66

.preheader:                                       ; preds = %._crit_edge, %393
  %indvars.iv227 = phi i64 [ %indvars.iv.next228, %393 ], [ 0, %._crit_edge ]
  %indvars229 = trunc i64 %indvars.iv227 to i32
  br label %326

324:                                              ; preds = %393
  call void @_ZN5ImGui7TreePopEv()
  br label %395

325:                                              ; preds = %326
  %.not196 = icmp eq i32 %331, 0
  br i1 %.not196, label %393, label %333

326:                                              ; preds = %.preheader, %326
  %.0185209 = phi i32 [ 0, %.preheader ], [ %332, %326 ]
  %.0186208 = phi i32 [ 0, %.preheader ], [ %331, %326 ]
  %327 = or disjoint i32 %.0185209, %indvars229
  %328 = trunc nuw i32 %327 to i16
  %329 = call noundef ptr @_ZNK6ImFont19FindGlyphNoFallbackEt(ptr noundef nonnull align 8 dereferenceable(112) %261, i16 noundef zeroext %328)
  %.not199 = icmp ne ptr %329, null
  %330 = zext i1 %.not199 to i32
  %331 = add nuw nsw i32 %.0186208, %330
  %332 = add nuw nsw i32 %.0185209, 1
  %exitcond225.not = icmp eq i32 %332, 256
  br i1 %exitcond225.not, label %325, label %326, !llvm.loop !68

333:                                              ; preds = %325
  %334 = inttoptr i64 %indvars.iv227 to ptr
  %335 = or disjoint i32 %indvars229, 255
  %.not197 = icmp eq i32 %331, 1
  %336 = select i1 %.not197, ptr @.str.768, ptr @.str.767
  %337 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef %334, ptr noundef nonnull @.str.766, i32 noundef %indvars229, i32 noundef %335, i32 noundef %331, ptr noundef nonnull %336)
  br i1 %337, label %338, label %393

338:                                              ; preds = %333
  %339 = load float, ptr %261, align 8, !tbaa !54
  %340 = load float, ptr %252, align 4, !tbaa !69
  %341 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  %342 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  %.sroa.021.0.vec.extract = extractelement <2 x float> %341, i64 0
  %343 = fadd float %339, %340
  %.sroa.021.4.vec.extract = extractelement <2 x float> %341, i64 1
  br label %346

344:                                              ; preds = %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #13
  %345 = fmul float %343, 1.600000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef %345, float noundef %345)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %20)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #13
  call void @_ZN5ImGui7TreePopEv()
  br label %393

346:                                              ; preds = %338, %.critedge
  %.0181210 = phi i32 [ 0, %338 ], [ %392, %.critedge ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #13
  %347 = and i32 %.0181210, 15
  %348 = uitofp nneg i32 %347 to float
  %349 = call float @llvm.fmuladd.f32(float %348, float %343, float %.sroa.021.0.vec.extract)
  %350 = lshr i32 %.0181210, 4
  %351 = uitofp nneg i32 %350 to float
  %352 = call float @llvm.fmuladd.f32(float %351, float %343, float %.sroa.021.4.vec.extract)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %349, float noundef %352)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #13
  %353 = load float, ptr %18, align 8, !tbaa !70
  %354 = fadd float %339, %353
  %355 = load float, ptr %253, align 4, !tbaa !71
  %356 = fadd float %339, %355
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %354, float noundef %356)
  %357 = or disjoint i32 %.0181210, %indvars229
  %358 = trunc nuw i32 %357 to i16
  %359 = call noundef ptr @_ZNK6ImFont19FindGlyphNoFallbackEt(ptr noundef nonnull align 8 dereferenceable(112) %261, i16 noundef zeroext %358)
  %.not198 = icmp eq ptr %359, null
  %360 = select i1 %.not198, i32 855638015, i32 1694498815
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(168) %342, ptr noundef nonnull align 4 dereferenceable(8) %18, ptr noundef nonnull align 4 dereferenceable(8) %19, i32 noundef %360, float noundef 0.000000e+00, i32 noundef 15, float noundef 1.000000e+00)
  br i1 %.not198, label %.critedge, label %361

361:                                              ; preds = %346
  %.sroa.0.0.copyload = load <2 x float>, ptr %18, align 8
  %362 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZNK6ImFont10RenderCharEP10ImDrawListf6ImVec2jt(ptr noundef nonnull align 8 dereferenceable(112) %261, ptr noundef nonnull %342, float noundef %339, <2 x float> %.sroa.0.0.copyload, i32 noundef %362, i16 noundef zeroext %358)
  %363 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %18, ptr noundef nonnull align 4 dereferenceable(8) %19, i1 noundef zeroext true)
  br i1 %363, label %364, label %.critedge

364:                                              ; preds = %361
  call void @_ZN5ImGui12BeginTooltipEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.769, i32 noundef %357)
  call void @_ZN5ImGui9SeparatorEv()
  %365 = getelementptr inbounds i8, ptr %359, i64 4
  %366 = load float, ptr %365, align 4, !tbaa !72
  %367 = fpext float %366 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.770, double noundef %367)
  %368 = getelementptr inbounds i8, ptr %359, i64 8
  %369 = load float, ptr %368, align 4, !tbaa !74
  %370 = fpext float %369 to double
  %371 = getelementptr inbounds i8, ptr %359, i64 12
  %372 = load float, ptr %371, align 4, !tbaa !75
  %373 = fpext float %372 to double
  %374 = getelementptr inbounds i8, ptr %359, i64 16
  %375 = load float, ptr %374, align 4, !tbaa !76
  %376 = fpext float %375 to double
  %377 = getelementptr inbounds i8, ptr %359, i64 20
  %378 = load float, ptr %377, align 4, !tbaa !77
  %379 = fpext float %378 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.771, double noundef %370, double noundef %373, double noundef %376, double noundef %379)
  %380 = getelementptr inbounds i8, ptr %359, i64 24
  %381 = load float, ptr %380, align 4, !tbaa !78
  %382 = fpext float %381 to double
  %383 = getelementptr inbounds i8, ptr %359, i64 28
  %384 = load float, ptr %383, align 4, !tbaa !79
  %385 = fpext float %384 to double
  %386 = getelementptr inbounds i8, ptr %359, i64 32
  %387 = load float, ptr %386, align 4, !tbaa !80
  %388 = fpext float %387 to double
  %389 = getelementptr inbounds i8, ptr %359, i64 36
  %390 = load float, ptr %389, align 4, !tbaa !81
  %391 = fpext float %390 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.772, double noundef %382, double noundef %385, double noundef %388, double noundef %391)
  call void @_ZN5ImGui10EndTooltipEv()
  br label %.critedge

.critedge:                                        ; preds = %346, %364, %361
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #13
  %392 = add nuw nsw i32 %.0181210, 1
  %exitcond226.not = icmp eq i32 %392, 256
  br i1 %exitcond226.not, label %344, label %346, !llvm.loop !82

393:                                              ; preds = %344, %333, %325
  %indvars.iv.next228 = add nuw nsw i64 %indvars.iv227, 256
  %394 = icmp ult i64 %indvars.iv227, 65280
  br i1 %394, label %.preheader, label %324, !llvm.loop !83

395:                                              ; preds = %324, %._crit_edge
  call void @_ZN5ImGui7TreePopEv()
  br label %396

396:                                              ; preds = %395, %274
  call void @_ZN5ImGui5PopIDEv()
  %397 = add nuw nsw i32 %.0188212, 1
  %398 = load i32, ptr %249, align 8, !tbaa !39
  %399 = icmp slt i32 %397, %398
  br i1 %399, label %259, label %._crit_edge215, !llvm.loop !84

400:                                              ; preds = %._crit_edge215, %217
  call void @_ZN5ImGui12PopItemWidthEv()
  ret void

401:                                              ; preds = %194, %33
  %.pn = phi { ptr, i32 } [ %195, %194 ], [ %34, %33 ]
  resume { ptr, i32 } %.pn
}

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

declare void @_ZN5ImGui9SeparatorEv() 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) #2

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

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

declare void @_ZN5ImGui13PushItemWidthEf(float noundef) local_unnamed_addr #0

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

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

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

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #0

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

declare noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

declare void @_ZN5ImGui6PushIDEi(i32 noundef) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #4 align 2

declare void @_ZN5ImGui5PopIDEv() local_unnamed_addr #0

declare noundef nonnull align 4 dereferenceable(824) ptr @_ZN5ImGui8GetStyleEv() local_unnamed_addr #0

declare void @_ZN5ImGui12BeginTooltipEv() local_unnamed_addr #0

declare void @_ZN5ImGui10EndTooltipEv() local_unnamed_addr #0

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #5

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

declare noundef zeroext i1 @_ZN5ImGui9DragFloatEPKcPffffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, float noundef, ptr noundef, float noundef) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfi(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef, ptr noundef, ...) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef) local_unnamed_addr #0

declare <2 x float> @_ZN5ImGui18GetCursorScreenPosEv() local_unnamed_addr #0

declare noundef ptr @_ZN5ImGui17GetWindowDrawListEv() local_unnamed_addr #0

declare void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef, float noundef) local_unnamed_addr #0

declare void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #0

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

declare void @_ZN5ImGui12PopItemWidthEv() local_unnamed_addr #0

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nofree nounwind
declare void @__cxa_guard_abort(ptr) local_unnamed_addr #8

declare noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) local_unnamed_addr #0

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

declare void @_ZN5ImGui8EndChildEv() local_unnamed_addr #0

declare noundef float @_ZN5ImGui14GetWindowWidthEv() local_unnamed_addr #0

declare void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #0

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef) unnamed_addr #0

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

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

declare noundef zeroext i1 @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef, float noundef) local_unnamed_addr #0

declare noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKcS1_(ptr noundef nonnull align 8 dereferenceable(276), ptr noundef, ptr noundef) local_unnamed_addr #0

declare noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef, float noundef) local_unnamed_addr #0

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

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

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

declare void @_ZN10ImGuiStyleC1Ev(ptr noundef nonnull align 4 dereferenceable(824)) unnamed_addr #0

declare void @_ZN5ImGui14LogToClipboardEi(i32 noundef) local_unnamed_addr #0

declare void @_ZN5ImGui8LogToTTYEi(i32 noundef) local_unnamed_addr #0

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

declare noundef ptr @_ZN5ImGui17GetStyleColorNameEi(i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #9

declare void @_ZN5ImGui9LogFinishEv() local_unnamed_addr #0

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef, ptr noundef, ...) local_unnamed_addr #0

declare void @_ZN5ImGui6PushIDEPKv(ptr noundef) local_unnamed_addr #0

declare void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef) local_unnamed_addr #0

declare void @_ZN5ImGui7PopFontEv() local_unnamed_addr #0

declare noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef, ptr noundef, float noundef, float noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @sqrtf(float noundef) local_unnamed_addr #10

declare noundef ptr @_ZNK6ImFont19FindGlyphNoFallbackEt(ptr noundef nonnull align 8 dereferenceable(112), i16 noundef zeroext) local_unnamed_addr #0

declare void @_ZNK6ImFont10RenderCharEP10ImDrawListf6ImVec2jt(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef, float noundef, <2 x float>, i32 noundef, i16 noundef zeroext) local_unnamed_addr #0

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

declare void @_ZN5ImGui18SetWindowFontScaleEf(float noundef) local_unnamed_addr #0

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #12

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!"branch_weights", i32 1, i32 1048575}
!6 = !{!7, !7, i64 0}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{i8 0, i8 2}
!11 = !{}
!12 = !{i64 0, i64 4, !13, i64 4, i64 4, !13, i64 8, i64 4, !13, i64 12, i64 4, !13, i64 16, i64 4, !13, i64 20, i64 4, !13, i64 24, i64 4, !13, i64 28, i64 4, !13, i64 32, i64 4, !13, i64 36, i64 4, !13, i64 40, i64 4, !13, i64 44, i64 4, !13, i64 48, i64 4, !13, i64 52, i64 4, !13, i64 56, i64 4, !13, i64 60, i64 4, !13, i64 64, i64 4, !13, i64 68, i64 4, !13, i64 72, i64 4, !13, i64 76, i64 4, !13, i64 80, i64 4, !13, i64 84, i64 4, !13, i64 88, i64 4, !13, i64 92, i64 4, !13, i64 96, i64 4, !13, i64 100, i64 4, !13, i64 104, i64 4, !13, i64 108, i64 4, !13, i64 112, i64 4, !13, i64 116, i64 4, !13, i64 120, i64 4, !13, i64 124, i64 4, !13, i64 128, i64 4, !13, i64 132, i64 4, !13, i64 136, i64 4, !13, i64 140, i64 4, !13, i64 144, i64 1, !6, i64 145, i64 1, !6, i64 148, i64 4, !13, i64 152, i64 672, !15}
!13 = !{!14, !14, i64 0}
!14 = !{!"float", !8, i64 0}
!15 = !{!8, !8, i64 0}
!16 = !{!17, !14, i64 60}
!17 = !{!"_ZTS10ImGuiStyle", !14, i64 0, !18, i64 4, !14, i64 12, !14, i64 16, !18, i64 20, !18, i64 28, !14, i64 36, !14, i64 40, !14, i64 44, !14, i64 48, !18, i64 52, !14, i64 60, !14, i64 64, !18, i64 68, !18, i64 76, !18, i64 84, !14, i64 92, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !18, i64 116, !18, i64 124, !18, i64 132, !14, i64 140, !7, i64 144, !7, i64 145, !14, i64 148, !8, i64 152}
!18 = !{!"_ZTS6ImVec2", !14, i64 0, !14, i64 4}
!19 = !{!17, !14, i64 112}
!20 = !{!17, !14, i64 16}
!21 = !{!17, !14, i64 64}
!22 = !{!17, !14, i64 48}
!23 = !{!17, !14, i64 148}
!24 = !{!25, !25, i64 0}
!25 = !{!"int", !8, i64 0}
!26 = !{!27, !14, i64 0}
!27 = !{!"_ZTS6ImVec4", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12}
!28 = !{!27, !14, i64 4}
!29 = !{!27, !14, i64 8}
!30 = !{!27, !14, i64 12}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = !{!17, !14, i64 76}
!34 = !{i64 0, i64 4, !13, i64 4, i64 4, !13, i64 8, i64 4, !13, i64 12, i64 4, !13}
!35 = distinct !{!35, !32}
!36 = !{!37, !38, i64 152}
!37 = !{!"_ZTS7ImGuiIO", !25, i64 0, !25, i64 4, !18, i64 8, !14, i64 16, !14, i64 20, !38, i64 24, !38, i64 32, !14, i64 40, !14, i64 44, !14, i64 48, !8, i64 52, !14, i64 136, !14, i64 140, !38, i64 144, !38, i64 152, !14, i64 160, !7, i64 164, !38, i64 168, !18, i64 176, !18, i64 184, !18, i64 192, !7, i64 200, !7, i64 201, !38, i64 208, !38, i64 216, !38, i64 224, !38, i64 232, !38, i64 240, !38, i64 248, !18, i64 256, !8, i64 264, !14, i64 272, !14, i64 276, !7, i64 280, !7, i64 281, !7, i64 282, !7, i64 283, !7, i64 284, !8, i64 285, !8, i64 798, !8, i64 832, !7, i64 916, !7, i64 917, !7, i64 918, !7, i64 919, !7, i64 920, !7, i64 921, !7, i64 922, !14, i64 924, !25, i64 928, !25, i64 932, !25, i64 936, !18, i64 940, !18, i64 948, !8, i64 956, !8, i64 996, !8, i64 1016, !8, i64 1021, !8, i64 1026, !8, i64 1031, !8, i64 1036, !8, i64 1056, !8, i64 1076, !8, i64 1116, !8, i64 1136, !8, i64 3184, !8, i64 5232, !8, i64 5316}
!38 = !{!"any pointer", !8, i64 0}
!39 = !{!40, !25, i64 64}
!40 = !{!"_ZTS11ImFontAtlas", !25, i64 0, !38, i64 8, !25, i64 16, !25, i64 20, !38, i64 24, !38, i64 32, !25, i64 40, !25, i64 44, !18, i64 48, !18, i64 56, !41, i64 64, !42, i64 80, !43, i64 96, !8, i64 112}
!41 = !{!"_ZTS8ImVectorIP6ImFontE", !25, i64 0, !25, i64 4, !38, i64 8}
!42 = !{!"_ZTS8ImVectorIN11ImFontAtlas10CustomRectEE", !25, i64 0, !25, i64 4, !38, i64 8}
!43 = !{!"_ZTS8ImVectorI12ImFontConfigE", !25, i64 0, !25, i64 4, !38, i64 8}
!44 = !{!40, !25, i64 40}
!45 = !{!40, !25, i64 44}
!46 = !{!40, !38, i64 8}
!47 = !{!38, !38, i64 0}
!48 = !{!49, !38, i64 80}
!49 = !{!"_ZTS6ImFont", !14, i64 0, !14, i64 4, !18, i64 8, !50, i64 16, !51, i64 32, !52, i64 48, !38, i64 64, !14, i64 72, !53, i64 76, !53, i64 78, !38, i64 80, !38, i64 88, !14, i64 96, !14, i64 100, !7, i64 104, !25, i64 108}
!50 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !25, i64 0, !25, i64 4, !38, i64 8}
!51 = !{!"_ZTS8ImVectorIfE", !25, i64 0, !25, i64 4, !38, i64 8}
!52 = !{!"_ZTS8ImVectorItE", !25, i64 0, !25, i64 4, !38, i64 8}
!53 = !{!"short", !8, i64 0}
!54 = !{!49, !14, i64 0}
!55 = !{!49, !25, i64 16}
!56 = !{!37, !38, i64 168}
!57 = !{!49, !14, i64 96}
!58 = !{!49, !14, i64 100}
!59 = !{!49, !53, i64 76}
!60 = !{!49, !25, i64 108}
!61 = !{!49, !53, i64 78}
!62 = !{!63, !25, i64 24}
!63 = !{!"_ZTS12ImFontConfig", !38, i64 0, !25, i64 8, !7, i64 12, !25, i64 16, !14, i64 20, !25, i64 24, !25, i64 28, !7, i64 32, !18, i64 36, !18, i64 44, !38, i64 56, !14, i64 64, !14, i64 68, !7, i64 72, !25, i64 76, !14, i64 80, !8, i64 84, !38, i64 128}
!64 = !{!63, !25, i64 28}
!65 = !{!63, !7, i64 32}
!66 = distinct !{!66, !32, !67}
!67 = !{!"llvm.loop.unswitch.partial.disable"}
!68 = distinct !{!68, !32}
!69 = !{!17, !14, i64 72}
!70 = !{!18, !14, i64 0}
!71 = !{!18, !14, i64 4}
!72 = !{!73, !14, i64 4}
!73 = !{!"_ZTS11ImFontGlyph", !53, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !14, i64 36}
!74 = !{!73, !14, i64 8}
!75 = !{!73, !14, i64 12}
!76 = !{!73, !14, i64 16}
!77 = !{!73, !14, i64 20}
!78 = !{!73, !14, i64 24}
!79 = !{!73, !14, i64 28}
!80 = !{!73, !14, i64 32}
!81 = !{!73, !14, i64 36}
!82 = distinct !{!82, !32}
!83 = distinct !{!83, !32}
!84 = distinct !{!84, !32}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,ReassociatePass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass,TailCallElimPass