; LLVM IR from modlfo/AudioEngine :: AudioEngine/JuceLibraryCode/juce_gui_basics.ll (ZN4juce8Viewport17updateVisibleAreaEv)

; 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"

%"class.juce::Rectangle" = type { %"class.juce::Point", i32, i32 }
%"class.juce::Point" = type { i32, i32 }
%"class.juce::Viewport" = type { %"class.juce::Component.base", %"class.juce::ComponentListener", %"class.juce::ScrollBar::Listener", %"class.juce::WeakReference", %"class.juce::Rectangle", i32, i32, i32, i8, i8, i8, i8, i8, i8, [6 x i8], %"class.juce::Component", %"class.juce::ScrollBar", %"class.juce::ScrollBar", %"class.juce::ScopedPointer.345" }
%"class.juce::Component.base" = type <{ %"class.juce::MouseListener", %"class.juce::String", %"class.juce::String", ptr, %"class.juce::Rectangle", %"class.juce::ScopedPointer", %"class.juce::ScopedPointer.0", %"class.juce::Array", ptr, %"class.juce::MouseCursor", ptr, %"class.juce::ScopedPointer.1", %"class.juce::ScopedPointer.2", %"class.juce::ScopedPointer.3", %"class.juce::ListenerList", %"class.juce::NamedValueSet", %"class.juce::WeakReference<juce::Component>::Master", %union.anon, i8 }>
%"class.juce::MouseListener" = type { ptr }
%"class.juce::String" = type { %"class.juce::CharPointer_UTF8" }
%"class.juce::CharPointer_UTF8" = type { ptr }
%"class.juce::ScopedPointer" = type { ptr }
%"class.juce::ScopedPointer.0" = type { ptr }
%"class.juce::Array" = type { %"class.juce::ArrayAllocationBase", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase" = type <{ %"class.juce::HeapBlock", i32, [4 x i8] }>
%"class.juce::HeapBlock" = type { ptr }
%"class.juce::MouseCursor" = type { ptr }
%"class.juce::ScopedPointer.1" = type { ptr }
%"class.juce::ScopedPointer.2" = type { ptr }
%"class.juce::ScopedPointer.3" = type { ptr }
%"class.juce::ListenerList" = type { %"class.juce::Array.4" }
%"class.juce::Array.4" = type { %"class.juce::ArrayAllocationBase.5", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.5" = type <{ %"class.juce::HeapBlock.6", i32, [4 x i8] }>
%"class.juce::HeapBlock.6" = type { ptr }
%"class.juce::NamedValueSet" = type { %"class.juce::Array.9" }
%"class.juce::Array.9" = type { %"class.juce::ArrayAllocationBase.10", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.10" = type <{ %"class.juce::HeapBlock.11", i32, [4 x i8] }>
%"class.juce::HeapBlock.11" = type { ptr }
%"class.juce::WeakReference<juce::Component>::Master" = type { %"class.juce::ReferenceCountedObjectPtr" }
%"class.juce::ReferenceCountedObjectPtr" = type { ptr }
%union.anon = type { i32 }
%"class.juce::ComponentListener" = type { ptr }
%"class.juce::ScrollBar::Listener" = type { ptr }
%"class.juce::WeakReference" = type { %"class.juce::ReferenceCountedObjectPtr" }
%"class.juce::Component" = type <{ %"class.juce::MouseListener", %"class.juce::String", %"class.juce::String", ptr, %"class.juce::Rectangle", %"class.juce::ScopedPointer", %"class.juce::ScopedPointer.0", %"class.juce::Array", ptr, %"class.juce::MouseCursor", ptr, %"class.juce::ScopedPointer.1", %"class.juce::ScopedPointer.2", %"class.juce::ScopedPointer.3", %"class.juce::ListenerList", %"class.juce::NamedValueSet", %"class.juce::WeakReference<juce::Component>::Master", %union.anon, i8, [3 x i8] }>
%"class.juce::ScrollBar" = type { %"class.juce::Component.base", %"class.juce::AsyncUpdater", %"class.juce::Timer", %"class.juce::Range.324", %"class.juce::Range.324", double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, %"class.juce::ScopedPointer.325", %"class.juce::ScopedPointer.325", %"class.juce::ListenerList.326" }
%"class.juce::AsyncUpdater" = type { ptr, %"class.juce::ReferenceCountedObjectPtr.15" }
%"class.juce::ReferenceCountedObjectPtr.15" = type { ptr }
%"class.juce::Timer" = type { ptr, i32, i32, ptr, ptr }
%"class.juce::Range.324" = type { double, double }
%"class.juce::ScopedPointer.325" = type { ptr }
%"class.juce::ListenerList.326" = type { %"class.juce::Array.327" }
%"class.juce::Array.327" = type { %"class.juce::ArrayAllocationBase.328", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.328" = type <{ %"class.juce::HeapBlock.329", i32, [4 x i8] }>
%"class.juce::HeapBlock.329" = type { ptr }
%"class.juce::ScopedPointer.345" = type { ptr }

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4juce9RectangleIiEC2Ev(ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #0 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9Component10setVisibleEb(ptr noundef nonnull align 8 dereferenceable(197), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEneEPS1_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component8getWidthEv(ptr noundef nonnull align 8 dereferenceable(197)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component9getHeightEv(ptr noundef nonnull align 8 dereferenceable(197)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(16) ptr @_ZN4juce9RectangleIiEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEeqEPS1_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9Component18setTopLeftPositionENS_5PointIiEE(ptr noundef nonnull align 8 dereferenceable(197), ptr noundef) #2 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK4juce9Component14getLocalBoundsEv(ptr dead_on_unwind noalias writable sret(%"class.juce::Rectangle") align 4, ptr noundef nonnull align 8 dereferenceable(197)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4juce9RectangleIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4juce9Component12getLocalAreaEPKS0_RKNS_9RectangleIiEE(ptr dead_on_unwind noalias writable sret(%"class.juce::Rectangle") align 4, ptr noundef nonnull align 8 dereferenceable(197), ptr noundef, ptr noundef nonnull align 4 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9Component9setBoundsEiiii(ptr noundef nonnull align 8 dereferenceable(197), i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component4getXEv(ptr noundef nonnull align 8 dereferenceable(197)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component4getYEv(ptr noundef nonnull align 8 dereferenceable(197)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN4juce4jminIiEET_S1_S1_(i32 noundef, i32 noundef) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9Component9setBoundsERKNS_9RectangleIiEE(ptr noundef nonnull align 8 dereferenceable(197), ptr noundef nonnull align 4 dereferenceable(16)) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197)) #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNK4juce9RectangleIiE11getPositionEv(ptr dead_on_unwind noalias writable sret(%"class.juce::Point") align 4, ptr noundef nonnull align 4 dereferenceable(16)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK4juce5PointIiEngEv(ptr dead_on_unwind noalias writable sret(%"class.juce::Point") align 4, ptr noundef nonnull align 4 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9RectangleIiEeqERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce5PointIiEneES1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9RectangleIiEneERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #0 align 2

declare void @_ZN4juce12AsyncUpdater23handleUpdateNowIfNeededEv(ptr noundef nonnull align 8 dereferenceable(16)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component8getRightEv(ptr noundef nonnull align 8 dereferenceable(197)) #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9ScrollBar14setRangeLimitsEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376), double noundef, double noundef, i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9ScrollBar15setCurrentRangeEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376), double noundef, double noundef, i32 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4juce9ScrollBar17setSingleStepSizeEd(ptr noundef nonnull align 8 dereferenceable(376), double noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9ScrollBar9autoHidesEv(ptr noundef nonnull align 8 dereferenceable(376)) #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4juce8Viewport17updateVisibleAreaEv(ptr noundef nonnull align 8 dereferenceable(1224) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i8, align 1
  %5 = alloca i8, align 1
  %6 = alloca i8, align 1
  %7 = alloca i8, align 1
  %8 = alloca i8, align 1
  %9 = alloca %"class.juce::Rectangle", align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca %"class.juce::Rectangle", align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.juce::Rectangle", align 4
  %16 = alloca %"class.juce::Rectangle", align 4
  %17 = alloca %"class.juce::Rectangle", align 4
  %18 = alloca %"class.juce::Rectangle", align 4
  %19 = alloca %"class.juce::Point", align 4
  %20 = alloca %"class.juce::Point", align 4
  %21 = alloca %"class.juce::Point", align 4
  %22 = alloca %"class.juce::Point", align 4
  %23 = alloca %"class.juce::Point", align 4
  %24 = alloca %"class.juce::Point", align 4
  %25 = alloca %"class.juce::Point", align 4
  %26 = alloca %"class.juce::Rectangle", align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %27 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #6
  %28 = call noundef i32 @_ZNK4juce8Viewport21getScrollBarThicknessEv(ptr noundef nonnull align 8 dereferenceable(1224) %27)
  store i32 %28, ptr %3, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %4) #6
  %29 = call noundef i32 @_ZNK4juce9Component8getWidthEv(ptr noundef nonnull align 8 dereferenceable(197) %27) #6
  %30 = load i32, ptr %3, align 4, !tbaa !9
  %31 = icmp sgt i32 %29, %30
  br i1 %31, label %32, label %36

32:                                               ; preds = %1
  %33 = call noundef i32 @_ZNK4juce9Component9getHeightEv(ptr noundef nonnull align 8 dereferenceable(197) %27) #6
  %34 = load i32, ptr %3, align 4, !tbaa !9
  %35 = icmp sgt i32 %33, %34
  br label %36

36:                                               ; preds = %32, %1
  %37 = phi i1 [ false, %1 ], [ %35, %32 ]
  %38 = zext i1 %37 to i8
  store i8 %38, ptr %4, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %5) #6
  %39 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 8
  %40 = load i8, ptr %39, align 4, !tbaa !13, !range !55, !noundef !56
  %41 = trunc i8 %40 to i1
  br i1 %41, label %42, label %45

42:                                               ; preds = %36
  %43 = load i8, ptr %4, align 1, !tbaa !11, !range !55, !noundef !56
  %44 = trunc i8 %43 to i1
  br label %45

45:                                               ; preds = %42, %36
  %46 = phi i1 [ false, %36 ], [ %44, %42 ]
  %47 = zext i1 %46 to i8
  store i8 %47, ptr %5, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #6
  %48 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 9
  %49 = load i8, ptr %48, align 1, !tbaa !57, !range !55, !noundef !56
  %50 = trunc i8 %49 to i1
  br i1 %50, label %51, label %54

51:                                               ; preds = %45
  %52 = load i8, ptr %4, align 1, !tbaa !11, !range !55, !noundef !56
  %53 = trunc i8 %52 to i1
  br label %54

54:                                               ; preds = %51, %45
  %55 = phi i1 [ false, %45 ], [ %53, %51 ]
  %56 = zext i1 %55 to i8
  store i8 %56, ptr %6, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #6
  store i8 0, ptr %7, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #6
  store i8 0, ptr %8, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #6
  call void @_ZN4juce9RectangleIiEC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  store i32 3, ptr %10, align 4, !tbaa !9
  br label %57

57:                                               ; preds = %226, %54
  %58 = load i32, ptr %10, align 4, !tbaa !9
  %59 = add nsw i32 %58, -1
  store i32 %59, ptr %10, align 4, !tbaa !9
  %60 = icmp sge i32 %59, 0
  br i1 %60, label %62, label %61

61:                                               ; preds = %57
  store i32 2, ptr %11, align 4
  br label %227

62:                                               ; preds = %57
  %63 = load i8, ptr %5, align 1, !tbaa !11, !range !55, !noundef !56
  %64 = trunc i8 %63 to i1
  br i1 %64, label %65, label %69

65:                                               ; preds = %62
  %66 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 17
  %67 = call noundef zeroext i1 @_ZNK4juce9ScrollBar9autoHidesEv(ptr noundef nonnull align 8 dereferenceable(376) %66) #6
  %68 = xor i1 %67, true
  br label %69

69:                                               ; preds = %65, %62
  %70 = phi i1 [ false, %62 ], [ %68, %65 ]
  %71 = zext i1 %70 to i8
  store i8 %71, ptr %7, align 1, !tbaa !11
  %72 = load i8, ptr %6, align 1, !tbaa !11, !range !55, !noundef !56
  %73 = trunc i8 %72 to i1
  br i1 %73, label %74, label %78

74:                                               ; preds = %69
  %75 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 16
  %76 = call noundef zeroext i1 @_ZNK4juce9ScrollBar9autoHidesEv(ptr noundef nonnull align 8 dereferenceable(376) %75) #6
  %77 = xor i1 %76, true
  br label %78

78:                                               ; preds = %74, %69
  %79 = phi i1 [ false, %69 ], [ %77, %74 ]
  %80 = zext i1 %79 to i8
  store i8 %80, ptr %8, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #6
  call void @_ZNK4juce9Component14getLocalBoundsEv(ptr dead_on_unwind writable sret(%"class.juce::Rectangle") align 4 %12, ptr noundef nonnull align 8 dereferenceable(197) %27) #6
  %81 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN4juce9RectangleIiEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %9, ptr noundef nonnull align 4 dereferenceable(16) %12) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %12) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #6
  %82 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %83 = call noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEneEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef null) #6
  br i1 %83, label %84, label %184

84:                                               ; preds = %78
  %85 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %86 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %85) #6
  %87 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %86) #6
  %88 = call noundef zeroext i1 @_ZNK4juce9RectangleIiE8containsERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %9, ptr noundef nonnull align 4 dereferenceable(16) %87) #6
  br i1 %88, label %184, label %89

89:                                               ; preds = %84
  %90 = load i8, ptr %5, align 1, !tbaa !11, !range !55, !noundef !56
  %91 = trunc i8 %90 to i1
  br i1 %91, label %92, label %108

92:                                               ; preds = %89
  %93 = load i8, ptr %7, align 1, !tbaa !11, !range !55, !noundef !56
  %94 = trunc i8 %93 to i1
  br i1 %94, label %106, label %95

95:                                               ; preds = %92
  %96 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %97 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %96) #6
  %98 = call noundef i32 @_ZNK4juce9Component4getXEv(ptr noundef nonnull align 8 dereferenceable(197) %97) #6
  %99 = icmp slt i32 %98, 0
  br i1 %99, label %106, label %100

100:                                              ; preds = %95
  %101 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %102 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #6
  %103 = call noundef i32 @_ZNK4juce9Component8getRightEv(ptr noundef nonnull align 8 dereferenceable(197) %102) #6
  %104 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %105 = icmp sgt i32 %103, %104
  br label %106

106:                                              ; preds = %100, %95, %92
  %107 = phi i1 [ true, %95 ], [ true, %92 ], [ %105, %100 ]
  br label %108

108:                                              ; preds = %106, %89
  %109 = phi i1 [ false, %89 ], [ %107, %106 ]
  %110 = zext i1 %109 to i8
  store i8 %110, ptr %7, align 1, !tbaa !11
  %111 = load i8, ptr %6, align 1, !tbaa !11, !range !55, !noundef !56
  %112 = trunc i8 %111 to i1
  br i1 %112, label %113, label %129

113:                                              ; preds = %108
  %114 = load i8, ptr %8, align 1, !tbaa !11, !range !55, !noundef !56
  %115 = trunc i8 %114 to i1
  br i1 %115, label %127, label %116

116:                                              ; preds = %113
  %117 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %118 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %117) #6
  %119 = call noundef i32 @_ZNK4juce9Component4getYEv(ptr noundef nonnull align 8 dereferenceable(197) %118) #6
  %120 = icmp slt i32 %119, 0
  br i1 %120, label %127, label %121

121:                                              ; preds = %116
  %122 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %123 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %122) #6
  %124 = call noundef i32 @_ZNK4juce9Component9getBottomEv(ptr noundef nonnull align 8 dereferenceable(197) %123) #6
  %125 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %126 = icmp sgt i32 %124, %125
  br label %127

127:                                              ; preds = %121, %116, %113
  %128 = phi i1 [ true, %116 ], [ true, %113 ], [ %126, %121 ]
  br label %129

129:                                              ; preds = %127, %108
  %130 = phi i1 [ false, %108 ], [ %128, %127 ]
  %131 = zext i1 %130 to i8
  store i8 %131, ptr %8, align 1, !tbaa !11
  %132 = load i8, ptr %8, align 1, !tbaa !11, !range !55, !noundef !56
  %133 = trunc i8 %132 to i1
  br i1 %133, label %134, label %138

134:                                              ; preds = %129
  %135 = call noundef i32 @_ZNK4juce9Component8getWidthEv(ptr noundef nonnull align 8 dereferenceable(197) %27) #6
  %136 = load i32, ptr %3, align 4, !tbaa !9
  %137 = sub nsw i32 %135, %136
  call void @_ZN4juce9RectangleIiE8setWidthEi(ptr noundef nonnull align 4 dereferenceable(16) %9, i32 noundef %137) #6
  br label %138

138:                                              ; preds = %134, %129
  %139 = load i8, ptr %7, align 1, !tbaa !11, !range !55, !noundef !56
  %140 = trunc i8 %139 to i1
  br i1 %140, label %141, label %145

141:                                              ; preds = %138
  %142 = call noundef i32 @_ZNK4juce9Component9getHeightEv(ptr noundef nonnull align 8 dereferenceable(197) %27) #6
  %143 = load i32, ptr %3, align 4, !tbaa !9
  %144 = sub nsw i32 %142, %143
  call void @_ZN4juce9RectangleIiE9setHeightEi(ptr noundef nonnull align 4 dereferenceable(16) %9, i32 noundef %144) #6
  br label %145

145:                                              ; preds = %141, %138
  %146 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %147 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %146) #6
  %148 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %147) #6
  %149 = call noundef zeroext i1 @_ZNK4juce9RectangleIiE8containsERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %9, ptr noundef nonnull align 4 dereferenceable(16) %148) #6
  br i1 %149, label %183, label %150

150:                                              ; preds = %145
  %151 = load i8, ptr %5, align 1, !tbaa !11, !range !55, !noundef !56
  %152 = trunc i8 %151 to i1
  br i1 %152, label %153, label %164

153:                                              ; preds = %150
  %154 = load i8, ptr %7, align 1, !tbaa !11, !range !55, !noundef !56
  %155 = trunc i8 %154 to i1
  br i1 %155, label %162, label %156

156:                                              ; preds = %153
  %157 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %158 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %157) #6
  %159 = call noundef i32 @_ZNK4juce9Component8getRightEv(ptr noundef nonnull align 8 dereferenceable(197) %158) #6
  %160 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %161 = icmp sgt i32 %159, %160
  br label %162

162:                                              ; preds = %156, %153
  %163 = phi i1 [ true, %153 ], [ %161, %156 ]
  br label %164

164:                                              ; preds = %162, %150
  %165 = phi i1 [ false, %150 ], [ %163, %162 ]
  %166 = zext i1 %165 to i8
  store i8 %166, ptr %7, align 1, !tbaa !11
  %167 = load i8, ptr %6, align 1, !tbaa !11, !range !55, !noundef !56
  %168 = trunc i8 %167 to i1
  br i1 %168, label %169, label %180

169:                                              ; preds = %164
  %170 = load i8, ptr %8, align 1, !tbaa !11, !range !55, !noundef !56
  %171 = trunc i8 %170 to i1
  br i1 %171, label %178, label %172

172:                                              ; preds = %169
  %173 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %174 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %173) #6
  %175 = call noundef i32 @_ZNK4juce9Component9getBottomEv(ptr noundef nonnull align 8 dereferenceable(197) %174) #6
  %176 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %177 = icmp sgt i32 %175, %176
  br label %178

178:                                              ; preds = %172, %169
  %179 = phi i1 [ true, %169 ], [ %177, %172 ]
  br label %180

180:                                              ; preds = %178, %164
  %181 = phi i1 [ false, %164 ], [ %179, %178 ]
  %182 = zext i1 %181 to i8
  store i8 %182, ptr %8, align 1, !tbaa !11
  br label %183

183:                                              ; preds = %180, %145
  br label %184

184:                                              ; preds = %183, %84, %78
  %185 = load i8, ptr %8, align 1, !tbaa !11, !range !55, !noundef !56
  %186 = trunc i8 %185 to i1
  br i1 %186, label %187, label %191

187:                                              ; preds = %184
  %188 = call noundef i32 @_ZNK4juce9Component8getWidthEv(ptr noundef nonnull align 8 dereferenceable(197) %27) #6
  %189 = load i32, ptr %3, align 4, !tbaa !9
  %190 = sub nsw i32 %188, %189
  call void @_ZN4juce9RectangleIiE8setWidthEi(ptr noundef nonnull align 4 dereferenceable(16) %9, i32 noundef %190) #6
  br label %191

191:                                              ; preds = %187, %184
  %192 = load i8, ptr %7, align 1, !tbaa !11, !range !55, !noundef !56
  %193 = trunc i8 %192 to i1
  br i1 %193, label %194, label %198

194:                                              ; preds = %191
  %195 = call noundef i32 @_ZNK4juce9Component9getHeightEv(ptr noundef nonnull align 8 dereferenceable(197) %27) #6
  %196 = load i32, ptr %3, align 4, !tbaa !9
  %197 = sub nsw i32 %195, %196
  call void @_ZN4juce9RectangleIiE9setHeightEi(ptr noundef nonnull align 4 dereferenceable(16) %9, i32 noundef %197) #6
  br label %198

198:                                              ; preds = %194, %191
  %199 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %200 = call noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEeqEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %199, ptr noundef null) #6
  br i1 %200, label %201, label %208

201:                                              ; preds = %198
  %202 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 15
  invoke void @_ZN4juce9Component9setBoundsERKNS_9RectangleIiEE(ptr noundef nonnull align 8 dereferenceable(197) %202, ptr noundef nonnull align 4 dereferenceable(16) %9)
          to label %203 unwind label %204

203:                                              ; preds = %201
  store i32 2, ptr %11, align 4
  br label %227

204:                                              ; preds = %201
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %13, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %14, align 4
  br label %228

208:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #6
  %209 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %210 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %209) #6
  %211 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %210) #6
  call void @_ZN4juce9RectangleIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %15, ptr noundef nonnull align 4 dereferenceable(16) %211) #6
  %212 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 15
  invoke void @_ZN4juce9Component9setBoundsERKNS_9RectangleIiEE(ptr noundef nonnull align 8 dereferenceable(197) %212, ptr noundef nonnull align 4 dereferenceable(16) %9)
          to label %213 unwind label %219

213:                                              ; preds = %208
  %214 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %215 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %214) #6
  %216 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %215) #6
  %217 = call noundef zeroext i1 @_ZNK4juce9RectangleIiEeqERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %15, ptr noundef nonnull align 4 dereferenceable(16) %216) #6
  br i1 %217, label %218, label %223

218:                                              ; preds = %213
  store i32 2, ptr %11, align 4
  br label %224

219:                                              ; preds = %208
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %13, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %14, align 4
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %15) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #6
  br label %228

223:                                              ; preds = %213
  store i32 0, ptr %11, align 4
  br label %224

224:                                              ; preds = %223, %218
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %15) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #6
  %225 = load i32, ptr %11, align 4
  switch i32 %225, label %227 [
    i32 0, label %226
  ]

226:                                              ; preds = %224
  br label %57, !llvm.loop !58

227:                                              ; preds = %224, %203, %61
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  br label %229

228:                                              ; preds = %219, %204
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  br label %384

229:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #6
  call void @_ZN4juce9RectangleIiEC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %16) #6
  %230 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %231 = call noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEneEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef null) #6
  br i1 %231, label %232, label %244

232:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #6
  %233 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 15
  %234 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %235 = call noundef ptr @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %234) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #6
  %236 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %237 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %236) #6
  call void @_ZNK4juce9Component14getLocalBoundsEv(ptr dead_on_unwind writable sret(%"class.juce::Rectangle") align 4 %18, ptr noundef nonnull align 8 dereferenceable(197) %237) #6
  invoke void @_ZNK4juce9Component12getLocalAreaEPKS0_RKNS_9RectangleIiEE(ptr dead_on_unwind writable sret(%"class.juce::Rectangle") align 4 %17, ptr noundef nonnull align 8 dereferenceable(197) %233, ptr noundef %235, ptr noundef nonnull align 4 dereferenceable(16) %18)
          to label %238 unwind label %240

238:                                              ; preds = %232
  %239 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN4juce9RectangleIiEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %16, ptr noundef nonnull align 4 dereferenceable(16) %17) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %17) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %18) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #6
  br label %244

240:                                              ; preds = %232
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %13, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %14, align 4
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %18) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #6
  br label %383

244:                                              ; preds = %238, %229
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  call void @_ZNK4juce9RectangleIiE11getPositionEv(ptr dead_on_unwind writable sret(%"class.juce::Point") align 4 %20, ptr noundef nonnull align 4 dereferenceable(16) %16) #6
  call void @_ZNK4juce5PointIiEngEv(ptr dead_on_unwind writable sret(%"class.juce::Point") align 4 %19, ptr noundef nonnull align 4 dereferenceable(8) %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  %245 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 17
  %246 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %247 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %248 = load i32, ptr %3, align 4, !tbaa !9
  invoke void @_ZN4juce9Component9setBoundsEiiii(ptr noundef nonnull align 8 dereferenceable(197) %245, i32 noundef 0, i32 noundef %246, i32 noundef %247, i32 noundef %248)
          to label %249 unwind label %273

249:                                              ; preds = %244
  %250 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 17
  %251 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %16) #6
  %252 = sitofp i32 %251 to double
  invoke void @_ZN4juce9ScrollBar14setRangeLimitsEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376) %250, double noundef 0.000000e+00, double noundef %252, i32 noundef 3)
          to label %253 unwind label %273

253:                                              ; preds = %249
  %254 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 17
  %255 = getelementptr inbounds %"class.juce::Point", ptr %19, i32 0, i32 0
  %256 = load i32, ptr %255, align 4, !tbaa !60
  %257 = sitofp i32 %256 to double
  %258 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %259 = sitofp i32 %258 to double
  invoke void @_ZN4juce9ScrollBar15setCurrentRangeEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376) %254, double noundef %257, double noundef %259, i32 noundef 3)
          to label %260 unwind label %273

260:                                              ; preds = %253
  %261 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 17
  %262 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 6
  %263 = load i32, ptr %262, align 4, !tbaa !61
  %264 = sitofp i32 %263 to double
  call void @_ZN4juce9ScrollBar17setSingleStepSizeEd(ptr noundef nonnull align 8 dereferenceable(376) %261, double noundef %264) #6
  %265 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 17
  %266 = getelementptr inbounds i8, ptr %265, i64 200
  call void @_ZN4juce12AsyncUpdater19cancelPendingUpdateEv(ptr noundef nonnull align 8 dereferenceable(16) %266) #6
  %267 = load i8, ptr %5, align 1, !tbaa !11, !range !55, !noundef !56
  %268 = trunc i8 %267 to i1
  br i1 %268, label %269, label %277

269:                                              ; preds = %260
  %270 = load i8, ptr %7, align 1, !tbaa !11, !range !55, !noundef !56
  %271 = trunc i8 %270 to i1
  br i1 %271, label %277, label %272

272:                                              ; preds = %269
  call void @_ZN4juce5PointIiE4setXEi(ptr noundef nonnull align 4 dereferenceable(8) %19, i32 noundef 0) #6
  br label %277

273:                                              ; preds = %310, %306, %286, %282, %277, %253, %249, %244
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %13, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %14, align 4
  br label %382

277:                                              ; preds = %272, %269, %260
  %278 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 16
  %279 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %280 = load i32, ptr %3, align 4, !tbaa !9
  %281 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  invoke void @_ZN4juce9Component9setBoundsEiiii(ptr noundef nonnull align 8 dereferenceable(197) %278, i32 noundef %279, i32 noundef 0, i32 noundef %280, i32 noundef %281)
          to label %282 unwind label %273

282:                                              ; preds = %277
  %283 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 16
  %284 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %16) #6
  %285 = sitofp i32 %284 to double
  invoke void @_ZN4juce9ScrollBar14setRangeLimitsEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376) %283, double noundef 0.000000e+00, double noundef %285, i32 noundef 3)
          to label %286 unwind label %273

286:                                              ; preds = %282
  %287 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 16
  %288 = getelementptr inbounds %"class.juce::Point", ptr %19, i32 0, i32 1
  %289 = load i32, ptr %288, align 4, !tbaa !62
  %290 = sitofp i32 %289 to double
  %291 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %292 = sitofp i32 %291 to double
  invoke void @_ZN4juce9ScrollBar15setCurrentRangeEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376) %287, double noundef %290, double noundef %292, i32 noundef 3)
          to label %293 unwind label %273

293:                                              ; preds = %286
  %294 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 16
  %295 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 7
  %296 = load i32, ptr %295, align 8, !tbaa !63
  %297 = sitofp i32 %296 to double
  call void @_ZN4juce9ScrollBar17setSingleStepSizeEd(ptr noundef nonnull align 8 dereferenceable(376) %294, double noundef %297) #6
  %298 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 16
  %299 = getelementptr inbounds i8, ptr %298, i64 200
  call void @_ZN4juce12AsyncUpdater19cancelPendingUpdateEv(ptr noundef nonnull align 8 dereferenceable(16) %299) #6
  %300 = load i8, ptr %6, align 1, !tbaa !11, !range !55, !noundef !56
  %301 = trunc i8 %300 to i1
  br i1 %301, label %302, label %306

302:                                              ; preds = %293
  %303 = load i8, ptr %8, align 1, !tbaa !11, !range !55, !noundef !56
  %304 = trunc i8 %303 to i1
  br i1 %304, label %306, label %305

305:                                              ; preds = %302
  call void @_ZN4juce5PointIiE4setYEi(ptr noundef nonnull align 4 dereferenceable(8) %19, i32 noundef 0) #6
  br label %306

306:                                              ; preds = %305, %302, %293
  %307 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 17
  %308 = load i8, ptr %7, align 1, !tbaa !11, !range !55, !noundef !56
  %309 = trunc i8 %308 to i1
  invoke void @_ZN4juce9Component10setVisibleEb(ptr noundef nonnull align 8 dereferenceable(197) %307, i1 noundef zeroext %309)
          to label %310 unwind label %273

310:                                              ; preds = %306
  %311 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 16
  %312 = load i8, ptr %8, align 1, !tbaa !11, !range !55, !noundef !56
  %313 = trunc i8 %312 to i1
  invoke void @_ZN4juce9Component10setVisibleEb(ptr noundef nonnull align 8 dereferenceable(197) %311, i1 noundef zeroext %313)
          to label %314 unwind label %273

314:                                              ; preds = %310
  %315 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %316 = call noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEneEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr noundef null) #6
  br i1 %316, label %317, label %335

317:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  call void @_ZN4juce5PointIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(8) %22, ptr noundef nonnull align 4 dereferenceable(8) %19) #6
  invoke void @_ZNK4juce8Viewport20viewportPosToCompPosENS_5PointIiEE(ptr dead_on_unwind writable sret(%"class.juce::Point") align 4 %21, ptr noundef nonnull align 8 dereferenceable(1224) %27, ptr noundef %22)
          to label %318 unwind label %327

318:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  %319 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %320 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %319) #6
  %321 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %320) #6
  call void @_ZNK4juce9RectangleIiE11getPositionEv(ptr dead_on_unwind writable sret(%"class.juce::Point") align 4 %23, ptr noundef nonnull align 4 dereferenceable(16) %321) #6
  call void @_ZN4juce5PointIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(8) %21) #6
  %322 = call noundef zeroext i1 @_ZNK4juce5PointIiEneES1_(ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  br i1 %322, label %323, label %331

323:                                              ; preds = %318
  %324 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 3
  %325 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %324) #6
  call void @_ZN4juce5PointIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %21) #6
  invoke void @_ZN4juce9Component18setTopLeftPositionENS_5PointIiEE(ptr noundef nonnull align 8 dereferenceable(197) %325, ptr noundef %25)
          to label %326 unwind label %327

326:                                              ; preds = %323
  store i32 1, ptr %11, align 4
  br label %332

327:                                              ; preds = %323, %317
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %13, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %382

331:                                              ; preds = %318
  store i32 0, ptr %11, align 4
  br label %332

332:                                              ; preds = %331, %326
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  %333 = load i32, ptr %11, align 4
  switch i32 %333, label %378 [
    i32 0, label %334
  ]

334:                                              ; preds = %332
  br label %335

335:                                              ; preds = %334, %314
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #6
  %336 = getelementptr inbounds %"class.juce::Point", ptr %19, i32 0, i32 0
  %337 = load i32, ptr %336, align 4, !tbaa !60
  %338 = getelementptr inbounds %"class.juce::Point", ptr %19, i32 0, i32 1
  %339 = load i32, ptr %338, align 4, !tbaa !62
  %340 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %16) #6
  %341 = getelementptr inbounds %"class.juce::Point", ptr %19, i32 0, i32 0
  %342 = load i32, ptr %341, align 4, !tbaa !60
  %343 = sub nsw i32 %340, %342
  %344 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %345 = invoke noundef i32 @_ZN4juce4jminIiEET_S1_S1_(i32 noundef %343, i32 noundef %344)
          to label %346 unwind label %363

346:                                              ; preds = %335
  %347 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %16) #6
  %348 = getelementptr inbounds %"class.juce::Point", ptr %19, i32 0, i32 1
  %349 = load i32, ptr %348, align 4, !tbaa !62
  %350 = sub nsw i32 %347, %349
  %351 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  %352 = invoke noundef i32 @_ZN4juce4jminIiEET_S1_S1_(i32 noundef %350, i32 noundef %351)
          to label %353 unwind label %363

353:                                              ; preds = %346
  call void @_ZN4juce9RectangleIiEC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %26, i32 noundef %337, i32 noundef %339, i32 noundef %345, i32 noundef %352) #6
  %354 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 4
  %355 = call noundef zeroext i1 @_ZNK4juce9RectangleIiEneERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %354, ptr noundef nonnull align 4 dereferenceable(16) %26) #6
  br i1 %355, label %356, label %371

356:                                              ; preds = %353
  %357 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 4
  %358 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN4juce9RectangleIiEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %357, ptr noundef nonnull align 4 dereferenceable(16) %26) #6
  %359 = load ptr, ptr %27, align 8, !tbaa !64
  %360 = getelementptr inbounds ptr, ptr %359, i64 45
  %361 = load ptr, ptr %360, align 8
  invoke void %361(ptr noundef nonnull align 8 dereferenceable(1224) %27, ptr noundef nonnull align 4 dereferenceable(16) %26)
          to label %362 unwind label %367

362:                                              ; preds = %356
  br label %371

363:                                              ; preds = %346, %335
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %13, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %14, align 4
  br label %381

367:                                              ; preds = %374, %371, %356
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %13, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %14, align 4
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %26) #6
  br label %381

371:                                              ; preds = %362, %353
  %372 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 17
  %373 = getelementptr inbounds i8, ptr %372, i64 200
  invoke void @_ZN4juce12AsyncUpdater23handleUpdateNowIfNeededEv(ptr noundef nonnull align 8 dereferenceable(16) %373)
          to label %374 unwind label %367

374:                                              ; preds = %371
  %375 = getelementptr inbounds %"class.juce::Viewport", ptr %27, i32 0, i32 16
  %376 = getelementptr inbounds i8, ptr %375, i64 200
  invoke void @_ZN4juce12AsyncUpdater23handleUpdateNowIfNeededEv(ptr noundef nonnull align 8 dereferenceable(16) %376)
          to label %377 unwind label %367

377:                                              ; preds = %374
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %26) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #6
  store i32 0, ptr %11, align 4
  br label %378

378:                                              ; preds = %377, %332
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %16) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #6
  %379 = load i32, ptr %11, align 4
  switch i32 %379, label %390 [
    i32 0, label %380
    i32 1, label %380
  ]

380:                                              ; preds = %378, %378
  ret void

381:                                              ; preds = %367, %363
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #6
  br label %382

382:                                              ; preds = %381, %327, %273
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %383

383:                                              ; preds = %382, %240
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %16) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #6
  br label %384

384:                                              ; preds = %383, %228
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #6
  br label %385

385:                                              ; preds = %384
  %386 = load ptr, ptr %13, align 8
  %387 = load i32, ptr %14, align 4
  %388 = insertvalue { ptr, i32 } poison, ptr %386, 0
  %389 = insertvalue { ptr, i32 } %388, i32 %387, 1
  resume { ptr, i32 } %389

390:                                              ; preds = %378
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4juce8Viewport20viewportPosToCompPosENS_5PointIiEE(ptr dead_on_unwind noalias writable sret(%"class.juce::Point") align 4, ptr noundef nonnull align 8 dereferenceable(1224), ptr noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component9getBottomEv(ptr noundef nonnull align 8 dereferenceable(197)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce8Viewport21getScrollBarThicknessEv(ptr noundef nonnull align 8 dereferenceable(1224)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9RectangleIiE8containsERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #0 align 2

; Function Attrs: nounwind
declare void @_ZN4juce12AsyncUpdater19cancelPendingUpdateEv(ptr noundef nonnull align 8 dereferenceable(16)) #5

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !12, i64 252}
!14 = !{!"_ZTSN4juce8ViewportE", !15, i64 0, !40, i64 200, !41, i64 208, !42, i64 216, !19, i64 224, !10, i64 240, !10, i64 244, !10, i64 248, !12, i64 252, !12, i64 253, !12, i64 254, !12, i64 255, !12, i64 256, !12, i64 257, !15, i64 264, !43, i64 464, !43, i64 840, !54, i64 1216}
!15 = !{!"_ZTSN4juce9ComponentE", !16, i64 0, !17, i64 8, !17, i64 16, !6, i64 24, !19, i64 32, !21, i64 48, !22, i64 56, !23, i64 64, !6, i64 88, !26, i64 96, !6, i64 104, !27, i64 112, !28, i64 120, !29, i64 128, !30, i64 136, !34, i64 160, !38, i64 184, !7, i64 192, !7, i64 196}
!16 = !{!"_ZTSN4juce13MouseListenerE"}
!17 = !{!"_ZTSN4juce6StringE", !18, i64 0}
!18 = !{!"_ZTSN4juce16CharPointer_UTF8E", !6, i64 0}
!19 = !{!"_ZTSN4juce9RectangleIiEE", !20, i64 0, !10, i64 8, !10, i64 12}
!20 = !{!"_ZTSN4juce5PointIiEE", !10, i64 0, !10, i64 4}
!21 = !{!"_ZTSN4juce13ScopedPointerINS_9Component10PositionerEEE", !6, i64 0}
!22 = !{!"_ZTSN4juce13ScopedPointerINS_15AffineTransformEEE", !6, i64 0}
!23 = !{!"_ZTSN4juce5ArrayIPNS_9ComponentENS_20DummyCriticalSectionELi0EEE", !24, i64 0, !10, i64 16}
!24 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_9ComponentENS_20DummyCriticalSectionEEE", !25, i64 0, !10, i64 8}
!25 = !{!"_ZTSN4juce9HeapBlockIPNS_9ComponentELb0EEE", !6, i64 0}
!26 = !{!"_ZTSN4juce11MouseCursorE", !6, i64 0}
!27 = !{!"_ZTSN4juce13ScopedPointerINS_20CachedComponentImageEEE", !6, i64 0}
!28 = !{!"_ZTSN4juce13ScopedPointerINS_9Component17MouseListenerListEEE", !6, i64 0}
!29 = !{!"_ZTSN4juce13ScopedPointerINS_5ArrayIPNS_11KeyListenerENS_20DummyCriticalSectionELi0EEEEE", !6, i64 0}
!30 = !{!"_ZTSN4juce12ListenerListINS_17ComponentListenerENS_5ArrayIPS1_NS_20DummyCriticalSectionELi0EEEEE", !31, i64 0}
!31 = !{!"_ZTSN4juce5ArrayIPNS_17ComponentListenerENS_20DummyCriticalSectionELi0EEE", !32, i64 0, !10, i64 16}
!32 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_17ComponentListenerENS_20DummyCriticalSectionEEE", !33, i64 0, !10, i64 8}
!33 = !{!"_ZTSN4juce9HeapBlockIPNS_17ComponentListenerELb0EEE", !6, i64 0}
!34 = !{!"_ZTSN4juce13NamedValueSetE", !35, i64 0}
!35 = !{!"_ZTSN4juce5ArrayINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionELi0EEE", !36, i64 0, !10, i64 16}
!36 = !{!"_ZTSN4juce19ArrayAllocationBaseINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionEEE", !37, i64 0, !10, i64 8}
!37 = !{!"_ZTSN4juce9HeapBlockINS_13NamedValueSet10NamedValueELb0EEE", !6, i64 0}
!38 = !{!"_ZTSN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE6MasterE", !39, i64 0}
!39 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE13SharedPointerEEE", !6, i64 0}
!40 = !{!"_ZTSN4juce17ComponentListenerE"}
!41 = !{!"_ZTSN4juce9ScrollBar8ListenerE"}
!42 = !{!"_ZTSN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEE", !39, i64 0}
!43 = !{!"_ZTSN4juce9ScrollBarE", !15, i64 0, !44, i64 200, !46, i64 216, !47, i64 248, !47, i64 264, !48, i64 280, !48, i64 288, !10, i64 296, !10, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !12, i64 332, !12, i64 333, !12, i64 334, !49, i64 336, !49, i64 344, !50, i64 352}
!44 = !{!"_ZTSN4juce12AsyncUpdaterE", !45, i64 8}
!45 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_12AsyncUpdater19AsyncUpdaterMessageEEE", !6, i64 0}
!46 = !{!"_ZTSN4juce5TimerE", !10, i64 8, !10, i64 12, !6, i64 16, !6, i64 24}
!47 = !{!"_ZTSN4juce5RangeIdEE", !48, i64 0, !48, i64 8}
!48 = !{!"double", !7, i64 0}
!49 = !{!"_ZTSN4juce13ScopedPointerINS_9ScrollBar15ScrollbarButtonEEE", !6, i64 0}
!50 = !{!"_ZTSN4juce12ListenerListINS_9ScrollBar8ListenerENS_5ArrayIPS2_NS_20DummyCriticalSectionELi0EEEEE", !51, i64 0}
!51 = !{!"_ZTSN4juce5ArrayIPNS_9ScrollBar8ListenerENS_20DummyCriticalSectionELi0EEE", !52, i64 0, !10, i64 16}
!52 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_9ScrollBar8ListenerENS_20DummyCriticalSectionEEE", !53, i64 0, !10, i64 8}
!53 = !{!"_ZTSN4juce9HeapBlockIPNS_9ScrollBar8ListenerELb0EEE", !6, i64 0}
!54 = !{!"_ZTSN4juce13ScopedPointerINS_8Viewport20DragToScrollListenerEEE", !6, i64 0}
!55 = !{i8 0, i8 2}
!56 = !{}
!57 = !{!14, !12, i64 253}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = !{!20, !10, i64 0}
!61 = !{!14, !10, i64 244}
!62 = !{!20, !10, i64 4}
!63 = !{!14, !10, i64 248}
!64 = !{!65, !65, i64 0}
!65 = !{!"vtable pointer", !8, i64 0}


; 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"

%"class.juce::Rectangle" = type { %"class.juce::Point", i32, i32 }
%"class.juce::Point" = type { i32, i32 }

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4juce9RectangleIiEC2Ev(ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #0 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9Component10setVisibleEb(ptr noundef nonnull align 8 dereferenceable(197), i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEneEPS1_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component8getWidthEv(ptr noundef nonnull align 8 dereferenceable(197)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component9getHeightEv(ptr noundef nonnull align 8 dereferenceable(197)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(16) ptr @_ZN4juce9RectangleIiEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEeqEPS1_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9Component18setTopLeftPositionENS_5PointIiEE(ptr noundef nonnull align 8 dereferenceable(197), ptr noundef) local_unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK4juce9Component14getLocalBoundsEv(ptr dead_on_unwind noalias writable sret(%"class.juce::Rectangle") align 4, ptr noundef nonnull align 8 dereferenceable(197)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4juce9RectangleIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4juce9Component12getLocalAreaEPKS0_RKNS_9RectangleIiEE(ptr dead_on_unwind noalias writable sret(%"class.juce::Rectangle") align 4, ptr noundef nonnull align 8 dereferenceable(197), ptr noundef, ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9Component9setBoundsEiiii(ptr noundef nonnull align 8 dereferenceable(197), i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component4getXEv(ptr noundef nonnull align 8 dereferenceable(197)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component4getYEv(ptr noundef nonnull align 8 dereferenceable(197)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN4juce4jminIiEET_S1_S1_(i32 noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9Component9setBoundsERKNS_9RectangleIiEE(ptr noundef nonnull align 8 dereferenceable(197), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNK4juce9RectangleIiE11getPositionEv(ptr dead_on_unwind noalias writable sret(%"class.juce::Point") align 4, ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNK4juce5PointIiEngEv(ptr dead_on_unwind noalias writable sret(%"class.juce::Point") align 4, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9RectangleIiEeqERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce5PointIiEneES1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9RectangleIiEneERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #0 align 2

declare void @_ZN4juce12AsyncUpdater23handleUpdateNowIfNeededEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component8getRightEv(ptr noundef nonnull align 8 dereferenceable(197)) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9ScrollBar14setRangeLimitsEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376), double noundef, double noundef, i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce9ScrollBar15setCurrentRangeEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376), double noundef, double noundef, i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4juce9ScrollBar17setSingleStepSizeEd(ptr noundef nonnull align 8 dereferenceable(376), double noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9ScrollBar9autoHidesEv(ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4juce8Viewport17updateVisibleAreaEv(ptr noundef nonnull align 8 dereferenceable(1224) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.juce::Rectangle", align 4
  %3 = alloca %"class.juce::Rectangle", align 4
  %4 = alloca %"class.juce::Rectangle", align 4
  %5 = alloca %"class.juce::Rectangle", align 4
  %6 = alloca %"class.juce::Rectangle", align 4
  %7 = alloca %"class.juce::Rectangle", align 4
  %8 = alloca %"class.juce::Point", align 4
  %9 = alloca %"class.juce::Point", align 4
  %10 = alloca %"class.juce::Point", align 4
  %11 = alloca %"class.juce::Point", align 4
  %12 = alloca %"class.juce::Point", align 4
  %13 = alloca %"class.juce::Point", align 4
  %14 = alloca %"class.juce::Point", align 4
  %15 = alloca %"class.juce::Rectangle", align 4
  %16 = tail call noundef i32 @_ZNK4juce8Viewport21getScrollBarThicknessEv(ptr noundef nonnull align 8 dereferenceable(1224) %0)
  %17 = tail call noundef i32 @_ZNK4juce9Component8getWidthEv(ptr noundef nonnull align 8 dereferenceable(197) %0) #6
  %18 = icmp sgt i32 %17, %16
  br i1 %18, label %19, label %22

19:                                               ; preds = %1
  %20 = tail call noundef i32 @_ZNK4juce9Component9getHeightEv(ptr noundef nonnull align 8 dereferenceable(197) %0) #6
  %21 = icmp sgt i32 %20, %16
  br label %22

22:                                               ; preds = %19, %1
  %23 = phi i1 [ false, %1 ], [ %21, %19 ]
  %24 = getelementptr inbounds i8, ptr %0, i64 252
  %25 = load i8, ptr %24, align 4, !tbaa !5, !range !52, !noundef !53
  %26 = trunc nuw i8 %25 to i1
  %27 = and i1 %23, %26
  %28 = getelementptr inbounds i8, ptr %0, i64 253
  %29 = load i8, ptr %28, align 1, !tbaa !54, !range !52, !noundef !53
  %30 = trunc nuw i8 %29 to i1
  %31 = and i1 %23, %30
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #6
  call void @_ZN4juce9RectangleIiEC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %32 = getelementptr inbounds i8, ptr %0, i64 840
  %33 = getelementptr inbounds i8, ptr %0, i64 464
  %34 = getelementptr inbounds i8, ptr %0, i64 216
  %.not = xor i1 %27, true
  %.not56 = xor i1 %31, true
  %35 = getelementptr inbounds i8, ptr %0, i64 264
  br label %36

36:                                               ; preds = %116, %22
  %37 = phi i32 [ 2, %22 ], [ %120, %116 ]
  br i1 %27, label %38, label %41

38:                                               ; preds = %36
  %39 = call noundef zeroext i1 @_ZNK4juce9ScrollBar9autoHidesEv(ptr noundef nonnull align 8 dereferenceable(376) %32) #6
  %40 = xor i1 %39, true
  br label %41

41:                                               ; preds = %38, %36
  %42 = phi i1 [ false, %36 ], [ %40, %38 ]
  br i1 %31, label %43, label %46

43:                                               ; preds = %41
  %44 = call noundef zeroext i1 @_ZNK4juce9ScrollBar9autoHidesEv(ptr noundef nonnull align 8 dereferenceable(376) %33) #6
  %45 = xor i1 %44, true
  br label %46

46:                                               ; preds = %43, %41
  %47 = phi i1 [ false, %41 ], [ %45, %43 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #6
  call void @_ZNK4juce9Component14getLocalBoundsEv(ptr dead_on_unwind nonnull writable sret(%"class.juce::Rectangle") align 4 %3, ptr noundef nonnull align 8 dereferenceable(197) %0) #6
  %48 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN4juce9RectangleIiEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %2, ptr noundef nonnull align 4 dereferenceable(16) %3) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %3) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #6
  %49 = call noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEneEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef null) #6
  br i1 %49, label %50, label %100

50:                                               ; preds = %46
  %51 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %52 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %51) #6
  %53 = call noundef zeroext i1 @_ZNK4juce9RectangleIiE8containsERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %2, ptr noundef nonnull align 4 dereferenceable(16) %52) #6
  br i1 %53, label %100, label %54

54:                                               ; preds = %50
  %brmerge = or i1 %42, %.not
  br i1 %brmerge, label %64, label %55

55:                                               ; preds = %54
  %56 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %57 = call noundef i32 @_ZNK4juce9Component4getXEv(ptr noundef nonnull align 8 dereferenceable(197) %56) #6
  %58 = icmp slt i32 %57, 0
  br i1 %58, label %64, label %59

59:                                               ; preds = %55
  %60 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %61 = call noundef i32 @_ZNK4juce9Component8getRightEv(ptr noundef nonnull align 8 dereferenceable(197) %60) #6
  %62 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %63 = icmp sgt i32 %61, %62
  br label %64

64:                                               ; preds = %54, %55, %59
  %65 = phi i1 [ %27, %54 ], [ true, %55 ], [ %63, %59 ]
  %brmerge57 = or i1 %47, %.not56
  br i1 %brmerge57, label %75, label %66

66:                                               ; preds = %64
  %67 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %68 = call noundef i32 @_ZNK4juce9Component4getYEv(ptr noundef nonnull align 8 dereferenceable(197) %67) #6
  %69 = icmp slt i32 %68, 0
  br i1 %69, label %.thread, label %70

70:                                               ; preds = %66
  %71 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %72 = call noundef i32 @_ZNK4juce9Component9getBottomEv(ptr noundef nonnull align 8 dereferenceable(197) %71) #6
  %73 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %74 = icmp sgt i32 %72, %73
  br i1 %74, label %.thread, label %78

75:                                               ; preds = %64
  br i1 %31, label %.thread, label %78

.thread:                                          ; preds = %66, %70, %75
  %76 = call noundef i32 @_ZNK4juce9Component8getWidthEv(ptr noundef nonnull align 8 dereferenceable(197) %0) #6
  %77 = sub nsw i32 %76, %16
  call void @_ZN4juce9RectangleIiE8setWidthEi(ptr noundef nonnull align 4 dereferenceable(16) %2, i32 noundef %77) #6
  br label %78

78:                                               ; preds = %70, %.thread, %75
  %79 = phi i1 [ true, %.thread ], [ false, %75 ], [ false, %70 ]
  br i1 %65, label %80, label %83

80:                                               ; preds = %78
  %81 = call noundef i32 @_ZNK4juce9Component9getHeightEv(ptr noundef nonnull align 8 dereferenceable(197) %0) #6
  %82 = sub nsw i32 %81, %16
  call void @_ZN4juce9RectangleIiE9setHeightEi(ptr noundef nonnull align 4 dereferenceable(16) %2, i32 noundef %82) #6
  br label %83

83:                                               ; preds = %80, %78
  %84 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %85 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %84) #6
  %86 = call noundef zeroext i1 @_ZNK4juce9RectangleIiE8containsERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %2, ptr noundef nonnull align 4 dereferenceable(16) %85) #6
  br i1 %86, label %100, label %87

87:                                               ; preds = %83
  %brmerge60 = or i1 %65, %.not
  br i1 %brmerge60, label %93, label %88

88:                                               ; preds = %87
  %89 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %90 = call noundef i32 @_ZNK4juce9Component8getRightEv(ptr noundef nonnull align 8 dereferenceable(197) %89) #6
  %91 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %92 = icmp sgt i32 %90, %91
  br label %93

93:                                               ; preds = %87, %88
  %94 = phi i1 [ %27, %87 ], [ %92, %88 ]
  %brmerge63 = or i1 %79, %.not56
  br i1 %brmerge63, label %100, label %95

95:                                               ; preds = %93
  %96 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %97 = call noundef i32 @_ZNK4juce9Component9getBottomEv(ptr noundef nonnull align 8 dereferenceable(197) %96) #6
  %98 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %99 = icmp sgt i32 %97, %98
  %.14766 = zext i1 %94 to i8
  br i1 %99, label %101, label %104

100:                                              ; preds = %93, %83, %50, %46
  %.147.in = phi i1 [ %42, %50 ], [ %65, %83 ], [ %42, %46 ], [ %94, %93 ]
  %.144.in = phi i1 [ %47, %50 ], [ %79, %83 ], [ %47, %46 ], [ %31, %93 ]
  %.147 = zext i1 %.147.in to i8
  br i1 %.144.in, label %101, label %104

101:                                              ; preds = %95, %100
  %.14772 = phi i8 [ %.14766, %95 ], [ %.147, %100 ]
  %.147.in68 = phi i1 [ %94, %95 ], [ %.147.in, %100 ]
  %102 = call noundef i32 @_ZNK4juce9Component8getWidthEv(ptr noundef nonnull align 8 dereferenceable(197) %0) #6
  %103 = sub nsw i32 %102, %16
  call void @_ZN4juce9RectangleIiE8setWidthEi(ptr noundef nonnull align 4 dereferenceable(16) %2, i32 noundef %103) #6
  br i1 %.147.in68, label %105, label %108

104:                                              ; preds = %95, %100
  %.14771 = phi i8 [ %.14766, %95 ], [ %.147, %100 ]
  %.147.in67 = phi i1 [ %94, %95 ], [ %.147.in, %100 ]
  br i1 %.147.in67, label %105, label %108

105:                                              ; preds = %101, %104
  %.1446976 = phi i8 [ 1, %101 ], [ 0, %104 ]
  %.1477174 = phi i8 [ %.14772, %101 ], [ %.14771, %104 ]
  %106 = call noundef i32 @_ZNK4juce9Component9getHeightEv(ptr noundef nonnull align 8 dereferenceable(197) %0) #6
  %107 = sub nsw i32 %106, %16
  call void @_ZN4juce9RectangleIiE9setHeightEi(ptr noundef nonnull align 4 dereferenceable(16) %2, i32 noundef %107) #6
  br label %108

108:                                              ; preds = %101, %105, %104
  %.1446975 = phi i8 [ 1, %101 ], [ %.1446976, %105 ], [ 0, %104 ]
  %.1477173 = phi i8 [ %.14772, %101 ], [ %.1477174, %105 ], [ %.14771, %104 ]
  %109 = call noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEeqEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef null) #6
  br i1 %109, label %110, label %113

110:                                              ; preds = %108
  invoke void @_ZN4juce9Component9setBoundsERKNS_9RectangleIiEE(ptr noundef nonnull align 8 dereferenceable(197) %35, ptr noundef nonnull align 4 dereferenceable(16) %2)
          to label %.loopexit unwind label %111

111:                                              ; preds = %110
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %216

113:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #6
  %114 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %115 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %114) #6
  call void @_ZN4juce9RectangleIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %4, ptr noundef nonnull align 4 dereferenceable(16) %115) #6
  invoke void @_ZN4juce9Component9setBoundsERKNS_9RectangleIiEE(ptr noundef nonnull align 8 dereferenceable(197) %35, ptr noundef nonnull align 4 dereferenceable(16) %2)
          to label %116 unwind label %121

116:                                              ; preds = %113
  %117 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %118 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %117) #6
  %119 = call noundef zeroext i1 @_ZNK4juce9RectangleIiEeqERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %4, ptr noundef nonnull align 4 dereferenceable(16) %118) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %4) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #6
  %120 = add nsw i32 %37, -1
  %.not85 = icmp eq i32 %37, 0
  %or.cond = select i1 %119, i1 true, i1 %.not85
  br i1 %or.cond, label %.loopexit, label %36, !llvm.loop !55

121:                                              ; preds = %113
  %122 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %4) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #6
  br label %216

.loopexit:                                        ; preds = %116, %110
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #6
  call void @_ZN4juce9RectangleIiEC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %5) #6
  %123 = call noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEneEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef null) #6
  br i1 %123, label %124, label %131

124:                                              ; preds = %.loopexit
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #6
  %125 = call noundef ptr @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #6
  %126 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  call void @_ZNK4juce9Component14getLocalBoundsEv(ptr dead_on_unwind nonnull writable sret(%"class.juce::Rectangle") align 4 %7, ptr noundef nonnull align 8 dereferenceable(197) %126) #6
  invoke void @_ZNK4juce9Component12getLocalAreaEPKS0_RKNS_9RectangleIiEE(ptr dead_on_unwind nonnull writable sret(%"class.juce::Rectangle") align 4 %6, ptr noundef nonnull align 8 dereferenceable(197) %35, ptr noundef %125, ptr noundef nonnull align 4 dereferenceable(16) %7)
          to label %127 unwind label %129

127:                                              ; preds = %124
  %128 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN4juce9RectangleIiEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %5, ptr noundef nonnull align 4 dereferenceable(16) %6) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %6) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %7) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #6
  br label %131

129:                                              ; preds = %124
  %130 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %7) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #6
  br label %215

131:                                              ; preds = %127, %.loopexit
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  call void @_ZNK4juce9RectangleIiE11getPositionEv(ptr dead_on_unwind nonnull writable sret(%"class.juce::Point") align 4 %9, ptr noundef nonnull align 4 dereferenceable(16) %5) #6
  call void @_ZNK4juce5PointIiEngEv(ptr dead_on_unwind nonnull writable sret(%"class.juce::Point") align 4 %8, ptr noundef nonnull align 4 dereferenceable(8) %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  %132 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %133 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  invoke void @_ZN4juce9Component9setBoundsEiiii(ptr noundef nonnull align 8 dereferenceable(197) %32, i32 noundef 0, i32 noundef %132, i32 noundef %133, i32 noundef %16)
          to label %134 unwind label %150

134:                                              ; preds = %131
  %135 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5) #6
  %136 = sitofp i32 %135 to double
  invoke void @_ZN4juce9ScrollBar14setRangeLimitsEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376) %32, double noundef 0.000000e+00, double noundef %136, i32 noundef 3)
          to label %137 unwind label %150

137:                                              ; preds = %134
  %138 = load i32, ptr %8, align 4, !tbaa !57
  %139 = sitofp i32 %138 to double
  %140 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %141 = sitofp i32 %140 to double
  invoke void @_ZN4juce9ScrollBar15setCurrentRangeEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376) %32, double noundef %139, double noundef %141, i32 noundef 3)
          to label %142 unwind label %150

142:                                              ; preds = %137
  %143 = getelementptr inbounds i8, ptr %0, i64 244
  %144 = load i32, ptr %143, align 4, !tbaa !58
  %145 = sitofp i32 %144 to double
  call void @_ZN4juce9ScrollBar17setSingleStepSizeEd(ptr noundef nonnull align 8 dereferenceable(376) %32, double noundef %145) #6
  %146 = getelementptr inbounds i8, ptr %0, i64 1040
  call void @_ZN4juce12AsyncUpdater19cancelPendingUpdateEv(ptr noundef nonnull align 8 dereferenceable(16) %146) #6
  br i1 %27, label %147, label %152

147:                                              ; preds = %142
  %148 = trunc nuw i8 %.1477173 to i1
  br i1 %148, label %152, label %149

149:                                              ; preds = %147
  call void @_ZN4juce5PointIiE4setXEi(ptr noundef nonnull align 4 dereferenceable(8) %8, i32 noundef 0) #6
  br label %152

150:                                              ; preds = %174, %172, %158, %155, %152, %137, %134, %131
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %214

152:                                              ; preds = %149, %147, %142
  %153 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %154 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  invoke void @_ZN4juce9Component9setBoundsEiiii(ptr noundef nonnull align 8 dereferenceable(197) %33, i32 noundef %153, i32 noundef 0, i32 noundef %16, i32 noundef %154)
          to label %155 unwind label %150

155:                                              ; preds = %152
  %156 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5) #6
  %157 = sitofp i32 %156 to double
  invoke void @_ZN4juce9ScrollBar14setRangeLimitsEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376) %33, double noundef 0.000000e+00, double noundef %157, i32 noundef 3)
          to label %158 unwind label %150

158:                                              ; preds = %155
  %159 = getelementptr inbounds i8, ptr %8, i64 4
  %160 = load i32, ptr %159, align 4, !tbaa !59
  %161 = sitofp i32 %160 to double
  %162 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %163 = sitofp i32 %162 to double
  invoke void @_ZN4juce9ScrollBar15setCurrentRangeEddNS_16NotificationTypeE(ptr noundef nonnull align 8 dereferenceable(376) %33, double noundef %161, double noundef %163, i32 noundef 3)
          to label %164 unwind label %150

164:                                              ; preds = %158
  %165 = getelementptr inbounds i8, ptr %0, i64 248
  %166 = load i32, ptr %165, align 8, !tbaa !60
  %167 = sitofp i32 %166 to double
  call void @_ZN4juce9ScrollBar17setSingleStepSizeEd(ptr noundef nonnull align 8 dereferenceable(376) %33, double noundef %167) #6
  %168 = getelementptr inbounds i8, ptr %0, i64 664
  call void @_ZN4juce12AsyncUpdater19cancelPendingUpdateEv(ptr noundef nonnull align 8 dereferenceable(16) %168) #6
  br i1 %31, label %169, label %172

169:                                              ; preds = %164
  %170 = trunc nuw i8 %.1446975 to i1
  br i1 %170, label %172, label %171

171:                                              ; preds = %169
  call void @_ZN4juce5PointIiE4setYEi(ptr noundef nonnull align 4 dereferenceable(8) %8, i32 noundef 0) #6
  br label %172

172:                                              ; preds = %171, %169, %164
  %173 = trunc nuw i8 %.1477173 to i1
  invoke void @_ZN4juce9Component10setVisibleEb(ptr noundef nonnull align 8 dereferenceable(197) %32, i1 noundef zeroext %173)
          to label %174 unwind label %150

174:                                              ; preds = %172
  %175 = trunc nuw i8 %.1446975 to i1
  invoke void @_ZN4juce9Component10setVisibleEb(ptr noundef nonnull align 8 dereferenceable(197) %33, i1 noundef zeroext %175)
          to label %176 unwind label %150

176:                                              ; preds = %174
  %177 = call noundef zeroext i1 @_ZNK4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEneEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef null) #6
  br i1 %177, label %178, label %188

178:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  call void @_ZN4juce5PointIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %8) #6
  invoke void @_ZNK4juce8Viewport20viewportPosToCompPosENS_5PointIiEE(ptr dead_on_unwind nonnull writable sret(%"class.juce::Point") align 4 %10, ptr noundef nonnull align 8 dereferenceable(1224) %0, ptr noundef nonnull %11)
          to label %179 unwind label %185

179:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  %180 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  %181 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZNK4juce9Component9getBoundsEv(ptr noundef nonnull align 8 dereferenceable(197) %180) #6
  call void @_ZNK4juce9RectangleIiE11getPositionEv(ptr dead_on_unwind nonnull writable sret(%"class.juce::Point") align 4 %12, ptr noundef nonnull align 4 dereferenceable(16) %181) #6
  call void @_ZN4juce5PointIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(8) %10) #6
  %182 = call noundef zeroext i1 @_ZNK4juce5PointIiEneES1_(ptr noundef nonnull align 4 dereferenceable(8) %12, ptr noundef nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  br i1 %182, label %183, label %.critedge

183:                                              ; preds = %179
  %184 = call noundef ptr @_ZN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  call void @_ZN4juce5PointIiEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(8) %10) #6
  invoke void @_ZN4juce9Component18setTopLeftPositionENS_5PointIiEE(ptr noundef nonnull align 8 dereferenceable(197) %184, ptr noundef nonnull %14)
          to label %187 unwind label %185

185:                                              ; preds = %183, %178
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %214

187:                                              ; preds = %183
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %213

.critedge:                                        ; preds = %179
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %188

188:                                              ; preds = %.critedge, %176
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #6
  %189 = load i32, ptr %8, align 4, !tbaa !57
  %190 = load i32, ptr %159, align 4, !tbaa !59
  %191 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5) #6
  %192 = load i32, ptr %8, align 4, !tbaa !57
  %193 = sub nsw i32 %191, %192
  %194 = call noundef i32 @_ZNK4juce9RectangleIiE8getWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %195 = call noundef i32 @_ZN4juce4jminIiEET_S1_S1_(i32 noundef %193, i32 noundef %194)
  %196 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5) #6
  %197 = load i32, ptr %159, align 4, !tbaa !59
  %198 = sub nsw i32 %196, %197
  %199 = call noundef i32 @_ZNK4juce9RectangleIiE9getHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  %200 = call noundef i32 @_ZN4juce4jminIiEET_S1_S1_(i32 noundef %198, i32 noundef %199)
  call void @_ZN4juce9RectangleIiEC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %15, i32 noundef %189, i32 noundef %190, i32 noundef %195, i32 noundef %200) #6
  %201 = getelementptr inbounds i8, ptr %0, i64 224
  %202 = call noundef zeroext i1 @_ZNK4juce9RectangleIiEneERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %201, ptr noundef nonnull align 4 dereferenceable(16) %15) #6
  br i1 %202, label %203, label %210

203:                                              ; preds = %188
  %204 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN4juce9RectangleIiEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(16) %201, ptr noundef nonnull align 4 dereferenceable(16) %15) #6
  %205 = load ptr, ptr %0, align 8, !tbaa !61
  %206 = getelementptr inbounds i8, ptr %205, i64 360
  %207 = load ptr, ptr %206, align 8
  invoke void %207(ptr noundef nonnull align 8 dereferenceable(1224) %0, ptr noundef nonnull align 4 dereferenceable(16) %15)
          to label %210 unwind label %208

208:                                              ; preds = %211, %210, %203
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %15) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  br label %214

210:                                              ; preds = %203, %188
  invoke void @_ZN4juce12AsyncUpdater23handleUpdateNowIfNeededEv(ptr noundef nonnull align 8 dereferenceable(16) %146)
          to label %211 unwind label %208

211:                                              ; preds = %210
  invoke void @_ZN4juce12AsyncUpdater23handleUpdateNowIfNeededEv(ptr noundef nonnull align 8 dereferenceable(16) %168)
          to label %212 unwind label %208

212:                                              ; preds = %211
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %15) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  br label %213

213:                                              ; preds = %187, %212
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %5) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #6
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #6
  ret void

214:                                              ; preds = %208, %185, %150
  %.pn52 = phi { ptr, i32 } [ %209, %208 ], [ %186, %185 ], [ %151, %150 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  br label %215

215:                                              ; preds = %214, %129
  %.pn52.pn = phi { ptr, i32 } [ %.pn52, %214 ], [ %130, %129 ]
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %5) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #6
  br label %216

216:                                              ; preds = %111, %121, %215
  %.pn52.pn.pn = phi { ptr, i32 } [ %.pn52.pn, %215 ], [ %112, %111 ], [ %122, %121 ]
  call void @_ZN4juce9RectangleIiED2Ev(ptr noundef nonnull align 4 dereferenceable(16) %2) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #6
  resume { ptr, i32 } %.pn52.pn.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4juce8Viewport20viewportPosToCompPosENS_5PointIiEE(ptr dead_on_unwind noalias writable sret(%"class.juce::Point") align 4, ptr noundef nonnull align 8 dereferenceable(1224), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce9Component9getBottomEv(ptr noundef nonnull align 8 dereferenceable(197)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce8Viewport21getScrollBarThicknessEv(ptr noundef nonnull align 8 dereferenceable(1224)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9RectangleIiE8containsERKS1_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #0 align 2

; Function Attrs: nounwind
declare void @_ZN4juce12AsyncUpdater19cancelPendingUpdateEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !39, i64 252}
!6 = !{!"_ZTSN4juce8ViewportE", !7, i64 0, !36, i64 200, !37, i64 208, !38, i64 216, !14, i64 224, !16, i64 240, !16, i64 244, !16, i64 248, !39, i64 252, !39, i64 253, !39, i64 254, !39, i64 255, !39, i64 256, !39, i64 257, !7, i64 264, !40, i64 464, !40, i64 840, !51, i64 1216}
!7 = !{!"_ZTSN4juce9ComponentE", !8, i64 0, !9, i64 8, !9, i64 16, !11, i64 24, !14, i64 32, !17, i64 48, !18, i64 56, !19, i64 64, !11, i64 88, !22, i64 96, !11, i64 104, !23, i64 112, !24, i64 120, !25, i64 128, !26, i64 136, !30, i64 160, !34, i64 184, !12, i64 192, !12, i64 196}
!8 = !{!"_ZTSN4juce13MouseListenerE"}
!9 = !{!"_ZTSN4juce6StringE", !10, i64 0}
!10 = !{!"_ZTSN4juce16CharPointer_UTF8E", !11, i64 0}
!11 = !{!"any pointer", !12, i64 0}
!12 = !{!"omnipotent char", !13, i64 0}
!13 = !{!"Simple C++ TBAA"}
!14 = !{!"_ZTSN4juce9RectangleIiEE", !15, i64 0, !16, i64 8, !16, i64 12}
!15 = !{!"_ZTSN4juce5PointIiEE", !16, i64 0, !16, i64 4}
!16 = !{!"int", !12, i64 0}
!17 = !{!"_ZTSN4juce13ScopedPointerINS_9Component10PositionerEEE", !11, i64 0}
!18 = !{!"_ZTSN4juce13ScopedPointerINS_15AffineTransformEEE", !11, i64 0}
!19 = !{!"_ZTSN4juce5ArrayIPNS_9ComponentENS_20DummyCriticalSectionELi0EEE", !20, i64 0, !16, i64 16}
!20 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_9ComponentENS_20DummyCriticalSectionEEE", !21, i64 0, !16, i64 8}
!21 = !{!"_ZTSN4juce9HeapBlockIPNS_9ComponentELb0EEE", !11, i64 0}
!22 = !{!"_ZTSN4juce11MouseCursorE", !11, i64 0}
!23 = !{!"_ZTSN4juce13ScopedPointerINS_20CachedComponentImageEEE", !11, i64 0}
!24 = !{!"_ZTSN4juce13ScopedPointerINS_9Component17MouseListenerListEEE", !11, i64 0}
!25 = !{!"_ZTSN4juce13ScopedPointerINS_5ArrayIPNS_11KeyListenerENS_20DummyCriticalSectionELi0EEEEE", !11, i64 0}
!26 = !{!"_ZTSN4juce12ListenerListINS_17ComponentListenerENS_5ArrayIPS1_NS_20DummyCriticalSectionELi0EEEEE", !27, i64 0}
!27 = !{!"_ZTSN4juce5ArrayIPNS_17ComponentListenerENS_20DummyCriticalSectionELi0EEE", !28, i64 0, !16, i64 16}
!28 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_17ComponentListenerENS_20DummyCriticalSectionEEE", !29, i64 0, !16, i64 8}
!29 = !{!"_ZTSN4juce9HeapBlockIPNS_17ComponentListenerELb0EEE", !11, i64 0}
!30 = !{!"_ZTSN4juce13NamedValueSetE", !31, i64 0}
!31 = !{!"_ZTSN4juce5ArrayINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionELi0EEE", !32, i64 0, !16, i64 16}
!32 = !{!"_ZTSN4juce19ArrayAllocationBaseINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionEEE", !33, i64 0, !16, i64 8}
!33 = !{!"_ZTSN4juce9HeapBlockINS_13NamedValueSet10NamedValueELb0EEE", !11, i64 0}
!34 = !{!"_ZTSN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE6MasterE", !35, i64 0}
!35 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE13SharedPointerEEE", !11, i64 0}
!36 = !{!"_ZTSN4juce17ComponentListenerE"}
!37 = !{!"_ZTSN4juce9ScrollBar8ListenerE"}
!38 = !{!"_ZTSN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEEE", !35, i64 0}
!39 = !{!"bool", !12, i64 0}
!40 = !{!"_ZTSN4juce9ScrollBarE", !7, i64 0, !41, i64 200, !43, i64 216, !44, i64 248, !44, i64 264, !45, i64 280, !45, i64 288, !16, i64 296, !16, i64 300, !16, i64 304, !16, i64 308, !16, i64 312, !16, i64 316, !16, i64 320, !16, i64 324, !16, i64 328, !39, i64 332, !39, i64 333, !39, i64 334, !46, i64 336, !46, i64 344, !47, i64 352}
!41 = !{!"_ZTSN4juce12AsyncUpdaterE", !42, i64 8}
!42 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_12AsyncUpdater19AsyncUpdaterMessageEEE", !11, i64 0}
!43 = !{!"_ZTSN4juce5TimerE", !16, i64 8, !16, i64 12, !11, i64 16, !11, i64 24}
!44 = !{!"_ZTSN4juce5RangeIdEE", !45, i64 0, !45, i64 8}
!45 = !{!"double", !12, i64 0}
!46 = !{!"_ZTSN4juce13ScopedPointerINS_9ScrollBar15ScrollbarButtonEEE", !11, i64 0}
!47 = !{!"_ZTSN4juce12ListenerListINS_9ScrollBar8ListenerENS_5ArrayIPS2_NS_20DummyCriticalSectionELi0EEEEE", !48, i64 0}
!48 = !{!"_ZTSN4juce5ArrayIPNS_9ScrollBar8ListenerENS_20DummyCriticalSectionELi0EEE", !49, i64 0, !16, i64 16}
!49 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_9ScrollBar8ListenerENS_20DummyCriticalSectionEEE", !50, i64 0, !16, i64 8}
!50 = !{!"_ZTSN4juce9HeapBlockIPNS_9ScrollBar8ListenerELb0EEE", !11, i64 0}
!51 = !{!"_ZTSN4juce13ScopedPointerINS_8Viewport20DragToScrollListenerEEE", !11, i64 0}
!52 = !{i8 0, i8 2}
!53 = !{}
!54 = !{!6, !39, i64 253}
!55 = distinct !{!55, !56}
!56 = !{!"llvm.loop.mustprogress"}
!57 = !{!15, !16, i64 0}
!58 = !{!6, !16, i64 244}
!59 = !{!15, !16, i64 4}
!60 = !{!6, !16, i64 248}
!61 = !{!62, !62, i64 0}
!62 = !{!"vtable pointer", !13, i64 0}


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