; 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::StreamInfo" = type { %"class.FLAC::Metadata::Prototype.base", [7 x i8] }
%"class.FLAC::Metadata::Prototype.base" = type <{ ptr, ptr, i8 }>
%struct.FLAC__StreamMetadata_StreamInfo = type { i32, i32, i32, i32, i32, i32, i32, i64, [16 x i8] }

@.str = external hidden unnamed_addr constant [42 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [37 x i8], align 1
@.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.5 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [55 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.9 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [67 x i8], align 1
@_ZL11streaminfo_ = external hidden global %struct.FLAC__StreamMetadata, align 8
@.str.12 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [37 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
@_ZTIN4FLAC8Metadata10StreamInfoE = 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

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

27:                                               ; preds = %539, %537, %534, %529, %527, %525, %522, %517, %515, %513, %510, %505, %503, %501, %498, %493, %491, %489, %486, %481, %479, %477, %474, %469, %467, %465, %462, %457, %455, %453, %450, %445, %443, %441, %437, %432, %430, %428, %427, %425, %423, %421, %419, %417, %415, %413, %411, %409, %407, %405, %403, %401, %399, %397, %395, %393, %391, %389, %387, %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 %597

31:                                               ; preds = %23
  store i32 34, 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 %595

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.5)
          to label %46 unwind label %27

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

48:                                               ; preds = %46
  call void @llvm.lifetime.start.p0(i64 24, ptr %7) #8
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2ERKS1_(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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #8
  br label %89

63:                                               ; preds = %51
  %64 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERKS1_(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.9)
          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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %7) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #8
  %75 = load i32, ptr %6, align 4
  switch i32 %75, label %595 [
    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.10)
          to label %80 unwind label %27

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

82:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #8
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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) #8
  br label %597

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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #8
  br label %120

98:                                               ; preds = %85
  %99 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %8, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #8
  %108 = load i32, ptr %6, align 4
  switch i32 %108, label %595 [
    i32 0, label %109
  ]

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

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

113:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #8
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef @_ZL11streaminfo_)
          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) #8
  br label %597

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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #8
  br label %151

129:                                              ; preds = %116
  %130 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %9, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  %139 = load i32, ptr %6, align 4
  switch i32 %139, label %595 [
    i32 0, label %140
  ]

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

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

144:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #8
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2EP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef @_ZL11streaminfo_, 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) #8
  br label %597

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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #8
  br label %185

160:                                              ; preds = %147
  %161 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #8
  %170 = load i32, ptr %6, align 4
  switch i32 %170, label %595 [
    i32 0, label %171
  ]

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

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

175:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %176 = invoke ptr @FLAC__metadata_object_clone(ptr noundef @_ZL11streaminfo_)
          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) #8
  %178 = load ptr, ptr %11, align 8, !tbaa !9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2EP20FLAC__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) #8
  br label %597

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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %12) #8
  br label %222

198:                                              ; preds = %181
  %199 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %12, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  %208 = load i32, ptr %6, align 4
  switch i32 %208, label %595 [
    i32 0, label %209
  ]

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

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

213:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #8
  invoke void @_ZN4FLAC8Metadata10StreamInfoC1Ev(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 @_ZN4FLAC8Metadata10StreamInfo6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %13, ptr noundef @_ZL11streaminfo_, 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) #8
  br label %223

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

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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %13) #8
  br label %259

232:                                              ; preds = %218
  %233 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %13, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #8
  %242 = load i32, ptr %6, align 4
  switch i32 %242, label %595 [
    i32 0, label %243
  ]

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

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

247:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %248 = invoke ptr @FLAC__metadata_object_clone(ptr noundef @_ZL11streaminfo_)
          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) #8
  invoke void @_ZN4FLAC8Metadata10StreamInfoC1Ev(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 @_ZN4FLAC8Metadata10StreamInfo6assignEP20FLAC__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) #8
  br label %597

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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %15) #8
  br label %294

272:                                              ; preds = %255
  %273 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %15, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %15) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  %282 = load i32, ptr %6, align 4
  switch i32 %282, label %595 [
    i32 0, label %283
  ]

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

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

287:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #8
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2ERKS1_(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) #8
  br label %295

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

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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %16) #8
  br label %326

304:                                              ; preds = %290
  %305 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoeqERKS1_(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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  %314 = load i32, ptr %6, align 4
  switch i32 %314, label %595 [
    i32 0, label %315
  ]

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

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

319:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #8
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %17, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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) #8
  br label %597

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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %17) #8
  br label %357

335:                                              ; preds = %322
  %336 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %17, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #8
  %345 = load i32, ptr %6, align 4
  switch i32 %345, label %595 [
    i32 0, label %346
  ]

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

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

350:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #8
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %18, ptr noundef @_ZL11streaminfo_)
          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) #8
  br label %597

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 %440

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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %18) #8
  br label %440

366:                                              ; preds = %353
  %367 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoeqERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %18, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #8
  %376 = load i32, ptr %6, align 4
  switch i32 %376, label %595 [
    i32 0, label %377
  ]

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

379:                                              ; preds = %377
  %380 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), align 8, !tbaa !11
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_min_blocksizeEj(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.25)
          to label %385 unwind label %27

385:                                              ; preds = %383
  %386 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 1), align 4, !tbaa !11
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_max_blocksizeEj(ptr noundef nonnull align 8 dereferenceable(17) %3, i32 noundef %386)
          to label %387 unwind label %27

387:                                              ; preds = %385
  %388 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %389 unwind label %27

389:                                              ; preds = %387
  %390 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.26)
          to label %391 unwind label %27

391:                                              ; preds = %389
  %392 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 2), align 8, !tbaa !11
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_min_framesizeEj(ptr noundef nonnull align 8 dereferenceable(17) %3, i32 noundef %392)
          to label %393 unwind label %27

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

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

397:                                              ; preds = %395
  %398 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 3), align 4, !tbaa !11
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_max_framesizeEj(ptr noundef nonnull align 8 dereferenceable(17) %3, i32 noundef %398)
          to label %399 unwind label %27

399:                                              ; preds = %397
  %400 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %401 unwind label %27

401:                                              ; preds = %399
  %402 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.28)
          to label %403 unwind label %27

403:                                              ; preds = %401
  %404 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 4), align 8, !tbaa !11
  invoke void @_ZN4FLAC8Metadata10StreamInfo15set_sample_rateEj(ptr noundef nonnull align 8 dereferenceable(17) %3, i32 noundef %404)
          to label %405 unwind label %27

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

407:                                              ; preds = %405
  %408 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.29)
          to label %409 unwind label %27

409:                                              ; preds = %407
  %410 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 5), align 4, !tbaa !11
  invoke void @_ZN4FLAC8Metadata10StreamInfo12set_channelsEj(ptr noundef nonnull align 8 dereferenceable(17) %3, i32 noundef %410)
          to label %411 unwind label %27

411:                                              ; preds = %409
  %412 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %413 unwind label %27

413:                                              ; preds = %411
  %414 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.30)
          to label %415 unwind label %27

415:                                              ; preds = %413
  %416 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 6), align 8, !tbaa !11
  invoke void @_ZN4FLAC8Metadata10StreamInfo19set_bits_per_sampleEj(ptr noundef nonnull align 8 dereferenceable(17) %3, i32 noundef %416)
          to label %417 unwind label %27

417:                                              ; preds = %415
  %418 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %419 unwind label %27

419:                                              ; preds = %417
  %420 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.31)
          to label %421 unwind label %27

421:                                              ; preds = %419
  %422 = load i64, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 7), align 8, !tbaa !11
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_total_samplesEm(ptr noundef nonnull align 8 dereferenceable(17) %3, i64 noundef %422)
          to label %423 unwind label %27

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

425:                                              ; preds = %423
  %426 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.32)
          to label %427 unwind label %27

427:                                              ; preds = %425
  invoke void @_ZN4FLAC8Metadata10StreamInfo10set_md5sumEPKh(ptr noundef nonnull align 8 dereferenceable(17) %3, ptr noundef getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 8))
          to label %428 unwind label %27

428:                                              ; preds = %427
  %429 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %430 unwind label %27

430:                                              ; preds = %428
  %431 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.33)
          to label %432 unwind label %27

432:                                              ; preds = %430
  %433 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_min_blocksizeEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %434 unwind label %27

434:                                              ; preds = %432
  %435 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), align 8, !tbaa !11
  %436 = icmp ne i32 %433, %435
  br i1 %436, label %437, label %441

437:                                              ; preds = %434
  %438 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %439 unwind label %27

439:                                              ; preds = %437
  store i1 %438, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %595

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

441:                                              ; preds = %434
  %442 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %443 unwind label %27

443:                                              ; preds = %441
  %444 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.35)
          to label %445 unwind label %27

445:                                              ; preds = %443
  %446 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_max_blocksizeEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %447 unwind label %27

447:                                              ; preds = %445
  %448 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 1), align 4, !tbaa !11
  %449 = icmp ne i32 %446, %448
  br i1 %449, label %450, label %453

450:                                              ; preds = %447
  %451 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %452 unwind label %27

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

453:                                              ; preds = %447
  %454 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %455 unwind label %27

455:                                              ; preds = %453
  %456 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.36)
          to label %457 unwind label %27

457:                                              ; preds = %455
  %458 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_min_framesizeEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %459 unwind label %27

459:                                              ; preds = %457
  %460 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 2), align 8, !tbaa !11
  %461 = icmp ne i32 %458, %460
  br i1 %461, label %462, label %465

462:                                              ; preds = %459
  %463 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %464 unwind label %27

464:                                              ; preds = %462
  store i1 %463, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %595

465:                                              ; preds = %459
  %466 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %467 unwind label %27

467:                                              ; preds = %465
  %468 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.37)
          to label %469 unwind label %27

469:                                              ; preds = %467
  %470 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_max_framesizeEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %471 unwind label %27

471:                                              ; preds = %469
  %472 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 3), align 4, !tbaa !11
  %473 = icmp ne i32 %470, %472
  br i1 %473, label %474, label %477

474:                                              ; preds = %471
  %475 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %476 unwind label %27

476:                                              ; preds = %474
  store i1 %475, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %595

477:                                              ; preds = %471
  %478 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %479 unwind label %27

479:                                              ; preds = %477
  %480 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.38)
          to label %481 unwind label %27

481:                                              ; preds = %479
  %482 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo15get_sample_rateEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %483 unwind label %27

483:                                              ; preds = %481
  %484 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 4), align 8, !tbaa !11
  %485 = icmp ne i32 %482, %484
  br i1 %485, label %486, label %489

486:                                              ; preds = %483
  %487 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %488 unwind label %27

488:                                              ; preds = %486
  store i1 %487, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %595

489:                                              ; preds = %483
  %490 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %491 unwind label %27

491:                                              ; preds = %489
  %492 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.39)
          to label %493 unwind label %27

493:                                              ; preds = %491
  %494 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo12get_channelsEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %495 unwind label %27

495:                                              ; preds = %493
  %496 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 5), align 4, !tbaa !11
  %497 = icmp ne i32 %494, %496
  br i1 %497, label %498, label %501

498:                                              ; preds = %495
  %499 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %500 unwind label %27

500:                                              ; preds = %498
  store i1 %499, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %595

501:                                              ; preds = %495
  %502 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %503 unwind label %27

503:                                              ; preds = %501
  %504 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.40)
          to label %505 unwind label %27

505:                                              ; preds = %503
  %506 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo19get_bits_per_sampleEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %507 unwind label %27

507:                                              ; preds = %505
  %508 = load i32, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 6), align 8, !tbaa !11
  %509 = icmp ne i32 %506, %508
  br i1 %509, label %510, label %513

510:                                              ; preds = %507
  %511 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %512 unwind label %27

512:                                              ; preds = %510
  store i1 %511, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %595

513:                                              ; preds = %507
  %514 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %515 unwind label %27

515:                                              ; preds = %513
  %516 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.41)
          to label %517 unwind label %27

517:                                              ; preds = %515
  %518 = invoke noundef i64 @_ZNK4FLAC8Metadata10StreamInfo17get_total_samplesEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %519 unwind label %27

519:                                              ; preds = %517
  %520 = load i64, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 7), align 8, !tbaa !11
  %521 = icmp ne i64 %518, %520
  br i1 %521, label %522, label %525

522:                                              ; preds = %519
  %523 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %524 unwind label %27

524:                                              ; preds = %522
  store i1 %523, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %595

525:                                              ; preds = %519
  %526 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %527 unwind label %27

527:                                              ; preds = %525
  %528 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.42)
          to label %529 unwind label %27

529:                                              ; preds = %527
  %530 = invoke noundef ptr @_ZNK4FLAC8Metadata10StreamInfo10get_md5sumEv(ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %531 unwind label %27

531:                                              ; preds = %529
  %532 = call i32 @memcmp(ptr noundef %530, ptr noundef getelementptr inbounds (%struct.FLAC__StreamMetadata_StreamInfo, ptr getelementptr inbounds (%struct.FLAC__StreamMetadata, ptr @_ZL11streaminfo_, i32 0, i32 3), i32 0, i32 8), i64 noundef 16) #7
  %533 = icmp ne i32 0, %532
  br i1 %533, label %534, label %537

534:                                              ; preds = %531
  %535 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.34)
          to label %536 unwind label %27

536:                                              ; preds = %534
  store i1 %535, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %595

537:                                              ; preds = %531
  %538 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %539 unwind label %27

539:                                              ; preds = %537
  %540 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.43)
          to label %541 unwind label %27

541:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %542 = invoke noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef %3)
          to label %543 unwind label %549

543:                                              ; preds = %541
  store ptr %542, ptr %19, align 8, !tbaa !9
  %544 = load ptr, ptr %19, align 8, !tbaa !9
  %545 = icmp eq ptr null, %544
  br i1 %545, label %546, label %553

546:                                              ; preds = %543
  %547 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.44)
          to label %548 unwind label %549

548:                                              ; preds = %546
  store i1 %547, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %594

549:                                              ; preds = %591, %589, %580, %578, %575, %571, %562, %546, %541
  %550 = landingpad { ptr, i32 }
          cleanup
  %551 = extractvalue { ptr, i32 } %550, 0
  store ptr %551, ptr %4, align 8
  %552 = extractvalue { ptr, i32 } %550, 1
  store i32 %552, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %597

553:                                              ; preds = %543
  %554 = load ptr, ptr %19, align 8, !tbaa !9
  %555 = icmp eq ptr %554, null
  br i1 %555, label %558, label %556

556:                                              ; preds = %553
  %557 = call ptr @__dynamic_cast(ptr %554, ptr @_ZTIN4FLAC8Metadata9PrototypeE, ptr @_ZTIN4FLAC8Metadata10StreamInfoE, i64 0) #8
  br label %559

558:                                              ; preds = %553
  br label %559

559:                                              ; preds = %558, %556
  %560 = phi ptr [ %557, %556 ], [ null, %558 ]
  %561 = icmp eq ptr null, %560
  br i1 %561, label %562, label %565

562:                                              ; preds = %559
  %563 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.45)
          to label %564 unwind label %549

564:                                              ; preds = %562
  store i1 %563, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %594

565:                                              ; preds = %559
  %566 = load ptr, ptr %19, align 8, !tbaa !9
  %567 = icmp eq ptr %566, null
  br i1 %567, label %570, label %568

568:                                              ; preds = %565
  %569 = call ptr @__dynamic_cast(ptr %566, ptr @_ZTIN4FLAC8Metadata9PrototypeE, ptr @_ZTIN4FLAC8Metadata10StreamInfoE, i64 0) #8
  br label %571

570:                                              ; preds = %565
  br label %571

571:                                              ; preds = %570, %568
  %572 = phi ptr [ %569, %568 ], [ null, %570 ]
  %573 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %572, ptr noundef nonnull align 8 dereferenceable(17) %3)
          to label %574 unwind label %549

574:                                              ; preds = %571
  br i1 %573, label %575, label %578

575:                                              ; preds = %574
  %576 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef @.str.46)
          to label %577 unwind label %549

577:                                              ; preds = %575
  store i1 %576, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %594

578:                                              ; preds = %574
  %579 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %580 unwind label %549

580:                                              ; preds = %578
  %581 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.9)
          to label %582 unwind label %549

582:                                              ; preds = %580
  %583 = load ptr, ptr %19, align 8, !tbaa !9
  %584 = icmp eq ptr %583, null
  br i1 %584, label %589, label %585

585:                                              ; preds = %582
  %586 = load ptr, ptr %583, align 8, !tbaa !12
  %587 = getelementptr inbounds ptr, ptr %586, i64 2
  %588 = load ptr, ptr %587, align 8
  call void %588(ptr noundef nonnull align 8 dereferenceable(17) %583) #8
  br label %589

589:                                              ; preds = %585, %582
  %590 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4)
          to label %591 unwind label %549

591:                                              ; preds = %589
  %592 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.47)
          to label %593 unwind label %549

593:                                              ; preds = %591
  store i1 true, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %594

594:                                              ; preds = %593, %577, %564, %548
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %595

595:                                              ; preds = %594, %536, %524, %512, %500, %488, %476, %464, %452, %439, %375, %344, %313, %281, %241, %207, %169, %138, %107, %74, %41, %26
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #8
  %596 = load i1, ptr %1, align 1
  ret i1 %596

597:                                              ; preds = %549, %440, %357, %326, %295, %259, %223, %185, %151, %120, %89, %27
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #8
  br label %598

598:                                              ; preds = %597
  %599 = load ptr, ptr %4, align 8
  %600 = load i32, ptr %5, align 4
  %601 = insertvalue { ptr, i32 } poison, ptr %599, 0
  %602 = insertvalue { ptr, i32 } %601, i32 %600, 1
  resume { ptr, i32 } %602
}

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

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

declare void @_ZN4FLAC8Metadata10StreamInfoC1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #2

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

declare ptr @FLAC__metadata_object_clone(ptr noundef) #2

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

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

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

declare void @_ZN4FLAC8Metadata10StreamInfo17set_min_blocksizeEj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef) #2

declare void @_ZN4FLAC8Metadata10StreamInfo17set_max_blocksizeEj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef) #2

declare void @_ZN4FLAC8Metadata10StreamInfo17set_min_framesizeEj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef) #2

declare void @_ZN4FLAC8Metadata10StreamInfo17set_max_framesizeEj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef) #2

declare void @_ZN4FLAC8Metadata10StreamInfo15set_sample_rateEj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef) #2

declare void @_ZN4FLAC8Metadata10StreamInfo12set_channelsEj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef) #2

declare void @_ZN4FLAC8Metadata10StreamInfo19set_bits_per_sampleEj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef) #2

declare void @_ZN4FLAC8Metadata10StreamInfo17set_total_samplesEm(ptr noundef nonnull align 8 dereferenceable(17), i64 noundef) #2

declare void @_ZN4FLAC8Metadata10StreamInfo10set_md5sumEPKh(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) #2

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_min_blocksizeEv(ptr noundef nonnull align 8 dereferenceable(17)) #2

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_max_blocksizeEv(ptr noundef nonnull align 8 dereferenceable(17)) #2

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_min_framesizeEv(ptr noundef nonnull align 8 dereferenceable(17)) #2

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_max_framesizeEv(ptr noundef nonnull align 8 dereferenceable(17)) #2

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo15get_sample_rateEv(ptr noundef nonnull align 8 dereferenceable(17)) #2

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo12get_channelsEv(ptr noundef nonnull align 8 dereferenceable(17)) #2

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo19get_bits_per_sampleEv(ptr noundef nonnull align 8 dereferenceable(17)) #2

declare noundef i64 @_ZNK4FLAC8Metadata10StreamInfo17get_total_samplesEv(ptr noundef nonnull align 8 dereferenceable(17)) #2

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

declare noundef ptr @_ZNK4FLAC8Metadata10StreamInfo10get_md5sumEv(ptr noundef nonnull align 8 dereferenceable(17)) #2

declare noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef) #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"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::StreamInfo" = type { %"class.FLAC::Metadata::Prototype.base", [7 x i8] }
%"class.FLAC::Metadata::Prototype.base" = type <{ ptr, ptr, i8 }>

@.str = external hidden unnamed_addr constant [42 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [37 x i8], align 1
@.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.5 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [55 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.9 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [67 x i8], align 1
@_ZL11streaminfo_ = external hidden global %struct.FLAC__StreamMetadata, align 8
@.str.12 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [37 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
@_ZTIN4FLAC8Metadata10StreamInfoE = 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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z31test_metadata_object_streaminfov() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %2 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %3 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %4 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %5 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %6 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %7 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %8 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %9 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %10 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %11 = alloca %"class.FLAC::Metadata::StreamInfo", align 8
  %12 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str)
  %13 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1) #9
  call void @_ZN4FLAC8Metadata10StreamInfoC1Ev(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, %281, %275, %269, %263, %257, %251, %245, %239, %232, %229, %225, %221, %217, %213, %209, %205, %201, %197, %20, %17
  %16 = landingpad { ptr, i32 }
          cleanup
  br label %313

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, 34
  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 34, i32 noundef %21)
  br label %312

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.5)
  %27 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.6)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2ERKS1_(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 %.invoke135

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

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

34:                                               ; preds = %28
  %35 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERKS1_(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 %.invoke135, label %39

.invoke135:                                       ; 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 = %.invoke135
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %2) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #9
  br label %312

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.9)
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %2) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #9
  %42 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %43 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.10)
  %44 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.11)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %3, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 %.invoke136

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

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

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

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

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

.invoke136:                                       ; 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 %.thread100 unwind label %50

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

57:                                               ; preds = %54
  %58 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %3) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #9
  %59 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.12)
  %60 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.13)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %4, ptr noundef nonnull @_ZL11streaminfo_)
          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 %.invoke137

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

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

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

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

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

.invoke137:                                       ; 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 %.thread104 unwind label %66

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

73:                                               ; preds = %70
  %74 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %4) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #9
  %75 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.14)
  %76 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.13)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2EP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %5, ptr noundef nonnull @_ZL11streaminfo_, 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 %.invoke138

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

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

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

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

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

.invoke138:                                       ; 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 %.thread108 unwind label %82

.thread108:                                       ; preds = %.invoke138
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %5) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #9
  br label %312

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

94:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2EP20FLAC__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 %.invoke139

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

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

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

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

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

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

.invoke139:                                       ; 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 %.thread112 unwind label %102

.thread112:                                       ; preds = %.invoke139
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %6) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #9
  br label %312

109:                                              ; preds = %106
  %110 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %6) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #9
  %111 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.16)
  %112 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.13)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC1Ev(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 @_ZN4FLAC8Metadata10StreamInfo6assignEP20FLAC__StreamMetadatab(ptr noundef nonnull align 8 dereferenceable(17) %7, ptr noundef nonnull @_ZL11streaminfo_, 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 %.invoke140

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

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

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

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

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

.invoke140:                                       ; 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 %.thread116 unwind label %120

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

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

132:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC1Ev(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 @_ZN4FLAC8Metadata10StreamInfo6assignEP20FLAC__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 %.invoke141

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

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

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

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

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

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

.invoke141:                                       ; 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 %.thread120 unwind label %142

.thread120:                                       ; preds = %.invoke141
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #9
  br label %312

149:                                              ; preds = %146
  %150 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %8) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #9
  %151 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.18)
  %152 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.19)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2ERKS1_(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 %.invoke142

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

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

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

160:                                              ; preds = %153
  %161 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoeqERKS1_(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 %.invoke142

.invoke142:                                       ; 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 %.thread124 unwind label %158

.thread124:                                       ; preds = %.invoke142
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #9
  br label %312

165:                                              ; preds = %162
  %166 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %9) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #9
  %167 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.20)
  %168 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.21)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2ERK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %10, ptr noundef nonnull align 8 dereferenceable(176) @_ZL11streaminfo_)
          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 %.invoke143

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

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

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

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

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

.invoke143:                                       ; 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 %.thread128 unwind label %174

.thread128:                                       ; preds = %.invoke143
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #9
  br label %312

181:                                              ; preds = %178
  %182 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %10) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #9
  %183 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.22)
  %184 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.23)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #9
  invoke void @_ZN4FLAC8Metadata10StreamInfoC2EPK20FLAC__StreamMetadata(ptr noundef nonnull align 8 dereferenceable(17) %11, ptr noundef nonnull @_ZL11streaminfo_)
          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 %.invoke144

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

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

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

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

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

.invoke144:                                       ; 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 %.thread132 unwind label %190

.thread132:                                       ; preds = %.invoke144
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #9
  br label %312

197:                                              ; preds = %194
  %198 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %11) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #9
  %199 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.24)
  %200 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 16), align 8, !tbaa !5
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_min_blocksizeEj(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.25)
  %204 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 20), align 4, !tbaa !5
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_max_blocksizeEj(ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef %204)
          to label %205 unwind label %15

205:                                              ; preds = %201
  %206 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %207 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.26)
  %208 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 24), align 8, !tbaa !5
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_min_framesizeEj(ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef %208)
          to label %209 unwind label %15

209:                                              ; preds = %205
  %210 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %211 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27)
  %212 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 28), align 4, !tbaa !5
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_max_framesizeEj(ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef %212)
          to label %213 unwind label %15

213:                                              ; preds = %209
  %214 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %215 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.28)
  %216 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 32), align 8, !tbaa !5
  invoke void @_ZN4FLAC8Metadata10StreamInfo15set_sample_rateEj(ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef %216)
          to label %217 unwind label %15

217:                                              ; preds = %213
  %218 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %219 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.29)
  %220 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 36), align 4, !tbaa !5
  invoke void @_ZN4FLAC8Metadata10StreamInfo12set_channelsEj(ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef %220)
          to label %221 unwind label %15

221:                                              ; preds = %217
  %222 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %223 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.30)
  %224 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 40), align 8, !tbaa !5
  invoke void @_ZN4FLAC8Metadata10StreamInfo19set_bits_per_sampleEj(ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef %224)
          to label %225 unwind label %15

225:                                              ; preds = %221
  %226 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %227 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.31)
  %228 = load i64, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 48), align 8, !tbaa !5
  invoke void @_ZN4FLAC8Metadata10StreamInfo17set_total_samplesEm(ptr noundef nonnull align 8 dereferenceable(17) %1, i64 noundef %228)
          to label %229 unwind label %15

229:                                              ; preds = %225
  %230 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %231 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.32)
  invoke void @_ZN4FLAC8Metadata10StreamInfo10set_md5sumEPKh(ptr noundef nonnull align 8 dereferenceable(17) %1, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 56))
          to label %232 unwind label %15

232:                                              ; preds = %229
  %233 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %234 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.33)
  %235 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_min_blocksizeEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %236 unwind label %15

236:                                              ; preds = %232
  %237 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 16), align 8, !tbaa !5
  %.not86 = icmp eq i32 %235, %237
  br i1 %.not86, label %239, label %.invoke

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

239:                                              ; preds = %236
  %240 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %241 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.35)
  %242 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_max_blocksizeEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %243 unwind label %15

243:                                              ; preds = %239
  %244 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 20), align 4, !tbaa !5
  %.not87 = icmp eq i32 %242, %244
  br i1 %.not87, label %245, label %.invoke

245:                                              ; preds = %243
  %246 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %247 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.36)
  %248 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_min_framesizeEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %249 unwind label %15

249:                                              ; preds = %245
  %250 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 24), align 8, !tbaa !5
  %.not88 = icmp eq i32 %248, %250
  br i1 %.not88, label %251, label %.invoke

251:                                              ; preds = %249
  %252 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %253 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.37)
  %254 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_max_framesizeEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %255 unwind label %15

255:                                              ; preds = %251
  %256 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 28), align 4, !tbaa !5
  %.not89 = icmp eq i32 %254, %256
  br i1 %.not89, label %257, label %.invoke

257:                                              ; preds = %255
  %258 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %259 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.38)
  %260 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo15get_sample_rateEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %261 unwind label %15

261:                                              ; preds = %257
  %262 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 32), align 8, !tbaa !5
  %.not90 = icmp eq i32 %260, %262
  br i1 %.not90, label %263, label %.invoke

263:                                              ; preds = %261
  %264 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %265 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.39)
  %266 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo12get_channelsEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %267 unwind label %15

267:                                              ; preds = %263
  %268 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 36), align 4, !tbaa !5
  %.not91 = icmp eq i32 %266, %268
  br i1 %.not91, label %269, label %.invoke

269:                                              ; preds = %267
  %270 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %271 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.40)
  %272 = invoke noundef i32 @_ZNK4FLAC8Metadata10StreamInfo19get_bits_per_sampleEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %273 unwind label %15

273:                                              ; preds = %269
  %274 = load i32, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 40), align 8, !tbaa !5
  %.not92 = icmp eq i32 %272, %274
  br i1 %.not92, label %275, label %.invoke

275:                                              ; preds = %273
  %276 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %277 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.41)
  %278 = invoke noundef i64 @_ZNK4FLAC8Metadata10StreamInfo17get_total_samplesEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %279 unwind label %15

279:                                              ; preds = %275
  %280 = load i64, ptr getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 48), align 8, !tbaa !5
  %.not93 = icmp eq i64 %278, %280
  br i1 %.not93, label %281, label %.invoke

281:                                              ; preds = %279
  %282 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %283 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.42)
  %284 = invoke noundef ptr @_ZNK4FLAC8Metadata10StreamInfo10get_md5sumEv(ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %285 unwind label %15

285:                                              ; preds = %281
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(16) %284, ptr noundef nonnull dereferenceable(16) getelementptr inbounds (i8, ptr @_ZL11streaminfo_, i64 56), i64 16)
  %.not94 = icmp eq i32 %bcmp, 0
  br i1 %.not94, label %288, label %.invoke

.invoke:                                          ; preds = %0, %285, %279, %273, %267, %261, %255, %249, %243, %236
  %286 = phi ptr [ @.str.34, %236 ], [ @.str.34, %243 ], [ @.str.34, %249 ], [ @.str.34, %255 ], [ @.str.34, %261 ], [ @.str.34, %267 ], [ @.str.34, %273 ], [ @.str.34, %279 ], [ @.str.34, %285 ], [ @.str.2, %0 ]
  %287 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %286)
          to label %312 unwind label %15

288:                                              ; preds = %285
  %289 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %290 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.43)
  %291 = invoke noundef ptr @_ZN4FLAC8Metadata5cloneEPKNS0_9PrototypeE(ptr noundef nonnull %1)
          to label %292 unwind label %294

292:                                              ; preds = %288
  %293 = icmp eq ptr %291, null
  br i1 %293, label %.invoke145, label %296

294:                                              ; preds = %.invoke145, %299, %288
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %313

296:                                              ; preds = %292
  %297 = call ptr @__dynamic_cast(ptr nonnull %291, ptr nonnull @_ZTIN4FLAC8Metadata9PrototypeE, ptr nonnull @_ZTIN4FLAC8Metadata10StreamInfoE, i64 0) #9
  %298 = icmp eq ptr %297, null
  br i1 %298, label %.invoke145, label %299

299:                                              ; preds = %296
  %300 = invoke noundef zeroext i1 @_ZNK4FLAC8Metadata10StreamInfoneERKS1_(ptr noundef nonnull align 8 dereferenceable(17) %297, ptr noundef nonnull align 8 dereferenceable(17) %1)
          to label %301 unwind label %294

301:                                              ; preds = %299
  br i1 %300, label %.invoke145, label %304

.invoke145:                                       ; preds = %292, %301, %296
  %302 = phi ptr [ @.str.45, %296 ], [ @.str.46, %301 ], [ @.str.44, %292 ]
  %303 = invoke noundef zeroext i1 @_ZL4die_PKc(ptr noundef nonnull %302)
          to label %312 unwind label %294

304:                                              ; preds = %301
  %305 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %306 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9)
  %307 = load ptr, ptr %291, align 8, !tbaa !8
  %308 = getelementptr inbounds i8, ptr %307, i64 16
  %309 = load ptr, ptr %308, align 8
  call void %309(ptr noundef nonnull align 8 dereferenceable(17) %291) #9
  %310 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4)
  %311 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47)
  br label %312

312:                                              ; preds = %.invoke145, %.invoke, %.thread132, %.thread128, %.thread124, %.thread120, %.thread116, %.thread112, %.thread108, %.thread104, %.thread100, %.thread, %304, %22
  %.11 = phi i1 [ false, %22 ], [ true, %304 ], [ %38, %.thread ], [ %56, %.thread100 ], [ %72, %.thread104 ], [ %88, %.thread108 ], [ %108, %.thread112 ], [ %126, %.thread116 ], [ %148, %.thread120 ], [ %164, %.thread124 ], [ %180, %.thread128 ], [ %196, %.thread132 ], [ %287, %.invoke ], [ %303, %.invoke145 ]
  call void @_ZN4FLAC8Metadata10StreamInfoD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %1) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #9
  ret i1 %.11

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

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

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

declare void @_ZN4FLAC8Metadata10StreamInfoC1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #3

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4FLAC8Metadata10StreamInfoC2ERKS1_(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 @_ZNK4FLAC8Metadata10StreamInfoneERKS1_(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #5 align 2

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

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

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

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

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

declare ptr @FLAC__metadata_object_clone(ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

declare void @_ZN4FLAC8Metadata10StreamInfo17set_total_samplesEm(ptr noundef nonnull align 8 dereferenceable(17), i64 noundef) local_unnamed_addr #3

declare void @_ZN4FLAC8Metadata10StreamInfo10set_md5sumEPKh(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) local_unnamed_addr #3

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_min_blocksizeEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_max_blocksizeEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_min_framesizeEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo17get_max_framesizeEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo15get_sample_rateEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo12get_channelsEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

declare noundef i32 @_ZNK4FLAC8Metadata10StreamInfo19get_bits_per_sampleEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

declare noundef i64 @_ZNK4FLAC8Metadata10StreamInfo17get_total_samplesEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

declare noundef ptr @_ZNK4FLAC8Metadata10StreamInfo10get_md5sumEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

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

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

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

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

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

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


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