; 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::Padding" = 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.48 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [64 x i8], align 1
@_ZL8padding_ = external hidden global %struct.FLAC__StreamMetadata, align 8
@.str.55 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [36 x i8], align 1
@_ZTIN4FLAC8Metadata7PaddingE = 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

declare noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef) #1

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z28test_metadata_object_paddingv() #3 personality ptr @__gxx_personality_v0 {
  %1 = alloca i1, align 1
  %2 = alloca i32, align 4
  %3 = alloca %"class.FLAC::Metadata::Padding", align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca %"class.FLAC::Metadata::Padding", align 8
  %8 = alloca %"class.FLAC::Metadata::Padding", align 8
  %9 = alloca %"class.FLAC::Metadata::Padding", align 8
  %10 = alloca %"class.FLAC::Metadata::Padding", align 8
  %11 = alloca ptr, align 8
  %12 = alloca %"class.FLAC::Metadata::Padding", align 8
  %13 = alloca %"class.FLAC::Metadata::Padding", align 8
  %14 = alloca ptr, align 8
  %15 = alloca %"class.FLAC::Metadata::Padding", align 8
  %16 = alloca %"class.FLAC::Metadata::Padding", align 8
  %17 = alloca %"class.FLAC::Metadata::Padding", align 8
  %18 = alloca %"class.FLAC::Metadata::Padding", align 8
  %19 = alloca ptr, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #7
  %20 = call i32 (ptr, ...) @printf(ptr noundef @.str.48)
  %21 = call i32 (ptr, ...) @printf(ptr noundef @.str.49)
  call void @llvm.lifetime.start.p0(i64 24, ptr %3) #7
  call void @_ZN4FLAC8Metadata7PaddingC1Ev(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 %452

27:                                               ; preds = %396, %394, %390, %385, %383, %381, %379, %377, %348, %346, %317, %315, %285, %283, %245, %243, %211, %209, %173, %171, %142, %140, %111, %109, %80, %78, %76, %46, %44, %42, %39, %36, %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 %454

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

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

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

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

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

42:                                               ; preds = %33
  %43 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %44 unwind label %27

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

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

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

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

51:                                               ; preds = %49
  br i1 %50, label %63, label %52

52:                                               ; preds = %51
  %53 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %54 unwind label %59

54:                                               ; preds = %52
  store i1 %53, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %74

55:                                               ; preds = %48
  %56 = landingpad { ptr, i32 }
          cleanup
  %57 = extractvalue { ptr, i32 } %56, 0
  store ptr %57, ptr %4, align 8
  %58 = extractvalue { ptr, i32 } %56, 1
  store i32 %58, ptr %5, align 4
  br label %89

59:                                               ; preds = %71, %69, %66, %63, %52, %49
  %60 = landingpad { ptr, i32 }
          cleanup
  %61 = extractvalue { ptr, i32 } %60, 0
  store ptr %61, ptr %4, align 8
  %62 = extractvalue { ptr, i32 } %60, 1
  store i32 %62, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #7
  br label %89

63:                                               ; preds = %51
  %64 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %7, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %65 unwind label %59

65:                                               ; preds = %63
  br i1 %64, label %66, label %69

66:                                               ; preds = %65
  %67 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %68 unwind label %59

68:                                               ; preds = %66
  store i1 %67, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %74

69:                                               ; preds = %65
  %70 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %71 unwind label %59

71:                                               ; preds = %69
  %72 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.52)
          to label %73 unwind label %59

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

74:                                               ; preds = %73, %68, %54
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #7
  %75 = load i32, ptr %6, align 4
  switch i32 %75, label %452 [
    i32 0, label %76
  ]

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

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

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

82:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #7
  invoke void @_ZN4FLAC8Metadata7PaddingC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %83 unwind label %90

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

85:                                               ; preds = %83
  br i1 %84, label %98, label %86

86:                                               ; preds = %85
  %87 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %88 unwind label %94

88:                                               ; preds = %86
  store i1 %87, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %107

89:                                               ; preds = %59, %55
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #7
  br label %454

90:                                               ; preds = %82
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %4, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %5, align 4
  br label %120

94:                                               ; preds = %104, %101, %98, %86, %83
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %4, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #7
  br label %120

98:                                               ; preds = %85
  %99 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %100 unwind label %94

100:                                              ; preds = %98
  br i1 %99, label %101, label %104

101:                                              ; preds = %100
  %102 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %103 unwind label %94

103:                                              ; preds = %101
  store i1 %102, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %107

104:                                              ; preds = %100
  %105 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %106 unwind label %94

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

107:                                              ; preds = %106, %103, %88
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  %108 = load i32, ptr %6, align 4
  switch i32 %108, label %452 [
    i32 0, label %109
  ]

109:                                              ; preds = %107
  %110 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.55)
          to label %111 unwind label %27

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

113:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #7
  invoke void @_ZN4FLAC8Metadata7PaddingC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef @_ZL8padding_)
          to label %114 unwind label %121

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

116:                                              ; preds = %114
  br i1 %115, label %129, label %117

117:                                              ; preds = %116
  %118 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %119 unwind label %125

119:                                              ; preds = %117
  store i1 %118, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %138

120:                                              ; preds = %94, %90
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  br label %454

121:                                              ; preds = %113
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %4, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %5, align 4
  br label %151

125:                                              ; preds = %135, %132, %129, %117, %114
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %4, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #7
  br label %151

129:                                              ; preds = %116
  %130 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %131 unwind label %125

131:                                              ; preds = %129
  br i1 %130, label %132, label %135

132:                                              ; preds = %131
  %133 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %134 unwind label %125

134:                                              ; preds = %132
  store i1 %133, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %138

135:                                              ; preds = %131
  %136 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %137 unwind label %125

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

138:                                              ; preds = %137, %134, %119
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #7
  %139 = load i32, ptr %6, align 4
  switch i32 %139, label %452 [
    i32 0, label %140
  ]

140:                                              ; preds = %138
  %141 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.57)
          to label %142 unwind label %27

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

144:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #7
  invoke void @_ZN4FLAC8Metadata7PaddingC2EP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef @_ZL8padding_, i1 noundef zeroext true)
          to label %145 unwind label %152

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

147:                                              ; preds = %145
  br i1 %146, label %160, label %148

148:                                              ; preds = %147
  %149 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %150 unwind label %156

150:                                              ; preds = %148
  store i1 %149, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %169

151:                                              ; preds = %125, %121
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #7
  br label %454

152:                                              ; preds = %144
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %4, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %5, align 4
  br label %185

156:                                              ; preds = %166, %163, %160, %148, %145
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %4, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #7
  br label %185

160:                                              ; preds = %147
  %161 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %162 unwind label %156

162:                                              ; preds = %160
  br i1 %161, label %163, label %166

163:                                              ; preds = %162
  %164 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %165 unwind label %156

165:                                              ; preds = %163
  store i1 %164, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %169

166:                                              ; preds = %162
  %167 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %168 unwind label %156

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

169:                                              ; preds = %168, %165, %150
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #7
  %170 = load i32, ptr %6, align 4
  switch i32 %170, label %452 [
    i32 0, label %171
  ]

171:                                              ; preds = %169
  %172 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.58)
          to label %173 unwind label %27

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

175:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %176 = invoke ptr @FLAC__metadata_object_clone(ptr noundef @_ZL8padding_)
          to label %177 unwind label %186

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

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

181:                                              ; preds = %179
  br i1 %180, label %198, label %182

182:                                              ; preds = %181
  %183 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %184 unwind label %194

184:                                              ; preds = %182
  store i1 %183, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %207

185:                                              ; preds = %156, %152
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #7
  br label %454

186:                                              ; preds = %175
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %4, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %5, align 4
  br label %223

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

194:                                              ; preds = %204, %201, %198, %182, %179
  %195 = landingpad { ptr, i32 }
          cleanup
  %196 = extractvalue { ptr, i32 } %195, 0
  store ptr %196, ptr %4, align 8
  %197 = extractvalue { ptr, i32 } %195, 1
  store i32 %197, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %12) #7
  br label %222

198:                                              ; preds = %181
  %199 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %12, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %200 unwind label %194

200:                                              ; preds = %198
  br i1 %199, label %201, label %204

201:                                              ; preds = %200
  %202 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %203 unwind label %194

203:                                              ; preds = %201
  store i1 %202, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %207

204:                                              ; preds = %200
  %205 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %206 unwind label %194

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

207:                                              ; preds = %206, %203, %184
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  %208 = load i32, ptr %6, align 4
  switch i32 %208, label %452 [
    i32 0, label %209
  ]

209:                                              ; preds = %207
  %210 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.59)
          to label %211 unwind label %27

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

213:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #7
  invoke void @_ZN4FLAC8Metadata7PaddingC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %13)
          to label %214 unwind label %224

214:                                              ; preds = %213
  %215 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN4FLAC8Metadata7Padding6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %13, ptr noundef @_ZL8padding_, i1 noundef zeroext true)
          to label %216 unwind label %228

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

218:                                              ; preds = %216
  br i1 %217, label %232, label %219

219:                                              ; preds = %218
  %220 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %221 unwind label %228

221:                                              ; preds = %219
  store i1 %220, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %241

222:                                              ; preds = %194, %190
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  br label %223

223:                                              ; preds = %222, %186
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  br label %454

224:                                              ; preds = %213
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %4, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %5, align 4
  br label %259

228:                                              ; preds = %238, %235, %232, %219, %216, %214
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  store ptr %230, ptr %4, align 8
  %231 = extractvalue { ptr, i32 } %229, 1
  store i32 %231, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %13) #7
  br label %259

232:                                              ; preds = %218
  %233 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %13, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %234 unwind label %228

234:                                              ; preds = %232
  br i1 %233, label %235, label %238

235:                                              ; preds = %234
  %236 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %237 unwind label %228

237:                                              ; preds = %235
  store i1 %236, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %241

238:                                              ; preds = %234
  %239 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %240 unwind label %228

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

241:                                              ; preds = %240, %237, %221
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %13) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #7
  %242 = load i32, ptr %6, align 4
  switch i32 %242, label %452 [
    i32 0, label %243
  ]

243:                                              ; preds = %241
  %244 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.60)
          to label %245 unwind label %27

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

247:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %248 = invoke ptr @FLAC__metadata_object_clone(ptr noundef @_ZL8padding_)
          to label %249 unwind label %260

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

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

253:                                              ; preds = %250
  %254 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %15)
          to label %255 unwind label %268

255:                                              ; preds = %253
  br i1 %254, label %272, label %256

256:                                              ; preds = %255
  %257 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %258 unwind label %268

258:                                              ; preds = %256
  store i1 %257, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %281

259:                                              ; preds = %228, %224
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #7
  br label %454

260:                                              ; preds = %247
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %4, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %5, align 4
  br label %295

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

268:                                              ; preds = %278, %275, %272, %256, %253, %250
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %4, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %15) #7
  br label %294

272:                                              ; preds = %255
  %273 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %15, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %274 unwind label %268

274:                                              ; preds = %272
  br i1 %273, label %275, label %278

275:                                              ; preds = %274
  %276 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %277 unwind label %268

277:                                              ; preds = %275
  store i1 %276, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %281

278:                                              ; preds = %274
  %279 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %280 unwind label %268

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

281:                                              ; preds = %280, %277, %258
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %15) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  %282 = load i32, ptr %6, align 4
  switch i32 %282, label %452 [
    i32 0, label %283
  ]

283:                                              ; preds = %281
  %284 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.61)
          to label %285 unwind label %27

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

287:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #7
  invoke void @_ZN4FLAC8Metadata7PaddingC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %16, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %288 unwind label %296

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

290:                                              ; preds = %288
  br i1 %289, label %304, label %291

291:                                              ; preds = %290
  %292 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %293 unwind label %300

293:                                              ; preds = %291
  store i1 %292, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %313

294:                                              ; preds = %268, %264
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #7
  br label %295

295:                                              ; preds = %294, %260
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  br label %454

296:                                              ; preds = %287
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %4, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %5, align 4
  br label %326

300:                                              ; preds = %310, %307, %304, %291, %288
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %4, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %16) #7
  br label %326

304:                                              ; preds = %290
  %305 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingeqERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %16, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %306 unwind label %300

306:                                              ; preds = %304
  br i1 %305, label %310, label %307

307:                                              ; preds = %306
  %308 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %309 unwind label %300

309:                                              ; preds = %307
  store i1 %308, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %313

310:                                              ; preds = %306
  %311 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %312 unwind label %300

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

313:                                              ; preds = %312, %309, %293
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %16) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  %314 = load i32, ptr %6, align 4
  switch i32 %314, label %452 [
    i32 0, label %315
  ]

315:                                              ; preds = %313
  %316 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.63)
          to label %317 unwind label %27

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

319:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #7
  invoke void @_ZN4FLAC8Metadata7PaddingC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %17, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %320 unwind label %327

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

322:                                              ; preds = %320
  br i1 %321, label %335, label %323

323:                                              ; preds = %322
  %324 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %325 unwind label %331

325:                                              ; preds = %323
  store i1 %324, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %344

326:                                              ; preds = %300, %296
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  br label %454

327:                                              ; preds = %319
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %4, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %5, align 4
  br label %357

331:                                              ; preds = %341, %338, %335, %323, %320
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %4, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %17) #7
  br label %357

335:                                              ; preds = %322
  %336 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %17, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %337 unwind label %331

337:                                              ; preds = %335
  br i1 %336, label %341, label %338

338:                                              ; preds = %337
  %339 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %340 unwind label %331

340:                                              ; preds = %338
  store i1 %339, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %344

341:                                              ; preds = %337
  %342 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %343 unwind label %331

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

344:                                              ; preds = %343, %340, %325
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #7
  %345 = load i32, ptr %6, align 4
  switch i32 %345, label %452 [
    i32 0, label %346
  ]

346:                                              ; preds = %344
  %347 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.65)
          to label %348 unwind label %27

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

350:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #7
  invoke void @_ZN4FLAC8Metadata7PaddingC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %18, ptr noundef @_ZL8padding_)
          to label %351 unwind label %358

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

353:                                              ; preds = %351
  br i1 %352, label %366, label %354

354:                                              ; preds = %353
  %355 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.7)
          to label %356 unwind label %362

356:                                              ; preds = %354
  store i1 %355, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %375

357:                                              ; preds = %331, %327
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #7
  br label %454

358:                                              ; preds = %350
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %4, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %5, align 4
  br label %393

362:                                              ; preds = %372, %369, %366, %354, %351
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %4, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %5, align 4
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %18) #7
  br label %393

366:                                              ; preds = %353
  %367 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %18, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %368 unwind label %362

368:                                              ; preds = %366
  br i1 %367, label %372, label %369

369:                                              ; preds = %368
  %370 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.8)
          to label %371 unwind label %362

371:                                              ; preds = %369
  store i1 %370, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %375

372:                                              ; preds = %368
  %373 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %374 unwind label %362

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

375:                                              ; preds = %374, %371, %356
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #7
  %376 = load i32, ptr %6, align 4
  switch i32 %376, label %452 [
    i32 0, label %377
  ]

377:                                              ; preds = %375
  %378 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.67)
          to label %379 unwind label %27

379:                                              ; preds = %377
  %380 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL8padding_, i32 0, i32 2), align 8, !tbaa !11
  invoke void @_ZN4FLAC8Metadata7Padding10set_lengthEj(ptr noundef nonnull align 8 dereferenceable(17) %3, i32 noundef %380)
          to label %381 unwind label %27

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

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

385:                                              ; preds = %383
  %386 = invoke noundef i32 @_ZNK4FLAC8Metadata9Prototype10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %387 unwind label %27

387:                                              ; preds = %385
  %388 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL8padding_, i32 0, i32 2), align 8, !tbaa !11
  %389 = icmp ne i32 %386, %388
  br i1 %389, label %390, label %394

390:                                              ; preds = %387
  %391 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %392 unwind label %27

392:                                              ; preds = %390
  store i1 %391, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %452

393:                                              ; preds = %362, %358
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #7
  br label %454

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

396:                                              ; preds = %394
  %397 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.43)
          to label %398 unwind label %27

398:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %399 = invoke noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef %3)
          to label %400 unwind label %406

400:                                              ; preds = %398
  store ptr %399, ptr %19, align 8, !tbaa !9
  %401 = load ptr, ptr %19, align 8, !tbaa !9
  %402 = icmp eq ptr null, %401
  br i1 %402, label %403, label %410

403:                                              ; preds = %400
  %404 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.44)
          to label %405 unwind label %406

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

406:                                              ; preds = %448, %446, %437, %435, %432, %428, %419, %403, %398
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %4, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %454

410:                                              ; preds = %400
  %411 = load ptr, ptr %19, align 8, !tbaa !9
  %412 = icmp eq ptr %411, null
  br i1 %412, label %415, label %413

413:                                              ; preds = %410
  %414 = call ptr @__dynamic_cast(ptr %411, ptr @_ZTIN4FLAC8Metadata9PrototypeE, ptr @_ZTIN4FLAC8Metadata7PaddingE, i64 0) #7
  br label %416

415:                                              ; preds = %410
  br label %416

416:                                              ; preds = %415, %413
  %417 = phi ptr [ %414, %413 ], [ null, %415 ]
  %418 = icmp eq ptr null, %417
  br i1 %418, label %419, label %422

419:                                              ; preds = %416
  %420 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.45)
          to label %421 unwind label %406

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

422:                                              ; preds = %416
  %423 = load ptr, ptr %19, align 8, !tbaa !9
  %424 = icmp eq ptr %423, null
  br i1 %424, label %427, label %425

425:                                              ; preds = %422
  %426 = call ptr @__dynamic_cast(ptr %423, ptr @_ZTIN4FLAC8Metadata9PrototypeE, ptr @_ZTIN4FLAC8Metadata7PaddingE, i64 0) #7
  br label %428

427:                                              ; preds = %422
  br label %428

428:                                              ; preds = %427, %425
  %429 = phi ptr [ %426, %425 ], [ null, %427 ]
  %430 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %429, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %431 unwind label %406

431:                                              ; preds = %428
  br i1 %430, label %432, label %435

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

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

435:                                              ; preds = %431
  %436 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %437 unwind label %406

437:                                              ; preds = %435
  %438 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.52)
          to label %439 unwind label %406

439:                                              ; preds = %437
  %440 = load ptr, ptr %19, align 8, !tbaa !9
  %441 = icmp eq ptr %440, null
  br i1 %441, label %446, label %442

442:                                              ; preds = %439
  %443 = load ptr, ptr %440, align 8, !tbaa !14
  %444 = getelementptr inbounds ptr, ptr %443, i64 2
  %445 = load ptr, ptr %444, align 8
  call void %445(ptr noundef nonnull align 8 dereferenceable(17) %440) #7
  br label %446

446:                                              ; preds = %442, %439
  %447 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %448 unwind label %406

448:                                              ; preds = %446
  %449 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.47)
          to label %450 unwind label %406

450:                                              ; preds = %448
  store i1 true, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %451

451:                                              ; preds = %450, %434, %421, %405
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %452

452:                                              ; preds = %451, %392, %375, %344, %313, %281, %241, %207, %169, %138, %107, %74, %41, %26
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #7
  %453 = load i1, ptr %1, align 1
  ret i1 %453

454:                                              ; preds = %406, %393, %357, %326, %295, %259, %223, %185, %151, %120, %89, %27
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #7
  br label %455

455:                                              ; preds = %454
  %456 = load ptr, ptr %4, align 8
  %457 = load i32, ptr %5, align 4
  %458 = insertvalue { ptr, i32 } poison, ptr %456, 0
  %459 = insertvalue { ptr, i32 } %458, i32 %457, 1
  resume { ptr, i32 } %459
}

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN4FLAC8Metadata7Padding10set_lengthEj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef) #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) }
attributes #5 = { 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 #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 = !{!12, !6, i64 8}
!12 = !{!"_ZTS20FLAC__StreamMetadata", !13, i64 0, !6, i64 4, !6, i64 8, !7, i64 16}
!13 = !{!"_ZTS18FLAC__MetadataType", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"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::Padding" = 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.48 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [64 x i8], align 1
@_ZL8padding_ = external hidden global %struct.FLAC__StreamMetadata, align 8
@.str.55 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [36 x i8], align 1
@_ZTIN4FLAC8Metadata7PaddingE = 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 @_Z28test_metadata_object_paddingv() local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.FLAC::Metadata::Padding", align 8
  %2 = alloca %"class.FLAC::Metadata::Padding", align 8
  %3 = alloca %"class.FLAC::Metadata::Padding", align 8
  %4 = alloca %"class.FLAC::Metadata::Padding", align 8
  %5 = alloca %"class.FLAC::Metadata::Padding", align 8
  %6 = alloca %"class.FLAC::Metadata::Padding", align 8
  %7 = alloca %"class.FLAC::Metadata::Padding", align 8
  %8 = alloca %"class.FLAC::Metadata::Padding", align 8
  %9 = alloca %"class.FLAC::Metadata::Padding", align 8
  %10 = alloca %"class.FLAC::Metadata::Padding", align 8
  %11 = alloca %"class.FLAC::Metadata::Padding", align 8
  %12 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.48)
  %13 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.49)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1) #8
  call void @_ZN4FLAC8Metadata7PaddingC1Ev(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, %201, %197, %20, %17
  %16 = landingpad { ptr, i32 }
          cleanup
  br label %235

17:                                               ; preds = %0
  %18 = invoke noundef i32 @_ZNK4FLAC8Metadata9Prototype10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %19 unwind label %15

19:                                               ; preds = %17
  %.not = icmp eq i32 %18, 0
  br i1 %.not, label %24, label %20

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

22:                                               ; preds = %20
  %23 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.3, i32 noundef 0, i32 noundef %21)
  br label %234

24:                                               ; preds = %19
  %25 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %26 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.50)
  %27 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.51)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %28 unwind label %30

28:                                               ; preds = %24
  %29 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %2)
  br i1 %29, label %34, label %.invoke127

30:                                               ; preds = %24
  %31 = landingpad { ptr, i32 }
          cleanup
  br label %47

32:                                               ; preds = %.invoke127, %34
  %33 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %2) #8
  br label %47

34:                                               ; preds = %28
  %35 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %36 unwind label %32

36:                                               ; preds = %34
  br i1 %35, label %.invoke127, label %39

.invoke127:                                       ; preds = %28, %36
  %37 = phi ptr [ @.str.8, %36 ], [ @.str.7, %28 ]
  %38 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %37)
          to label %.thread unwind label %32

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

39:                                               ; preds = %36
  %40 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %41 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.52)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %2) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #8
  %42 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %43 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.53)
  %44 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.54)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %3, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %45 unwind label %48

45:                                               ; preds = %39
  %46 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
  br i1 %46, label %52, label %.invoke128

47:                                               ; preds = %32, %30
  %.pn = phi { ptr, i32 } [ %33, %32 ], [ %31, %30 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #8
  br label %235

48:                                               ; preds = %39
  %49 = landingpad { ptr, i32 }
          cleanup
  br label %63

50:                                               ; preds = %.invoke128, %52
  %51 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #8
  br label %63

52:                                               ; preds = %45
  %53 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %3, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %54 unwind label %50

54:                                               ; preds = %52
  br i1 %53, label %.invoke128, label %57

.invoke128:                                       ; preds = %45, %54
  %55 = phi ptr [ @.str.8, %54 ], [ @.str.7, %45 ]
  %56 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %55)
          to label %.thread92 unwind label %50

.thread92:                                        ; preds = %.invoke128
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #8
  br label %234

57:                                               ; preds = %54
  %58 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #8
  %59 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.55)
  %60 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.56)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %4, ptr noundef nonnull @_ZL8padding_)
          to label %61 unwind label %64

61:                                               ; preds = %57
  %62 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %4)
  br i1 %62, label %68, label %.invoke129

63:                                               ; preds = %50, %48
  %.pn66 = phi { ptr, i32 } [ %51, %50 ], [ %49, %48 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #8
  br label %235

64:                                               ; preds = %57
  %65 = landingpad { ptr, i32 }
          cleanup
  br label %79

66:                                               ; preds = %.invoke129, %68
  %67 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %4) #8
  br label %79

68:                                               ; preds = %61
  %69 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %4, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %70 unwind label %66

70:                                               ; preds = %68
  br i1 %69, label %.invoke129, label %73

.invoke129:                                       ; preds = %61, %70
  %71 = phi ptr [ @.str.8, %70 ], [ @.str.7, %61 ]
  %72 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %71)
          to label %.thread96 unwind label %66

.thread96:                                        ; preds = %.invoke129
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %4) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  br label %234

73:                                               ; preds = %70
  %74 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %4) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  %75 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.57)
  %76 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.56)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC2EP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %5, ptr noundef nonnull @_ZL8padding_, i1 noundef zeroext true)
          to label %77 unwind label %80

77:                                               ; preds = %73
  %78 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %5)
  br i1 %78, label %84, label %.invoke130

79:                                               ; preds = %66, %64
  %.pn68 = phi { ptr, i32 } [ %67, %66 ], [ %65, %64 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #8
  br label %235

80:                                               ; preds = %73
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %97

82:                                               ; preds = %.invoke130, %84
  %83 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %5) #8
  br label %97

84:                                               ; preds = %77
  %85 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %5, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %86 unwind label %82

86:                                               ; preds = %84
  br i1 %85, label %.invoke130, label %89

.invoke130:                                       ; preds = %77, %86
  %87 = phi ptr [ @.str.8, %86 ], [ @.str.7, %77 ]
  %88 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %87)
          to label %.thread100 unwind label %82

.thread100:                                       ; preds = %.invoke130
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %5) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #8
  br label %234

89:                                               ; preds = %86
  %90 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %5) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #8
  %91 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.58)
  %92 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.56)
  %93 = invoke ptr @FLAC__metadata_object_clone(ptr noundef nonnull @_ZL8padding_)
          to label %94 unwind label %98

94:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC2EP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %6, ptr noundef %93, i1 noundef zeroext false)
          to label %95 unwind label %100

95:                                               ; preds = %94
  %96 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %6)
  br i1 %96, label %104, label %.invoke131

97:                                               ; preds = %82, %80
  %.pn70 = phi { ptr, i32 } [ %83, %82 ], [ %81, %80 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #8
  br label %235

98:                                               ; preds = %89
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %235

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

102:                                              ; preds = %.invoke131, %104
  %103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %6) #8
  br label %117

104:                                              ; preds = %95
  %105 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %6, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %106 unwind label %102

106:                                              ; preds = %104
  br i1 %105, label %.invoke131, label %109

.invoke131:                                       ; preds = %95, %106
  %107 = phi ptr [ @.str.8, %106 ], [ @.str.7, %95 ]
  %108 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %107)
          to label %.thread104 unwind label %102

.thread104:                                       ; preds = %.invoke131
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %6) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  br label %234

109:                                              ; preds = %106
  %110 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %6) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  %111 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.59)
  %112 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.56)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7)
          to label %113 unwind label %118

113:                                              ; preds = %109
  %114 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN4FLAC8Metadata7Padding6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %7, ptr noundef nonnull @_ZL8padding_, i1 noundef zeroext true)
          to label %115 unwind label %120

115:                                              ; preds = %113
  %116 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %7)
  br i1 %116, label %122, label %.invoke132

117:                                              ; preds = %102, %100
  %.pn72 = phi { ptr, i32 } [ %103, %102 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  br label %235

118:                                              ; preds = %109
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %137

120:                                              ; preds = %.invoke132, %122, %113
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #8
  br label %137

122:                                              ; preds = %115
  %123 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %7, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %124 unwind label %120

124:                                              ; preds = %122
  br i1 %123, label %.invoke132, label %127

.invoke132:                                       ; preds = %115, %124
  %125 = phi ptr [ @.str.8, %124 ], [ @.str.7, %115 ]
  %126 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %125)
          to label %.thread108 unwind label %120

.thread108:                                       ; preds = %.invoke132
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #8
  br label %234

127:                                              ; preds = %124
  %128 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #8
  %129 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.60)
  %130 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.56)
  %131 = invoke ptr @FLAC__metadata_object_clone(ptr noundef nonnull @_ZL8padding_)
          to label %132 unwind label %138

132:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8)
          to label %133 unwind label %140

133:                                              ; preds = %132
  %134 = invoke noundef nonnull align 8 dereferenceable(17) ptr @_ZN4FLAC8Metadata7Padding6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef %131, i1 noundef zeroext false)
          to label %135 unwind label %142

135:                                              ; preds = %133
  %136 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %8)
  br i1 %136, label %144, label %.invoke133

137:                                              ; preds = %120, %118
  %.pn75 = phi { ptr, i32 } [ %121, %120 ], [ %119, %118 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #8
  br label %235

138:                                              ; preds = %127
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %235

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

142:                                              ; preds = %.invoke133, %144, %133
  %143 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #8
  br label %155

144:                                              ; preds = %135
  %145 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %146 unwind label %142

146:                                              ; preds = %144
  br i1 %145, label %.invoke133, label %149

.invoke133:                                       ; preds = %135, %146
  %147 = phi ptr [ @.str.8, %146 ], [ @.str.7, %135 ]
  %148 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %147)
          to label %.thread112 unwind label %142

.thread112:                                       ; preds = %.invoke133
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  br label %234

149:                                              ; preds = %146
  %150 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  %151 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.61)
  %152 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.62)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %153 unwind label %156

153:                                              ; preds = %149
  %154 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %9)
  br i1 %154, label %160, label %.invoke134

155:                                              ; preds = %142, %140
  %.pn77 = phi { ptr, i32 } [ %143, %142 ], [ %141, %140 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  br label %235

156:                                              ; preds = %149
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %171

158:                                              ; preds = %.invoke134, %160
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #8
  br label %171

160:                                              ; preds = %153
  %161 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingeqERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %162 unwind label %158

162:                                              ; preds = %160
  br i1 %161, label %165, label %.invoke134

.invoke134:                                       ; preds = %153, %162
  %163 = phi ptr [ @.str.8, %162 ], [ @.str.7, %153 ]
  %164 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %163)
          to label %.thread116 unwind label %158

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

165:                                              ; preds = %162
  %166 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  %167 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.63)
  %168 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.64)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %169 unwind label %172

169:                                              ; preds = %165
  %170 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %10)
  br i1 %170, label %176, label %.invoke135

171:                                              ; preds = %158, %156
  %.pn80 = phi { ptr, i32 } [ %159, %158 ], [ %157, %156 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  br label %235

172:                                              ; preds = %165
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %187

174:                                              ; preds = %.invoke135, %176
  %175 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #8
  br label %187

176:                                              ; preds = %169
  %177 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %178 unwind label %174

178:                                              ; preds = %176
  br i1 %177, label %181, label %.invoke135

.invoke135:                                       ; preds = %169, %178
  %179 = phi ptr [ @.str.8, %178 ], [ @.str.7, %169 ]
  %180 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %179)
          to label %.thread120 unwind label %174

.thread120:                                       ; preds = %.invoke135
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  br label %234

181:                                              ; preds = %178
  %182 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  %183 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.65)
  %184 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.66)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #8
  invoke void @_ZN4FLAC8Metadata7PaddingC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %11, ptr noundef nonnull @_ZL8padding_)
          to label %185 unwind label %188

185:                                              ; preds = %181
  %186 = call noundef zeroext i1 @_ZNK4FLAC8Metadata9Prototype8is_validEv(ptr noundef nonnull align 8 dereferenceable(17) %11)
  br i1 %186, label %192, label %.invoke136

187:                                              ; preds = %174, %172
  %.pn82 = phi { ptr, i32 } [ %175, %174 ], [ %173, %172 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  br label %235

188:                                              ; preds = %181
  %189 = landingpad { ptr, i32 }
          cleanup
  br label %209

190:                                              ; preds = %.invoke136, %192
  %191 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #8
  br label %209

192:                                              ; preds = %185
  %193 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %11, ptr noundef nonnull align 8 dereferenceable(176) @_ZL8padding_)
          to label %194 unwind label %190

194:                                              ; preds = %192
  br i1 %193, label %197, label %.invoke136

.invoke136:                                       ; preds = %185, %194
  %195 = phi ptr [ @.str.8, %194 ], [ @.str.7, %185 ]
  %196 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %195)
          to label %.thread124 unwind label %190

.thread124:                                       ; preds = %.invoke136
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #8
  br label %234

197:                                              ; preds = %194
  %198 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #8
  %199 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.67)
  %200 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL8padding_, i64 8), align 8, !tbaa !5
  invoke void @_ZN4FLAC8Metadata7Padding10set_lengthEj(ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef %200)
          to label %201 unwind label %15

201:                                              ; preds = %197
  %202 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %203 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.68)
  %204 = invoke noundef i32 @_ZNK4FLAC8Metadata9Prototype10get_lengthEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %205 unwind label %15

205:                                              ; preds = %201
  %206 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL8padding_, i64 8), align 8, !tbaa !5
  %.not86 = icmp eq i32 %204, %206
  br i1 %.not86, label %210, label %.invoke

.invoke:                                          ; preds = %0, %205
  %207 = phi ptr [ @.str.34, %205 ], [ @.str.2, %0 ]
  %208 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %207)
          to label %234 unwind label %15

209:                                              ; preds = %190, %188
  %.pn84 = phi { ptr, i32 } [ %191, %190 ], [ %189, %188 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #8
  br label %235

210:                                              ; preds = %205
  %211 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %212 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.43)
  %213 = invoke noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef nonnull %1)
          to label %214 unwind label %216

214:                                              ; preds = %210
  %215 = icmp eq ptr %213, null
  br i1 %215, label %.invoke137, label %218

216:                                              ; preds = %.invoke137, %221, %210
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %235

218:                                              ; preds = %214
  %219 = call ptr @__dynamic_cast(ptr nonnull %213, ptr nonnull @_ZTIN4FLAC8Metadata9PrototypeE, ptr nonnull @_ZTIN4FLAC8Metadata7PaddingE, i64 0) #8
  %220 = icmp eq ptr %219, null
  br i1 %220, label %.invoke137, label %221

221:                                              ; preds = %218
  %222 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata7PaddingneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %219, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %223 unwind label %216

223:                                              ; preds = %221
  br i1 %222, label %.invoke137, label %226

.invoke137:                                       ; preds = %214, %223, %218
  %224 = phi ptr [ @.str.45, %218 ], [ @.str.46, %223 ], [ @.str.44, %214 ]
  %225 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %224)
          to label %234 unwind label %216

226:                                              ; preds = %223
  %227 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %228 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.52)
  %229 = load ptr, ptr %213, align 8, !tbaa !11
  %230 = getelementptr inbounds i8, ptr %229, i64 16
  %231 = load ptr, ptr %230, align 8
  call void %231(ptr noundef nonnull align 8 dereferenceable(17) %213) #8
  %232 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %233 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47)
  br label %234

234:                                              ; preds = %.invoke137, %.invoke, %.thread124, %.thread120, %.thread116, %.thread112, %.thread108, %.thread104, %.thread100, %.thread96, %.thread92, %.thread, %226, %22
  %.11 = phi i1 [ false, %22 ], [ true, %226 ], [ %38, %.thread ], [ %56, %.thread92 ], [ %72, %.thread96 ], [ %88, %.thread100 ], [ %108, %.thread104 ], [ %126, %.thread108 ], [ %148, %.thread112 ], [ %164, %.thread116 ], [ %180, %.thread120 ], [ %196, %.thread124 ], [ %208, %.invoke ], [ %225, %.invoke137 ]
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %1) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #8
  ret i1 %.11

235:                                              ; preds = %138, %155, %98, %117, %216, %209, %187, %171, %137, %97, %79, %63, %47, %15
  %.pn87 = phi { ptr, i32 } [ %16, %15 ], [ %217, %216 ], [ %.pn84, %209 ], [ %.pn82, %187 ], [ %.pn80, %171 ], [ %.pn75, %137 ], [ %.pn70, %97 ], [ %.pn68, %79 ], [ %.pn66, %63 ], [ %.pn, %47 ], [ %.pn72, %117 ], [ %99, %98 ], [ %.pn77, %155 ], [ %139, %138 ]
  call void @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %1) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #8
  resume { ptr, i32 } %.pn87
}

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata7PaddingC2ERKS1_(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 @_ZNK4FLAC8Metadata7PaddingneERKS1_(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 @_ZN4FLAC8Metadata7PaddingD1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata7PaddingC2ERK20FLAC__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 @_ZNK4FLAC8Metadata7PaddingneERK20FLAC__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 @_ZN4FLAC8Metadata7PaddingC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata7PaddingC2EP20FLAC__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 @_ZN4FLAC8Metadata7Padding6assignEP20FLAC__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 @_ZNK4FLAC8Metadata7PaddingeqERKS1_(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 @_ZNK4FLAC8Metadata7PaddingeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #6 align 2

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

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


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