; LLVM IR from reworks-org/galaxy :: deps/sfml_deps/flac-src/src/test_libFLAC++ (metadata_object)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.FLAC__StreamMetadata = type { i32, i32, i32, %union.anon }
%union.anon = type { %struct.FLAC__StreamMetadata_CueSheet }
%struct.FLAC__StreamMetadata_CueSheet = type { [129 x i8], i64, i32, i32, ptr }
%"class.FLAC::Metadata::Application" = type { %"class.FLAC::Metadata::Prototype.base", [7 x i8] }
%"class.FLAC::Metadata::Prototype.base" = type <{ ptr, ptr, i8 }>
%struct.FLAC__StreamMetadata_Application = type { [4 x i8], ptr }

@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZTIN4FLAC8Metadata9PrototypeE = external constant ptr
@.str.45 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [39 x i8], align 1
@FLAC__STREAM_METADATA_APPLICATION_ID_LEN = external constant i32, align 4
@.str.71 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [68 x i8], align 1
@_ZL12application_ = external hidden global %struct.FLAC__StreamMetadata, align 8
@.str.76 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [36 x i8], align 1
@_ZTIN4FLAC8Metadata11ApplicationE = external constant ptr

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

declare i32 @printf(ptr noundef, ...) #1

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL4die_PKc(ptr noundef) #3

declare noundef i32 @_ZNK4FLAC8Metadata9Prototype10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(17)) #1

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

declare ptr @FLAC__metadata_object_clone(ptr noundef) #1

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

declare noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef) #1

; Function Attrs: nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) #5

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z32test_metadata_object_applicationv() #3 personality ptr @__gxx_personality_v0 {
  %1 = alloca i1, align 1
  %2 = alloca i32, align 4
  %3 = alloca %"class.FLAC::Metadata::Application", align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca %"class.FLAC::Metadata::Application", align 8
  %8 = alloca %"class.FLAC::Metadata::Application", align 8
  %9 = alloca %"class.FLAC::Metadata::Application", align 8
  %10 = alloca %"class.FLAC::Metadata::Application", align 8
  %11 = alloca ptr, align 8
  %12 = alloca %"class.FLAC::Metadata::Application", align 8
  %13 = alloca %"class.FLAC::Metadata::Application", align 8
  %14 = alloca ptr, align 8
  %15 = alloca %"class.FLAC::Metadata::Application", align 8
  %16 = alloca %"class.FLAC::Metadata::Application", align 8
  %17 = alloca %"class.FLAC::Metadata::Application", align 8
  %18 = alloca %"class.FLAC::Metadata::Application", align 8
  %19 = alloca ptr, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #8
  %20 = call i32 (ptr, ...) @printf(ptr noundef @.str.69)
  %21 = call i32 (ptr, ...) @printf(ptr noundef @.str.70)
  call void @llvm.lifetime.start.p0(i64 24, ptr %3) #8
  call void @_ZN4FLAC8Metadata11ApplicationC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3)
  %22 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %23 unwind label %27

23:                                               ; preds = %0
  br i1 %22, label %31, label %24

24:                                               ; preds = %23
  %25 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.2)
          to label %26 unwind label %27

26:                                               ; preds = %24
  store i1 %25, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %480

27:                                               ; preds = %424, %422, %419, %410, %408, %406, %402, %397, %395, %393, %386, %384, %382, %381, %379, %350, %348, %319, %317, %287, %285, %247, %245, %213, %211, %175, %173, %144, %142, %113, %111, %82, %80, %78, %48, %46, %44, %41, %38, %31, %24, %0
  %28 = landingpad { ptr, i32 }
          cleanup
  %29 = extractvalue { ptr, i32 } %28, 0
  store ptr %29, ptr %4, align 8
  %30 = extractvalue { ptr, i32 } %28, 1
  store i32 %30, ptr %5, align 4
  br label %482

31:                                               ; preds = %23
  %32 = load i32, ptr @FLAC__STREAM_METADATA_APPLICATION_ID_LEN, align 4, !tbaa !5
  %33 = udiv i32 %32, 8
  store i32 %33, ptr %2, align 4, !tbaa !5
  %34 = invoke noundef i32 @_ZNK4FLAC8Metadata9Prototype10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %35 unwind label %27

35:                                               ; preds = %31
  %36 = load i32, ptr %2, align 4, !tbaa !5
  %37 = icmp ne i32 %34, %36
  br i1 %37, label %38, label %44

38:                                               ; preds = %35
  %39 = load i32, ptr %2, align 4, !tbaa !5
  %40 = invoke noundef i32 @_ZNK4FLAC8Metadata9Prototype10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %41 unwind label %27

41:                                               ; preds = %38
  %42 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.3, i32 noundef %39, i32 noundef %40)
          to label %43 unwind label %27

43:                                               ; preds = %41
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %480

44:                                               ; preds = %35
  %45 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %46 unwind label %27

46:                                               ; preds = %44
  %47 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.71)
          to label %48 unwind label %27

48:                                               ; preds = %46
  %49 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.72)
          to label %50 unwind label %27

50:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 24, ptr %7) #8
  invoke void @_ZN4FLAC8Metadata11ApplicationC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %7, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %51 unwind label %57

51:                                               ; preds = %50
  %52 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %7)
          to label %53 unwind label %61

53:                                               ; preds = %51
  br i1 %52, label %65, label %54

54:                                               ; preds = %53
  %55 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %56 unwind label %61

56:                                               ; preds = %54
  store i1 %55, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %76

57:                                               ; preds = %50
  %58 = landingpad { ptr, i32 }
          cleanup
  %59 = extractvalue { ptr, i32 } %58, 0
  store ptr %59, ptr %4, align 8
  %60 = extractvalue { ptr, i32 } %58, 1
  store i32 %60, ptr %5, align 4
  br label %91

61:                                               ; preds = %73, %71, %68, %65, %54, %51
  %62 = landingpad { ptr, i32 }
          cleanup
  %63 = extractvalue { ptr, i32 } %62, 0
  store ptr %63, ptr %4, align 8
  %64 = extractvalue { ptr, i32 } %62, 1
  store i32 %64, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #8
  br label %91

65:                                               ; preds = %53
  %66 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %7, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %67 unwind label %61

67:                                               ; preds = %65
  br i1 %66, label %68, label %71

68:                                               ; preds = %67
  %69 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %70 unwind label %61

70:                                               ; preds = %68
  store i1 %69, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %76

71:                                               ; preds = %67
  %72 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %73 unwind label %61

73:                                               ; preds = %71
  %74 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.73)
          to label %75 unwind label %61

75:                                               ; preds = %73
  store i32 0, ptr %6, align 4
  br label %76

76:                                               ; preds = %75, %70, %56
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #8
  %77 = load i32, ptr %6, align 4
  switch i32 %77, label %480 [
    i32 0, label %78
  ]

78:                                               ; preds = %76
  %79 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %80 unwind label %27

80:                                               ; preds = %78
  %81 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.74)
          to label %82 unwind label %27

82:                                               ; preds = %80
  %83 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.75)
          to label %84 unwind label %27

84:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #8
  invoke void @_ZN4FLAC8Metadata11ApplicationC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %85 unwind label %92

85:                                               ; preds = %84
  %86 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %8)
          to label %87 unwind label %96

87:                                               ; preds = %85
  br i1 %86, label %100, label %88

88:                                               ; preds = %87
  %89 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %90 unwind label %96

90:                                               ; preds = %88
  store i1 %89, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %109

91:                                               ; preds = %61, %57
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #8
  br label %482

92:                                               ; preds = %84
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %4, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %5, align 4
  br label %122

96:                                               ; preds = %106, %103, %100, %88, %85
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %4, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #8
  br label %122

100:                                              ; preds = %87
  %101 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %102 unwind label %96

102:                                              ; preds = %100
  br i1 %101, label %103, label %106

103:                                              ; preds = %102
  %104 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %105 unwind label %96

105:                                              ; preds = %103
  store i1 %104, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %109

106:                                              ; preds = %102
  %107 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %108 unwind label %96

108:                                              ; preds = %106
  store i32 0, ptr %6, align 4
  br label %109

109:                                              ; preds = %108, %105, %90
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #8
  %110 = load i32, ptr %6, align 4
  switch i32 %110, label %480 [
    i32 0, label %111
  ]

111:                                              ; preds = %109
  %112 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.76)
          to label %113 unwind label %27

113:                                              ; preds = %111
  %114 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.77)
          to label %115 unwind label %27

115:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #8
  invoke void @_ZN4FLAC8Metadata11ApplicationC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef @_ZL12application_)
          to label %116 unwind label %123

116:                                              ; preds = %115
  %117 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %9)
          to label %118 unwind label %127

118:                                              ; preds = %116
  br i1 %117, label %131, label %119

119:                                              ; preds = %118
  %120 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %121 unwind label %127

121:                                              ; preds = %119
  store i1 %120, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %140

122:                                              ; preds = %96, %92
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #8
  br label %482

123:                                              ; preds = %115
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %4, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %5, align 4
  br label %153

127:                                              ; preds = %137, %134, %131, %119, %116
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %4, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #8
  br label %153

131:                                              ; preds = %118
  %132 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %133 unwind label %127

133:                                              ; preds = %131
  br i1 %132, label %134, label %137

134:                                              ; preds = %133
  %135 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %136 unwind label %127

136:                                              ; preds = %134
  store i1 %135, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %140

137:                                              ; preds = %133
  %138 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %139 unwind label %127

139:                                              ; preds = %137
  store i32 0, ptr %6, align 4
  br label %140

140:                                              ; preds = %139, %136, %121
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  %141 = load i32, ptr %6, align 4
  switch i32 %141, label %480 [
    i32 0, label %142
  ]

142:                                              ; preds = %140
  %143 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.78)
          to label %144 unwind label %27

144:                                              ; preds = %142
  %145 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.77)
          to label %146 unwind label %27

146:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #8
  invoke void @_ZN4FLAC8Metadata11ApplicationC2EP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef @_ZL12application_, i1 noundef zeroext true)
          to label %147 unwind label %154

147:                                              ; preds = %146
  %148 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %10)
          to label %149 unwind label %158

149:                                              ; preds = %147
  br i1 %148, label %162, label %150

150:                                              ; preds = %149
  %151 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %152 unwind label %158

152:                                              ; preds = %150
  store i1 %151, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %171

153:                                              ; preds = %127, %123
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  br label %482

154:                                              ; preds = %146
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %4, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %5, align 4
  br label %187

158:                                              ; preds = %168, %165, %162, %150, %147
  %159 = landingpad { ptr, i32 }
          cleanup
  %160 = extractvalue { ptr, i32 } %159, 0
  store ptr %160, ptr %4, align 8
  %161 = extractvalue { ptr, i32 } %159, 1
  store i32 %161, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #8
  br label %187

162:                                              ; preds = %149
  %163 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %164 unwind label %158

164:                                              ; preds = %162
  br i1 %163, label %165, label %168

165:                                              ; preds = %164
  %166 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %167 unwind label %158

167:                                              ; preds = %165
  store i1 %166, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %171

168:                                              ; preds = %164
  %169 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %170 unwind label %158

170:                                              ; preds = %168
  store i32 0, ptr %6, align 4
  br label %171

171:                                              ; preds = %170, %167, %152
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #8
  %172 = load i32, ptr %6, align 4
  switch i32 %172, label %480 [
    i32 0, label %173
  ]

173:                                              ; preds = %171
  %174 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.79)
          to label %175 unwind label %27

175:                                              ; preds = %173
  %176 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.77)
          to label %177 unwind label %27

177:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %178 = invoke ptr @FLAC__metadata_object_clone(ptr noundef @_ZL12application_)
          to label %179 unwind label %188

179:                                              ; preds = %177
  store ptr %178, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #8
  %180 = load ptr, ptr %11, align 8, !tbaa !9
  invoke void @_ZN4FLAC8Metadata11ApplicationC2EP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %12, ptr noundef %180, i1 noundef zeroext false)
          to label %181 unwind label %192

181:                                              ; preds = %179
  %182 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %12)
          to label %183 unwind label %196

183:                                              ; preds = %181
  br i1 %182, label %200, label %184

184:                                              ; preds = %183
  %185 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %186 unwind label %196

186:                                              ; preds = %184
  store i1 %185, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %209

187:                                              ; preds = %158, %154
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #8
  br label %482

188:                                              ; preds = %177
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %4, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %5, align 4
  br label %225

192:                                              ; preds = %179
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %4, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %5, align 4
  br label %224

196:                                              ; preds = %206, %203, %200, %184, %181
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %4, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %12) #8
  br label %224

200:                                              ; preds = %183
  %201 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %12, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %202 unwind label %196

202:                                              ; preds = %200
  br i1 %201, label %203, label %206

203:                                              ; preds = %202
  %204 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %205 unwind label %196

205:                                              ; preds = %203
  store i1 %204, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %209

206:                                              ; preds = %202
  %207 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %208 unwind label %196

208:                                              ; preds = %206
  store i32 0, ptr %6, align 4
  br label %209

209:                                              ; preds = %208, %205, %186
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  %210 = load i32, ptr %6, align 4
  switch i32 %210, label %480 [
    i32 0, label %211
  ]

211:                                              ; preds = %209
  %212 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.80)
          to label %213 unwind label %27

213:                                              ; preds = %211
  %214 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.77)
          to label %215 unwind label %27

215:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #8
  invoke void @_ZN4FLAC8Metadata11ApplicationC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %13)
          to label %216 unwind label %226

216:                                              ; preds = %215
  %217 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN4FLAC8Metadata11Application6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %13, ptr noundef @_ZL12application_, i1 noundef zeroext true)
          to label %218 unwind label %230

218:                                              ; preds = %216
  %219 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %13)
          to label %220 unwind label %230

220:                                              ; preds = %218
  br i1 %219, label %234, label %221

221:                                              ; preds = %220
  %222 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %223 unwind label %230

223:                                              ; preds = %221
  store i1 %222, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %243

224:                                              ; preds = %196, %192
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #8
  br label %225

225:                                              ; preds = %224, %188
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  br label %482

226:                                              ; preds = %215
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %4, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %5, align 4
  br label %261

230:                                              ; preds = %240, %237, %234, %221, %218, %216
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %4, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %13) #8
  br label %261

234:                                              ; preds = %220
  %235 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %13, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %236 unwind label %230

236:                                              ; preds = %234
  br i1 %235, label %237, label %240

237:                                              ; preds = %236
  %238 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %239 unwind label %230

239:                                              ; preds = %237
  store i1 %238, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %243

240:                                              ; preds = %236
  %241 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %242 unwind label %230

242:                                              ; preds = %240
  store i32 0, ptr %6, align 4
  br label %243

243:                                              ; preds = %242, %239, %223
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #8
  %244 = load i32, ptr %6, align 4
  switch i32 %244, label %480 [
    i32 0, label %245
  ]

245:                                              ; preds = %243
  %246 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.81)
          to label %247 unwind label %27

247:                                              ; preds = %245
  %248 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.77)
          to label %249 unwind label %27

249:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %250 = invoke ptr @FLAC__metadata_object_clone(ptr noundef @_ZL12application_)
          to label %251 unwind label %262

251:                                              ; preds = %249
  store ptr %250, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #8
  invoke void @_ZN4FLAC8Metadata11ApplicationC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %15)
          to label %252 unwind label %266

252:                                              ; preds = %251
  %253 = load ptr, ptr %14, align 8, !tbaa !9
  %254 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN4FLAC8Metadata11Application6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %15, ptr noundef %253, i1 noundef zeroext false)
          to label %255 unwind label %270

255:                                              ; preds = %252
  %256 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %15)
          to label %257 unwind label %270

257:                                              ; preds = %255
  br i1 %256, label %274, label %258

258:                                              ; preds = %257
  %259 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %260 unwind label %270

260:                                              ; preds = %258
  store i1 %259, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %283

261:                                              ; preds = %230, %226
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #8
  br label %482

262:                                              ; preds = %249
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %4, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %5, align 4
  br label %297

266:                                              ; preds = %251
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %4, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %5, align 4
  br label %296

270:                                              ; preds = %280, %277, %274, %258, %255, %252
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %4, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %15) #8
  br label %296

274:                                              ; preds = %257
  %275 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %15, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %276 unwind label %270

276:                                              ; preds = %274
  br i1 %275, label %277, label %280

277:                                              ; preds = %276
  %278 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %279 unwind label %270

279:                                              ; preds = %277
  store i1 %278, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %283

280:                                              ; preds = %276
  %281 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %282 unwind label %270

282:                                              ; preds = %280
  store i32 0, ptr %6, align 4
  br label %283

283:                                              ; preds = %282, %279, %260
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %15) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  %284 = load i32, ptr %6, align 4
  switch i32 %284, label %480 [
    i32 0, label %285
  ]

285:                                              ; preds = %283
  %286 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.82)
          to label %287 unwind label %27

287:                                              ; preds = %285
  %288 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.83)
          to label %289 unwind label %27

289:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #8
  invoke void @_ZN4FLAC8Metadata11ApplicationC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %16, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %290 unwind label %298

290:                                              ; preds = %289
  %291 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %16)
          to label %292 unwind label %302

292:                                              ; preds = %290
  br i1 %291, label %306, label %293

293:                                              ; preds = %292
  %294 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %295 unwind label %302

295:                                              ; preds = %293
  store i1 %294, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %315

296:                                              ; preds = %270, %266
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #8
  br label %297

297:                                              ; preds = %296, %262
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %482

298:                                              ; preds = %289
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %4, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %5, align 4
  br label %328

302:                                              ; preds = %312, %309, %306, %293, %290
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %4, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %16) #8
  br label %328

306:                                              ; preds = %292
  %307 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %16, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %308 unwind label %302

308:                                              ; preds = %306
  br i1 %307, label %312, label %309

309:                                              ; preds = %308
  %310 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %311 unwind label %302

311:                                              ; preds = %309
  store i1 %310, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %315

312:                                              ; preds = %308
  %313 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %314 unwind label %302

314:                                              ; preds = %312
  store i32 0, ptr %6, align 4
  br label %315

315:                                              ; preds = %314, %311, %295
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  %316 = load i32, ptr %6, align 4
  switch i32 %316, label %480 [
    i32 0, label %317
  ]

317:                                              ; preds = %315
  %318 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.84)
          to label %319 unwind label %27

319:                                              ; preds = %317
  %320 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.85)
          to label %321 unwind label %27

321:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #8
  invoke void @_ZN4FLAC8Metadata11ApplicationC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %17, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %322 unwind label %329

322:                                              ; preds = %321
  %323 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %17)
          to label %324 unwind label %333

324:                                              ; preds = %322
  br i1 %323, label %337, label %325

325:                                              ; preds = %324
  %326 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %327 unwind label %333

327:                                              ; preds = %325
  store i1 %326, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %346

328:                                              ; preds = %302, %298
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  br label %482

329:                                              ; preds = %321
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %4, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %5, align 4
  br label %359

333:                                              ; preds = %343, %340, %337, %325, %322
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %4, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %17) #8
  br label %359

337:                                              ; preds = %324
  %338 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %17, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %339 unwind label %333

339:                                              ; preds = %337
  br i1 %338, label %343, label %340

340:                                              ; preds = %339
  %341 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %342 unwind label %333

342:                                              ; preds = %340
  store i1 %341, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %346

343:                                              ; preds = %339
  %344 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %345 unwind label %333

345:                                              ; preds = %343
  store i32 0, ptr %6, align 4
  br label %346

346:                                              ; preds = %345, %342, %327
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #8
  %347 = load i32, ptr %6, align 4
  switch i32 %347, label %480 [
    i32 0, label %348
  ]

348:                                              ; preds = %346
  %349 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.86)
          to label %350 unwind label %27

350:                                              ; preds = %348
  %351 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.87)
          to label %352 unwind label %27

352:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #8
  invoke void @_ZN4FLAC8Metadata11ApplicationC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %18, ptr noundef @_ZL12application_)
          to label %353 unwind label %360

353:                                              ; preds = %352
  %354 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %18)
          to label %355 unwind label %364

355:                                              ; preds = %353
  br i1 %354, label %368, label %356

356:                                              ; preds = %355
  %357 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %358 unwind label %364

358:                                              ; preds = %356
  store i1 %357, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %377

359:                                              ; preds = %333, %329
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #8
  br label %482

360:                                              ; preds = %352
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %4, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %5, align 4
  br label %405

364:                                              ; preds = %374, %371, %368, %356, %353
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %4, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %5, align 4
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %18) #8
  br label %405

368:                                              ; preds = %355
  %369 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %18, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %370 unwind label %364

370:                                              ; preds = %368
  br i1 %369, label %374, label %371

371:                                              ; preds = %370
  %372 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %373 unwind label %364

373:                                              ; preds = %371
  store i1 %372, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %377

374:                                              ; preds = %370
  %375 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %376 unwind label %364

376:                                              ; preds = %374
  store i32 0, ptr %6, align 4
  br label %377

377:                                              ; preds = %376, %373, %358
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #8
  %378 = load i32, ptr %6, align 4
  switch i32 %378, label %480 [
    i32 0, label %379
  ]

379:                                              ; preds = %377
  %380 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.88)
          to label %381 unwind label %27

381:                                              ; preds = %379
  invoke void @_ZN4FLAC8Metadata11Application6set_idEPKh(ptr noundef nonnull align 8 dereferenceable(17) %3, ptr noundef getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL12application_, i32 0, i32 3))
          to label %382 unwind label %27

382:                                              ; preds = %381
  %383 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %384 unwind label %27

384:                                              ; preds = %382
  %385 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.89)
          to label %386 unwind label %27

386:                                              ; preds = %384
  %387 = load ptr, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_Application, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL12application_, i32 0, i32 3), i32 0, i32 1), align 8, !tbaa !11
  %388 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL12application_, i32 0, i32 2), align 8, !tbaa !12
  %389 = zext i32 %388 to i64
  %390 = sub i64 %389, 4
  %391 = trunc i64 %390 to i32
  %392 = invoke noundef zeroext i1 @_ZN4FLAC8Metadata11Application8set_dataEPhjb(ptr noundef nonnull align 8 dereferenceable(17) %3, ptr noundef %387, i32 noundef %391, i1 noundef zeroext true)
          to label %393 unwind label %27

393:                                              ; preds = %386
  %394 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %395 unwind label %27

395:                                              ; preds = %393
  %396 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.90)
          to label %397 unwind label %27

397:                                              ; preds = %395
  %398 = invoke noundef ptr @_ZNK4FLAC8Metadata11Application6get_idEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %399 unwind label %27

399:                                              ; preds = %397
  %400 = call i32 @memcmp(ptr noundef %398, ptr noundef getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL12application_, i32 0, i32 3), i64 noundef 4) #5
  %401 = icmp ne i32 0, %400
  br i1 %401, label %402, label %406

402:                                              ; preds = %399
  %403 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %404 unwind label %27

404:                                              ; preds = %402
  store i1 %403, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %480

405:                                              ; preds = %364, %360
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #8
  br label %482

406:                                              ; preds = %399
  %407 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %408 unwind label %27

408:                                              ; preds = %406
  %409 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.91)
          to label %410 unwind label %27

410:                                              ; preds = %408
  %411 = invoke noundef ptr @_ZNK4FLAC8Metadata11Application8get_dataEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %412 unwind label %27

412:                                              ; preds = %410
  %413 = load ptr, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_Application, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL12application_, i32 0, i32 3), i32 0, i32 1), align 8, !tbaa !11
  %414 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL12application_, i32 0, i32 2), align 8, !tbaa !12
  %415 = zext i32 %414 to i64
  %416 = sub i64 %415, 4
  %417 = call i32 @memcmp(ptr noundef %411, ptr noundef %413, i64 noundef %416) #5
  %418 = icmp ne i32 0, %417
  br i1 %418, label %419, label %422

419:                                              ; preds = %412
  %420 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %421 unwind label %27

421:                                              ; preds = %419
  store i1 %420, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %480

422:                                              ; preds = %412
  %423 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %424 unwind label %27

424:                                              ; preds = %422
  %425 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.43)
          to label %426 unwind label %27

426:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %427 = invoke noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef %3)
          to label %428 unwind label %434

428:                                              ; preds = %426
  store ptr %427, ptr %19, align 8, !tbaa !9
  %429 = load ptr, ptr %19, align 8, !tbaa !9
  %430 = icmp eq ptr null, %429
  br i1 %430, label %431, label %438

431:                                              ; preds = %428
  %432 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.44)
          to label %433 unwind label %434

433:                                              ; preds = %431
  store i1 %432, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %479

434:                                              ; preds = %476, %474, %465, %463, %460, %456, %447, %431, %426
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %4, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %482

438:                                              ; preds = %428
  %439 = load ptr, ptr %19, align 8, !tbaa !9
  %440 = icmp eq ptr %439, null
  br i1 %440, label %443, label %441

441:                                              ; preds = %438
  %442 = call ptr @__dynamic_cast(ptr %439, ptr @_ZTIN4FLAC8Metadata9PrototypeE, ptr @_ZTIN4FLAC8Metadata11ApplicationE, i64 0) #8
  br label %444

443:                                              ; preds = %438
  br label %444

444:                                              ; preds = %443, %441
  %445 = phi ptr [ %442, %441 ], [ null, %443 ]
  %446 = icmp eq ptr null, %445
  br i1 %446, label %447, label %450

447:                                              ; preds = %444
  %448 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.45)
          to label %449 unwind label %434

449:                                              ; preds = %447
  store i1 %448, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %479

450:                                              ; preds = %444
  %451 = load ptr, ptr %19, align 8, !tbaa !9
  %452 = icmp eq ptr %451, null
  br i1 %452, label %455, label %453

453:                                              ; preds = %450
  %454 = call ptr @__dynamic_cast(ptr %451, ptr @_ZTIN4FLAC8Metadata9PrototypeE, ptr @_ZTIN4FLAC8Metadata11ApplicationE, i64 0) #8
  br label %456

455:                                              ; preds = %450
  br label %456

456:                                              ; preds = %455, %453
  %457 = phi ptr [ %454, %453 ], [ null, %455 ]
  %458 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %457, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %459 unwind label %434

459:                                              ; preds = %456
  br i1 %458, label %460, label %463

460:                                              ; preds = %459
  %461 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.46)
          to label %462 unwind label %434

462:                                              ; preds = %460
  store i1 %461, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %479

463:                                              ; preds = %459
  %464 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %465 unwind label %434

465:                                              ; preds = %463
  %466 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.73)
          to label %467 unwind label %434

467:                                              ; preds = %465
  %468 = load ptr, ptr %19, align 8, !tbaa !9
  %469 = icmp eq ptr %468, null
  br i1 %469, label %474, label %470

470:                                              ; preds = %467
  %471 = load ptr, ptr %468, align 8, !tbaa !15
  %472 = getelementptr inbounds ptr, ptr %471, i64 2
  %473 = load ptr, ptr %472, align 8
  call void %473(ptr noundef nonnull align 8 dereferenceable(17) %468) #8
  br label %474

474:                                              ; preds = %470, %467
  %475 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %476 unwind label %434

476:                                              ; preds = %474
  %477 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.47)
          to label %478 unwind label %434

478:                                              ; preds = %476
  store i1 true, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %479

479:                                              ; preds = %478, %462, %449, %433
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %480

480:                                              ; preds = %479, %421, %404, %377, %346, %315, %283, %243, %209, %171, %140, %109, %76, %43, %26
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #8
  %481 = load i1, ptr %1, align 1
  ret i1 %481

482:                                              ; preds = %434, %405, %359, %328, %297, %261, %225, %187, %153, %122, %91, %27
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #8
  br label %483

483:                                              ; preds = %482
  %484 = load ptr, ptr %4, align 8
  %485 = load i32, ptr %5, align 4
  %486 = insertvalue { ptr, i32 } poison, ptr %484, 0
  %487 = insertvalue { ptr, i32 } %486, i32 %485, 1
  resume { ptr, i32 } %487
}

declare void @_ZN4FLAC8Metadata11ApplicationC1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata11ApplicationC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERKS1_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #6 align 2

; Function Attrs: nounwind
declare void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata11ApplicationC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(176)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(176)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata11ApplicationC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) unnamed_addr #6 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(17) ptr @_ZN4FLAC8Metadata11Application6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef, i1 noundef zeroext) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERKS1_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(176)) #6 align 2

declare void @_ZN4FLAC8Metadata11Application6set_idEPKh(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) #1

declare noundef zeroext i1 @_ZN4FLAC8Metadata11Application8set_dataEPhjb(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef, i32 noundef, i1 noundef zeroext) #1

declare noundef ptr @_ZNK4FLAC8Metadata11Application6get_idEv(ptr noundef nonnull align 8 dereferenceable(17)) #1

declare noundef ptr @_ZNK4FLAC8Metadata11Application8get_dataEv(ptr noundef nonnull align 8 dereferenceable(17)) #1

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

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !6, i64 8}
!13 = !{!"_ZTS20FLAC__StreamMetadata", !14, i64 0, !6, i64 4, !6, i64 8, !7, i64 16}
!14 = !{!"_ZTS18FLAC__MetadataType", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"vtable pointer", !8, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.FLAC__StreamMetadata = type { i32, i32, i32, %union.anon }
%union.anon = type { %struct.FLAC__StreamMetadata_CueSheet }
%struct.FLAC__StreamMetadata_CueSheet = type { [129 x i8], i64, i32, i32, ptr }
%"class.FLAC::Metadata::Application" = type { %"class.FLAC::Metadata::Prototype.base", [7 x i8] }
%"class.FLAC::Metadata::Prototype.base" = type <{ ptr, ptr, i8 }>

@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZTIN4FLAC8Metadata9PrototypeE = external constant ptr
@.str.45 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [39 x i8], align 1
@FLAC__STREAM_METADATA_APPLICATION_ID_LEN = external local_unnamed_addr constant i32, align 4
@.str.71 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [68 x i8], align 1
@_ZL12application_ = external hidden global %struct.FLAC__StreamMetadata, align 8
@.str.76 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [36 x i8], align 1
@_ZTIN4FLAC8Metadata11ApplicationE = external constant ptr

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

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #1

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL4die_PKc(ptr noundef) local_unnamed_addr #3

declare noundef i32 @_ZNK4FLAC8Metadata9Prototype10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

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

declare ptr @FLAC__metadata_object_clone(ptr noundef) local_unnamed_addr #4

declare noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z32test_metadata_object_applicationv() local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.FLAC::Metadata::Application", align 8
  %2 = alloca %"class.FLAC::Metadata::Application", align 8
  %3 = alloca %"class.FLAC::Metadata::Application", align 8
  %4 = alloca %"class.FLAC::Metadata::Application", align 8
  %5 = alloca %"class.FLAC::Metadata::Application", align 8
  %6 = alloca %"class.FLAC::Metadata::Application", align 8
  %7 = alloca %"class.FLAC::Metadata::Application", align 8
  %8 = alloca %"class.FLAC::Metadata::Application", align 8
  %9 = alloca %"class.FLAC::Metadata::Application", align 8
  %10 = alloca %"class.FLAC::Metadata::Application", align 8
  %11 = alloca %"class.FLAC::Metadata::Application", align 8
  %12 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.69)
  %13 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.70)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1) #9
  call void @_ZN4FLAC8Metadata11ApplicationC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %1)
  %14 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
  br i1 %14, label %17, label %.invoke

15:                                               ; preds = %.invoke, %215, %209, %202, %199, %22, %17
  %16 = landingpad { ptr, i32 }
          cleanup
  br label %251

17:                                               ; preds = %0
  %18 = load i32, ptr @FLAC__STREAM_METADATA_APPLICATION_ID_LEN, align 4, !tbaa !5
  %19 = lshr i32 %18, 3
  %20 = invoke noundef i32 @_ZNK4FLAC8Metadata9Prototype10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %21 unwind label %15

21:                                               ; preds = %17
  %.not = icmp eq i32 %20, %19
  br i1 %.not, label %26, label %22

22:                                               ; preds = %21
  %23 = invoke noundef i32 @_ZNK4FLAC8Metadata9Prototype10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %24 unwind label %15

24:                                               ; preds = %22
  %25 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.3, i32 noundef %19, i32 noundef %23)
  br label %250

26:                                               ; preds = %21
  %27 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %28 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.71)
  %29 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.72)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %30 unwind label %32

30:                                               ; preds = %26
  %31 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %2)
  br i1 %31, label %36, label %.invoke130

32:                                               ; preds = %26
  %33 = landingpad { ptr, i32 }
          cleanup
  br label %49

34:                                               ; preds = %.invoke130, %36
  %35 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %2) #9
  br label %49

36:                                               ; preds = %30
  %37 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %38 unwind label %34

38:                                               ; preds = %36
  br i1 %37, label %.invoke130, label %41

.invoke130:                                       ; preds = %30, %38
  %39 = phi ptr [ @.str.8, %38 ], [ @.str.7, %30 ]
  %40 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %39)
          to label %.thread unwind label %34

.thread:                                          ; preds = %.invoke130
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %2) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #9
  br label %250

41:                                               ; preds = %38
  %42 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %43 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.73)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %2) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #9
  %44 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %45 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.74)
  %46 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.75)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %3, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %47 unwind label %50

47:                                               ; preds = %41
  %48 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
  br i1 %48, label %54, label %.invoke131

49:                                               ; preds = %34, %32
  %.pn = phi { ptr, i32 } [ %35, %34 ], [ %33, %32 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #9
  br label %251

50:                                               ; preds = %41
  %51 = landingpad { ptr, i32 }
          cleanup
  br label %65

52:                                               ; preds = %.invoke131, %54
  %53 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #9
  br label %65

54:                                               ; preds = %47
  %55 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %3, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %56 unwind label %52

56:                                               ; preds = %54
  br i1 %55, label %.invoke131, label %59

.invoke131:                                       ; preds = %47, %56
  %57 = phi ptr [ @.str.8, %56 ], [ @.str.7, %47 ]
  %58 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %57)
          to label %.thread94 unwind label %52

.thread94:                                        ; preds = %.invoke131
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #9
  br label %250

59:                                               ; preds = %56
  %60 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #9
  %61 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.76)
  %62 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.77)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %4, ptr noundef nonnull @_ZL12application_)
          to label %63 unwind label %66

63:                                               ; preds = %59
  %64 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %4)
  br i1 %64, label %70, label %.invoke132

65:                                               ; preds = %52, %50
  %.pn67 = phi { ptr, i32 } [ %53, %52 ], [ %51, %50 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #9
  br label %251

66:                                               ; preds = %59
  %67 = landingpad { ptr, i32 }
          cleanup
  br label %81

68:                                               ; preds = %.invoke132, %70
  %69 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %4) #9
  br label %81

70:                                               ; preds = %63
  %71 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %4, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %72 unwind label %68

72:                                               ; preds = %70
  br i1 %71, label %.invoke132, label %75

.invoke132:                                       ; preds = %63, %72
  %73 = phi ptr [ @.str.8, %72 ], [ @.str.7, %63 ]
  %74 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %73)
          to label %.thread98 unwind label %68

.thread98:                                        ; preds = %.invoke132
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #9
  br label %250

75:                                               ; preds = %72
  %76 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #9
  %77 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.78)
  %78 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.77)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC2EP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %5, ptr noundef nonnull @_ZL12application_, i1 noundef zeroext true)
          to label %79 unwind label %82

79:                                               ; preds = %75
  %80 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %5)
  br i1 %80, label %86, label %.invoke133

81:                                               ; preds = %68, %66
  %.pn69 = phi { ptr, i32 } [ %69, %68 ], [ %67, %66 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #9
  br label %251

82:                                               ; preds = %75
  %83 = landingpad { ptr, i32 }
          cleanup
  br label %99

84:                                               ; preds = %.invoke133, %86
  %85 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %5) #9
  br label %99

86:                                               ; preds = %79
  %87 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %5, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %88 unwind label %84

88:                                               ; preds = %86
  br i1 %87, label %.invoke133, label %91

.invoke133:                                       ; preds = %79, %88
  %89 = phi ptr [ @.str.8, %88 ], [ @.str.7, %79 ]
  %90 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %89)
          to label %.thread102 unwind label %84

.thread102:                                       ; preds = %.invoke133
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %5) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #9
  br label %250

91:                                               ; preds = %88
  %92 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %5) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #9
  %93 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.79)
  %94 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.77)
  %95 = invoke ptr @FLAC__metadata_object_clone(ptr noundef nonnull @_ZL12application_)
          to label %96 unwind label %100

96:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC2EP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %6, ptr noundef %95, i1 noundef zeroext false)
          to label %97 unwind label %102

97:                                               ; preds = %96
  %98 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %6)
  br i1 %98, label %106, label %.invoke134

99:                                               ; preds = %84, %82
  %.pn71 = phi { ptr, i32 } [ %85, %84 ], [ %83, %82 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #9
  br label %251

100:                                              ; preds = %91
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %251

102:                                              ; preds = %96
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %119

104:                                              ; preds = %.invoke134, %106
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %6) #9
  br label %119

106:                                              ; preds = %97
  %107 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %6, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %108 unwind label %104

108:                                              ; preds = %106
  br i1 %107, label %.invoke134, label %111

.invoke134:                                       ; preds = %97, %108
  %109 = phi ptr [ @.str.8, %108 ], [ @.str.7, %97 ]
  %110 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %109)
          to label %.thread106 unwind label %104

.thread106:                                       ; preds = %.invoke134
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %6) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #9
  br label %250

111:                                              ; preds = %108
  %112 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %6) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #9
  %113 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.80)
  %114 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.77)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7)
          to label %115 unwind label %120

115:                                              ; preds = %111
  %116 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN4FLAC8Metadata11Application6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %7, ptr noundef nonnull @_ZL12application_, i1 noundef zeroext true)
          to label %117 unwind label %122

117:                                              ; preds = %115
  %118 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %7)
  br i1 %118, label %124, label %.invoke135

119:                                              ; preds = %104, %102
  %.pn73 = phi { ptr, i32 } [ %105, %104 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #9
  br label %251

120:                                              ; preds = %111
  %121 = landingpad { ptr, i32 }
          cleanup
  br label %139

122:                                              ; preds = %.invoke135, %124, %115
  %123 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #9
  br label %139

124:                                              ; preds = %117
  %125 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %7, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %126 unwind label %122

126:                                              ; preds = %124
  br i1 %125, label %.invoke135, label %129

.invoke135:                                       ; preds = %117, %126
  %127 = phi ptr [ @.str.8, %126 ], [ @.str.7, %117 ]
  %128 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %127)
          to label %.thread110 unwind label %122

.thread110:                                       ; preds = %.invoke135
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #9
  br label %250

129:                                              ; preds = %126
  %130 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #9
  %131 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.81)
  %132 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.77)
  %133 = invoke ptr @FLAC__metadata_object_clone(ptr noundef nonnull @_ZL12application_)
          to label %134 unwind label %140

134:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8)
          to label %135 unwind label %142

135:                                              ; preds = %134
  %136 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN4FLAC8Metadata11Application6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef %133, i1 noundef zeroext false)
          to label %137 unwind label %144

137:                                              ; preds = %135
  %138 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %8)
  br i1 %138, label %146, label %.invoke136

139:                                              ; preds = %122, %120
  %.pn76 = phi { ptr, i32 } [ %123, %122 ], [ %121, %120 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #9
  br label %251

140:                                              ; preds = %129
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %251

142:                                              ; preds = %134
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %157

144:                                              ; preds = %.invoke136, %146, %135
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #9
  br label %157

146:                                              ; preds = %137
  %147 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %148 unwind label %144

148:                                              ; preds = %146
  br i1 %147, label %.invoke136, label %151

.invoke136:                                       ; preds = %137, %148
  %149 = phi ptr [ @.str.8, %148 ], [ @.str.7, %137 ]
  %150 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %149)
          to label %.thread114 unwind label %144

.thread114:                                       ; preds = %.invoke136
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #9
  br label %250

151:                                              ; preds = %148
  %152 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #9
  %153 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.82)
  %154 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.83)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %155 unwind label %158

155:                                              ; preds = %151
  %156 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %9)
  br i1 %156, label %162, label %.invoke137

157:                                              ; preds = %144, %142
  %.pn78 = phi { ptr, i32 } [ %145, %144 ], [ %143, %142 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #9
  br label %251

158:                                              ; preds = %151
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %173

160:                                              ; preds = %.invoke137, %162
  %161 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #9
  br label %173

162:                                              ; preds = %155
  %163 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %164 unwind label %160

164:                                              ; preds = %162
  br i1 %163, label %167, label %.invoke137

.invoke137:                                       ; preds = %155, %164
  %165 = phi ptr [ @.str.8, %164 ], [ @.str.7, %155 ]
  %166 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %165)
          to label %.thread118 unwind label %160

.thread118:                                       ; preds = %.invoke137
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #9
  br label %250

167:                                              ; preds = %164
  %168 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #9
  %169 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.84)
  %170 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.85)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %171 unwind label %174

171:                                              ; preds = %167
  %172 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %10)
  br i1 %172, label %178, label %.invoke138

173:                                              ; preds = %160, %158
  %.pn81 = phi { ptr, i32 } [ %161, %160 ], [ %159, %158 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #9
  br label %251

174:                                              ; preds = %167
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %189

176:                                              ; preds = %.invoke138, %178
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #9
  br label %189

178:                                              ; preds = %171
  %179 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %180 unwind label %176

180:                                              ; preds = %178
  br i1 %179, label %183, label %.invoke138

.invoke138:                                       ; preds = %171, %180
  %181 = phi ptr [ @.str.8, %180 ], [ @.str.7, %171 ]
  %182 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %181)
          to label %.thread122 unwind label %176

.thread122:                                       ; preds = %.invoke138
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #9
  br label %250

183:                                              ; preds = %180
  %184 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #9
  %185 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.86)
  %186 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.87)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #9
  invoke void @_ZN4FLAC8Metadata11ApplicationC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %11, ptr noundef nonnull @_ZL12application_)
          to label %187 unwind label %190

187:                                              ; preds = %183
  %188 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %11)
  br i1 %188, label %194, label %.invoke139

189:                                              ; preds = %176, %174
  %.pn83 = phi { ptr, i32 } [ %177, %176 ], [ %175, %174 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #9
  br label %251

190:                                              ; preds = %183
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %214

192:                                              ; preds = %.invoke139, %194
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #9
  br label %214

194:                                              ; preds = %187
  %195 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %11, ptr noundef nonnull align 8 dereferenceable(176) @_ZL12application_)
          to label %196 unwind label %192

196:                                              ; preds = %194
  br i1 %195, label %199, label %.invoke139

.invoke139:                                       ; preds = %187, %196
  %197 = phi ptr [ @.str.8, %196 ], [ @.str.7, %187 ]
  %198 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %197)
          to label %.thread126 unwind label %192

.thread126:                                       ; preds = %.invoke139
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #9
  br label %250

199:                                              ; preds = %196
  %200 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #9
  %201 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.88)
  invoke void @_ZN4FLAC8Metadata11Application6set_idEPKh(ptr noundef nonnull align 8 dereferenceable(17) %1, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZL12application_, i64 16))
          to label %202 unwind label %15

202:                                              ; preds = %199
  %203 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %204 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.89)
  %205 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZL12application_, i64 24), align 8, !tbaa !9
  %206 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL12application_, i64 8), align 8, !tbaa !10
  %207 = add i32 %206, -4
  %208 = invoke noundef zeroext i1 @_ZN4FLAC8Metadata11Application8set_dataEPhjb(ptr noundef nonnull align 8 dereferenceable(17) %1, ptr noundef %205, i32 noundef %207, i1 noundef zeroext true)
          to label %209 unwind label %15

209:                                              ; preds = %202
  %210 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %211 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.90)
  %212 = invoke noundef ptr @_ZNK4FLAC8Metadata11Application6get_idEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %213 unwind label %15

213:                                              ; preds = %209
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %212, ptr noundef nonnull dereferenceable(4) getelementptr inbounds (i8, ptr @_ZL12application_, i64 16), i64 4)
  %.not87 = icmp eq i32 %bcmp, 0
  br i1 %.not87, label %215, label %.invoke

214:                                              ; preds = %192, %190
  %.pn85 = phi { ptr, i32 } [ %193, %192 ], [ %191, %190 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #9
  br label %251

215:                                              ; preds = %213
  %216 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %217 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.91)
  %218 = invoke noundef ptr @_ZNK4FLAC8Metadata11Application8get_dataEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %219 unwind label %15

219:                                              ; preds = %215
  %220 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZL12application_, i64 24), align 8, !tbaa !9
  %221 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL12application_, i64 8), align 8, !tbaa !10
  %222 = zext i32 %221 to i64
  %223 = add nsw i64 %222, -4
  %bcmp129 = call i32 @bcmp(ptr %218, ptr %220, i64 %223)
  %.not88 = icmp eq i32 %bcmp129, 0
  br i1 %.not88, label %226, label %.invoke

.invoke:                                          ; preds = %0, %219, %213
  %224 = phi ptr [ @.str.34, %213 ], [ @.str.34, %219 ], [ @.str.2, %0 ]
  %225 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %224)
          to label %250 unwind label %15

226:                                              ; preds = %219
  %227 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %228 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.43)
  %229 = invoke noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef nonnull %1)
          to label %230 unwind label %232

230:                                              ; preds = %226
  %231 = icmp eq ptr %229, null
  br i1 %231, label %.invoke140, label %234

232:                                              ; preds = %.invoke140, %237, %226
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %251

234:                                              ; preds = %230
  %235 = call ptr @__dynamic_cast(ptr nonnull %229, ptr nonnull @_ZTIN4FLAC8Metadata9PrototypeE, ptr nonnull @_ZTIN4FLAC8Metadata11ApplicationE, i64 0) #9
  %236 = icmp eq ptr %235, null
  br i1 %236, label %.invoke140, label %237

237:                                              ; preds = %234
  %238 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %235, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %239 unwind label %232

239:                                              ; preds = %237
  br i1 %238, label %.invoke140, label %242

.invoke140:                                       ; preds = %230, %239, %234
  %240 = phi ptr [ @.str.45, %234 ], [ @.str.46, %239 ], [ @.str.44, %230 ]
  %241 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %240)
          to label %250 unwind label %232

242:                                              ; preds = %239
  %243 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %244 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.73)
  %245 = load ptr, ptr %229, align 8, !tbaa !13
  %246 = getelementptr inbounds i8, ptr %245, i64 16
  %247 = load ptr, ptr %246, align 8
  call void %247(ptr noundef nonnull align 8 dereferenceable(17) %229) #9
  %248 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %249 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47)
  br label %250

250:                                              ; preds = %.invoke140, %.invoke, %.thread126, %.thread122, %.thread118, %.thread114, %.thread110, %.thread106, %.thread102, %.thread98, %.thread94, %.thread, %242, %24
  %.11 = phi i1 [ false, %24 ], [ true, %242 ], [ %40, %.thread ], [ %58, %.thread94 ], [ %74, %.thread98 ], [ %90, %.thread102 ], [ %110, %.thread106 ], [ %128, %.thread110 ], [ %150, %.thread114 ], [ %166, %.thread118 ], [ %182, %.thread122 ], [ %198, %.thread126 ], [ %225, %.invoke ], [ %241, %.invoke140 ]
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %1) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #9
  ret i1 %.11

251:                                              ; preds = %140, %157, %100, %119, %232, %214, %189, %173, %139, %99, %81, %65, %49, %15
  %.pn89 = phi { ptr, i32 } [ %16, %15 ], [ %233, %232 ], [ %.pn85, %214 ], [ %.pn83, %189 ], [ %.pn81, %173 ], [ %.pn76, %139 ], [ %.pn71, %99 ], [ %.pn69, %81 ], [ %.pn67, %65 ], [ %.pn, %49 ], [ %.pn73, %119 ], [ %101, %100 ], [ %.pn78, %157 ], [ %141, %140 ]
  call void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %1) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #9
  resume { ptr, i32 } %.pn89
}

declare void @_ZN4FLAC8Metadata11ApplicationC1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata11ApplicationC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERKS1_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #6 align 2

; Function Attrs: nounwind
declare void @_ZN4FLAC8Metadata11ApplicationD1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata11ApplicationC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(176)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata11ApplicationC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) unnamed_addr #6 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(17) ptr @_ZN4FLAC8Metadata11Application6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef, i1 noundef zeroext) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERKS1_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4FLAC8Metadata11ApplicationeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #6 align 2

declare void @_ZN4FLAC8Metadata11Application6set_idEPKh(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) local_unnamed_addr #4

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

declare noundef ptr @_ZNK4FLAC8Metadata11Application6get_idEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

declare noundef ptr @_ZNK4FLAC8Metadata11Application8get_dataEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !6, i64 8}
!11 = !{!"_ZTS20FLAC__StreamMetadata", !12, i64 0, !6, i64 4, !6, i64 8, !7, i64 16}
!12 = !{!"_ZTS18FLAC__MetadataType", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}


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