; LLVM IR from Columbitech/rohc :: src (drtp_profile)

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

%"class.__gnu_cxx::__normal_iterator.0" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.ROHC::DProfile" = type <{ ptr, ptr, i16, [2 x i8], i32, i16, i16, i32, i32, i32, i64, i64, i8, [3 x i8], %"struct.ROHC::iphdr", i64, i32, [4 x i8] }>
%"struct.ROHC::iphdr" = type { i8, i8, i16, i16, i16, i8, i8, i16, i32, i32 }
%"class.ROHC::DRTPProfile" = type { %"class.ROHC::DProfile.base", i32, i32, i32, i32, i8, %"struct.ROHC::udphdr", %"struct.ROHC::rtphdr", [4 x i8] }
%"class.ROHC::DProfile.base" = type <{ ptr, ptr, i16, [2 x i8], i32, i16, i16, i32, i32, i32, i64, i64, i8, [3 x i8], %"struct.ROHC::iphdr", i64, i32 }>
%"struct.ROHC::udphdr" = type { i16, i16, i16, i16 }
%"struct.ROHC::rtphdr" = type { i16, i16, i32, i32 }

@.str = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [34 x i8], align 1

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4ROHC11DRTPProfile7ParseCOEhRSt6vectorIhSaIhEEN9__gnu_cxx17__normal_iteratorIPhS3_EES4_(ptr noundef nonnull align 8 dereferenceable(132) %0, i8 noundef zeroext %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr %3, ptr noundef nonnull align 8 dereferenceable(24) %4) unnamed_addr #2 align 2 {
  %6 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %7 = alloca ptr, align 8
  %8 = alloca i8, align 1
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %24 = alloca i64, align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %6, i32 0, i32 0
  store ptr %3, ptr %32, align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store i8 %1, ptr %8, align 1, !tbaa !9
  store ptr %2, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %33 = load ptr, ptr %7, align 8
  %34 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  %35 = load i8, ptr %8, align 1, !tbaa !9
  %36 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  store i8 %35, ptr %36, align 1, !tbaa !9
  %37 = load i8, ptr %8, align 1, !tbaa !9
  %38 = zext i8 %37 to i32
  %39 = icmp eq i32 250, %38
  br i1 %39, label %40, label %48

40:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  %41 = load ptr, ptr %9, align 8, !tbaa !5
  %42 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #6
  %43 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %11, i32 0, i32 0
  store ptr %42, ptr %43, align 8
  %44 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile15parse_co_commonERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %11)
  %45 = xor i1 %44, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  br i1 %45, label %46, label %47

46:                                               ; preds = %40
  br label %281

47:                                               ; preds = %40
  br label %205

48:                                               ; preds = %5
  %49 = load i8, ptr %8, align 1, !tbaa !9
  %50 = zext i8 %49 to i32
  %51 = and i32 %50, 240
  %52 = icmp eq i32 128, %51
  br i1 %52, label %53, label %61

53:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  %54 = load ptr, ptr %9, align 8, !tbaa !5
  %55 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %54) #6
  %56 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %12, i32 0, i32 0
  store ptr %55, ptr %56, align 8
  %57 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile15parse_pt_0_crc7ERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %12)
  %58 = xor i1 %57, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  br i1 %58, label %59, label %60

59:                                               ; preds = %53
  br label %281

60:                                               ; preds = %53
  br label %204

61:                                               ; preds = %48
  %62 = load i8, ptr %8, align 1, !tbaa !9
  %63 = zext i8 %62 to i32
  %64 = and i32 %63, 128
  %65 = icmp eq i32 0, %64
  br i1 %65, label %66, label %74

66:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  %67 = load ptr, ptr %9, align 8, !tbaa !5
  %68 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %67) #6
  %69 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %13, i32 0, i32 0
  store ptr %68, ptr %69, align 8
  %70 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile15parse_pt_0_crc3ERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %13)
  %71 = xor i1 %70, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  br i1 %71, label %72, label %73

72:                                               ; preds = %66
  br label %281

73:                                               ; preds = %66
  br label %203

74:                                               ; preds = %61
  %75 = load i8, ptr %8, align 1, !tbaa !9
  %76 = zext i8 %75 to i32
  %77 = and i32 %76, 224
  %78 = icmp eq i32 160, %77
  br i1 %78, label %79, label %91

79:                                               ; preds = %74
  %80 = getelementptr inbounds %"class.ROHC::DProfile", ptr %33, i32 0, i32 7
  %81 = load i32, ptr %80, align 4, !tbaa !10
  %82 = icmp sge i32 %81, 2
  br i1 %82, label %83, label %91

83:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #6
  %84 = load ptr, ptr %9, align 8, !tbaa !5
  %85 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %84) #6
  %86 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %14, i32 0, i32 0
  store ptr %85, ptr %86, align 8
  %87 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile14parse_pt_1_rndERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %14)
  %88 = xor i1 %87, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  br i1 %88, label %89, label %90

89:                                               ; preds = %83
  br label %281

90:                                               ; preds = %83
  br label %202

91:                                               ; preds = %79, %74
  %92 = load i8, ptr %8, align 1, !tbaa !9
  %93 = zext i8 %92 to i32
  %94 = and i32 %93, 240
  %95 = icmp eq i32 144, %94
  br i1 %95, label %96, label %108

96:                                               ; preds = %91
  %97 = getelementptr inbounds %"class.ROHC::DProfile", ptr %33, i32 0, i32 7
  %98 = load i32, ptr %97, align 4, !tbaa !10
  %99 = icmp sle i32 %98, 1
  br i1 %99, label %100, label %108

100:                                              ; preds = %96
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  %101 = load ptr, ptr %9, align 8, !tbaa !5
  %102 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %101) #6
  %103 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %15, i32 0, i32 0
  store ptr %102, ptr %103, align 8
  %104 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_1_seq_idERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %15)
  %105 = xor i1 %104, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  br i1 %105, label %106, label %107

106:                                              ; preds = %100
  br label %281

107:                                              ; preds = %100
  br label %201

108:                                              ; preds = %96, %91
  %109 = load i8, ptr %8, align 1, !tbaa !9
  %110 = zext i8 %109 to i32
  %111 = and i32 %110, 224
  %112 = icmp eq i32 160, %111
  br i1 %112, label %113, label %125

113:                                              ; preds = %108
  %114 = getelementptr inbounds %"class.ROHC::DProfile", ptr %33, i32 0, i32 7
  %115 = load i32, ptr %114, align 4, !tbaa !10
  %116 = icmp sle i32 %115, 1
  br i1 %116, label %117, label %125

117:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  %118 = load ptr, ptr %9, align 8, !tbaa !5
  %119 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %118) #6
  %120 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %16, i32 0, i32 0
  store ptr %119, ptr %120, align 8
  %121 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_1_seq_tsERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %16)
  %122 = xor i1 %121, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  br i1 %122, label %123, label %124

123:                                              ; preds = %117
  br label %281

124:                                              ; preds = %117
  br label %200

125:                                              ; preds = %113, %108
  %126 = load i8, ptr %8, align 1, !tbaa !9
  %127 = zext i8 %126 to i32
  %128 = and i32 %127, 224
  %129 = icmp eq i32 192, %128
  br i1 %129, label %130, label %142

130:                                              ; preds = %125
  %131 = getelementptr inbounds %"class.ROHC::DProfile", ptr %33, i32 0, i32 7
  %132 = load i32, ptr %131, align 4, !tbaa !10
  %133 = icmp sge i32 %132, 2
  br i1 %133, label %134, label %142

134:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %135 = load ptr, ptr %9, align 8, !tbaa !5
  %136 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %135) #6
  %137 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %17, i32 0, i32 0
  store ptr %136, ptr %137, align 8
  %138 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile14parse_pt_2_rndERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %17)
  %139 = xor i1 %138, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  br i1 %139, label %140, label %141

140:                                              ; preds = %134
  br label %281

141:                                              ; preds = %134
  br label %199

142:                                              ; preds = %130, %125
  %143 = load i8, ptr %8, align 1, !tbaa !9
  %144 = zext i8 %143 to i32
  %145 = and i32 %144, 248
  %146 = icmp eq i32 192, %145
  br i1 %146, label %147, label %159

147:                                              ; preds = %142
  %148 = getelementptr inbounds %"class.ROHC::DProfile", ptr %33, i32 0, i32 7
  %149 = load i32, ptr %148, align 4, !tbaa !10
  %150 = icmp sle i32 %149, 1
  br i1 %150, label %151, label %159

151:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  %152 = load ptr, ptr %9, align 8, !tbaa !5
  %153 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %152) #6
  %154 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %18, i32 0, i32 0
  store ptr %153, ptr %154, align 8
  %155 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_2_seq_idERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %18)
  %156 = xor i1 %155, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  br i1 %156, label %157, label %158

157:                                              ; preds = %151
  br label %281

158:                                              ; preds = %151
  br label %198

159:                                              ; preds = %147, %142
  %160 = load i8, ptr %8, align 1, !tbaa !9
  %161 = zext i8 %160 to i32
  %162 = and i32 %161, 248
  %163 = icmp eq i32 200, %162
  br i1 %163, label %164, label %176

164:                                              ; preds = %159
  %165 = getelementptr inbounds %"class.ROHC::DProfile", ptr %33, i32 0, i32 7
  %166 = load i32, ptr %165, align 4, !tbaa !10
  %167 = icmp sle i32 %166, 1
  br i1 %167, label %168, label %176

168:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  %169 = load ptr, ptr %9, align 8, !tbaa !5
  %170 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %169) #6
  %171 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %19, i32 0, i32 0
  store ptr %170, ptr %171, align 8
  %172 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile19parse_pt_2_seq_bothERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %19)
  %173 = xor i1 %172, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br i1 %173, label %174, label %175

174:                                              ; preds = %168
  br label %281

175:                                              ; preds = %168
  br label %197

176:                                              ; preds = %164, %159
  %177 = load i8, ptr %8, align 1, !tbaa !9
  %178 = zext i8 %177 to i32
  %179 = and i32 %178, 240
  %180 = icmp eq i32 208, %179
  br i1 %180, label %181, label %193

181:                                              ; preds = %176
  %182 = getelementptr inbounds %"class.ROHC::DProfile", ptr %33, i32 0, i32 7
  %183 = load i32, ptr %182, align 4, !tbaa !10
  %184 = icmp sle i32 %183, 1
  br i1 %184, label %185, label %193

185:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %186 = load ptr, ptr %9, align 8, !tbaa !5
  %187 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #6
  %188 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %20, i32 0, i32 0
  store ptr %187, ptr %188, align 8
  %189 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_2_seq_tsERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %20)
  %190 = xor i1 %189, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  br i1 %190, label %191, label %192

191:                                              ; preds = %185
  br label %281

192:                                              ; preds = %185
  br label %196

193:                                              ; preds = %181, %176
  %194 = load i8, ptr %8, align 1, !tbaa !9
  %195 = zext i8 %194 to i32
  call void (ptr, ...) @_ZN4ROHC5errorEPKcz(ptr noundef @.str, i32 noundef %195)
  call void @_ZN4ROHC8DProfile8SendNackEv(ptr noundef nonnull align 8 dereferenceable(92) %33)
  br label %281

196:                                              ; preds = %192
  br label %197

197:                                              ; preds = %196, %175
  br label %198

198:                                              ; preds = %197, %158
  br label %199

199:                                              ; preds = %198, %141
  br label %200

200:                                              ; preds = %199, %124
  br label %201

201:                                              ; preds = %200, %107
  br label %202

202:                                              ; preds = %201, %90
  br label %203

203:                                              ; preds = %202, %73
  br label %204

204:                                              ; preds = %203, %60
  br label %205

205:                                              ; preds = %204, %47
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  %206 = load ptr, ptr %9, align 8, !tbaa !5
  %207 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #6
  %208 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %21, i32 0, i32 0
  store ptr %207, ptr %208, align 8
  %209 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPhSt6vectorIhSaIhEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br i1 %209, label %210, label %211

210:                                              ; preds = %205
  call void (ptr, ...) @_ZN4ROHC5errorEPKcz(ptr noundef @.str.1)
  call void @_ZN4ROHC8DProfile8SendNackEv(ptr noundef nonnull align 8 dereferenceable(92) %33)
  br label %281

211:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  %212 = load ptr, ptr %9, align 8, !tbaa !5
  %213 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %212) #6
  %214 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %22, i32 0, i32 0
  store ptr %213, ptr %214, align 8
  %215 = call noundef zeroext i1 @_ZN4ROHC8DProfile30parse_ipv4_innermost_irregularERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(92) %33, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %22)
  %216 = xor i1 %215, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  br i1 %216, label %217, label %218

217:                                              ; preds = %211
  br label %281

218:                                              ; preds = %211
  %219 = getelementptr inbounds %"class.ROHC::DRTPProfile", ptr %33, i32 0, i32 5
  %220 = load i8, ptr %219, align 4, !tbaa !20, !range !24, !noundef !25
  %221 = trunc i8 %220 to i1
  br i1 %221, label %222, label %233

222:                                              ; preds = %218
  %223 = load ptr, ptr %9, align 8, !tbaa !5
  %224 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %223) #6
  %225 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %23, i32 0, i32 0
  store ptr %224, ptr %225, align 8
  %226 = getelementptr inbounds %"class.ROHC::DRTPProfile", ptr %33, i32 0, i32 6
  %227 = getelementptr inbounds %"struct.ROHC::udphdr", ptr %226, i32 0, i32 3
  %228 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %23, i32 0, i32 0
  %229 = load ptr, ptr %228, align 8
  %230 = call noundef zeroext i1 @_ZN4ROHC8GetValueItN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEEEEbRT0_S8_RT_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr %229, ptr noundef nonnull align 2 dereferenceable(2) %227)
  br i1 %230, label %232, label %231

231:                                              ; preds = %222
  call void (ptr, ...) @_ZN4ROHC5errorEPKcz(ptr noundef @.str.2)
  br label %281

232:                                              ; preds = %222
  br label %233

233:                                              ; preds = %232, %218
  %234 = getelementptr inbounds %"class.ROHC::DProfile", ptr %33, i32 0, i32 5
  %235 = load i16, ptr %234, align 8, !tbaa !26
  %236 = call noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext %235)
  %237 = getelementptr inbounds %"class.ROHC::DRTPProfile", ptr %33, i32 0, i32 7
  %238 = getelementptr inbounds %"struct.ROHC::rtphdr", ptr %237, i32 0, i32 1
  store i16 %236, ptr %238, align 2, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  %239 = load ptr, ptr %10, align 8, !tbaa !5
  %240 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %239) #6
  store i64 %240, ptr %24, align 8, !tbaa !28
  %241 = load ptr, ptr %10, align 8, !tbaa !5
  %242 = getelementptr inbounds %"class.ROHC::DProfile", ptr %33, i32 0, i32 14
  call void @_ZN4ROHC10AppendDataINS_5iphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24) %241, ptr noundef nonnull align 4 dereferenceable(20) %242)
  %243 = load ptr, ptr %10, align 8, !tbaa !5
  %244 = getelementptr inbounds %"class.ROHC::DRTPProfile", ptr %33, i32 0, i32 6
  call void @_ZN4ROHC10AppendDataINS_6udphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24) %243, ptr noundef nonnull align 2 dereferenceable(8) %244)
  %245 = load ptr, ptr %10, align 8, !tbaa !5
  %246 = getelementptr inbounds %"class.ROHC::DRTPProfile", ptr %33, i32 0, i32 7
  call void @_ZN4ROHC10AppendDataINS_6rtphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24) %245, ptr noundef nonnull align 4 dereferenceable(12) %246)
  %247 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  %248 = load ptr, ptr %10, align 8, !tbaa !5
  %249 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %248) #6
  %250 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %26, i32 0, i32 0
  store ptr %249, ptr %250, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKhSt6vectorIhSaIhEEEC2IPhvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %27, ptr align 8 %6, i64 8, i1 false), !tbaa.struct !29
  %251 = load ptr, ptr %9, align 8, !tbaa !5
  %252 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %251) #6
  %253 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %28, i32 0, i32 0
  store ptr %252, ptr %253, align 8
  %254 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %25, i32 0, i32 0
  %255 = load ptr, ptr %254, align 8
  %256 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %27, i32 0, i32 0
  %257 = load ptr, ptr %256, align 8
  %258 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %28, i32 0, i32 0
  %259 = load ptr, ptr %258, align 8
  %260 = call ptr @_ZNSt6vectorIhSaIhEE6insertIN9__gnu_cxx17__normal_iteratorIPhS1_EEvEES6_NS4_IPKhS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %247, ptr %255, ptr %257, ptr %259)
  %261 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.0", ptr %29, i32 0, i32 0
  store ptr %260, ptr %261, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  %262 = load ptr, ptr %10, align 8, !tbaa !5
  %263 = load i64, ptr %24, align 8, !tbaa !28
  %264 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %262, i64 noundef %263) #6
  store ptr %264, ptr %30, align 8, !tbaa !5
  %265 = load ptr, ptr %10, align 8, !tbaa !5
  %266 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %265) #6
  %267 = trunc i64 %266 to i16
  %268 = call noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext %267)
  %269 = load ptr, ptr %30, align 8, !tbaa !5
  %270 = getelementptr inbounds %"struct.ROHC::iphdr", ptr %269, i32 0, i32 2
  store i16 %268, ptr %270, align 2, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  %271 = load ptr, ptr %30, align 8, !tbaa !5
  %272 = getelementptr inbounds %"struct.ROHC::iphdr", ptr %271, i64 1
  store ptr %272, ptr %31, align 8, !tbaa !5
  %273 = load ptr, ptr %10, align 8, !tbaa !5
  %274 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %273) #6
  %275 = sub i64 %274, 20
  %276 = trunc i64 %275 to i16
  %277 = call noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext %276)
  %278 = load ptr, ptr %31, align 8, !tbaa !5
  %279 = getelementptr inbounds %"struct.ROHC::udphdr", ptr %278, i32 0, i32 2
  store i16 %277, ptr %279, align 2, !tbaa !31
  %280 = load ptr, ptr %30, align 8, !tbaa !5
  call void @_ZN4ROHC25calculateIpHeaderCheckSumEPNS_5iphdrE(ptr noundef %280)
  call void @_ZN4ROHC8DProfile13SendFeedback1Ev(ptr noundef nonnull align 8 dereferenceable(92) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  br label %281

281:                                              ; preds = %233, %231, %217, %210, %193, %191, %174, %157, %140, %123, %106, %89, %72, %59, %46
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN4ROHC5errorEPKcz(ptr noundef, ...) #4

declare void @_ZN4ROHC8DProfile8SendNackEv(ptr noundef nonnull align 8 dereferenceable(92)) #4

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

declare noundef zeroext i1 @_ZN4ROHC8DProfile30parse_ipv4_innermost_irregularERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(92), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #4

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC10AppendDataINS_5iphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(20)) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC10AppendDataINS_6rtphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(12)) #2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

declare void @_ZN4ROHC25calculateIpHeaderCheckSumEPNS_5iphdrE(ptr noundef) #4

declare void @_ZN4ROHC8DProfile13SendFeedback1Ev(ptr noundef nonnull align 8 dereferenceable(92)) #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !14, i64 28}
!11 = !{!"_ZTSN4ROHC8DProfileE", !6, i64 8, !12, i64 16, !13, i64 20, !12, i64 24, !12, i64 26, !14, i64 28, !15, i64 32, !15, i64 36, !16, i64 40, !16, i64 48, !17, i64 56, !18, i64 60, !16, i64 80, !19, i64 88}
!12 = !{!"short", !7, i64 0}
!13 = !{!"_ZTSN4ROHC8DProfileUt_E", !7, i64 0}
!14 = !{!"_ZTSN4ROHC15IPIDBehaviour_tE", !7, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!"bool", !7, i64 0}
!18 = !{!"_ZTSN4ROHC5iphdrE", !7, i64 0, !7, i64 0, !7, i64 1, !12, i64 2, !12, i64 4, !12, i64 6, !7, i64 8, !7, i64 9, !12, i64 10, !15, i64 12, !15, i64 16}
!19 = !{!"_ZTSN4ROHC12Reordering_tE", !7, i64 0}
!20 = !{!21, !17, i64 108}
!21 = !{!"_ZTSN4ROHC11DRTPProfileE", !11, i64 0, !15, i64 92, !15, i64 96, !15, i64 100, !15, i64 104, !17, i64 108, !22, i64 110, !23, i64 120}
!22 = !{!"_ZTSN4ROHC6udphdrE", !12, i64 0, !12, i64 2, !12, i64 4, !12, i64 6}
!23 = !{!"_ZTSN4ROHC6rtphdrE", !7, i64 0, !7, i64 0, !7, i64 0, !7, i64 0, !7, i64 1, !7, i64 1, !12, i64 2, !15, i64 4, !15, i64 8}
!24 = !{i8 0, i8 2}
!25 = !{}
!26 = !{!11, !12, i64 24}
!27 = !{!21, !12, i64 122}
!28 = !{!16, !16, i64 0}
!29 = !{i64 0, i64 8, !5}
!30 = !{!18, !12, i64 2}
!31 = !{!22, !12, i64 4}


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

%"class.__gnu_cxx::__normal_iterator.0" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@.str = external hidden unnamed_addr constant [30 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [34 x i8], align 1

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4ROHC11DRTPProfile7ParseCOEhRSt6vectorIhSaIhEEN9__gnu_cxx17__normal_iteratorIPhS3_EES4_(ptr noundef nonnull align 8 dereferenceable(132) %0, i8 noundef zeroext %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr %3, ptr noundef nonnull align 8 dereferenceable(24) %4) unnamed_addr #1 align 2 {
  %6 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.0", align 8
  store ptr %3, ptr %6, align 8
  %21 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #5
  %22 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #5
  store i8 %1, ptr %22, align 1, !tbaa !5
  %23 = zext i8 %1 to i32
  %24 = icmp eq i8 %1, -6
  br i1 %24, label %25, label %28

25:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #5
  %26 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %26, ptr %7, align 8
  %27 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile15parse_co_commonERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  br i1 %27, label %80, label %119

28:                                               ; preds = %5
  %29 = and i32 %23, 240
  %30 = icmp eq i32 %29, 128
  br i1 %30, label %31, label %34

31:                                               ; preds = %28
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  %32 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %32, ptr %8, align 8
  %33 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile15parse_pt_0_crc7ERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %8)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  br i1 %33, label %80, label %119

34:                                               ; preds = %28
  %35 = icmp sgt i8 %1, -1
  br i1 %35, label %36, label %39

36:                                               ; preds = %34
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  %37 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %37, ptr %9, align 8
  %38 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile15parse_pt_0_crc3ERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  br i1 %38, label %80, label %119

39:                                               ; preds = %34
  %40 = and i32 %23, 224
  %41 = icmp eq i32 %40, 160
  %42 = getelementptr inbounds i8, ptr %0, i64 28
  %43 = load i32, ptr %42, align 4
  %44 = icmp sgt i32 %43, 1
  %or.cond = select i1 %41, i1 %44, i1 false
  br i1 %or.cond, label %45, label %48

45:                                               ; preds = %39
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #5
  %46 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %46, ptr %10, align 8
  %47 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile14parse_pt_1_rndERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #5
  br i1 %47, label %80, label %119

48:                                               ; preds = %39
  %49 = icmp eq i32 %29, 144
  %50 = icmp slt i32 %43, 2
  %or.cond48 = select i1 %49, i1 %50, i1 false
  br i1 %or.cond48, label %51, label %54

51:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  %52 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %52, ptr %11, align 8
  %53 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_1_seq_idERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %11)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  br i1 %53, label %80, label %119

54:                                               ; preds = %48
  %or.cond51 = select i1 %41, i1 %50, i1 false
  br i1 %or.cond51, label %55, label %58

55:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %56 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %56, ptr %12, align 8
  %57 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_1_seq_tsERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  br i1 %57, label %80, label %119

58:                                               ; preds = %54
  %59 = icmp eq i32 %40, 192
  %or.cond54 = select i1 %59, i1 %44, i1 false
  br i1 %or.cond54, label %60, label %63

60:                                               ; preds = %58
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  %61 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %61, ptr %13, align 8
  %62 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile14parse_pt_2_rndERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %13)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  br i1 %62, label %80, label %119

63:                                               ; preds = %58
  %64 = and i32 %23, 248
  %65 = icmp eq i32 %64, 192
  %or.cond57 = select i1 %65, i1 %50, i1 false
  br i1 %or.cond57, label %66, label %69

66:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  %67 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %67, ptr %14, align 8
  %68 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_2_seq_idERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %14)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  br i1 %68, label %80, label %119

69:                                               ; preds = %63
  %70 = icmp eq i32 %64, 200
  %or.cond60 = select i1 %70, i1 %50, i1 false
  br i1 %or.cond60, label %71, label %74

71:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %72 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %72, ptr %15, align 8
  %73 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile19parse_pt_2_seq_bothERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  br i1 %73, label %80, label %119

74:                                               ; preds = %69
  %75 = icmp eq i32 %29, 208
  %or.cond63 = select i1 %75, i1 %50, i1 false
  br i1 %or.cond63, label %76, label %79

76:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  %77 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %77, ptr %16, align 8
  %78 = call noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_2_seq_tsERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %16)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  br i1 %78, label %80, label %119

79:                                               ; preds = %74
  call void (ptr, ...) @_ZN4ROHC5errorEPKcz(ptr noundef nonnull @.str, i32 noundef %23)
  call void @_ZN4ROHC8DProfile8SendNackEv(ptr noundef nonnull align 8 dereferenceable(92) %0)
  br label %119

80:                                               ; preds = %31, %45, %55, %66, %76, %71, %60, %51, %36, %25
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  %81 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %81, ptr %17, align 8
  %82 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPhSt6vectorIhSaIhEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  br i1 %82, label %83, label %84

83:                                               ; preds = %80
  call void (ptr, ...) @_ZN4ROHC5errorEPKcz(ptr noundef nonnull @.str.1)
  call void @_ZN4ROHC8DProfile8SendNackEv(ptr noundef nonnull align 8 dereferenceable(92) %0)
  br label %119

84:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  %85 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  store ptr %85, ptr %18, align 8
  %86 = call noundef zeroext i1 @_ZN4ROHC8DProfile30parse_ipv4_innermost_irregularERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(92) %0, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %18)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  br i1 %86, label %87, label %119

87:                                               ; preds = %84
  %88 = getelementptr inbounds i8, ptr %0, i64 108
  %89 = load i8, ptr %88, align 4, !tbaa !8, !range !22, !noundef !23
  %90 = trunc nuw i8 %89 to i1
  br i1 %90, label %91, label %96

91:                                               ; preds = %87
  %92 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  %93 = getelementptr inbounds i8, ptr %0, i64 116
  %94 = call noundef zeroext i1 @_ZN4ROHC8GetValueItN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEEEEbRT0_S8_RT_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr %92, ptr noundef nonnull align 2 dereferenceable(2) %93)
  br i1 %94, label %96, label %95

95:                                               ; preds = %91
  call void (ptr, ...) @_ZN4ROHC5errorEPKcz(ptr noundef nonnull @.str.2)
  br label %119

96:                                               ; preds = %91, %87
  %97 = getelementptr inbounds i8, ptr %0, i64 24
  %98 = load i16, ptr %97, align 8, !tbaa !24
  %99 = call noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext %98)
  %100 = getelementptr inbounds i8, ptr %0, i64 120
  %101 = getelementptr inbounds i8, ptr %0, i64 122
  store i16 %99, ptr %101, align 2, !tbaa !25
  %102 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  %103 = getelementptr inbounds i8, ptr %0, i64 60
  call void @_ZN4ROHC10AppendDataINS_5iphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 4 dereferenceable(20) %103)
  %104 = getelementptr inbounds i8, ptr %0, i64 110
  call void @_ZN4ROHC10AppendDataINS_6udphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 2 dereferenceable(8) %104)
  call void @_ZN4ROHC10AppendDataINS_6rtphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 4 dereferenceable(12) %100)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  %105 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  store ptr %105, ptr %20, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKhSt6vectorIhSaIhEEEC2IPhvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  %.sroa.05.0.copyload = load ptr, ptr %6, align 8, !tbaa !26
  %106 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  %107 = load ptr, ptr %19, align 8
  %108 = call ptr @_ZNSt6vectorIhSaIhEE6insertIN9__gnu_cxx17__normal_iteratorIPhS1_EEvEES6_NS4_IPKhS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr %107, ptr %.sroa.05.0.copyload, ptr %106)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  %109 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %102) #5
  %110 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  %111 = trunc i64 %110 to i16
  %112 = call noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext %111)
  %113 = getelementptr inbounds i8, ptr %109, i64 2
  store i16 %112, ptr %113, align 2, !tbaa !27
  %114 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  %115 = trunc i64 %114 to i16
  %116 = add i16 %115, -20
  %117 = call noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext %116)
  %118 = getelementptr inbounds i8, ptr %109, i64 24
  store i16 %117, ptr %118, align 2, !tbaa !28
  call void @_ZN4ROHC25calculateIpHeaderCheckSumEPNS_5iphdrE(ptr noundef nonnull %109)
  call void @_ZN4ROHC8DProfile13SendFeedback1Ev(ptr noundef nonnull align 8 dereferenceable(92) %0)
  br label %119

119:                                              ; preds = %84, %76, %71, %66, %60, %55, %51, %45, %36, %31, %25, %96, %95, %83, %79
  ret void
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile15parse_co_commonERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile15parse_pt_0_crc7ERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile15parse_pt_0_crc3ERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile14parse_pt_1_rndERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_1_seq_idERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_1_seq_tsERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile14parse_pt_2_rndERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_2_seq_idERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile19parse_pt_2_seq_bothERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN4ROHC11DRTPProfile17parse_pt_2_seq_tsERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(132), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

declare void @_ZN4ROHC5errorEPKcz(ptr noundef, ...) local_unnamed_addr #3

declare void @_ZN4ROHC8DProfile8SendNackEv(ptr noundef nonnull align 8 dereferenceable(92)) local_unnamed_addr #3

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

declare noundef zeroext i1 @_ZN4ROHC8DProfile30parse_ipv4_innermost_irregularERN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEERKS7_(ptr noundef nonnull align 8 dereferenceable(92), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC10AppendDataINS_5iphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(20)) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC10AppendDataINS_6rtphdrEEEvRSt6vectorIhSaIhEERKT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt6vectorIhSaIhEE6insertIN9__gnu_cxx17__normal_iteratorIPhS1_EEvEES6_NS4_IPKhS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24), ptr, ptr, ptr) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

declare void @_ZN4ROHC25calculateIpHeaderCheckSumEPNS_5iphdrE(ptr noundef) local_unnamed_addr #3

declare void @_ZN4ROHC8DProfile13SendFeedback1Ev(ptr noundef nonnull align 8 dereferenceable(92)) local_unnamed_addr #3

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { 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, !17, i64 108}
!9 = !{!"_ZTSN4ROHC11DRTPProfileE", !10, i64 0, !15, i64 92, !15, i64 96, !15, i64 100, !15, i64 104, !17, i64 108, !20, i64 110, !21, i64 120}
!10 = !{!"_ZTSN4ROHC8DProfileE", !11, i64 8, !12, i64 16, !13, i64 20, !12, i64 24, !12, i64 26, !14, i64 28, !15, i64 32, !15, i64 36, !16, i64 40, !16, i64 48, !17, i64 56, !18, i64 60, !16, i64 80, !19, i64 88}
!11 = !{!"any pointer", !6, i64 0}
!12 = !{!"short", !6, i64 0}
!13 = !{!"_ZTSN4ROHC8DProfileUt_E", !6, i64 0}
!14 = !{!"_ZTSN4ROHC15IPIDBehaviour_tE", !6, i64 0}
!15 = !{!"int", !6, i64 0}
!16 = !{!"long", !6, i64 0}
!17 = !{!"bool", !6, i64 0}
!18 = !{!"_ZTSN4ROHC5iphdrE", !6, i64 0, !6, i64 0, !6, i64 1, !12, i64 2, !12, i64 4, !12, i64 6, !6, i64 8, !6, i64 9, !12, i64 10, !15, i64 12, !15, i64 16}
!19 = !{!"_ZTSN4ROHC12Reordering_tE", !6, i64 0}
!20 = !{!"_ZTSN4ROHC6udphdrE", !12, i64 0, !12, i64 2, !12, i64 4, !12, i64 6}
!21 = !{!"_ZTSN4ROHC6rtphdrE", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !12, i64 2, !15, i64 4, !15, i64 8}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!10, !12, i64 24}
!25 = !{!9, !12, i64 122}
!26 = !{!11, !11, i64 0}
!27 = !{!18, !12, i64 2}
!28 = !{!20, !12, i64 4}


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