; LLVM IR from Columbitech/rohc :: src (crtp_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.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::back_insert_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.16" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.ROHC::CProfile" = type { ptr, ptr, i16, i64, i32, i32, i32, i32, i64, i64, i32, i32, i16, %"class.ROHC::WLSB", i32, i32, i8, i32, i32, i32, %"struct.ROHC::iphdr", i16, i16, %"class.ROHC::WLSB", [11 x i64] }
%"struct.ROHC::iphdr" = type { i8, i8, i16, i16, i16, i8, i8, i16, i32, i32 }
%"class.ROHC::WLSB" = type { %"class.std::vector", i64, i64, i64, i32, i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<ROHC::WLSB<int>::LSB, std::allocator<ROHC::WLSB<int>::LSB>>::_Vector_impl" }
%"struct.std::_Vector_base<ROHC::WLSB<int>::LSB, std::allocator<ROHC::WLSB<int>::LSB>>::_Vector_impl" = type { %"struct.std::_Vector_base<ROHC::WLSB<int>::LSB, std::allocator<ROHC::WLSB<int>::LSB>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ROHC::WLSB<int>::LSB, std::allocator<ROHC::WLSB<int>::LSB>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ROHC::rtphdr" = type { i16, i16, i32, i32 }
%"class.ROHC::CRTPProfile" = type <{ %"class.ROHC::CProfile", %"class.std::vector.0", i16, i16, %"struct.ROHC::rtphdr", i32, i32, i32, i32, %"class.ROHC::WLSB.5", i32, i8, [3 x i8] }>
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<ROHC::CRTPProfile::CSRCItem, std::allocator<ROHC::CRTPProfile::CSRCItem>>::_Vector_impl" }
%"struct.std::_Vector_base<ROHC::CRTPProfile::CSRCItem, std::allocator<ROHC::CRTPProfile::CSRCItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<ROHC::CRTPProfile::CSRCItem, std::allocator<ROHC::CRTPProfile::CSRCItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ROHC::CRTPProfile::CSRCItem, std::allocator<ROHC::CRTPProfile::CSRCItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.ROHC::WLSB.5" = type { %"class.std::vector.6", i64, i64, i64, i32, i32 }
%"class.std::vector.6" = type { %"struct.std::_Vector_base.7" }
%"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base<ROHC::WLSB<unsigned int>::LSB, std::allocator<ROHC::WLSB<unsigned int>::LSB>>::_Vector_impl" }
%"struct.std::_Vector_base<ROHC::WLSB<unsigned int>::LSB, std::allocator<ROHC::WLSB<unsigned int>::LSB>>::_Vector_impl" = type { %"struct.std::_Vector_base<ROHC::WLSB<unsigned int>::LSB, std::allocator<ROHC::WLSB<unsigned int>::LSB>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ROHC::WLSB<unsigned int>::LSB, std::allocator<ROHC::WLSB<unsigned int>::LSB>>::_Vector_impl_data" = type { ptr, ptr, ptr }

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4ROHC11CRTPProfile8CreateCOEPKNS_5iphdrEPKNS_6udphdrEPKNS_6rtphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4) #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %"class.std::vector.11", align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  %26 = alloca i8, align 1
  %27 = alloca i32, align 4
  %28 = alloca i8, align 1
  %29 = alloca i8, align 1
  %30 = alloca i8, align 1
  %31 = alloca i8, align 1
  %32 = alloca i8, align 1
  %33 = alloca i8, align 1
  %34 = alloca %"class.std::back_insert_iterator", align 8
  %35 = alloca %"class.std::back_insert_iterator", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.16", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %42 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #6
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  %43 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 13
  %44 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 12
  %45 = load i16, ptr %44, align 8, !tbaa !9
  %46 = zext i16 %45 to i32
  %47 = invoke noundef i32 @_ZNK4ROHC4WLSBIiE5widthEi(ptr noundef nonnull align 8 dereferenceable(56) %43, i32 noundef %46)
          to label %48 unwind label %161

48:                                               ; preds = %5
  store i32 %47, ptr %12, align 4, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  %49 = load ptr, ptr %9, align 8, !tbaa !5
  %50 = getelementptr inbounds %"struct.ROHC::rtphdr", ptr %49, i32 0, i32 2
  %51 = load i32, ptr %50, align 4, !tbaa !25
  %52 = invoke noundef i32 @_ZN4ROHC10rohc_htonlEj(i32 noundef %51)
          to label %53 unwind label %165

53:                                               ; preds = %48
  store i32 %52, ptr %15, align 4, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #6
  %54 = load ptr, ptr %9, align 8, !tbaa !5
  %55 = invoke noundef zeroext i1 @_ZNK4ROHC11CRTPProfile13MarkerChangedEPKNS_6rtphdrE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef %54)
          to label %56 unwind label %169

56:                                               ; preds = %53
  %57 = zext i1 %55 to i8
  store i8 %57, ptr %16, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #6
  %58 = load i32, ptr %15, align 4, !tbaa !24
  %59 = getelementptr inbounds %"class.ROHC::CRTPProfile", ptr %42, i32 0, i32 4
  %60 = getelementptr inbounds %"struct.ROHC::rtphdr", ptr %59, i32 0, i32 2
  %61 = load i32, ptr %60, align 4, !tbaa !28
  %62 = invoke noundef i32 @_ZN4ROHC10rohc_htonlEj(i32 noundef %61)
          to label %63 unwind label %173

63:                                               ; preds = %56
  %64 = getelementptr inbounds %"class.ROHC::CRTPProfile", ptr %42, i32 0, i32 10
  %65 = load i32, ptr %64, align 8, !tbaa !39
  %66 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 12
  %67 = load i16, ptr %66, align 8, !tbaa !9
  %68 = zext i16 %67 to i32
  %69 = getelementptr inbounds %"class.ROHC::CRTPProfile", ptr %42, i32 0, i32 4
  %70 = getelementptr inbounds %"struct.ROHC::rtphdr", ptr %69, i32 0, i32 1
  %71 = load i16, ptr %70, align 2, !tbaa !40
  %72 = invoke noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext %71)
          to label %73 unwind label %173

73:                                               ; preds = %63
  %74 = zext i16 %72 to i32
  %75 = sub nsw i32 %68, %74
  %76 = mul i32 %65, %75
  %77 = add i32 %62, %76
  %78 = icmp eq i32 %58, %77
  %79 = zext i1 %78 to i8
  store i8 %79, ptr %17, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  %80 = load i32, ptr %15, align 4, !tbaa !24
  %81 = getelementptr inbounds %"class.ROHC::CRTPProfile", ptr %42, i32 0, i32 10
  %82 = load i32, ptr %81, align 8, !tbaa !39
  %83 = udiv i32 %80, %82
  store i32 %83, ptr %18, align 4, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  %84 = getelementptr inbounds %"class.ROHC::CRTPProfile", ptr %42, i32 0, i32 9
  %85 = load i32, ptr %18, align 4, !tbaa !24
  %86 = invoke noundef i32 @_ZNK4ROHC4WLSBIjE5widthEj(ptr noundef nonnull align 8 dereferenceable(56) %84, i32 noundef %85)
          to label %87 unwind label %177

87:                                               ; preds = %73
  store i32 %86, ptr %19, align 4, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  %88 = load i32, ptr %15, align 4, !tbaa !24
  %89 = getelementptr inbounds %"class.ROHC::CRTPProfile", ptr %42, i32 0, i32 10
  %90 = load i32, ptr %89, align 8, !tbaa !39
  %91 = urem i32 %88, %90
  store i32 %91, ptr %20, align 4, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #6
  %92 = load i32, ptr %20, align 4, !tbaa !24
  %93 = getelementptr inbounds %"class.ROHC::CRTPProfile", ptr %42, i32 0, i32 6
  %94 = load i32, ptr %93, align 4, !tbaa !41
  %95 = icmp ne i32 %92, %94
  %96 = zext i1 %95 to i8
  store i8 %96, ptr %21, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #6
  %97 = load ptr, ptr %7, align 8, !tbaa !5
  %98 = invoke noundef zeroext i1 @_ZNK4ROHC8CProfile10TOSChangedEPKNS_5iphdrE(ptr noundef nonnull align 8 dereferenceable(328) %42, ptr noundef %97)
          to label %99 unwind label %181

99:                                               ; preds = %87
  br i1 %98, label %117, label %100

100:                                              ; preds = %99
  %101 = load ptr, ptr %7, align 8, !tbaa !5
  %102 = invoke noundef zeroext i1 @_ZNK4ROHC8CProfile10TTLChangedEPKNS_5iphdrE(ptr noundef nonnull align 8 dereferenceable(328) %42, ptr noundef %101)
          to label %103 unwind label %181

103:                                              ; preds = %100
  br i1 %102, label %117, label %104

104:                                              ; preds = %103
  %105 = load ptr, ptr %9, align 8, !tbaa !5
  %106 = invoke noundef zeroext i1 @_ZNK4ROHC11CRTPProfile9PTChangedEPKNS_6rtphdrE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef %105)
          to label %107 unwind label %181

107:                                              ; preds = %104
  br i1 %106, label %117, label %108

108:                                              ; preds = %107
  %109 = load ptr, ptr %9, align 8, !tbaa !5
  %110 = invoke noundef zeroext i1 @_ZNK4ROHC11CRTPProfile10PadChangedEPKNS_6rtphdrE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef %109)
          to label %111 unwind label %181

111:                                              ; preds = %108
  br i1 %110, label %117, label %112

112:                                              ; preds = %111
  %113 = load ptr, ptr %9, align 8, !tbaa !5
  %114 = invoke noundef zeroext i1 @_ZNK4ROHC11CRTPProfile16ExtensionChangedEPKNS_6rtphdrE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef %113)
          to label %115 unwind label %181

115:                                              ; preds = %112
  %116 = xor i1 %114, true
  br label %117

117:                                              ; preds = %115, %111, %107, %103, %99
  %118 = phi i1 [ false, %111 ], [ false, %107 ], [ false, %103 ], [ false, %99 ], [ %116, %115 ]
  %119 = zext i1 %118 to i8
  store i8 %119, ptr %22, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #6
  %120 = load i8, ptr %22, align 1, !tbaa !27, !range !42, !noundef !43
  %121 = trunc i8 %120 to i1
  br i1 %121, label %122, label %132

122:                                              ; preds = %117
  %123 = load i32, ptr %12, align 4, !tbaa !24
  %124 = icmp ule i32 %123, 4
  br i1 %124, label %125, label %132

125:                                              ; preds = %122
  %126 = load i8, ptr %17, align 1, !tbaa !27, !range !42, !noundef !43
  %127 = trunc i8 %126 to i1
  br i1 %127, label %128, label %132

128:                                              ; preds = %125
  %129 = load i8, ptr %16, align 1, !tbaa !27, !range !42, !noundef !43
  %130 = trunc i8 %129 to i1
  %131 = xor i1 %130, true
  br label %132

132:                                              ; preds = %128, %125, %122, %117
  %133 = phi i1 [ false, %125 ], [ false, %122 ], [ false, %117 ], [ %131, %128 ]
  %134 = zext i1 %133 to i8
  store i8 %134, ptr %23, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #6
  %135 = load i8, ptr %22, align 1, !tbaa !27, !range !42, !noundef !43
  %136 = trunc i8 %135 to i1
  br i1 %136, label %137, label %147

137:                                              ; preds = %132
  %138 = load i32, ptr %12, align 4, !tbaa !24
  %139 = icmp ule i32 %138, 5
  br i1 %139, label %140, label %147

140:                                              ; preds = %137
  %141 = load i8, ptr %17, align 1, !tbaa !27, !range !42, !noundef !43
  %142 = trunc i8 %141 to i1
  br i1 %142, label %143, label %147

143:                                              ; preds = %140
  %144 = load i8, ptr %16, align 1, !tbaa !27, !range !42, !noundef !43
  %145 = trunc i8 %144 to i1
  %146 = xor i1 %145, true
  br label %147

147:                                              ; preds = %143, %140, %137, %132
  %148 = phi i1 [ false, %140 ], [ false, %137 ], [ false, %132 ], [ %146, %143 ]
  %149 = zext i1 %148 to i8
  store i8 %149, ptr %24, align 1, !tbaa !27
  %150 = getelementptr inbounds %"class.ROHC::CRTPProfile", ptr %42, i32 0, i32 7
  %151 = load i32, ptr %150, align 8, !tbaa !44
  %152 = icmp ugt i32 %151, 0
  br i1 %152, label %157, label %153

153:                                              ; preds = %147
  %154 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 17
  %155 = load i32, ptr %154, align 4, !tbaa !45
  %156 = icmp eq i32 1, %155
  br i1 %156, label %157, label %189

157:                                              ; preds = %153, %147
  %158 = load ptr, ptr %7, align 8, !tbaa !5
  %159 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN4ROHC11CRTPProfile16create_co_commonEPKNS_5iphdrEPKNS_6rtphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef %158, ptr noundef %159, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %160 unwind label %185

160:                                              ; preds = %157
  br label %466

161:                                              ; preds = %5
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %13, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %14, align 4
  br label %561

165:                                              ; preds = %48
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %13, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %14, align 4
  br label %560

169:                                              ; preds = %53
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %13, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %14, align 4
  br label %559

173:                                              ; preds = %63, %56
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %13, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %14, align 4
  br label %558

177:                                              ; preds = %73
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %13, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %14, align 4
  br label %557

181:                                              ; preds = %112, %108, %104, %100, %87
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %13, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %14, align 4
  br label %556

185:                                              ; preds = %531, %523, %495, %492, %485, %157
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %13, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %14, align 4
  br label %555

189:                                              ; preds = %153
  %190 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 15
  %191 = load i32, ptr %190, align 4, !tbaa !46
  %192 = icmp eq i32 2, %191
  br i1 %192, label %197, label %193

193:                                              ; preds = %189
  %194 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 15
  %195 = load i32, ptr %194, align 4, !tbaa !46
  %196 = icmp eq i32 3, %195
  br i1 %196, label %197, label %273

197:                                              ; preds = %193, %189
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #6
  %198 = load i8, ptr %22, align 1, !tbaa !27, !range !42, !noundef !43
  %199 = trunc i8 %198 to i1
  br i1 %199, label %200, label %210

200:                                              ; preds = %197
  %201 = load i32, ptr %12, align 4, !tbaa !24
  %202 = icmp ule i32 %201, 4
  br i1 %202, label %203, label %210

203:                                              ; preds = %200
  %204 = load i32, ptr %19, align 4, !tbaa !24
  %205 = icmp sle i32 %204, 5
  br i1 %205, label %206, label %210

206:                                              ; preds = %203
  %207 = load i8, ptr %21, align 1, !tbaa !27, !range !42, !noundef !43
  %208 = trunc i8 %207 to i1
  %209 = xor i1 %208, true
  br label %210

210:                                              ; preds = %206, %203, %200, %197
  %211 = phi i1 [ false, %203 ], [ false, %200 ], [ false, %197 ], [ %209, %206 ]
  %212 = zext i1 %211 to i8
  store i8 %212, ptr %25, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #6
  %213 = load i8, ptr %22, align 1, !tbaa !27, !range !42, !noundef !43
  %214 = trunc i8 %213 to i1
  br i1 %214, label %215, label %225

215:                                              ; preds = %210
  %216 = load i32, ptr %12, align 4, !tbaa !24
  %217 = icmp ule i32 %216, 7
  br i1 %217, label %218, label %225

218:                                              ; preds = %215
  %219 = load i32, ptr %19, align 4, !tbaa !24
  %220 = icmp sle i32 %219, 6
  br i1 %220, label %221, label %225

221:                                              ; preds = %218
  %222 = load i8, ptr %21, align 1, !tbaa !27, !range !42, !noundef !43
  %223 = trunc i8 %222 to i1
  %224 = xor i1 %223, true
  br label %225

225:                                              ; preds = %221, %218, %215, %210
  %226 = phi i1 [ false, %218 ], [ false, %215 ], [ false, %210 ], [ %224, %221 ]
  %227 = zext i1 %226 to i8
  store i8 %227, ptr %26, align 1, !tbaa !27
  %228 = load i8, ptr %23, align 1, !tbaa !27, !range !42, !noundef !43
  %229 = trunc i8 %228 to i1
  br i1 %229, label %230, label %236

230:                                              ; preds = %225
  invoke void @_ZN4ROHC11CRTPProfile16create_pt_0_crc3ERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %231 unwind label %232

231:                                              ; preds = %230
  br label %272

232:                                              ; preds = %265, %256, %244, %239, %230
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %13, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #6
  br label %555

236:                                              ; preds = %225
  %237 = load i8, ptr %24, align 1, !tbaa !27, !range !42, !noundef !43
  %238 = trunc i8 %237 to i1
  br i1 %238, label %239, label %241

239:                                              ; preds = %236
  invoke void @_ZN4ROHC11CRTPProfile16create_pt_0_crc7ERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %240 unwind label %232

240:                                              ; preds = %239
  br label %271

241:                                              ; preds = %236
  %242 = load i8, ptr %25, align 1, !tbaa !27, !range !42, !noundef !43
  %243 = trunc i8 %242 to i1
  br i1 %243, label %244, label %253

244:                                              ; preds = %241
  %245 = load i32, ptr %18, align 4, !tbaa !24
  %246 = load ptr, ptr %9, align 8, !tbaa !5
  %247 = load i16, ptr %246, align 4
  %248 = lshr i16 %247, 15
  %249 = trunc i16 %248 to i8
  %250 = zext i8 %249 to i32
  %251 = icmp sgt i32 %250, 0
  invoke void @_ZN4ROHC11CRTPProfile15create_pt_1_rndEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, i32 noundef %245, i1 noundef zeroext %251, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %252 unwind label %232

252:                                              ; preds = %244
  br label %270

253:                                              ; preds = %241
  %254 = load i8, ptr %26, align 1, !tbaa !27, !range !42, !noundef !43
  %255 = trunc i8 %254 to i1
  br i1 %255, label %256, label %265

256:                                              ; preds = %253
  %257 = load i32, ptr %18, align 4, !tbaa !24
  %258 = load ptr, ptr %9, align 8, !tbaa !5
  %259 = load i16, ptr %258, align 4
  %260 = lshr i16 %259, 15
  %261 = trunc i16 %260 to i8
  %262 = zext i8 %261 to i32
  %263 = icmp sgt i32 %262, 0
  invoke void @_ZN4ROHC11CRTPProfile15create_pt_2_rndEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, i32 noundef %257, i1 noundef zeroext %263, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %264 unwind label %232

264:                                              ; preds = %256
  br label %269

265:                                              ; preds = %253
  %266 = load ptr, ptr %7, align 8, !tbaa !5
  %267 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN4ROHC11CRTPProfile16create_co_commonEPKNS_5iphdrEPKNS_6rtphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef %266, ptr noundef %267, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %268 unwind label %232

268:                                              ; preds = %265
  br label %269

269:                                              ; preds = %268, %264
  br label %270

270:                                              ; preds = %269, %252
  br label %271

271:                                              ; preds = %270, %240
  br label %272

272:                                              ; preds = %271, %231
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #6
  br label %465

273:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  %274 = invoke noundef i32 @_ZNK4ROHC8CProfile15IpIdOffsetWidthEv(ptr noundef nonnull align 8 dereferenceable(328) %42)
          to label %275 unwind label %279

275:                                              ; preds = %273
  store i32 %274, ptr %27, align 4, !tbaa !24
  %276 = invoke noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %42)
          to label %277 unwind label %279

277:                                              ; preds = %275
  br i1 %276, label %278, label %283

278:                                              ; preds = %277
  br label %283

279:                                              ; preds = %295, %286, %275, %273
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %13, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %14, align 4
  br label %464

283:                                              ; preds = %278, %277
  %284 = load i8, ptr %23, align 1, !tbaa !27, !range !42, !noundef !43
  %285 = trunc i8 %284 to i1
  br i1 %285, label %286, label %290

286:                                              ; preds = %283
  %287 = invoke noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %42)
          to label %288 unwind label %279

288:                                              ; preds = %286
  %289 = xor i1 %287, true
  br label %290

290:                                              ; preds = %288, %283
  %291 = phi i1 [ false, %283 ], [ %289, %288 ]
  %292 = zext i1 %291 to i8
  store i8 %292, ptr %23, align 1, !tbaa !27
  %293 = load i8, ptr %24, align 1, !tbaa !27, !range !42, !noundef !43
  %294 = trunc i8 %293 to i1
  br i1 %294, label %295, label %299

295:                                              ; preds = %290
  %296 = invoke noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %42)
          to label %297 unwind label %279

297:                                              ; preds = %295
  %298 = xor i1 %296, true
  br label %299

299:                                              ; preds = %297, %290
  %300 = phi i1 [ false, %290 ], [ %298, %297 ]
  %301 = zext i1 %300 to i8
  store i8 %301, ptr %24, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #6
  %302 = load i8, ptr %22, align 1, !tbaa !27, !range !42, !noundef !43
  %303 = trunc i8 %302 to i1
  br i1 %303, label %304, label %316

304:                                              ; preds = %299
  %305 = load i32, ptr %27, align 4, !tbaa !24
  %306 = icmp ule i32 %305, 4
  br i1 %306, label %307, label %316

307:                                              ; preds = %304
  %308 = load i32, ptr %12, align 4, !tbaa !24
  %309 = icmp ule i32 %308, 5
  br i1 %309, label %310, label %316

310:                                              ; preds = %307
  %311 = load i8, ptr %16, align 1, !tbaa !27, !range !42, !noundef !43
  %312 = trunc i8 %311 to i1
  br i1 %312, label %316, label %313

313:                                              ; preds = %310
  %314 = load i32, ptr %19, align 4, !tbaa !24
  %315 = icmp eq i32 %314, 0
  br label %316

316:                                              ; preds = %313, %310, %307, %304, %299
  %317 = phi i1 [ false, %310 ], [ false, %307 ], [ false, %304 ], [ false, %299 ], [ %315, %313 ]
  %318 = zext i1 %317 to i8
  store i8 %318, ptr %28, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #6
  %319 = load i8, ptr %22, align 1, !tbaa !27, !range !42, !noundef !43
  %320 = trunc i8 %319 to i1
  br i1 %320, label %321, label %334

321:                                              ; preds = %316
  %322 = invoke noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %42)
          to label %323 unwind label %394

323:                                              ; preds = %321
  br i1 %322, label %334, label %324

324:                                              ; preds = %323
  %325 = load i32, ptr %12, align 4, !tbaa !24
  %326 = icmp ule i32 %325, 4
  br i1 %326, label %327, label %334

327:                                              ; preds = %324
  %328 = load i32, ptr %19, align 4, !tbaa !24
  %329 = icmp sle i32 %328, 5
  br i1 %329, label %330, label %334

330:                                              ; preds = %327
  %331 = load i8, ptr %21, align 1, !tbaa !27, !range !42, !noundef !43
  %332 = trunc i8 %331 to i1
  %333 = xor i1 %332, true
  br label %334

334:                                              ; preds = %330, %327, %324, %323, %316
  %335 = phi i1 [ false, %327 ], [ false, %324 ], [ false, %323 ], [ false, %316 ], [ %333, %330 ]
  %336 = zext i1 %335 to i8
  store i8 %336, ptr %29, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #6
  %337 = load i8, ptr %22, align 1, !tbaa !27, !range !42, !noundef !43
  %338 = trunc i8 %337 to i1
  br i1 %338, label %339, label %351

339:                                              ; preds = %334
  %340 = load i32, ptr %27, align 4, !tbaa !24
  %341 = icmp ule i32 %340, 5
  br i1 %341, label %342, label %351

342:                                              ; preds = %339
  %343 = load i32, ptr %12, align 4, !tbaa !24
  %344 = icmp ule i32 %343, 7
  br i1 %344, label %345, label %351

345:                                              ; preds = %342
  %346 = load i8, ptr %16, align 1, !tbaa !27, !range !42, !noundef !43
  %347 = trunc i8 %346 to i1
  br i1 %347, label %351, label %348

348:                                              ; preds = %345
  %349 = load i32, ptr %19, align 4, !tbaa !24
  %350 = icmp eq i32 %349, 0
  br label %351

351:                                              ; preds = %348, %345, %342, %339, %334
  %352 = phi i1 [ false, %345 ], [ false, %342 ], [ false, %339 ], [ false, %334 ], [ %350, %348 ]
  %353 = zext i1 %352 to i8
  store i8 %353, ptr %30, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #6
  %354 = load i8, ptr %22, align 1, !tbaa !27, !range !42, !noundef !43
  %355 = trunc i8 %354 to i1
  br i1 %355, label %356, label %369

356:                                              ; preds = %351
  %357 = load i32, ptr %27, align 4, !tbaa !24
  %358 = icmp ule i32 %357, 5
  br i1 %358, label %359, label %369

359:                                              ; preds = %356
  %360 = load i32, ptr %12, align 4, !tbaa !24
  %361 = icmp ule i32 %360, 7
  br i1 %361, label %362, label %369

362:                                              ; preds = %359
  %363 = load i32, ptr %19, align 4, !tbaa !24
  %364 = icmp sle i32 %363, 7
  br i1 %364, label %365, label %369

365:                                              ; preds = %362
  %366 = load i8, ptr %21, align 1, !tbaa !27, !range !42, !noundef !43
  %367 = trunc i8 %366 to i1
  %368 = xor i1 %367, true
  br label %369

369:                                              ; preds = %365, %362, %359, %356, %351
  %370 = phi i1 [ false, %362 ], [ false, %359 ], [ false, %356 ], [ false, %351 ], [ %368, %365 ]
  %371 = zext i1 %370 to i8
  store i8 %371, ptr %31, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #6
  %372 = load i8, ptr %22, align 1, !tbaa !27, !range !42, !noundef !43
  %373 = trunc i8 %372 to i1
  br i1 %373, label %374, label %387

374:                                              ; preds = %369
  %375 = invoke noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %42)
          to label %376 unwind label %398

376:                                              ; preds = %374
  br i1 %375, label %387, label %377

377:                                              ; preds = %376
  %378 = load i32, ptr %12, align 4, !tbaa !24
  %379 = icmp ule i32 %378, 7
  br i1 %379, label %380, label %387

380:                                              ; preds = %377
  %381 = load i32, ptr %19, align 4, !tbaa !24
  %382 = icmp sle i32 %381, 5
  br i1 %382, label %383, label %387

383:                                              ; preds = %380
  %384 = load i8, ptr %21, align 1, !tbaa !27, !range !42, !noundef !43
  %385 = trunc i8 %384 to i1
  %386 = xor i1 %385, true
  br label %387

387:                                              ; preds = %383, %380, %377, %376, %369
  %388 = phi i1 [ false, %380 ], [ false, %377 ], [ false, %376 ], [ false, %369 ], [ %386, %383 ]
  %389 = zext i1 %388 to i8
  store i8 %389, ptr %32, align 1, !tbaa !27
  %390 = load i8, ptr %23, align 1, !tbaa !27, !range !42, !noundef !43
  %391 = trunc i8 %390 to i1
  br i1 %391, label %392, label %402

392:                                              ; preds = %387
  invoke void @_ZN4ROHC11CRTPProfile16create_pt_0_crc3ERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %393 unwind label %398

393:                                              ; preds = %392
  br label %462

394:                                              ; preds = %321
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %13, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %14, align 4
  br label %463

398:                                              ; preds = %452, %443, %432, %427, %415, %410, %405, %392, %374
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %13, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  br label %463

402:                                              ; preds = %387
  %403 = load i8, ptr %24, align 1, !tbaa !27, !range !42, !noundef !43
  %404 = trunc i8 %403 to i1
  br i1 %404, label %405, label %407

405:                                              ; preds = %402
  invoke void @_ZN4ROHC11CRTPProfile16create_pt_0_crc7ERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %406 unwind label %398

406:                                              ; preds = %405
  br label %461

407:                                              ; preds = %402
  %408 = load i8, ptr %28, align 1, !tbaa !27, !range !42, !noundef !43
  %409 = trunc i8 %408 to i1
  br i1 %409, label %410, label %412

410:                                              ; preds = %407
  invoke void @_ZN4ROHC11CRTPProfile18create_pt_1_seq_idERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %411 unwind label %398

411:                                              ; preds = %410
  br label %460

412:                                              ; preds = %407
  %413 = load i8, ptr %29, align 1, !tbaa !27, !range !42, !noundef !43
  %414 = trunc i8 %413 to i1
  br i1 %414, label %415, label %424

415:                                              ; preds = %412
  %416 = load i32, ptr %18, align 4, !tbaa !24
  %417 = load ptr, ptr %9, align 8, !tbaa !5
  %418 = load i16, ptr %417, align 4
  %419 = lshr i16 %418, 15
  %420 = trunc i16 %419 to i8
  %421 = zext i8 %420 to i32
  %422 = icmp sgt i32 %421, 0
  invoke void @_ZN4ROHC11CRTPProfile18create_pt_1_seq_tsEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, i32 noundef %416, i1 noundef zeroext %422, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %423 unwind label %398

423:                                              ; preds = %415
  br label %459

424:                                              ; preds = %412
  %425 = load i8, ptr %30, align 1, !tbaa !27, !range !42, !noundef !43
  %426 = trunc i8 %425 to i1
  br i1 %426, label %427, label %429

427:                                              ; preds = %424
  invoke void @_ZN4ROHC11CRTPProfile18create_pt_2_seq_idERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %428 unwind label %398

428:                                              ; preds = %427
  br label %458

429:                                              ; preds = %424
  %430 = load i8, ptr %32, align 1, !tbaa !27, !range !42, !noundef !43
  %431 = trunc i8 %430 to i1
  br i1 %431, label %432, label %440

432:                                              ; preds = %429
  %433 = load i32, ptr %18, align 4, !tbaa !24
  %434 = load ptr, ptr %9, align 8, !tbaa !5
  %435 = load i16, ptr %434, align 4
  %436 = lshr i16 %435, 15
  %437 = trunc i16 %436 to i8
  %438 = icmp ne i8 %437, 0
  invoke void @_ZN4ROHC11CRTPProfile18create_pt_2_seq_tsEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, i32 noundef %433, i1 noundef zeroext %438, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %439 unwind label %398

439:                                              ; preds = %432
  br label %457

440:                                              ; preds = %429
  %441 = load i8, ptr %31, align 1, !tbaa !27, !range !42, !noundef !43
  %442 = trunc i8 %441 to i1
  br i1 %442, label %443, label %452

443:                                              ; preds = %440
  %444 = load i32, ptr %18, align 4, !tbaa !24
  %445 = load ptr, ptr %9, align 8, !tbaa !5
  %446 = load i16, ptr %445, align 4
  %447 = lshr i16 %446, 15
  %448 = trunc i16 %447 to i8
  %449 = zext i8 %448 to i32
  %450 = icmp sgt i32 %449, 0
  invoke void @_ZN4ROHC11CRTPProfile20create_pt_2_seq_bothEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, i32 noundef %444, i1 noundef zeroext %450, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %451 unwind label %398

451:                                              ; preds = %443
  br label %456

452:                                              ; preds = %440
  %453 = load ptr, ptr %7, align 8, !tbaa !5
  %454 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN4ROHC11CRTPProfile16create_co_commonEPKNS_5iphdrEPKNS_6rtphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %42, ptr noundef %453, ptr noundef %454, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %455 unwind label %398

455:                                              ; preds = %452
  br label %456

456:                                              ; preds = %455, %451
  br label %457

457:                                              ; preds = %456, %439
  br label %458

458:                                              ; preds = %457, %428
  br label %459

459:                                              ; preds = %458, %423
  br label %460

460:                                              ; preds = %459, %411
  br label %461

461:                                              ; preds = %460, %406
  br label %462

462:                                              ; preds = %461, %393
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %465

463:                                              ; preds = %398, %394
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  br label %464

464:                                              ; preds = %463, %279
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %555

465:                                              ; preds = %462, %272
  br label %466

466:                                              ; preds = %465, %160
  %467 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 16
  %468 = load i8, ptr %467, align 8, !tbaa !47, !range !42, !noundef !43
  %469 = trunc i8 %468 to i1
  br i1 %469, label %485, label %470

470:                                              ; preds = %466
  %471 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 2
  %472 = load i16, ptr %471, align 8, !tbaa !48
  %473 = icmp ne i16 %472, 0
  br i1 %473, label %474, label %485

474:                                              ; preds = %470
  %475 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #6
  %476 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 2
  %477 = load i16, ptr %476, align 8, !tbaa !48
  %478 = invoke noundef zeroext i8 @_ZN4ROHC14CreateShortCIDEt(i16 noundef zeroext %477)
          to label %479 unwind label %481

479:                                              ; preds = %474
  store i8 %478, ptr %33, align 1, !tbaa !49
  invoke void @_ZNSt6vectorIhSaIhEE9push_backEOh(ptr noundef nonnull align 8 dereferenceable(24) %475, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %480 unwind label %481

480:                                              ; preds = %479
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #6
  br label %485

481:                                              ; preds = %479, %474
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %13, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #6
  br label %555

485:                                              ; preds = %480, %470, %466
  %486 = load ptr, ptr %10, align 8, !tbaa !5
  %487 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef 0) #6
  invoke void @_ZNSt6vectorIhSaIhEE9push_backERKh(ptr noundef nonnull align 8 dereferenceable(24) %486, ptr noundef nonnull align 1 dereferenceable(1) %487)
          to label %488 unwind label %185

488:                                              ; preds = %485
  %489 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 16
  %490 = load i8, ptr %489, align 8, !tbaa !47, !range !42, !noundef !43
  %491 = trunc i8 %490 to i1
  br i1 %491, label %492, label %505

492:                                              ; preds = %488
  %493 = load ptr, ptr %10, align 8, !tbaa !5
  %494 = invoke ptr @_ZSt13back_inserterISt6vectorIhSaIhEEESt20back_insert_iteratorIT_ERS4_(ptr noundef nonnull align 8 dereferenceable(24) %493)
          to label %495 unwind label %185

495:                                              ; preds = %492
  %496 = getelementptr inbounds %"class.std::back_insert_iterator", ptr %34, i32 0, i32 0
  store ptr %494, ptr %496, align 8
  %497 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 2
  %498 = load i16, ptr %497, align 8, !tbaa !48
  %499 = zext i16 %498 to i32
  %500 = getelementptr inbounds %"class.std::back_insert_iterator", ptr %34, i32 0, i32 0
  %501 = load ptr, ptr %500, align 8
  %502 = invoke ptr @_ZN4ROHC10SDVLEncodeISt20back_insert_iteratorISt6vectorIhSaIhEEEEET_S6_j(ptr %501, i32 noundef %499)
          to label %503 unwind label %185

503:                                              ; preds = %495
  %504 = getelementptr inbounds %"class.std::back_insert_iterator", ptr %35, i32 0, i32 0
  store ptr %502, ptr %504, align 8
  br label %505

505:                                              ; preds = %503, %488
  %506 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  %507 = load ptr, ptr %10, align 8, !tbaa !5
  %508 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %507) #6
  %509 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %37, i32 0, i32 0
  store ptr %508, ptr %509, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKhSt6vectorIhSaIhEEEC2IPhvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #6
  %510 = call ptr @_ZNSt6vectorIhSaIhEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  %511 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %39, i32 0, i32 0
  store ptr %510, ptr %511, align 8
  %512 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %39, i64 noundef 1) #6
  %513 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %38, i32 0, i32 0
  store ptr %512, ptr %513, align 8
  %514 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  %515 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %40, i32 0, i32 0
  store ptr %514, ptr %515, align 8
  %516 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.16", ptr %36, i32 0, i32 0
  %517 = load ptr, ptr %516, align 8
  %518 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %38, i32 0, i32 0
  %519 = load ptr, ptr %518, align 8
  %520 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %40, i32 0, i32 0
  %521 = load ptr, ptr %520, align 8
  %522 = invoke ptr @_ZNSt6vectorIhSaIhEE6insertIN9__gnu_cxx17__normal_iteratorIPhS1_EEvEES6_NS4_IPKhS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %506, ptr %517, ptr %519, ptr %521)
          to label %523 unwind label %535

523:                                              ; preds = %505
  %524 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %41, i32 0, i32 0
  store ptr %522, ptr %524, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  %525 = load ptr, ptr %7, align 8, !tbaa !5
  %526 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4ROHC8CProfile31create_ipv4_innermost_irregularEPKNS_5iphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(328) %42, ptr noundef %525, ptr noundef nonnull align 8 dereferenceable(24) %526)
          to label %527 unwind label %185

527:                                              ; preds = %523
  %528 = getelementptr inbounds %"class.ROHC::CRTPProfile", ptr %42, i32 0, i32 11
  %529 = load i8, ptr %528, align 4, !tbaa !50, !range !42, !noundef !43
  %530 = trunc i8 %529 to i1
  br i1 %530, label %531, label %539

531:                                              ; preds = %527
  %532 = load ptr, ptr %8, align 8, !tbaa !5
  %533 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4ROHC11CUDPProfile34create_udp_with_checksum_irregularEPKNS_6udphdrERSt6vectorIhSaIhEE(ptr noundef %532, ptr noundef nonnull align 8 dereferenceable(24) %533)
          to label %534 unwind label %185

534:                                              ; preds = %531
  br label %539

535:                                              ; preds = %505
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %13, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  br label %555

539:                                              ; preds = %534, %527
  %540 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 17
  %541 = load i32, ptr %540, align 4, !tbaa !45
  %542 = icmp eq i32 1, %541
  br i1 %542, label %543, label %550

543:                                              ; preds = %539
  %544 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 6
  %545 = load i32, ptr %544, align 8, !tbaa !51
  %546 = add i32 %545, 1
  store i32 %546, ptr %544, align 8, !tbaa !51
  %547 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 11
  %548 = load i32, ptr %547, align 4, !tbaa !52
  %549 = add i32 %548, 1
  store i32 %549, ptr %547, align 4, !tbaa !52
  br label %554

550:                                              ; preds = %539
  %551 = getelementptr inbounds %"class.ROHC::CProfile", ptr %42, i32 0, i32 7
  %552 = load i32, ptr %551, align 4, !tbaa !53
  %553 = add i32 %552, 1
  store i32 %553, ptr %551, align 4, !tbaa !53
  br label %554

554:                                              ; preds = %550, %543
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #6
  ret void

555:                                              ; preds = %535, %481, %464, %232, %185
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #6
  br label %556

556:                                              ; preds = %555, %181
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  br label %557

557:                                              ; preds = %556, %177
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  br label %558

558:                                              ; preds = %557, %173
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #6
  br label %559

559:                                              ; preds = %558, %169
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #6
  br label %560

560:                                              ; preds = %559, %165
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  br label %561

561:                                              ; preds = %560, %161
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #6
  br label %562

562:                                              ; preds = %561
  %563 = load ptr, ptr %13, align 8
  %564 = load i32, ptr %14, align 4
  %565 = insertvalue { ptr, i32 } poison, ptr %563, 0
  %566 = insertvalue { ptr, i32 } %565, i32 %564, 1
  resume { ptr, i32 } %566
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 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 uwtable
declare dso_local void @_ZNSt6vectorIhSaIhEE9push_backEOh(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_ZN4ROHC14CreateShortCIDEt(i16 noundef zeroext) #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN4ROHC10SDVLEncodeISt20back_insert_iteratorISt6vectorIhSaIhEEEEET_S6_j(ptr, i32 noundef) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt13back_inserterISt6vectorIhSaIhEEESt20back_insert_iteratorIT_ERS4_(ptr noundef nonnull align 8 dereferenceable(24)) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEl(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN4ROHC10rohc_htonlEj(i32 noundef) #1

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4ROHC8CProfile10TOSChangedEPKNS_5iphdrE(ptr noundef nonnull align 8 dereferenceable(328), ptr noundef) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4ROHC8CProfile10TTLChangedEPKNS_5iphdrE(ptr noundef nonnull align 8 dereferenceable(328), ptr noundef) #1 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile15create_pt_1_rndEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile15create_pt_2_rndEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK4ROHC8CProfile15IpIdOffsetWidthEv(ptr noundef nonnull align 8 dereferenceable(328)) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile18create_pt_1_seq_tsEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile18create_pt_2_seq_tsEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile20create_pt_2_seq_bothEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) #2 align 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

declare void @_ZN4ROHC8CProfile31create_ipv4_innermost_irregularEPKNS_5iphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(328), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) #5

declare void @_ZN4ROHC11CUDPProfile34create_udp_with_checksum_irregularEPKNS_6udphdrERSt6vectorIhSaIhEE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) #5

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #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 = { 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 = { "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 = !{!10, !11, i64 72}
!10 = !{!"_ZTSN4ROHC8CProfileE", !6, i64 8, !11, i64 16, !12, i64 24, !13, i64 32, !13, i64 36, !13, i64 40, !13, i64 44, !12, i64 48, !12, i64 56, !13, i64 64, !13, i64 68, !11, i64 72, !14, i64 80, !19, i64 136, !20, i64 140, !21, i64 144, !22, i64 148, !13, i64 152, !13, i64 156, !23, i64 160, !11, i64 180, !11, i64 182, !14, i64 184, !7, i64 240}
!11 = !{!"short", !7, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTSN4ROHC4WLSBIiEE", !15, i64 0, !12, i64 24, !12, i64 32, !12, i64 40, !13, i64 48, !13, i64 52}
!15 = !{!"_ZTSSt6vectorIN4ROHC4WLSBIiE3LSBESaIS3_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIN4ROHC4WLSBIiE3LSBESaIS3_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN4ROHC4WLSBIiE3LSBESaIS3_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIN4ROHC4WLSBIiE3LSBESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTSN4ROHC12Reordering_tE", !7, i64 0}
!20 = !{!"_ZTSN4ROHC15IPIDBehaviour_tE", !7, i64 0}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"_ZTSN4ROHC8CProfileUt_E", !7, i64 0}
!23 = !{!"_ZTSN4ROHC5iphdrE", !7, i64 0, !7, i64 0, !7, i64 1, !11, i64 2, !11, i64 4, !11, i64 6, !7, i64 8, !7, i64 9, !11, i64 10, !13, i64 12, !13, i64 16}
!24 = !{!13, !13, i64 0}
!25 = !{!26, !13, i64 4}
!26 = !{!"_ZTSN4ROHC6rtphdrE", !7, i64 0, !7, i64 0, !7, i64 0, !7, i64 0, !7, i64 1, !7, i64 1, !11, i64 2, !13, i64 4, !13, i64 8}
!27 = !{!21, !21, i64 0}
!28 = !{!29, !13, i64 360}
!29 = !{!"_ZTSN4ROHC11CRTPProfileE", !10, i64 0, !30, i64 328, !11, i64 352, !11, i64 354, !26, i64 356, !13, i64 368, !13, i64 372, !13, i64 376, !13, i64 380, !34, i64 384, !13, i64 440, !21, i64 444}
!30 = !{!"_ZTSSt6vectorIN4ROHC11CRTPProfile8CSRCItemESaIS2_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIN4ROHC11CRTPProfile8CSRCItemESaIS2_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIN4ROHC11CRTPProfile8CSRCItemESaIS2_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN4ROHC11CRTPProfile8CSRCItemESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!34 = !{!"_ZTSN4ROHC4WLSBIjEE", !35, i64 0, !12, i64 24, !12, i64 32, !12, i64 40, !13, i64 48, !13, i64 52}
!35 = !{!"_ZTSSt6vectorIN4ROHC4WLSBIjE3LSBESaIS3_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIN4ROHC4WLSBIjE3LSBESaIS3_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN4ROHC4WLSBIjE3LSBESaIS3_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIN4ROHC4WLSBIjE3LSBESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!29, !13, i64 440}
!40 = !{!29, !11, i64 358}
!41 = !{!29, !13, i64 372}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = !{!29, !13, i64 376}
!45 = !{!10, !22, i64 148}
!46 = !{!10, !20, i64 140}
!47 = !{!10, !21, i64 144}
!48 = !{!10, !11, i64 16}
!49 = !{!7, !7, i64 0}
!50 = !{!29, !21, i64 444}
!51 = !{!10, !13, i64 40}
!52 = !{!10, !13, i64 68}
!53 = !{!10, !13, i64 44}


; 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.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.16" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4ROHC11CRTPProfile8CreateCOEPKNS_5iphdrEPKNS_6udphdrEPKNS_6rtphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::vector.11", align 8
  %7 = alloca i8, align 1
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.16", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #6
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #6
  %11 = getelementptr inbounds i8, ptr %0, i64 80
  %12 = getelementptr inbounds i8, ptr %0, i64 72
  %13 = load i16, ptr %12, align 8, !tbaa !5
  %14 = zext i16 %13 to i32
  %15 = invoke noundef i32 @_ZNK4ROHC4WLSBIiE5widthEi(ptr noundef nonnull align 8 dereferenceable(56) %11, i32 noundef %14)
          to label %16 unwind label %77

16:                                               ; preds = %5
  %17 = getelementptr inbounds i8, ptr %3, i64 4
  %18 = load i32, ptr %17, align 4, !tbaa !23
  %19 = call noundef i32 @_ZN4ROHC10rohc_htonlEj(i32 noundef %18)
  %20 = call noundef zeroext i1 @_ZNK4ROHC11CRTPProfile13MarkerChangedEPKNS_6rtphdrE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef %3)
  %21 = getelementptr inbounds i8, ptr %0, i64 360
  %22 = load i32, ptr %21, align 8, !tbaa !25
  %23 = call noundef i32 @_ZN4ROHC10rohc_htonlEj(i32 noundef %22)
  %24 = getelementptr inbounds i8, ptr %0, i64 440
  %25 = load i32, ptr %24, align 8, !tbaa !36
  %26 = load i16, ptr %12, align 8, !tbaa !5
  %27 = zext i16 %26 to i32
  %28 = getelementptr inbounds i8, ptr %0, i64 358
  %29 = load i16, ptr %28, align 2, !tbaa !37
  %30 = call noundef zeroext i16 @_ZN4ROHC10rohc_htonsEt(i16 noundef zeroext %29)
  %31 = zext i16 %30 to i32
  %32 = sub nsw i32 %27, %31
  %33 = mul i32 %32, %25
  %34 = add i32 %33, %23
  %35 = icmp eq i32 %19, %34
  %36 = load i32, ptr %24, align 8, !tbaa !36
  %37 = udiv i32 %19, %36
  %38 = getelementptr inbounds i8, ptr %0, i64 384
  %39 = invoke noundef i32 @_ZNK4ROHC4WLSBIjE5widthEj(ptr noundef nonnull align 8 dereferenceable(56) %38, i32 noundef %37)
          to label %40 unwind label %79

40:                                               ; preds = %16
  %41 = load i32, ptr %24, align 8, !tbaa !36
  %42 = urem i32 %19, %41
  %43 = getelementptr inbounds i8, ptr %0, i64 372
  %44 = load i32, ptr %43, align 4, !tbaa !38
  %.not134 = icmp eq i32 %42, %44
  %45 = call noundef zeroext i1 @_ZNK4ROHC8CProfile10TOSChangedEPKNS_5iphdrE(ptr noundef nonnull align 8 dereferenceable(328) %0, ptr noundef %1)
  br i1 %45, label %.thread152, label %46

46:                                               ; preds = %40
  %47 = call noundef zeroext i1 @_ZNK4ROHC8CProfile10TTLChangedEPKNS_5iphdrE(ptr noundef nonnull align 8 dereferenceable(328) %0, ptr noundef %1)
  br i1 %47, label %.thread152, label %48

48:                                               ; preds = %46
  %49 = call noundef zeroext i1 @_ZNK4ROHC11CRTPProfile9PTChangedEPKNS_6rtphdrE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef nonnull %3)
  br i1 %49, label %.thread152, label %50

50:                                               ; preds = %48
  %51 = call noundef zeroext i1 @_ZNK4ROHC11CRTPProfile10PadChangedEPKNS_6rtphdrE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef nonnull %3)
  br i1 %51, label %.thread152, label %54

.thread152:                                       ; preds = %40, %46, %48, %50
  %52 = icmp ult i32 %15, 5
  %53 = icmp ult i32 %15, 6
  br label %65

54:                                               ; preds = %50
  %55 = call noundef zeroext i1 @_ZNK4ROHC11CRTPProfile16ExtensionChangedEPKNS_6rtphdrE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef nonnull %3)
  %56 = xor i1 %55, true
  %57 = icmp ult i32 %15, 5
  %or.cond = and i1 %57, %56
  br i1 %or.cond, label %58, label %60

58:                                               ; preds = %54
  %59 = xor i1 %20, true
  %spec.select = and i1 %35, %59
  br label %60

60:                                               ; preds = %58, %54
  %61 = phi i1 [ false, %54 ], [ %spec.select, %58 ]
  %62 = icmp ult i32 %15, 6
  %or.cond3 = and i1 %62, %56
  br i1 %or.cond3, label %63, label %65

63:                                               ; preds = %60
  %64 = xor i1 %20, true
  %spec.select142 = and i1 %35, %64
  br label %65

65:                                               ; preds = %.thread152, %63, %60
  %66 = phi i1 [ %62, %60 ], [ true, %63 ], [ %53, %.thread152 ]
  %67 = phi i1 [ %61, %60 ], [ %61, %63 ], [ false, %.thread152 ]
  %68 = phi i1 [ %56, %60 ], [ true, %63 ], [ false, %.thread152 ]
  %69 = phi i1 [ %57, %60 ], [ %57, %63 ], [ %52, %.thread152 ]
  %or.cond151155 = phi i1 [ %or.cond, %60 ], [ %or.cond, %63 ], [ false, %.thread152 ]
  %70 = phi i1 [ false, %60 ], [ %spec.select142, %63 ], [ false, %.thread152 ]
  %71 = getelementptr inbounds i8, ptr %0, i64 376
  %72 = load i32, ptr %71, align 8, !tbaa !39
  %.not135 = icmp ne i32 %72, 0
  %73 = getelementptr inbounds i8, ptr %0, i64 148
  %74 = load i32, ptr %73, align 4
  %75 = icmp eq i32 %74, 1
  %or.cond145 = select i1 %.not135, i1 true, i1 %75
  br i1 %or.cond145, label %76, label %83

76:                                               ; preds = %65
  invoke void @_ZN4ROHC11CRTPProfile16create_co_commonEPKNS_5iphdrEPKNS_6rtphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef %1, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %81

77:                                               ; preds = %5
  %78 = landingpad { ptr, i32 }
          cleanup
  br label %220

79:                                               ; preds = %16
  %80 = landingpad { ptr, i32 }
          cleanup
  br label %220

81:                                               ; preds = %206, %201, %189, %187, %182, %76
  %82 = landingpad { ptr, i32 }
          cleanup
  br label %220

83:                                               ; preds = %65
  %84 = getelementptr inbounds i8, ptr %0, i64 140
  %85 = load i32, ptr %84, align 4, !tbaa !40
  %86 = and i32 %85, -2
  %switch = icmp eq i32 %86, 2
  br i1 %switch, label %87, label %108

87:                                               ; preds = %83
  %88 = icmp slt i32 %39, 6
  %or.cond7 = and i1 %88, %or.cond151155
  %89 = select i1 %or.cond7, i1 %.not134, i1 false
  %90 = icmp ult i32 %15, 8
  %91 = icmp slt i32 %39, 7
  %92 = and i1 %90, %91
  %or.cond11 = and i1 %92, %68
  %93 = select i1 %or.cond11, i1 %.not134, i1 false
  br i1 %67, label %94, label %97

94:                                               ; preds = %87
  invoke void @_ZN4ROHC11CRTPProfile16create_pt_0_crc3ERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %95

95:                                               ; preds = %107, %104, %100, %98, %94
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %220

97:                                               ; preds = %87
  br i1 %70, label %98, label %99

98:                                               ; preds = %97
  invoke void @_ZN4ROHC11CRTPProfile16create_pt_0_crc7ERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %95

99:                                               ; preds = %97
  br i1 %89, label %100, label %103

100:                                              ; preds = %99
  %101 = load i16, ptr %3, align 4
  %102 = icmp slt i16 %101, 0
  invoke void @_ZN4ROHC11CRTPProfile15create_pt_1_rndEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, i32 noundef %37, i1 noundef zeroext %102, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %95

103:                                              ; preds = %99
  br i1 %93, label %104, label %107

104:                                              ; preds = %103
  %105 = load i16, ptr %3, align 4
  %106 = icmp slt i16 %105, 0
  invoke void @_ZN4ROHC11CRTPProfile15create_pt_2_rndEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, i32 noundef %37, i1 noundef zeroext %106, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %95

107:                                              ; preds = %103
  invoke void @_ZN4ROHC11CRTPProfile16create_co_commonEPKNS_5iphdrEPKNS_6rtphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef %1, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %95

108:                                              ; preds = %83
  %109 = invoke noundef i32 @_ZNK4ROHC8CProfile15IpIdOffsetWidthEv(ptr noundef nonnull align 8 dereferenceable(328) %0)
          to label %110 unwind label %112

110:                                              ; preds = %108
  %111 = call noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %0)
  br i1 %67, label %114, label %117

112:                                              ; preds = %108
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %220

114:                                              ; preds = %110
  %115 = call noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %0)
  %116 = xor i1 %115, true
  br label %117

117:                                              ; preds = %114, %110
  %118 = phi i1 [ false, %110 ], [ %116, %114 ]
  br i1 %70, label %119, label %122

119:                                              ; preds = %117
  %120 = call noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %0)
  %121 = xor i1 %120, true
  br label %122

122:                                              ; preds = %119, %117
  %123 = phi i1 [ false, %117 ], [ %121, %119 ]
  %124 = icmp ult i32 %109, 5
  %125 = and i1 %66, %124
  %or.cond15 = and i1 %68, %125
  br i1 %or.cond15, label %126, label %128

126:                                              ; preds = %122
  %127 = icmp eq i32 %39, 0
  %not. = xor i1 %20, true
  %spec.select146 = and i1 %127, %not.
  br label %128

128:                                              ; preds = %126, %122
  %129 = phi i1 [ false, %122 ], [ %spec.select146, %126 ]
  br i1 %68, label %130, label %143

130:                                              ; preds = %128
  %131 = call noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %0)
  %.not = xor i1 %131, true
  %132 = icmp slt i32 %39, 6
  %133 = and i1 %69, %.not
  %or.cond19 = and i1 %133, %132
  %spec.select147 = select i1 %or.cond19, i1 %.not134, i1 false
  %134 = icmp ult i32 %109, 6
  %135 = icmp ult i32 %15, 8
  %or.cond23 = and i1 %135, %134
  br i1 %or.cond23, label %136, label %138

136:                                              ; preds = %130
  %137 = icmp eq i32 %39, 0
  %not.164 = xor i1 %20, true
  %spec.select148 = and i1 %137, %not.164
  br label %138

138:                                              ; preds = %136, %130
  %.ph = phi i1 [ %spec.select148, %136 ], [ false, %130 ]
  %139 = icmp slt i32 %39, 8
  %or.cond29163 = and i1 %139, %or.cond23
  %140 = select i1 %or.cond29163, i1 %.not134, i1 false
  %141 = call noundef zeroext i1 @_ZNK4ROHC8CProfile17IPIDOffsetChangedEv(ptr noundef nonnull align 8 dereferenceable(328) %0)
  %.not30 = xor i1 %141, true
  %142 = and i1 %132, %.not30
  %or.cond34 = and i1 %135, %142
  %spec.select149 = select i1 %or.cond34, i1 %.not134, i1 false
  br label %143

143:                                              ; preds = %128, %138
  %144 = phi i1 [ %140, %138 ], [ false, %128 ]
  %145 = phi i1 [ %.ph, %138 ], [ false, %128 ]
  %146 = phi i1 [ %spec.select147, %138 ], [ false, %128 ]
  %147 = phi i1 [ %spec.select149, %138 ], [ false, %128 ]
  br i1 %118, label %148, label %151

148:                                              ; preds = %143
  invoke void @_ZN4ROHC11CRTPProfile16create_pt_0_crc3ERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %149

149:                                              ; preds = %169, %166, %162, %160, %156, %154, %152, %148
  %150 = landingpad { ptr, i32 }
          cleanup
  br label %220

151:                                              ; preds = %143
  br i1 %123, label %152, label %153

152:                                              ; preds = %151
  invoke void @_ZN4ROHC11CRTPProfile16create_pt_0_crc7ERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %149

153:                                              ; preds = %151
  br i1 %129, label %154, label %155

154:                                              ; preds = %153
  invoke void @_ZN4ROHC11CRTPProfile18create_pt_1_seq_idERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %149

155:                                              ; preds = %153
  br i1 %146, label %156, label %159

156:                                              ; preds = %155
  %157 = load i16, ptr %3, align 4
  %158 = icmp slt i16 %157, 0
  invoke void @_ZN4ROHC11CRTPProfile18create_pt_1_seq_tsEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, i32 noundef %37, i1 noundef zeroext %158, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %149

159:                                              ; preds = %155
  br i1 %145, label %160, label %161

160:                                              ; preds = %159
  invoke void @_ZN4ROHC11CRTPProfile18create_pt_2_seq_idERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %149

161:                                              ; preds = %159
  br i1 %147, label %162, label %165

162:                                              ; preds = %161
  %163 = load i16, ptr %3, align 4
  %164 = icmp slt i16 %163, 0
  invoke void @_ZN4ROHC11CRTPProfile18create_pt_2_seq_tsEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, i32 noundef %37, i1 noundef zeroext %164, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %149

165:                                              ; preds = %161
  br i1 %144, label %166, label %169

166:                                              ; preds = %165
  %167 = load i16, ptr %3, align 4
  %168 = icmp slt i16 %167, 0
  invoke void @_ZN4ROHC11CRTPProfile20create_pt_2_seq_bothEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, i32 noundef %37, i1 noundef zeroext %168, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %149

169:                                              ; preds = %165
  invoke void @_ZN4ROHC11CRTPProfile16create_co_commonEPKNS_5iphdrEPKNS_6rtphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445) %0, ptr noundef %1, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %170 unwind label %149

170:                                              ; preds = %148, %154, %160, %166, %169, %162, %156, %152, %94, %100, %107, %104, %98, %76
  %171 = getelementptr inbounds i8, ptr %0, i64 144
  %172 = load i8, ptr %171, align 8, !tbaa !41, !range !42, !noundef !43
  %173 = trunc nuw i8 %172 to i1
  br i1 %173, label %182, label %174

174:                                              ; preds = %170
  %175 = getelementptr inbounds i8, ptr %0, i64 16
  %176 = load i16, ptr %175, align 8, !tbaa !44
  %.not137 = icmp eq i16 %176, 0
  br i1 %.not137, label %182, label %177

177:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #6
  %178 = call noundef zeroext i8 @_ZN4ROHC14CreateShortCIDEt(i16 noundef zeroext %176)
  store i8 %178, ptr %7, align 1, !tbaa !45
  invoke void @_ZNSt6vectorIhSaIhEE9push_backEOh(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %179 unwind label %180

179:                                              ; preds = %177
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  br label %182

180:                                              ; preds = %177
  %181 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  br label %220

182:                                              ; preds = %179, %174, %170
  %183 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 0) #6
  invoke void @_ZNSt6vectorIhSaIhEE9push_backERKh(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 1 dereferenceable(1) %183)
          to label %184 unwind label %81

184:                                              ; preds = %182
  %185 = load i8, ptr %171, align 8, !tbaa !41, !range !42, !noundef !43
  %186 = trunc nuw i8 %185 to i1
  br i1 %186, label %187, label %194

187:                                              ; preds = %184
  %188 = invoke ptr @_ZSt13back_inserterISt6vectorIhSaIhEEESt20back_insert_iteratorIT_ERS4_(ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %189 unwind label %81

189:                                              ; preds = %187
  %190 = getelementptr inbounds i8, ptr %0, i64 16
  %191 = load i16, ptr %190, align 8, !tbaa !44
  %192 = zext i16 %191 to i32
  %193 = invoke ptr @_ZN4ROHC10SDVLEncodeISt20back_insert_iteratorISt6vectorIhSaIhEEEEET_S6_j(ptr %188, i32 noundef %192)
          to label %194 unwind label %81

194:                                              ; preds = %189, %184
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  %195 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #6
  store ptr %195, ptr %9, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKhSt6vectorIhSaIhEEEC2IPhvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  %196 = call ptr @_ZNSt6vectorIhSaIhEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #6
  store ptr %196, ptr %10, align 8
  %197 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %10, i64 noundef 1) #6
  %198 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #6
  %199 = load ptr, ptr %8, align 8
  %200 = invoke ptr @_ZNSt6vectorIhSaIhEE6insertIN9__gnu_cxx17__normal_iteratorIPhS1_EEvEES6_NS4_IPKhS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr %199, ptr %197, ptr %198)
          to label %201 unwind label %207

201:                                              ; preds = %194
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  invoke void @_ZN4ROHC8CProfile31create_ipv4_innermost_irregularEPKNS_5iphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(328) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %202 unwind label %81

202:                                              ; preds = %201
  %203 = getelementptr inbounds i8, ptr %0, i64 444
  %204 = load i8, ptr %203, align 4, !tbaa !46, !range !42, !noundef !43
  %205 = trunc nuw i8 %204 to i1
  br i1 %205, label %206, label %209

206:                                              ; preds = %202
  invoke void @_ZN4ROHC11CUDPProfile34create_udp_with_checksum_irregularEPKNS_6udphdrERSt6vectorIhSaIhEE(ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %209 unwind label %81

207:                                              ; preds = %194
  %208 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  br label %220

209:                                              ; preds = %206, %202
  %210 = load i32, ptr %73, align 4, !tbaa !47
  %211 = icmp eq i32 %210, 1
  br i1 %211, label %212, label %216

212:                                              ; preds = %209
  %213 = getelementptr inbounds i8, ptr %0, i64 40
  %214 = load i32, ptr %213, align 8, !tbaa !48
  %215 = add i32 %214, 1
  store i32 %215, ptr %213, align 8, !tbaa !48
  br label %216

216:                                              ; preds = %209, %212
  %.sink167 = phi i64 [ 68, %212 ], [ 44, %209 ]
  %217 = getelementptr inbounds i8, ptr %0, i64 %.sink167
  %218 = load i32, ptr %217, align 4, !tbaa !49
  %219 = add i32 %218, 1
  store i32 %219, ptr %217, align 4, !tbaa !49
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #6
  ret void

220:                                              ; preds = %79, %112, %149, %207, %180, %95, %81, %77
  %.pn138.pn.pn = phi { ptr, i32 } [ %78, %77 ], [ %80, %79 ], [ %82, %81 ], [ %208, %207 ], [ %181, %180 ], [ %96, %95 ], [ %150, %149 ], [ %113, %112 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #6
  resume { ptr, i32 } %.pn138.pn.pn
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 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 uwtable
declare dso_local void @_ZNSt6vectorIhSaIhEE9push_backEOh(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_ZN4ROHC14CreateShortCIDEt(i16 noundef zeroext) local_unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN4ROHC10SDVLEncodeISt20back_insert_iteratorISt6vectorIhSaIhEEEEET_S6_j(ptr, i32 noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt13back_inserterISt6vectorIhSaIhEEESt20back_insert_iteratorIT_ERS4_(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNK9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEplEl(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_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) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK4ROHC4WLSBIiE5widthEi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN4ROHC10rohc_htonlEj(i32 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK4ROHC4WLSBIjE5widthEj(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile15create_pt_1_rndEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile15create_pt_2_rndEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile18create_pt_1_seq_tsEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile18create_pt_2_seq_tsEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4ROHC11CRTPProfile20create_pt_2_seq_bothEjbRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(445), i32 noundef, i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 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) local_unnamed_addr #2 align 2

declare void @_ZN4ROHC8CProfile31create_ipv4_innermost_irregularEPKNS_5iphdrERSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(328), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

declare void @_ZN4ROHC11CUDPProfile34create_udp_with_checksum_irregularEPKNS_6udphdrERSt6vectorIhSaIhEE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #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 = { 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 = { "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, !10, i64 72}
!6 = !{!"_ZTSN4ROHC8CProfileE", !7, i64 8, !10, i64 16, !11, i64 24, !12, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !11, i64 48, !11, i64 56, !12, i64 64, !12, i64 68, !10, i64 72, !13, i64 80, !18, i64 136, !19, i64 140, !20, i64 144, !21, i64 148, !12, i64 152, !12, i64 156, !22, i64 160, !10, i64 180, !10, i64 182, !13, i64 184, !8, i64 240}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"short", !8, i64 0}
!11 = !{!"long", !8, i64 0}
!12 = !{!"int", !8, i64 0}
!13 = !{!"_ZTSN4ROHC4WLSBIiEE", !14, i64 0, !11, i64 24, !11, i64 32, !11, i64 40, !12, i64 48, !12, i64 52}
!14 = !{!"_ZTSSt6vectorIN4ROHC4WLSBIiE3LSBESaIS3_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIN4ROHC4WLSBIiE3LSBESaIS3_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIN4ROHC4WLSBIiE3LSBESaIS3_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN4ROHC4WLSBIiE3LSBESaIS3_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!18 = !{!"_ZTSN4ROHC12Reordering_tE", !8, i64 0}
!19 = !{!"_ZTSN4ROHC15IPIDBehaviour_tE", !8, i64 0}
!20 = !{!"bool", !8, i64 0}
!21 = !{!"_ZTSN4ROHC8CProfileUt_E", !8, i64 0}
!22 = !{!"_ZTSN4ROHC5iphdrE", !8, i64 0, !8, i64 0, !8, i64 1, !10, i64 2, !10, i64 4, !10, i64 6, !8, i64 8, !8, i64 9, !10, i64 10, !12, i64 12, !12, i64 16}
!23 = !{!24, !12, i64 4}
!24 = !{!"_ZTSN4ROHC6rtphdrE", !8, i64 0, !8, i64 0, !8, i64 0, !8, i64 0, !8, i64 1, !8, i64 1, !10, i64 2, !12, i64 4, !12, i64 8}
!25 = !{!26, !12, i64 360}
!26 = !{!"_ZTSN4ROHC11CRTPProfileE", !6, i64 0, !27, i64 328, !10, i64 352, !10, i64 354, !24, i64 356, !12, i64 368, !12, i64 372, !12, i64 376, !12, i64 380, !31, i64 384, !12, i64 440, !20, i64 444}
!27 = !{!"_ZTSSt6vectorIN4ROHC11CRTPProfile8CSRCItemESaIS2_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIN4ROHC11CRTPProfile8CSRCItemESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIN4ROHC11CRTPProfile8CSRCItemESaIS2_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN4ROHC11CRTPProfile8CSRCItemESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!31 = !{!"_ZTSN4ROHC4WLSBIjEE", !32, i64 0, !11, i64 24, !11, i64 32, !11, i64 40, !12, i64 48, !12, i64 52}
!32 = !{!"_ZTSSt6vectorIN4ROHC4WLSBIjE3LSBESaIS3_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIN4ROHC4WLSBIjE3LSBESaIS3_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN4ROHC4WLSBIjE3LSBESaIS3_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN4ROHC4WLSBIjE3LSBESaIS3_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!36 = !{!26, !12, i64 440}
!37 = !{!26, !10, i64 358}
!38 = !{!26, !12, i64 372}
!39 = !{!26, !12, i64 376}
!40 = !{!6, !19, i64 140}
!41 = !{!6, !20, i64 144}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = !{!6, !10, i64 16}
!45 = !{!8, !8, i64 0}
!46 = !{!26, !20, i64 444}
!47 = !{!6, !21, i64 148}
!48 = !{!6, !12, i64 40}
!49 = !{!12, !12, i64 0}


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,ReassociatePass,SROAPass,SimplifyCFGPass