; LLVM IR from modlfo/AudioEngine :: AudioEngine/JuceLibraryCode (juce_audio_utils)

; 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::String" = type { %"class.juce::CharPointer_UTF8" }
%"class.juce::CharPointer_UTF8" = type { ptr }
%"class.juce::Justification" = type { i32 }
%"class.juce::AudioDeviceSelectorComponent" = type { %"class.juce::Component.base", %"class.juce::ComboBox::Listener", %"class.juce::ChangeListener", %"class.juce::Button::Listener", %"class.juce::Timer", ptr, %"class.juce::ScopedPointer.14", %"class.juce::ScopedPointer.15", %"class.juce::ScopedPointer.16", %"class.juce::String", i32, i32, i32, i32, i32, i8, i8, %"class.juce::ScopedPointer.17", %"class.juce::ScopedPointer.14", %"class.juce::ScopedPointer.15", %"class.juce::ScopedPointer.15", %"class.juce::ScopedPointer.18" }
%"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::Rectangle" = type { %"class.juce::Point", i32, i32 }
%"class.juce::Point" = type { i32, i32 }
%"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::ComboBox::Listener" = type { ptr }
%"class.juce::ChangeListener" = type { ptr }
%"class.juce::Button::Listener" = type { ptr }
%"class.juce::Timer" = type { ptr, i32, i32, ptr, ptr }
%"class.juce::ScopedPointer.16" = type { ptr }
%"class.juce::ScopedPointer.17" = type { ptr }
%"class.juce::ScopedPointer.14" = type { ptr }
%"class.juce::ScopedPointer.15" = type { ptr }
%"class.juce::ScopedPointer.18" = type { ptr }

@_ZTVN4juce28AudioDeviceSelectorComponentE = external dso_local unnamed_addr constant { [51 x ptr], [5 x ptr], [5 x ptr], [6 x ptr], [5 x ptr] }, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4juce28AudioDeviceSelectorComponentC2ERNS_18AudioDeviceManagerEiiiibbbb(ptr noundef nonnull align 8 dereferenceable(360) %0, ptr noundef nonnull align 8 dereferenceable(912) %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i1 noundef zeroext %6, i1 noundef zeroext %7, i1 noundef zeroext %8, i1 noundef zeroext %9) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i8, align 1
  %18 = alloca i8, align 1
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.juce::String", align 8
  %25 = alloca i1, align 1
  %26 = alloca i32, align 4
  %27 = alloca %"class.juce::String", align 8
  %28 = alloca %"class.juce::String", align 8
  %29 = alloca i1, align 1
  %30 = alloca %"class.juce::Justification", align 4
  %31 = alloca %"class.juce::String", align 8
  %32 = alloca %"class.juce::String", align 8
  %33 = alloca %"class.juce::String", align 8
  %34 = alloca i1, align 1
  %35 = alloca %"class.juce::String", align 8
  %36 = alloca %"class.juce::String", align 8
  %37 = alloca i1, align 1
  %38 = alloca %"class.juce::Justification", align 4
  %39 = alloca %"class.juce::String", align 8
  %40 = alloca %"class.juce::String", align 8
  %41 = alloca i1, align 1
  %42 = alloca %"class.juce::String", align 8
  %43 = alloca i1, align 1
  %44 = alloca %"class.juce::String", align 8
  %45 = alloca %"class.juce::String", align 8
  %46 = alloca i1, align 1
  store ptr %0, ptr %11, align 8, !tbaa !5
  store ptr %1, ptr %12, align 8, !tbaa !5
  store i32 %2, ptr %13, align 4, !tbaa !9
  store i32 %3, ptr %14, align 4, !tbaa !9
  store i32 %4, ptr %15, align 4, !tbaa !9
  store i32 %5, ptr %16, align 4, !tbaa !9
  %47 = zext i1 %6 to i8
  store i8 %47, ptr %17, align 1, !tbaa !11
  %48 = zext i1 %7 to i8
  store i8 %48, ptr %18, align 1, !tbaa !11
  %49 = zext i1 %8 to i8
  store i8 %49, ptr %19, align 1, !tbaa !11
  %50 = zext i1 %9 to i8
  store i8 %50, ptr %20, align 1, !tbaa !11
  %51 = load ptr, ptr %11, align 8
  call void @_ZN4juce9ComponentC2Ev(ptr noundef nonnull align 8 dereferenceable(197) %51) #8
  %52 = getelementptr inbounds i8, ptr %51, i64 200
  call void @_ZN4juce8ComboBox8ListenerC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  %53 = getelementptr inbounds i8, ptr %51, i64 208
  call void @_ZN4juce14ChangeListenerC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  %54 = getelementptr inbounds i8, ptr %51, i64 216
  call void @_ZN4juce6Button8ListenerC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  %55 = getelementptr inbounds i8, ptr %51, i64 224
  call void @_ZN4juce5TimerC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  store ptr getelementptr inbounds inrange(-16, 392) ({ [51 x ptr], [5 x ptr], [5 x ptr], [6 x ptr], [5 x ptr] }, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i32 0, i32 0, i32 2), ptr %51, align 8, !tbaa !13
  %56 = getelementptr inbounds i8, ptr %51, i64 200
  store ptr getelementptr inbounds inrange(-16, 24) ({ [51 x ptr], [5 x ptr], [5 x ptr], [6 x ptr], [5 x ptr] }, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i32 0, i32 1, i32 2), ptr %56, align 8, !tbaa !13
  %57 = getelementptr inbounds i8, ptr %51, i64 208
  store ptr getelementptr inbounds inrange(-16, 24) ({ [51 x ptr], [5 x ptr], [5 x ptr], [6 x ptr], [5 x ptr] }, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i32 0, i32 2, i32 2), ptr %57, align 8, !tbaa !13
  %58 = getelementptr inbounds i8, ptr %51, i64 216
  store ptr getelementptr inbounds inrange(-16, 32) ({ [51 x ptr], [5 x ptr], [5 x ptr], [6 x ptr], [5 x ptr] }, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i32 0, i32 3, i32 2), ptr %58, align 8, !tbaa !13
  %59 = getelementptr inbounds i8, ptr %51, i64 224
  store ptr getelementptr inbounds inrange(-16, 24) ({ [51 x ptr], [5 x ptr], [5 x ptr], [6 x ptr], [5 x ptr] }, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i32 0, i32 4, i32 2), ptr %59, align 8, !tbaa !13
  %60 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 5
  %61 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %61, ptr %60, align 8, !tbaa !5
  %62 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 6
  call void @_ZN4juce13ScopedPointerINS_8ComboBoxEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  %63 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 7
  call void @_ZN4juce13ScopedPointerINS_5LabelEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  %64 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 8
  call void @_ZN4juce13ScopedPointerINS_9ComponentEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  %65 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 9
  call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  %66 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 10
  store i32 24, ptr %66, align 8, !tbaa !15
  %67 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 11
  %68 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %68, ptr %67, align 4, !tbaa !51
  %69 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 12
  %70 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %70, ptr %69, align 8, !tbaa !52
  %71 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 13
  %72 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %72, ptr %71, align 4, !tbaa !53
  %73 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 14
  %74 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %74, ptr %73, align 8, !tbaa !54
  %75 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 15
  %76 = load i8, ptr %19, align 1, !tbaa !11, !range !55, !noundef !56
  %77 = trunc i8 %76 to i1
  %78 = zext i1 %77 to i8
  store i8 %78, ptr %75, align 4, !tbaa !57
  %79 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 16
  %80 = load i8, ptr %20, align 1, !tbaa !11, !range !55, !noundef !56
  %81 = trunc i8 %80 to i1
  %82 = zext i1 %81 to i8
  store i8 %82, ptr %79, align 1, !tbaa !58
  %83 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 17
  call void @_ZN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #8
  %84 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 18
  call void @_ZN4juce13ScopedPointerINS_8ComboBoxEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #8
  %85 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 19
  call void @_ZN4juce13ScopedPointerINS_5LabelEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #8
  %86 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 20
  call void @_ZN4juce13ScopedPointerINS_5LabelEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #8
  %87 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 21
  call void @_ZN4juce13ScopedPointerINS_10TextButtonEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  br label %88

88:                                               ; preds = %10
  br label %89

89:                                               ; preds = %88
  br label %90

90:                                               ; preds = %89
  br label %91

91:                                               ; preds = %90
  br label %92

92:                                               ; preds = %91
  br label %93

93:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %94 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 5
  %95 = load ptr, ptr %94, align 8, !tbaa !59
  %96 = invoke noundef nonnull align 8 dereferenceable(20) ptr @_ZN4juce18AudioDeviceManager23getAvailableDeviceTypesEv(ptr noundef nonnull align 8 dereferenceable(912) %95)
          to label %97 unwind label %114

97:                                               ; preds = %93
  store ptr %96, ptr %21, align 8, !tbaa !5
  %98 = load ptr, ptr %21, align 8, !tbaa !5
  %99 = call noundef i32 @_ZNK4juce10OwnedArrayINS_17AudioIODeviceTypeENS_20DummyCriticalSectionEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(20) %98) #8
  %100 = icmp sgt i32 %99, 1
  br i1 %100, label %101, label %177

101:                                              ; preds = %97
  %102 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 384) #9
          to label %103 unwind label %114

103:                                              ; preds = %101
  store i1 true, ptr %25, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  invoke void @_ZN4juce8ComboBoxC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(380) %102, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %104 unwind label %118

104:                                              ; preds = %103
  store i1 false, ptr %25, align 1
  %105 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 6
  %106 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_8ComboBoxEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef %102)
          to label %107 unwind label %118

107:                                              ; preds = %104
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  store i32 0, ptr %26, align 4, !tbaa !9
  br label %108

108:                                              ; preds = %135, %107
  %109 = load i32, ptr %26, align 4, !tbaa !9
  %110 = load ptr, ptr %21, align 8, !tbaa !5
  %111 = call noundef i32 @_ZNK4juce10OwnedArrayINS_17AudioIODeviceTypeENS_20DummyCriticalSectionEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(20) %110) #8
  %112 = icmp slt i32 %109, %111
  br i1 %112, label %125, label %113

113:                                              ; preds = %108
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %142

114:                                              ; preds = %352, %348, %344, %341, %311, %303, %299, %291, %284, %281, %278, %221, %211, %208, %203, %200, %193, %180, %159, %156, %149, %145, %142, %101, %93
  %115 = landingpad { ptr, i32 }
          cleanup
  %116 = extractvalue { ptr, i32 } %115, 0
  store ptr %116, ptr %22, align 8
  %117 = extractvalue { ptr, i32 } %115, 1
  store i32 %117, ptr %23, align 4
  br label %355

118:                                              ; preds = %104, %103
  %119 = landingpad { ptr, i32 }
          cleanup
  %120 = extractvalue { ptr, i32 } %119, 0
  store ptr %120, ptr %22, align 8
  %121 = extractvalue { ptr, i32 } %119, 1
  store i32 %121, ptr %23, align 4
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  %122 = load i1, ptr %25, align 1
  br i1 %122, label %123, label %124

123:                                              ; preds = %118
  call void @_ZdlPvm(ptr noundef %102, i64 noundef 384) #10
  br label %124

124:                                              ; preds = %123, %118
  br label %355

125:                                              ; preds = %108
  %126 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 6
  %127 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %126) #8
  %128 = load ptr, ptr %21, align 8, !tbaa !5
  %129 = load i32, ptr %26, align 4, !tbaa !9
  %130 = call noundef ptr @_ZNK4juce10OwnedArrayINS_17AudioIODeviceTypeENS_20DummyCriticalSectionEE12getUncheckedEi(ptr noundef nonnull align 8 dereferenceable(20) %128, i32 noundef %129) #8
  %131 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4juce17AudioIODeviceType11getTypeNameEv(ptr noundef nonnull align 8 dereferenceable(40) %130) #8
  %132 = load i32, ptr %26, align 4, !tbaa !9
  %133 = add nsw i32 %132, 1
  invoke void @_ZN4juce8ComboBox7addItemERKNS_6StringEi(ptr noundef nonnull align 8 dereferenceable(380) %127, ptr noundef nonnull align 8 dereferenceable(8) %131, i32 noundef %133)
          to label %134 unwind label %138

134:                                              ; preds = %125
  br label %135

135:                                              ; preds = %134
  %136 = load i32, ptr %26, align 4, !tbaa !9
  %137 = add nsw i32 %136, 1
  store i32 %137, ptr %26, align 4, !tbaa !9
  br label %108, !llvm.loop !60

138:                                              ; preds = %125
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %22, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %355

142:                                              ; preds = %113
  %143 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 6
  %144 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %143) #8
  invoke void @_ZN4juce9Component17addAndMakeVisibleEPS0_i(ptr noundef nonnull align 8 dereferenceable(197) %51, ptr noundef %144, i32 noundef -1)
          to label %145 unwind label %114

145:                                              ; preds = %142
  %146 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 6
  %147 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %146) #8
  %148 = getelementptr inbounds i8, ptr %51, i64 200
  invoke void @_ZN4juce8ComboBox11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(380) %147, ptr noundef %148)
          to label %149 unwind label %114

149:                                              ; preds = %145
  %150 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 368) #9
          to label %151 unwind label %114

151:                                              ; preds = %149
  store i1 true, ptr %29, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8 %28, ptr noundef @.str)
          to label %152 unwind label %165

152:                                              ; preds = %151
  invoke void @_ZN4juce5LabelC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(364) %150, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %153 unwind label %169

153:                                              ; preds = %152
  store i1 false, ptr %29, align 1
  %154 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 7
  %155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %154, ptr noundef %150)
          to label %156 unwind label %169

156:                                              ; preds = %153
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  %157 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 7
  %158 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %157) #8
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %30, i32 noundef 34) #8
  invoke void @_ZN4juce5Label20setJustificationTypeENS_13JustificationE(ptr noundef nonnull align 8 dereferenceable(364) %158, ptr noundef %30)
          to label %159 unwind label %114

159:                                              ; preds = %156
  %160 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 7
  %161 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %160) #8
  %162 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 6
  %163 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #8
  invoke void @_ZN4juce5Label17attachToComponentEPNS_9ComponentEb(ptr noundef nonnull align 8 dereferenceable(364) %161, ptr noundef %163, i1 noundef zeroext true)
          to label %164 unwind label %114

164:                                              ; preds = %159
  br label %177

165:                                              ; preds = %151
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %22, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %23, align 4
  br label %173

169:                                              ; preds = %153, %152
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %22, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %23, align 4
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  br label %173

173:                                              ; preds = %169, %165
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  %174 = load i1, ptr %29, align 1
  br i1 %174, label %175, label %176

175:                                              ; preds = %173
  call void @_ZdlPvm(ptr noundef %150, i64 noundef 368) #10
  br label %176

176:                                              ; preds = %175, %173
  br label %355

177:                                              ; preds = %164, %97
  %178 = load i8, ptr %17, align 1, !tbaa !11, !range !55, !noundef !56
  %179 = trunc i8 %178 to i1
  br i1 %179, label %180, label %278

180:                                              ; preds = %177
  %181 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 344) #9
          to label %182 unwind label %114

182:                                              ; preds = %180
  store i1 true, ptr %34, align 1
  %183 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 5
  %184 = load ptr, ptr %183, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8 %33, ptr noundef @.str.3)
          to label %185 unwind label %226

185:                                              ; preds = %182
  invoke void @_ZN4juceplEPKcRKNS_6StringE(ptr dead_on_unwind writable sret(%"class.juce::String") align 8 %32, ptr noundef @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %186 unwind label %230

186:                                              ; preds = %185
  invoke void @_ZN4juceplENS_6StringEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8 %31, ptr noundef %32, ptr noundef @.str.4)
          to label %187 unwind label %234

187:                                              ; preds = %186
  invoke void @_ZN4juce28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxC2ERNS_18AudioDeviceManagerERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(344) %181, ptr noundef nonnull align 8 dereferenceable(912) %184, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %188 unwind label %238

188:                                              ; preds = %187
  store i1 false, ptr %34, align 1
  %189 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 17
  %190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef %181)
          to label %191 unwind label %238

191:                                              ; preds = %188
  %192 = call noundef ptr @_ZNK4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEcvPS2_Ev(ptr noundef nonnull align 8 dereferenceable(8) %190) #8
  invoke void @_ZN4juce9Component17addAndMakeVisibleEPS0_i(ptr noundef nonnull align 8 dereferenceable(197) %51, ptr noundef %192, i32 noundef -1)
          to label %193 unwind label %238

193:                                              ; preds = %191
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  %194 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 368) #9
          to label %195 unwind label %114

195:                                              ; preds = %193
  store i1 true, ptr %37, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8 %36, ptr noundef @.str.5)
          to label %196 unwind label %248

196:                                              ; preds = %195
  invoke void @_ZN4juce5LabelC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(364) %194, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %197 unwind label %252

197:                                              ; preds = %196
  store i1 false, ptr %37, align 1
  %198 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 19
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %198, ptr noundef %194)
          to label %200 unwind label %252

200:                                              ; preds = %197
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  %201 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 19
  %202 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %201) #8
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %38, i32 noundef 10) #8
  invoke void @_ZN4juce5Label20setJustificationTypeENS_13JustificationE(ptr noundef nonnull align 8 dereferenceable(364) %202, ptr noundef %38)
          to label %203 unwind label %114

203:                                              ; preds = %200
  %204 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 19
  %205 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %204) #8
  %206 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 17
  %207 = call noundef ptr @_ZNK4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEcvPS2_Ev(ptr noundef nonnull align 8 dereferenceable(8) %206) #8
  invoke void @_ZN4juce5Label17attachToComponentEPNS_9ComponentEb(ptr noundef nonnull align 8 dereferenceable(364) %205, ptr noundef %207, i1 noundef zeroext true)
          to label %208 unwind label %114

208:                                              ; preds = %203
  %209 = invoke noundef zeroext i1 @_ZN4juce34BluetoothMidiDevicePairingDialogue11isAvailableEv()
          to label %210 unwind label %114

210:                                              ; preds = %208
  br i1 %209, label %211, label %277

211:                                              ; preds = %210
  %212 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 376) #9
          to label %213 unwind label %114

213:                                              ; preds = %211
  store i1 true, ptr %41, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8 %39, ptr noundef @.str.6)
          to label %214 unwind label %260

214:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8 %40, ptr noundef @.str.7)
          to label %215 unwind label %264

215:                                              ; preds = %214
  invoke void @_ZN4juce10TextButtonC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(375) %212, ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %216 unwind label %268

216:                                              ; preds = %215
  store i1 false, ptr %41, align 1
  %217 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 21
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_10TextButtonEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %217, ptr noundef %212)
          to label %219 unwind label %268

219:                                              ; preds = %216
  %220 = call noundef ptr @_ZNK4juce13ScopedPointerINS_10TextButtonEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %218) #8
  invoke void @_ZN4juce9Component17addAndMakeVisibleEPS0_i(ptr noundef nonnull align 8 dereferenceable(197) %51, ptr noundef %220, i32 noundef -1)
          to label %221 unwind label %268

221:                                              ; preds = %219
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  %222 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 21
  %223 = call noundef ptr @_ZNK4juce13ScopedPointerINS_10TextButtonEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %222) #8
  %224 = getelementptr inbounds i8, ptr %51, i64 216
  invoke void @_ZN4juce6Button11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(375) %223, ptr noundef %224)
          to label %225 unwind label %114

225:                                              ; preds = %221
  br label %277

226:                                              ; preds = %182
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %22, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %23, align 4
  br label %244

230:                                              ; preds = %185
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %22, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %23, align 4
  br label %243

234:                                              ; preds = %186
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  store ptr %236, ptr %22, align 8
  %237 = extractvalue { ptr, i32 } %235, 1
  store i32 %237, ptr %23, align 4
  br label %242

238:                                              ; preds = %191, %188, %187
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %22, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %23, align 4
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  br label %242

242:                                              ; preds = %238, %234
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  br label %243

243:                                              ; preds = %242, %230
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  br label %244

244:                                              ; preds = %243, %226
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  %245 = load i1, ptr %34, align 1
  br i1 %245, label %246, label %247

246:                                              ; preds = %244
  call void @_ZdlPvm(ptr noundef %181, i64 noundef 344) #10
  br label %247

247:                                              ; preds = %246, %244
  br label %355

248:                                              ; preds = %195
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %22, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %23, align 4
  br label %256

252:                                              ; preds = %197, %196
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %22, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %23, align 4
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  br label %256

256:                                              ; preds = %252, %248
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  %257 = load i1, ptr %37, align 1
  br i1 %257, label %258, label %259

258:                                              ; preds = %256
  call void @_ZdlPvm(ptr noundef %194, i64 noundef 368) #10
  br label %259

259:                                              ; preds = %258, %256
  br label %355

260:                                              ; preds = %213
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %22, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %23, align 4
  br label %273

264:                                              ; preds = %214
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %22, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %23, align 4
  br label %272

268:                                              ; preds = %219, %216, %215
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %22, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %23, align 4
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  br label %272

272:                                              ; preds = %268, %264
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  br label %273

273:                                              ; preds = %272, %260
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  %274 = load i1, ptr %41, align 1
  br i1 %274, label %275, label %276

275:                                              ; preds = %273
  call void @_ZdlPvm(ptr noundef %212, i64 noundef 376) #10
  br label %276

276:                                              ; preds = %275, %273
  br label %355

277:                                              ; preds = %225, %210
  br label %288

278:                                              ; preds = %177
  %279 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 17
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %279, ptr noundef null)
          to label %281 unwind label %114

281:                                              ; preds = %278
  %282 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 19
  %283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef null)
          to label %284 unwind label %114

284:                                              ; preds = %281
  %285 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 21
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_10TextButtonEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %285, ptr noundef null)
          to label %287 unwind label %114

287:                                              ; preds = %284
  br label %288

288:                                              ; preds = %287, %277
  %289 = load i8, ptr %18, align 1, !tbaa !11, !range !55, !noundef !56
  %290 = trunc i8 %289 to i1
  br i1 %290, label %291, label %341

291:                                              ; preds = %288
  %292 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 384) #9
          to label %293 unwind label %114

293:                                              ; preds = %291
  store i1 true, ptr %43, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  invoke void @_ZN4juce8ComboBoxC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(380) %292, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %294 unwind label %317

294:                                              ; preds = %293
  store i1 false, ptr %43, align 1
  %295 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 18
  %296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_8ComboBoxEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef %292)
          to label %297 unwind label %317

297:                                              ; preds = %294
  %298 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %296) #8
  invoke void @_ZN4juce9Component17addAndMakeVisibleEPS0_i(ptr noundef nonnull align 8 dereferenceable(197) %51, ptr noundef %298, i32 noundef -1)
          to label %299 unwind label %317

299:                                              ; preds = %297
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  %300 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 18
  %301 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %300) #8
  %302 = getelementptr inbounds i8, ptr %51, i64 200
  invoke void @_ZN4juce8ComboBox11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(380) %301, ptr noundef %302)
          to label %303 unwind label %114

303:                                              ; preds = %299
  %304 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 368) #9
          to label %305 unwind label %114

305:                                              ; preds = %303
  store i1 true, ptr %46, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  invoke void @_ZN4juce6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef @.str.8)
          to label %306 unwind label %324

306:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8 %45, ptr noundef @.str.9)
          to label %307 unwind label %328

307:                                              ; preds = %306
  invoke void @_ZN4juce5LabelC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(364) %304, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %308 unwind label %332

308:                                              ; preds = %307
  store i1 false, ptr %46, align 1
  %309 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 20
  %310 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef %304)
          to label %311 unwind label %332

311:                                              ; preds = %308
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  %312 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 20
  %313 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %312) #8
  %314 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 18
  %315 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %314) #8
  invoke void @_ZN4juce5Label17attachToComponentEPNS_9ComponentEb(ptr noundef nonnull align 8 dereferenceable(364) %313, ptr noundef %315, i1 noundef zeroext true)
          to label %316 unwind label %114

316:                                              ; preds = %311
  br label %348

317:                                              ; preds = %297, %294, %293
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %22, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %23, align 4
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  %321 = load i1, ptr %43, align 1
  br i1 %321, label %322, label %323

322:                                              ; preds = %317
  call void @_ZdlPvm(ptr noundef %292, i64 noundef 384) #10
  br label %323

323:                                              ; preds = %322, %317
  br label %355

324:                                              ; preds = %305
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %22, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %23, align 4
  br label %337

328:                                              ; preds = %306
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %22, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %23, align 4
  br label %336

332:                                              ; preds = %308, %307
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %22, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %23, align 4
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  br label %336

336:                                              ; preds = %332, %328
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  br label %337

337:                                              ; preds = %336, %324
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  %338 = load i1, ptr %46, align 1
  br i1 %338, label %339, label %340

339:                                              ; preds = %337
  call void @_ZdlPvm(ptr noundef %304, i64 noundef 368) #10
  br label %340

340:                                              ; preds = %339, %337
  br label %355

341:                                              ; preds = %288
  %342 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 18
  %343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_8ComboBoxEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %342, ptr noundef null)
          to label %344 unwind label %114

344:                                              ; preds = %341
  %345 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 20
  %346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %345, ptr noundef null)
          to label %347 unwind label %114

347:                                              ; preds = %344
  br label %348

348:                                              ; preds = %347, %316
  %349 = getelementptr inbounds %"class.juce::AudioDeviceSelectorComponent", ptr %51, i32 0, i32 5
  %350 = load ptr, ptr %349, align 8, !tbaa !59
  %351 = getelementptr inbounds i8, ptr %51, i64 208
  invoke void @_ZN4juce17ChangeBroadcaster17addChangeListenerEPNS_14ChangeListenerE(ptr noundef nonnull align 8 dereferenceable(56) %350, ptr noundef %351)
          to label %352 unwind label %114

352:                                              ; preds = %348
  invoke void @_ZN4juce28AudioDeviceSelectorComponent17updateAllControlsEv(ptr noundef nonnull align 8 dereferenceable(360) %51)
          to label %353 unwind label %114

353:                                              ; preds = %352
  %354 = getelementptr inbounds i8, ptr %51, i64 224
  call void @_ZN4juce5Timer10startTimerEi(ptr noundef nonnull align 8 dereferenceable(32) %354, i32 noundef 1000) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  ret void

355:                                              ; preds = %340, %323, %276, %259, %247, %176, %138, %124, %114
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @_ZN4juce13ScopedPointerINS_10TextButtonEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  call void @_ZN4juce13ScopedPointerINS_5LabelEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #8
  call void @_ZN4juce13ScopedPointerINS_5LabelEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #8
  call void @_ZN4juce13ScopedPointerINS_8ComboBoxEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #8
  call void @_ZN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  call void @_ZN4juce13ScopedPointerINS_9ComponentEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  call void @_ZN4juce13ScopedPointerINS_5LabelEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  call void @_ZN4juce13ScopedPointerINS_8ComboBoxEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  %356 = getelementptr inbounds i8, ptr %51, i64 224
  call void @_ZN4juce5TimerD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #8
  %357 = getelementptr inbounds i8, ptr %51, i64 216
  call void @_ZN4juce6Button8ListenerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %357) #8
  %358 = getelementptr inbounds i8, ptr %51, i64 208
  call void @_ZN4juce14ChangeListenerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %358) #8
  %359 = getelementptr inbounds i8, ptr %51, i64 200
  call void @_ZN4juce8ComboBox8ListenerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %359) #8
  call void @_ZN4juce9ComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(197) %51) #8
  br label %360

360:                                              ; preds = %355
  %361 = load ptr, ptr %22, align 8
  %362 = load i32, ptr %23, align 4
  %363 = insertvalue { ptr, i32 } poison, ptr %361, 0
  %364 = insertvalue { ptr, i32 } %363, i32 %362, 1
  resume { ptr, i32 } %364
}

; Function Attrs: nounwind
declare void @_ZN4juce9ComponentC2Ev(ptr noundef nonnull align 8 dereferenceable(197)) unnamed_addr #1

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

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

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

; Function Attrs: nounwind
declare void @_ZN4juce5TimerC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

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

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

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

; Function Attrs: nounwind
declare void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

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

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

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

declare noundef nonnull align 8 dereferenceable(20) ptr @_ZN4juce18AudioDeviceManager23getAvailableDeviceTypesEv(ptr noundef nonnull align 8 dereferenceable(912)) #4

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce10OwnedArrayINS_17AudioIODeviceTypeENS_20DummyCriticalSectionEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(20)) #2 align 2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #5

declare void @_ZN4juce8ComboBoxC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(380), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

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

; Function Attrs: nounwind
declare void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #7

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

declare void @_ZN4juce8ComboBox7addItemERKNS_6StringEi(ptr noundef nonnull align 8 dereferenceable(380), ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #4

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

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

declare void @_ZN4juce9Component17addAndMakeVisibleEPS0_i(ptr noundef nonnull align 8 dereferenceable(197), ptr noundef, i32 noundef) #4

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

declare void @_ZN4juce8ComboBox11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(380), ptr noundef) #4

declare void @_ZN4juce9translateEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8, ptr noundef) #4

declare void @_ZN4juce5LabelC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(364), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

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

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

declare void @_ZN4juce5Label20setJustificationTypeENS_13JustificationE(ptr noundef nonnull align 8 dereferenceable(364), ptr noundef) #4

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

declare void @_ZN4juce5Label17attachToComponentEPNS_9ComponentEb(ptr noundef nonnull align 8 dereferenceable(364), ptr noundef, i1 noundef zeroext) #4

declare void @_ZN4juceplENS_6StringEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8, ptr noundef, ptr noundef) #4

declare void @_ZN4juceplEPKcRKNS_6StringE(ptr dead_on_unwind writable sret(%"class.juce::String") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxC2ERNS_18AudioDeviceManagerERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(344), ptr noundef nonnull align 8 dereferenceable(912), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4juce34BluetoothMidiDevicePairingDialogue11isAvailableEv() #6 align 2

declare void @_ZN4juce10TextButtonC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(375), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

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

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

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

declare void @_ZN4juce6Button11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(375), ptr noundef) #4

declare void @_ZN4juce6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #4

declare void @_ZN4juce17ChangeBroadcaster17addChangeListenerEPNS_14ChangeListenerE(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) #4

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

; Function Attrs: nounwind
declare void @_ZN4juce5Timer10startTimerEi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #1

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

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

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

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

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

; Function Attrs: nounwind
declare void @_ZN4juce5TimerD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

; Function Attrs: nounwind
declare void @_ZN4juce9ComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(197)) unnamed_addr #1

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress 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 #7 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { builtin 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, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!16, !10, i64 296}
!16 = !{!"_ZTSN4juce28AudioDeviceSelectorComponentE", !17, i64 0, !42, i64 200, !43, i64 208, !44, i64 216, !45, i64 224, !6, i64 256, !46, i64 264, !47, i64 272, !48, i64 280, !19, i64 288, !10, i64 296, !10, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !12, i64 316, !12, i64 317, !49, i64 320, !46, i64 328, !47, i64 336, !47, i64 344, !50, i64 352}
!17 = !{!"_ZTSN4juce9ComponentE", !18, i64 0, !19, i64 8, !19, i64 16, !6, i64 24, !21, i64 32, !23, i64 48, !24, i64 56, !25, i64 64, !6, i64 88, !28, i64 96, !6, i64 104, !29, i64 112, !30, i64 120, !31, i64 128, !32, i64 136, !36, i64 160, !40, i64 184, !7, i64 192, !7, i64 196}
!18 = !{!"_ZTSN4juce13MouseListenerE"}
!19 = !{!"_ZTSN4juce6StringE", !20, i64 0}
!20 = !{!"_ZTSN4juce16CharPointer_UTF8E", !6, i64 0}
!21 = !{!"_ZTSN4juce9RectangleIiEE", !22, i64 0, !10, i64 8, !10, i64 12}
!22 = !{!"_ZTSN4juce5PointIiEE", !10, i64 0, !10, i64 4}
!23 = !{!"_ZTSN4juce13ScopedPointerINS_9Component10PositionerEEE", !6, i64 0}
!24 = !{!"_ZTSN4juce13ScopedPointerINS_15AffineTransformEEE", !6, i64 0}
!25 = !{!"_ZTSN4juce5ArrayIPNS_9ComponentENS_20DummyCriticalSectionELi0EEE", !26, i64 0, !10, i64 16}
!26 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_9ComponentENS_20DummyCriticalSectionEEE", !27, i64 0, !10, i64 8}
!27 = !{!"_ZTSN4juce9HeapBlockIPNS_9ComponentELb0EEE", !6, i64 0}
!28 = !{!"_ZTSN4juce11MouseCursorE", !6, i64 0}
!29 = !{!"_ZTSN4juce13ScopedPointerINS_20CachedComponentImageEEE", !6, i64 0}
!30 = !{!"_ZTSN4juce13ScopedPointerINS_9Component17MouseListenerListEEE", !6, i64 0}
!31 = !{!"_ZTSN4juce13ScopedPointerINS_5ArrayIPNS_11KeyListenerENS_20DummyCriticalSectionELi0EEEEE", !6, i64 0}
!32 = !{!"_ZTSN4juce12ListenerListINS_17ComponentListenerENS_5ArrayIPS1_NS_20DummyCriticalSectionELi0EEEEE", !33, i64 0}
!33 = !{!"_ZTSN4juce5ArrayIPNS_17ComponentListenerENS_20DummyCriticalSectionELi0EEE", !34, i64 0, !10, i64 16}
!34 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_17ComponentListenerENS_20DummyCriticalSectionEEE", !35, i64 0, !10, i64 8}
!35 = !{!"_ZTSN4juce9HeapBlockIPNS_17ComponentListenerELb0EEE", !6, i64 0}
!36 = !{!"_ZTSN4juce13NamedValueSetE", !37, i64 0}
!37 = !{!"_ZTSN4juce5ArrayINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionELi0EEE", !38, i64 0, !10, i64 16}
!38 = !{!"_ZTSN4juce19ArrayAllocationBaseINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionEEE", !39, i64 0, !10, i64 8}
!39 = !{!"_ZTSN4juce9HeapBlockINS_13NamedValueSet10NamedValueELb0EEE", !6, i64 0}
!40 = !{!"_ZTSN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE6MasterE", !41, i64 0}
!41 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE13SharedPointerEEE", !6, i64 0}
!42 = !{!"_ZTSN4juce8ComboBox8ListenerE"}
!43 = !{!"_ZTSN4juce14ChangeListenerE"}
!44 = !{!"_ZTSN4juce6Button8ListenerE"}
!45 = !{!"_ZTSN4juce5TimerE", !10, i64 8, !10, i64 12, !6, i64 16, !6, i64 24}
!46 = !{!"_ZTSN4juce13ScopedPointerINS_8ComboBoxEEE", !6, i64 0}
!47 = !{!"_ZTSN4juce13ScopedPointerINS_5LabelEEE", !6, i64 0}
!48 = !{!"_ZTSN4juce13ScopedPointerINS_9ComponentEEE", !6, i64 0}
!49 = !{!"_ZTSN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEE", !6, i64 0}
!50 = !{!"_ZTSN4juce13ScopedPointerINS_10TextButtonEEE", !6, i64 0}
!51 = !{!16, !10, i64 300}
!52 = !{!16, !10, i64 304}
!53 = !{!16, !10, i64 308}
!54 = !{!16, !10, i64 312}
!55 = !{i8 0, i8 2}
!56 = !{}
!57 = !{!16, !12, i64 316}
!58 = !{!16, !12, i64 317}
!59 = !{!16, !6, i64 256}
!60 = distinct !{!60, !61}
!61 = !{!"llvm.loop.mustprogress"}


; 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::String" = type { %"class.juce::CharPointer_UTF8" }
%"class.juce::CharPointer_UTF8" = type { ptr }
%"class.juce::Justification" = type { i32 }

@_ZTVN4juce28AudioDeviceSelectorComponentE = external dso_local unnamed_addr constant { [51 x ptr], [5 x ptr], [5 x ptr], [6 x ptr], [5 x ptr] }, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4juce28AudioDeviceSelectorComponentC2ERNS_18AudioDeviceManagerEiiiibbbb(ptr noundef nonnull align 8 dereferenceable(360) %0, ptr noundef nonnull align 8 dereferenceable(912) %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i1 noundef zeroext %6, i1 noundef zeroext %7, i1 noundef zeroext %8, i1 noundef zeroext %9) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %11 = alloca %"class.juce::String", align 8
  %12 = alloca %"class.juce::String", align 8
  %13 = alloca %"class.juce::String", align 8
  %14 = alloca %"class.juce::Justification", align 4
  %15 = alloca %"class.juce::String", align 8
  %16 = alloca %"class.juce::String", align 8
  %17 = alloca %"class.juce::String", align 8
  %18 = alloca %"class.juce::String", align 8
  %19 = alloca %"class.juce::String", align 8
  %20 = alloca %"class.juce::Justification", align 4
  %21 = alloca %"class.juce::String", align 8
  %22 = alloca %"class.juce::String", align 8
  %23 = alloca %"class.juce::String", align 8
  %24 = alloca %"class.juce::String", align 8
  %25 = alloca %"class.juce::String", align 8
  %26 = zext i1 %8 to i8
  %27 = zext i1 %9 to i8
  tail call void @_ZN4juce9ComponentC2Ev(ptr noundef nonnull align 8 dereferenceable(197) %0) #8
  %28 = getelementptr inbounds i8, ptr %0, i64 200
  tail call void @_ZN4juce8ComboBox8ListenerC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %29 = getelementptr inbounds i8, ptr %0, i64 208
  tail call void @_ZN4juce14ChangeListenerC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  %30 = getelementptr inbounds i8, ptr %0, i64 216
  tail call void @_ZN4juce6Button8ListenerC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  %31 = getelementptr inbounds i8, ptr %0, i64 224
  tail call void @_ZN4juce5TimerC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  store ptr getelementptr inbounds inrange(-16, 392) (i8, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i64 16), ptr %0, align 8, !tbaa !5
  store ptr getelementptr inbounds inrange(-16, 24) (i8, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i64 424), ptr %28, align 8, !tbaa !5
  store ptr getelementptr inbounds inrange(-16, 24) (i8, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i64 464), ptr %29, align 8, !tbaa !5
  store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i64 504), ptr %30, align 8, !tbaa !5
  store ptr getelementptr inbounds inrange(-16, 24) (i8, ptr @_ZTVN4juce28AudioDeviceSelectorComponentE, i64 552), ptr %31, align 8, !tbaa !5
  %32 = getelementptr inbounds i8, ptr %0, i64 256
  store ptr %1, ptr %32, align 8, !tbaa !8
  %33 = getelementptr inbounds i8, ptr %0, i64 264
  tail call void @_ZN4juce13ScopedPointerINS_8ComboBoxEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  %34 = getelementptr inbounds i8, ptr %0, i64 272
  tail call void @_ZN4juce13ScopedPointerINS_5LabelEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  %35 = getelementptr inbounds i8, ptr %0, i64 280
  tail call void @_ZN4juce13ScopedPointerINS_9ComponentEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  %36 = getelementptr inbounds i8, ptr %0, i64 288
  tail call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  %37 = getelementptr inbounds i8, ptr %0, i64 296
  store i32 24, ptr %37, align 8, !tbaa !11
  %38 = getelementptr inbounds i8, ptr %0, i64 300
  store i32 %4, ptr %38, align 4, !tbaa !49
  %39 = getelementptr inbounds i8, ptr %0, i64 304
  store i32 %5, ptr %39, align 8, !tbaa !50
  %40 = getelementptr inbounds i8, ptr %0, i64 308
  store i32 %2, ptr %40, align 4, !tbaa !51
  %41 = getelementptr inbounds i8, ptr %0, i64 312
  store i32 %3, ptr %41, align 8, !tbaa !52
  %42 = getelementptr inbounds i8, ptr %0, i64 316
  store i8 %26, ptr %42, align 4, !tbaa !53
  %43 = getelementptr inbounds i8, ptr %0, i64 317
  store i8 %27, ptr %43, align 1, !tbaa !54
  %44 = getelementptr inbounds i8, ptr %0, i64 320
  tail call void @_ZN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  %45 = getelementptr inbounds i8, ptr %0, i64 328
  tail call void @_ZN4juce13ScopedPointerINS_8ComboBoxEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  %46 = getelementptr inbounds i8, ptr %0, i64 336
  tail call void @_ZN4juce13ScopedPointerINS_5LabelEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  %47 = getelementptr inbounds i8, ptr %0, i64 344
  tail call void @_ZN4juce13ScopedPointerINS_5LabelEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  %48 = getelementptr inbounds i8, ptr %0, i64 352
  tail call void @_ZN4juce13ScopedPointerINS_10TextButtonEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  %49 = load ptr, ptr %32, align 8, !tbaa !55
  %50 = invoke noundef nonnull align 8 dereferenceable(20) ptr @_ZN4juce18AudioDeviceManager23getAvailableDeviceTypesEv(ptr noundef nonnull align 8 dereferenceable(912) %49)
          to label %51 unwind label %64

51:                                               ; preds = %10
  %52 = tail call noundef i32 @_ZNK4juce10OwnedArrayINS_17AudioIODeviceTypeENS_20DummyCriticalSectionEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(20) %50) #8
  %53 = icmp sgt i32 %52, 1
  br i1 %53, label %54, label %92

54:                                               ; preds = %51
  %55 = invoke noalias noundef nonnull dereferenceable(384) ptr @_Znwm(i64 noundef 384) #9
          to label %56 unwind label %64

56:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  invoke void @_ZN4juce8ComboBoxC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(380) %55, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %57 unwind label %66

57:                                               ; preds = %56
  %58 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_8ComboBoxEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull %55)
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  br label %59

59:                                               ; preds = %68, %57
  %.029 = phi i32 [ 0, %57 ], [ %72, %68 ]
  %60 = call noundef i32 @_ZNK4juce10OwnedArrayINS_17AudioIODeviceTypeENS_20DummyCriticalSectionEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(20) %50) #8
  %61 = icmp slt i32 %.029, %60
  br i1 %61, label %68, label %62

62:                                               ; preds = %59
  %63 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  invoke void @_ZN4juce9Component17addAndMakeVisibleEPS0_i(ptr noundef nonnull align 8 dereferenceable(197) %0, ptr noundef %63, i32 noundef -1)
          to label %75 unwind label %64

64:                                               ; preds = %182, %180, %161, %156, %154, %148, %123, %115, %110, %107, %103, %93, %84, %81, %77, %75, %62, %54, %10
  %65 = landingpad { ptr, i32 }
          cleanup
  br label %184

66:                                               ; preds = %56
  %67 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @_ZdlPvm(ptr noundef nonnull %55, i64 noundef 384) #10
  br label %184

68:                                               ; preds = %59
  %69 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  %70 = call noundef ptr @_ZNK4juce10OwnedArrayINS_17AudioIODeviceTypeENS_20DummyCriticalSectionEE12getUncheckedEi(ptr noundef nonnull align 8 dereferenceable(20) %50, i32 noundef %.029) #8
  %71 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4juce17AudioIODeviceType11getTypeNameEv(ptr noundef nonnull align 8 dereferenceable(40) %70) #8
  %72 = add nuw nsw i32 %.029, 1
  invoke void @_ZN4juce8ComboBox7addItemERKNS_6StringEi(ptr noundef nonnull align 8 dereferenceable(380) %69, ptr noundef nonnull align 8 dereferenceable(8) %71, i32 noundef %72)
          to label %59 unwind label %73, !llvm.loop !56

73:                                               ; preds = %68
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %184

75:                                               ; preds = %62
  %76 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  invoke void @_ZN4juce8ComboBox11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(380) %76, ptr noundef nonnull %28)
          to label %77 unwind label %64

77:                                               ; preds = %75
  %78 = invoke noalias noundef nonnull dereferenceable(368) ptr @_Znwm(i64 noundef 368) #9
          to label %79 unwind label %64

79:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind nonnull writable sret(%"class.juce::String") align 8 %13, ptr noundef nonnull @.str)
          to label %80 unwind label %87

80:                                               ; preds = %79
  invoke void @_ZN4juce5LabelC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(364) %78, ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %81 unwind label %89

81:                                               ; preds = %80
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull %78)
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  %83 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %14, i32 noundef 34) #8
  invoke void @_ZN4juce5Label20setJustificationTypeENS_13JustificationE(ptr noundef nonnull align 8 dereferenceable(364) %83, ptr noundef nonnull %14)
          to label %84 unwind label %64

84:                                               ; preds = %81
  %85 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  %86 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  invoke void @_ZN4juce5Label17attachToComponentEPNS_9ComponentEb(ptr noundef nonnull align 8 dereferenceable(364) %85, ptr noundef %86, i1 noundef zeroext true)
          to label %92 unwind label %64

87:                                               ; preds = %79
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %91

89:                                               ; preds = %80
  %90 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  br label %91

91:                                               ; preds = %89, %87
  %.pn = phi { ptr, i32 } [ %90, %89 ], [ %88, %87 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @_ZdlPvm(ptr noundef nonnull %78, i64 noundef 368) #10
  br label %184

92:                                               ; preds = %84, %51
  br i1 %6, label %93, label %143

93:                                               ; preds = %92
  %94 = invoke noalias noundef nonnull dereferenceable(344) ptr @_Znwm(i64 noundef 344) #9
          to label %95 unwind label %64

95:                                               ; preds = %93
  %96 = load ptr, ptr %32, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind nonnull writable sret(%"class.juce::String") align 8 %17, ptr noundef nonnull @.str.3)
          to label %97 unwind label %.thread

97:                                               ; preds = %95
  invoke void @_ZN4juceplEPKcRKNS_6StringE(ptr dead_on_unwind nonnull writable sret(%"class.juce::String") align 8 %16, ptr noundef nonnull @.str.2, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %98 unwind label %.thread62

98:                                               ; preds = %97
  invoke void @_ZN4juceplENS_6StringEPKc(ptr dead_on_unwind nonnull writable sret(%"class.juce::String") align 8 %15, ptr noundef nonnull %16, ptr noundef nonnull @.str.4)
          to label %99 unwind label %127

99:                                               ; preds = %98
  invoke void @_ZN4juce28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxC2ERNS_18AudioDeviceManagerERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(344) %94, ptr noundef nonnull align 8 dereferenceable(912) %96, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %100 unwind label %129

100:                                              ; preds = %99
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull %94)
  %102 = call noundef ptr @_ZNK4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEcvPS2_Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  invoke void @_ZN4juce9Component17addAndMakeVisibleEPS0_i(ptr noundef nonnull align 8 dereferenceable(197) %0, ptr noundef %102, i32 noundef -1)
          to label %103 unwind label %129

103:                                              ; preds = %100
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  %104 = invoke noalias noundef nonnull dereferenceable(368) ptr @_Znwm(i64 noundef 368) #9
          to label %105 unwind label %64

105:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind nonnull writable sret(%"class.juce::String") align 8 %19, ptr noundef nonnull @.str.5)
          to label %106 unwind label %133

106:                                              ; preds = %105
  invoke void @_ZN4juce5LabelC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(364) %104, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %107 unwind label %135

107:                                              ; preds = %106
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull %104)
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  %109 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %20, i32 noundef 10) #8
  invoke void @_ZN4juce5Label20setJustificationTypeENS_13JustificationE(ptr noundef nonnull align 8 dereferenceable(364) %109, ptr noundef nonnull %20)
          to label %110 unwind label %64

110:                                              ; preds = %107
  %111 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  %112 = call noundef ptr @_ZNK4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEcvPS2_Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  invoke void @_ZN4juce5Label17attachToComponentEPNS_9ComponentEb(ptr noundef nonnull align 8 dereferenceable(364) %111, ptr noundef %112, i1 noundef zeroext true)
          to label %113 unwind label %64

113:                                              ; preds = %110
  %114 = call noundef zeroext i1 @_ZN4juce34BluetoothMidiDevicePairingDialogue11isAvailableEv()
  br i1 %114, label %115, label %147

115:                                              ; preds = %113
  %116 = invoke noalias noundef nonnull dereferenceable(376) ptr @_Znwm(i64 noundef 376) #9
          to label %117 unwind label %64

117:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind nonnull writable sret(%"class.juce::String") align 8 %21, ptr noundef nonnull @.str.6)
          to label %118 unwind label %.thread65

118:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind nonnull writable sret(%"class.juce::String") align 8 %22, ptr noundef nonnull @.str.7)
          to label %119 unwind label %.thread69

119:                                              ; preds = %118
  invoke void @_ZN4juce10TextButtonC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(375) %116, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %120 unwind label %140

120:                                              ; preds = %119
  %121 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_10TextButtonEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull %116)
  %122 = call noundef ptr @_ZNK4juce13ScopedPointerINS_10TextButtonEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #8
  invoke void @_ZN4juce9Component17addAndMakeVisibleEPS0_i(ptr noundef nonnull align 8 dereferenceable(197) %0, ptr noundef %122, i32 noundef -1)
          to label %123 unwind label %140

123:                                              ; preds = %120
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  %124 = call noundef ptr @_ZNK4juce13ScopedPointerINS_10TextButtonEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  invoke void @_ZN4juce6Button11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(375) %124, ptr noundef nonnull %30)
          to label %147 unwind label %64

.thread:                                          ; preds = %95
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %132

.thread62:                                        ; preds = %97
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %132

127:                                              ; preds = %98
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %131

129:                                              ; preds = %100, %99
  %.026 = phi i1 [ false, %100 ], [ true, %99 ]
  %130 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  br label %131

131:                                              ; preds = %127, %129
  %.pn45 = phi { ptr, i32 } [ %130, %129 ], [ %128, %127 ]
  %.127 = phi i1 [ %.026, %129 ], [ true, %127 ]
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br i1 %.127, label %132, label %184

132:                                              ; preds = %.thread62, %.thread, %131
  %.pn45.pn.pn61 = phi { ptr, i32 } [ %125, %.thread ], [ %.pn45, %131 ], [ %126, %.thread62 ]
  call void @_ZdlPvm(ptr noundef nonnull %94, i64 noundef 344) #10
  br label %184

133:                                              ; preds = %105
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %137

135:                                              ; preds = %106
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  br label %137

137:                                              ; preds = %135, %133
  %.pn49 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @_ZdlPvm(ptr noundef nonnull %104, i64 noundef 368) #10
  br label %184

.thread65:                                        ; preds = %117
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br label %142

.thread69:                                        ; preds = %118
  %139 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br label %142

140:                                              ; preds = %119, %120
  %.025 = phi i1 [ false, %120 ], [ true, %119 ]
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br i1 %.025, label %142, label %184

142:                                              ; preds = %.thread69, %.thread65, %140
  %.pn51.pn68 = phi { ptr, i32 } [ %138, %.thread65 ], [ %141, %140 ], [ %139, %.thread69 ]
  call void @_ZdlPvm(ptr noundef nonnull %116, i64 noundef 376) #10
  br label %184

143:                                              ; preds = %92
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEaSEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef null)
  %145 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef null)
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_10TextButtonEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef null)
  br label %147

147:                                              ; preds = %113, %123, %143
  br i1 %7, label %148, label %177

148:                                              ; preds = %147
  %149 = invoke noalias noundef nonnull dereferenceable(384) ptr @_Znwm(i64 noundef 384) #9
          to label %150 unwind label %64

150:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  call void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  invoke void @_ZN4juce8ComboBoxC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(380) %149, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %151 unwind label %167

151:                                              ; preds = %150
  %152 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_8ComboBoxEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull %149)
  %153 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #8
  invoke void @_ZN4juce9Component17addAndMakeVisibleEPS0_i(ptr noundef nonnull align 8 dereferenceable(197) %0, ptr noundef %153, i32 noundef -1)
          to label %154 unwind label %165

154:                                              ; preds = %151
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  %155 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  invoke void @_ZN4juce8ComboBox11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(380) %155, ptr noundef nonnull %28)
          to label %156 unwind label %64

156:                                              ; preds = %154
  %157 = invoke noalias noundef nonnull dereferenceable(368) ptr @_Znwm(i64 noundef 368) #9
          to label %158 unwind label %64

158:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  invoke void @_ZN4juce6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull @.str.8)
          to label %159 unwind label %169

159:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  invoke void @_ZN4juce9translateEPKc(ptr dead_on_unwind nonnull writable sret(%"class.juce::String") align 8 %25, ptr noundef nonnull @.str.9)
          to label %160 unwind label %171

160:                                              ; preds = %159
  invoke void @_ZN4juce5LabelC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(364) %157, ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %161 unwind label %173

161:                                              ; preds = %160
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull %157)
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  %163 = call noundef ptr @_ZNK4juce13ScopedPointerINS_5LabelEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  %164 = call noundef ptr @_ZNK4juce13ScopedPointerINS_8ComboBoxEEcvPS1_Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  invoke void @_ZN4juce5Label17attachToComponentEPNS_9ComponentEb(ptr noundef nonnull align 8 dereferenceable(364) %163, ptr noundef %164, i1 noundef zeroext true)
          to label %180 unwind label %64

165:                                              ; preds = %151
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %184

167:                                              ; preds = %150
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  call void @_ZdlPvm(ptr noundef nonnull %149, i64 noundef 384) #10
  br label %184

169:                                              ; preds = %158
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %176

171:                                              ; preds = %159
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %175

173:                                              ; preds = %160
  %174 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br label %175

175:                                              ; preds = %173, %171
  %.pn54 = phi { ptr, i32 } [ %174, %173 ], [ %172, %171 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  br label %176

176:                                              ; preds = %175, %169
  %.pn54.pn = phi { ptr, i32 } [ %.pn54, %175 ], [ %170, %169 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @_ZdlPvm(ptr noundef nonnull %157, i64 noundef 368) #10
  br label %184

177:                                              ; preds = %147
  %178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_8ComboBoxEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef null)
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4juce13ScopedPointerINS_5LabelEEaSEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef null)
  br label %180

180:                                              ; preds = %161, %177
  %181 = load ptr, ptr %32, align 8, !tbaa !55
  invoke void @_ZN4juce17ChangeBroadcaster17addChangeListenerEPNS_14ChangeListenerE(ptr noundef nonnull align 8 dereferenceable(56) %181, ptr noundef nonnull %29)
          to label %182 unwind label %64

182:                                              ; preds = %180
  invoke void @_ZN4juce28AudioDeviceSelectorComponent17updateAllControlsEv(ptr noundef nonnull align 8 dereferenceable(360) %0)
          to label %183 unwind label %64

183:                                              ; preds = %182
  call void @_ZN4juce5Timer10startTimerEi(ptr noundef nonnull align 8 dereferenceable(32) %31, i32 noundef 1000) #8
  ret void

184:                                              ; preds = %165, %176, %167, %140, %142, %137, %131, %132, %91, %66, %73, %64
  %.pn57 = phi { ptr, i32 } [ %74, %73 ], [ %65, %64 ], [ %.pn54.pn, %176 ], [ %168, %167 ], [ %166, %165 ], [ %.pn51.pn68, %142 ], [ %141, %140 ], [ %.pn49, %137 ], [ %.pn45.pn.pn61, %132 ], [ %.pn45, %131 ], [ %.pn, %91 ], [ %67, %66 ]
  call void @_ZN4juce13ScopedPointerINS_10TextButtonEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  call void @_ZN4juce13ScopedPointerINS_5LabelEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  call void @_ZN4juce13ScopedPointerINS_5LabelEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  call void @_ZN4juce13ScopedPointerINS_8ComboBoxEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  call void @_ZN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @_ZN4juce13ScopedPointerINS_9ComponentEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @_ZN4juce13ScopedPointerINS_5LabelEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  call void @_ZN4juce13ScopedPointerINS_8ComboBoxEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  call void @_ZN4juce5TimerD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZN4juce6Button8ListenerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  call void @_ZN4juce14ChangeListenerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  call void @_ZN4juce8ComboBox8ListenerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  call void @_ZN4juce9ComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(197) %0) #8
  resume { ptr, i32 } %.pn57
}

; Function Attrs: nounwind
declare void @_ZN4juce9ComponentC2Ev(ptr noundef nonnull align 8 dereferenceable(197)) unnamed_addr #1

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

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

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

; Function Attrs: nounwind
declare void @_ZN4juce5TimerC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

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

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

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

; Function Attrs: nounwind
declare void @_ZN4juce6StringC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

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

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

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

declare noundef nonnull align 8 dereferenceable(20) ptr @_ZN4juce18AudioDeviceManager23getAvailableDeviceTypesEv(ptr noundef nonnull align 8 dereferenceable(912)) local_unnamed_addr #4

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4juce10OwnedArrayINS_17AudioIODeviceTypeENS_20DummyCriticalSectionEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(20)) local_unnamed_addr #2 align 2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #5

declare void @_ZN4juce8ComboBoxC1ERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(380), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

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

; Function Attrs: nounwind
declare void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #7

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

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

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

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

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

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

declare void @_ZN4juce8ComboBox11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(380), ptr noundef) local_unnamed_addr #4

declare void @_ZN4juce9translateEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8, ptr noundef) local_unnamed_addr #4

declare void @_ZN4juce5LabelC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(364), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

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

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

declare void @_ZN4juce5Label20setJustificationTypeENS_13JustificationE(ptr noundef nonnull align 8 dereferenceable(364), ptr noundef) local_unnamed_addr #4

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

declare void @_ZN4juce5Label17attachToComponentEPNS_9ComponentEb(ptr noundef nonnull align 8 dereferenceable(364), ptr noundef, i1 noundef zeroext) local_unnamed_addr #4

declare void @_ZN4juceplENS_6StringEPKc(ptr dead_on_unwind writable sret(%"class.juce::String") align 8, ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN4juceplEPKcRKNS_6StringE(ptr dead_on_unwind writable sret(%"class.juce::String") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4juce28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxC2ERNS_18AudioDeviceManagerERKNS_6StringE(ptr noundef nonnull align 8 dereferenceable(344), ptr noundef nonnull align 8 dereferenceable(912), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4juce34BluetoothMidiDevicePairingDialogue11isAvailableEv() local_unnamed_addr #6 align 2

declare void @_ZN4juce10TextButtonC1ERKNS_6StringES3_(ptr noundef nonnull align 8 dereferenceable(375), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

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

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

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

declare void @_ZN4juce6Button11addListenerEPNS0_8ListenerE(ptr noundef nonnull align 8 dereferenceable(375), ptr noundef) local_unnamed_addr #4

declare void @_ZN4juce6StringC1EPKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #4

declare void @_ZN4juce17ChangeBroadcaster17addChangeListenerEPNS_14ChangeListenerE(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) local_unnamed_addr #4

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

; Function Attrs: nounwind
declare void @_ZN4juce5Timer10startTimerEi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #1

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

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

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

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

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

; Function Attrs: nounwind
declare void @_ZN4juce5TimerD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

; Function Attrs: nounwind
declare void @_ZN4juce9ComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(197)) unnamed_addr #1

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress 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 #7 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { builtin 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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !7, i64 0}
!11 = !{!12, !19, i64 296}
!12 = !{!"_ZTSN4juce28AudioDeviceSelectorComponentE", !13, i64 0, !39, i64 200, !40, i64 208, !41, i64 216, !42, i64 224, !9, i64 256, !43, i64 264, !44, i64 272, !45, i64 280, !15, i64 288, !19, i64 296, !19, i64 300, !19, i64 304, !19, i64 308, !19, i64 312, !46, i64 316, !46, i64 317, !47, i64 320, !43, i64 328, !44, i64 336, !44, i64 344, !48, i64 352}
!13 = !{!"_ZTSN4juce9ComponentE", !14, i64 0, !15, i64 8, !15, i64 16, !9, i64 24, !17, i64 32, !20, i64 48, !21, i64 56, !22, i64 64, !9, i64 88, !25, i64 96, !9, i64 104, !26, i64 112, !27, i64 120, !28, i64 128, !29, i64 136, !33, i64 160, !37, i64 184, !10, i64 192, !10, i64 196}
!14 = !{!"_ZTSN4juce13MouseListenerE"}
!15 = !{!"_ZTSN4juce6StringE", !16, i64 0}
!16 = !{!"_ZTSN4juce16CharPointer_UTF8E", !9, i64 0}
!17 = !{!"_ZTSN4juce9RectangleIiEE", !18, i64 0, !19, i64 8, !19, i64 12}
!18 = !{!"_ZTSN4juce5PointIiEE", !19, i64 0, !19, i64 4}
!19 = !{!"int", !10, i64 0}
!20 = !{!"_ZTSN4juce13ScopedPointerINS_9Component10PositionerEEE", !9, i64 0}
!21 = !{!"_ZTSN4juce13ScopedPointerINS_15AffineTransformEEE", !9, i64 0}
!22 = !{!"_ZTSN4juce5ArrayIPNS_9ComponentENS_20DummyCriticalSectionELi0EEE", !23, i64 0, !19, i64 16}
!23 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_9ComponentENS_20DummyCriticalSectionEEE", !24, i64 0, !19, i64 8}
!24 = !{!"_ZTSN4juce9HeapBlockIPNS_9ComponentELb0EEE", !9, i64 0}
!25 = !{!"_ZTSN4juce11MouseCursorE", !9, i64 0}
!26 = !{!"_ZTSN4juce13ScopedPointerINS_20CachedComponentImageEEE", !9, i64 0}
!27 = !{!"_ZTSN4juce13ScopedPointerINS_9Component17MouseListenerListEEE", !9, i64 0}
!28 = !{!"_ZTSN4juce13ScopedPointerINS_5ArrayIPNS_11KeyListenerENS_20DummyCriticalSectionELi0EEEEE", !9, i64 0}
!29 = !{!"_ZTSN4juce12ListenerListINS_17ComponentListenerENS_5ArrayIPS1_NS_20DummyCriticalSectionELi0EEEEE", !30, i64 0}
!30 = !{!"_ZTSN4juce5ArrayIPNS_17ComponentListenerENS_20DummyCriticalSectionELi0EEE", !31, i64 0, !19, i64 16}
!31 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_17ComponentListenerENS_20DummyCriticalSectionEEE", !32, i64 0, !19, i64 8}
!32 = !{!"_ZTSN4juce9HeapBlockIPNS_17ComponentListenerELb0EEE", !9, i64 0}
!33 = !{!"_ZTSN4juce13NamedValueSetE", !34, i64 0}
!34 = !{!"_ZTSN4juce5ArrayINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionELi0EEE", !35, i64 0, !19, i64 16}
!35 = !{!"_ZTSN4juce19ArrayAllocationBaseINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionEEE", !36, i64 0, !19, i64 8}
!36 = !{!"_ZTSN4juce9HeapBlockINS_13NamedValueSet10NamedValueELb0EEE", !9, i64 0}
!37 = !{!"_ZTSN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE6MasterE", !38, i64 0}
!38 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE13SharedPointerEEE", !9, i64 0}
!39 = !{!"_ZTSN4juce8ComboBox8ListenerE"}
!40 = !{!"_ZTSN4juce14ChangeListenerE"}
!41 = !{!"_ZTSN4juce6Button8ListenerE"}
!42 = !{!"_ZTSN4juce5TimerE", !19, i64 8, !19, i64 12, !9, i64 16, !9, i64 24}
!43 = !{!"_ZTSN4juce13ScopedPointerINS_8ComboBoxEEE", !9, i64 0}
!44 = !{!"_ZTSN4juce13ScopedPointerINS_5LabelEEE", !9, i64 0}
!45 = !{!"_ZTSN4juce13ScopedPointerINS_9ComponentEEE", !9, i64 0}
!46 = !{!"bool", !10, i64 0}
!47 = !{!"_ZTSN4juce13ScopedPointerINS_28AudioDeviceSelectorComponent33MidiInputSelectorComponentListBoxEEE", !9, i64 0}
!48 = !{!"_ZTSN4juce13ScopedPointerINS_10TextButtonEEE", !9, i64 0}
!49 = !{!12, !19, i64 300}
!50 = !{!12, !19, i64 304}
!51 = !{!12, !19, i64 308}
!52 = !{!12, !19, i64 312}
!53 = !{!12, !46, i64 316}
!54 = !{!12, !46, i64 317}
!55 = !{!12, !9, i64 256}
!56 = distinct !{!56, !57}
!57 = !{!"llvm.loop.mustprogress"}


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