; LLVM IR from specinfo-ua/UAPKI :: library/uapki/src (doc-sign)

; 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.UapkiNS::AttributeHelper::RevocationRefsBuilder" = type { ptr, %"class.std::vector.40", ptr }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *, std::allocator<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *>>::_Vector_impl" }
%"struct.std::_Vector_base<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *, std::allocator<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *>>::_Vector_impl" = type { %"struct.std::_Vector_base<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *, std::allocator<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *, std::allocator<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *, std::allocator<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *>>::_Vector_impl" }
%"struct.std::_Vector_base<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *, std::allocator<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *>>::_Vector_impl" = type { %"struct.std::_Vector_base<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *, std::allocator<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *, std::allocator<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.UapkiNS::Doc::Sign::SigningDoc" = type { ptr, %"class.UapkiNS::Pkcs7::SignedDataBuilder", ptr, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, %"class.UapkiNS::ContentHasher", %"class.UapkiNS::SmartBA", %"class.UapkiNS::SmartBA", %"class.UapkiNS::SmartBA", %"class.std::__cxx11::basic_string", %"class.UapkiNS::Pkcs7::ArchiveTs3Helper", %"class.std::vector.3", %"class.std::vector.18", %"class.std::vector.18" }
%"class.UapkiNS::Pkcs7::SignedDataBuilder" = type { ptr, %"class.std::vector.8", ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<UapkiNS::Pkcs7::SignedDataBuilder::SignerInfo *, std::allocator<UapkiNS::Pkcs7::SignedDataBuilder::SignerInfo *>>::_Vector_impl" }
%"struct.std::_Vector_base<UapkiNS::Pkcs7::SignedDataBuilder::SignerInfo *, std::allocator<UapkiNS::Pkcs7::SignedDataBuilder::SignerInfo *>>::_Vector_impl" = type { %"struct.std::_Vector_base<UapkiNS::Pkcs7::SignedDataBuilder::SignerInfo *, std::allocator<UapkiNS::Pkcs7::SignedDataBuilder::SignerInfo *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<UapkiNS::Pkcs7::SignedDataBuilder::SignerInfo *, std::allocator<UapkiNS::Pkcs7::SignedDataBuilder::SignerInfo *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.UapkiNS::ContentHasher" = type { i32, i32, ptr, i8, %"class.std::__cxx11::basic_string", ptr, i64, %"class.UapkiNS::SmartBA" }
%"class.UapkiNS::SmartBA" = type { ptr }
%"class.UapkiNS::Pkcs7::ArchiveTs3Helper" = type { ptr, i32, %"struct.UapkiNS::Pkcs7::ArchiveTs3Helper::ATSHashIndex", %struct.anon, %"class.UapkiNS::SmartBA" }
%"struct.UapkiNS::Pkcs7::ArchiveTs3Helper::ATSHashIndex" = type { %"class.UapkiNS::VectorBA", %"class.UapkiNS::VectorBA", %"class.UapkiNS::VectorBA" }
%"class.UapkiNS::VectorBA" = type { %"class.std::vector.13" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<ByteArray_st *, std::allocator<ByteArray_st *>>::_Vector_impl" }
%"struct.std::_Vector_base<ByteArray_st *, std::allocator<ByteArray_st *>>::_Vector_impl" = type { %"struct.std::_Vector_base<ByteArray_st *, std::allocator<ByteArray_st *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ByteArray_st *, std::allocator<ByteArray_st *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.anon = type { %"class.UapkiNS::SmartBA", %"class.UapkiNS::SmartBA", %"class.UapkiNS::SmartBA", %"class.UapkiNS::SmartBA" }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<UapkiNS::Attribute *, std::allocator<UapkiNS::Attribute *>>::_Vector_impl" }
%"struct.std::_Vector_base<UapkiNS::Attribute *, std::allocator<UapkiNS::Attribute *>>::_Vector_impl" = type { %"struct.std::_Vector_base<UapkiNS::Attribute *, std::allocator<UapkiNS::Attribute *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<UapkiNS::Attribute *, std::allocator<UapkiNS::Attribute *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.UapkiNS::Doc::Sign::SigningDoc::SignParams" = type { i32, i8, i8, i32, i32, %"struct.UapkiNS::AlgorithmIdentifier", %"struct.UapkiNS::AlgorithmIdentifier", %"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem", %"class.UapkiNS::SmartBA", i8, i8, i8, i8, i8, i8, %"struct.UapkiNS::LibraryConfig::OcspParams", %"struct.UapkiNS::LibraryConfig::TspParams", %"struct.UapkiNS::Attribute", %"struct.UapkiNS::Attribute", %"class.std::vector.3" }
%"struct.UapkiNS::AlgorithmIdentifier" = type { %"class.std::__cxx11::basic_string", ptr }
%"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem" = type { ptr, ptr, i8, %"class.UapkiNS::SmartBA", %"class.UapkiNS::SmartBA", %"class.UapkiNS::SmartBA", ptr, ptr }
%"struct.UapkiNS::LibraryConfig::OcspParams" = type { i64 }
%"struct.UapkiNS::LibraryConfig::TspParams" = type { i8, i8, i64, %"class.std::__cxx11::basic_string", %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.UapkiNS::Attribute" = type { %"class.std::__cxx11::basic_string", ptr }

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@OID_PKCS9_REVOCATION_REFS = external global ptr, align 8

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

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

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

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

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

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

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

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

declare void @stacktrace_add(ptr noundef, i64 noundef, i32 noundef) #3

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7UapkiNS3Doc4Sign10SigningDoc20encodeRevocationRefsERNS_9AttributeE(ptr noundef nonnull align 8 dereferenceable(464) %0, ptr noundef nonnull align 8 dereferenceable(40) %1) #4 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca %"class.UapkiNS::AttributeHelper::RevocationRefsBuilder", align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i64, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca %"class.std::vector.3", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  %23 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #6
  store i32 0, ptr %6, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  %24 = getelementptr inbounds %"class.UapkiNS::Doc::Sign::SigningDoc", ptr %23, i32 0, i32 0
  %25 = load ptr, ptr %24, align 8, !tbaa !11
  %26 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::SignParams", ptr %25, i32 0, i32 7
  store ptr %26, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %8) #6
  call void @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilderC1Ev(ptr noundef nonnull align 8 dereferenceable(40) %8)
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  store ptr null, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  store ptr null, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  store ptr null, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  store i64 0, ptr %12, align 8, !tbaa !42
  br label %27

27:                                               ; preds = %2
  %28 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder4initEv(ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %29 unwind label %35

29:                                               ; preds = %27
  store i32 %28, ptr %6, align 4, !tbaa !9
  %30 = load i32, ptr %6, align 4, !tbaa !9
  %31 = icmp ne i32 %30, 0
  br i1 %31, label %32, label %39

32:                                               ; preds = %29
  %33 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 559, i32 noundef %33)
          to label %34 unwind label %35

34:                                               ; preds = %32
  br label %271

35:                                               ; preds = %263, %256, %251, %121, %116, %112, %107, %100, %93, %88, %83, %77, %68, %52, %47, %42, %32, %27
  %36 = landingpad { ptr, i32 }
          cleanup
  %37 = extractvalue { ptr, i32 } %36, 0
  store ptr %37, ptr %13, align 8
  %38 = extractvalue { ptr, i32 } %36, 1
  store i32 %38, ptr %14, align 4
  br label %279

39:                                               ; preds = %29
  br label %40

40:                                               ; preds = %39
  br label %41

41:                                               ; preds = %40
  br label %42

42:                                               ; preds = %41
  %43 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder13addCrlOcspRefEv(ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %44 unwind label %35

44:                                               ; preds = %42
  store i32 %43, ptr %6, align 4, !tbaa !9
  %45 = load i32, ptr %6, align 4, !tbaa !9
  %46 = icmp ne i32 %45, 0
  br i1 %46, label %47, label %50

47:                                               ; preds = %44
  %48 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 562, i32 noundef %48)
          to label %49 unwind label %35

49:                                               ; preds = %47
  br label %271

50:                                               ; preds = %44
  br label %51

51:                                               ; preds = %50
  br label %52

52:                                               ; preds = %51
  %53 = load i64, ptr %12, align 8, !tbaa !42
  %54 = add i64 %53, 1
  store i64 %54, ptr %12, align 8, !tbaa !42
  %55 = invoke noundef ptr @_ZNK7UapkiNS15AttributeHelper21RevocationRefsBuilder13getCrlOcspRefEm(ptr noundef nonnull align 8 dereferenceable(40) %8, i64 noundef %53)
          to label %56 unwind label %35

56:                                               ; preds = %52
  store ptr %55, ptr %9, align 8, !tbaa !5
  %57 = getelementptr inbounds %"class.UapkiNS::Doc::Sign::SigningDoc", ptr %23, i32 0, i32 0
  %58 = load ptr, ptr %57, align 8, !tbaa !11
  %59 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::SignParams", ptr %58, i32 0, i32 0
  %60 = load i32, ptr %59, align 8, !tbaa !43
  switch i32 %60, label %128 [
    i32 5, label %61
    i32 6, label %100
    i32 7, label %100
  ]

61:                                               ; preds = %56
  %62 = load ptr, ptr %7, align 8, !tbaa !5
  %63 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem", ptr %62, i32 0, i32 6
  %64 = load ptr, ptr %63, align 8, !tbaa !55
  store ptr %64, ptr %10, align 8, !tbaa !5
  %65 = load ptr, ptr %10, align 8, !tbaa !5
  %66 = icmp ne ptr %65, null
  br i1 %66, label %67, label %99

67:                                               ; preds = %61
  br label %68

68:                                               ; preds = %67
  %69 = load ptr, ptr %10, align 8, !tbaa !5
  %70 = getelementptr inbounds %"class.UapkiNS::Doc::Sign::SigningDoc", ptr %23, i32 0, i32 0
  %71 = load ptr, ptr %70, align 8, !tbaa !11
  %72 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::SignParams", ptr %71, i32 0, i32 5
  %73 = invoke noundef i32 @_ZN7UapkiNS3Crl7CrlItem12generateHashERKNS_19AlgorithmIdentifierEPPKNS_9OtherHashE(ptr noundef nonnull align 8 dereferenceable(268) %69, ptr noundef nonnull align 8 dereferenceable(40) %72, ptr noundef %11)
          to label %74 unwind label %35

74:                                               ; preds = %68
  store i32 %73, ptr %6, align 4, !tbaa !9
  %75 = load i32, ptr %6, align 4, !tbaa !9
  %76 = icmp ne i32 %75, 0
  br i1 %76, label %77, label %80

77:                                               ; preds = %74
  %78 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 568, i32 noundef %78)
          to label %79 unwind label %35

79:                                               ; preds = %77
  br label %271

80:                                               ; preds = %74
  br label %81

81:                                               ; preds = %80
  br label %82

82:                                               ; preds = %81
  br label %83

83:                                               ; preds = %82
  %84 = load ptr, ptr %9, align 8, !tbaa !5
  %85 = load ptr, ptr %11, align 8, !tbaa !5
  %86 = load ptr, ptr %10, align 8, !tbaa !5
  %87 = invoke noundef ptr @_ZNK7UapkiNS3Crl7CrlItem16getCrlIdentifierEv(ptr noundef nonnull align 8 dereferenceable(268) %86)
          to label %88 unwind label %35

88:                                               ; preds = %83
  %89 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addCrlValidatedIdERKNS_9OtherHashEPK12ByteArray_st(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(48) %85, ptr noundef %87)
          to label %90 unwind label %35

90:                                               ; preds = %88
  store i32 %89, ptr %6, align 4, !tbaa !9
  %91 = load i32, ptr %6, align 4, !tbaa !9
  %92 = icmp ne i32 %91, 0
  br i1 %92, label %93, label %96

93:                                               ; preds = %90
  %94 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 569, i32 noundef %94)
          to label %95 unwind label %35

95:                                               ; preds = %93
  br label %271

96:                                               ; preds = %90
  br label %97

97:                                               ; preds = %96
  br label %98

98:                                               ; preds = %97
  br label %99

99:                                               ; preds = %98, %61
  br label %129

100:                                              ; preds = %56, %56
  %101 = load ptr, ptr %7, align 8, !tbaa !5
  %102 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem", ptr %101, i32 0, i32 4
  %103 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3bufEv(ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %104 unwind label %35

104:                                              ; preds = %100
  %105 = icmp ne ptr %103, null
  br i1 %105, label %106, label %127

106:                                              ; preds = %104
  br label %107

107:                                              ; preds = %106
  %108 = load ptr, ptr %9, align 8, !tbaa !5
  %109 = load ptr, ptr %7, align 8, !tbaa !5
  %110 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem", ptr %109, i32 0, i32 4
  %111 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %112 unwind label %35

112:                                              ; preds = %107
  %113 = load ptr, ptr %7, align 8, !tbaa !5
  %114 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem", ptr %113, i32 0, i32 5
  %115 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %116 unwind label %35

116:                                              ; preds = %112
  %117 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addOcspResponseIdEPK12ByteArray_stS5_(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef %111, ptr noundef %115)
          to label %118 unwind label %35

118:                                              ; preds = %116
  store i32 %117, ptr %6, align 4, !tbaa !9
  %119 = load i32, ptr %6, align 4, !tbaa !9
  %120 = icmp ne i32 %119, 0
  br i1 %120, label %121, label %124

121:                                              ; preds = %118
  %122 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 575, i32 noundef %122)
          to label %123 unwind label %35

123:                                              ; preds = %121
  br label %271

124:                                              ; preds = %118
  br label %125

125:                                              ; preds = %124
  br label %126

126:                                              ; preds = %125
  br label %127

127:                                              ; preds = %126, %104
  br label %129

128:                                              ; preds = %56
  br label %129

129:                                              ; preds = %128, %127, %99
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #6
  invoke void @_ZN7UapkiNS3Doc4Sign10SigningDoc8getCertsEv(ptr dead_on_unwind writable sret(%"class.std::vector.3") align 8 %16, ptr noundef nonnull align 8 dereferenceable(464) %23)
          to label %130 unwind label %140

130:                                              ; preds = %129
  store ptr %16, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %131 = load ptr, ptr %15, align 8, !tbaa !5
  %132 = call ptr @_ZNSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %131) #6
  %133 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %17, i32 0, i32 0
  store ptr %132, ptr %133, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  %134 = load ptr, ptr %15, align 8, !tbaa !5
  %135 = call ptr @_ZNSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %134) #6
  %136 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %18, i32 0, i32 0
  store ptr %135, ptr %136, align 8
  br label %137

137:                                              ; preds = %245, %130
  %138 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  br i1 %138, label %144, label %139

139:                                              ; preds = %137
  store i32 14, ptr %19, align 4
  br label %247

140:                                              ; preds = %129
  %141 = landingpad { ptr, i32 }
          cleanup
  %142 = extractvalue { ptr, i32 } %141, 0
  store ptr %142, ptr %13, align 8
  %143 = extractvalue { ptr, i32 } %141, 1
  store i32 %143, ptr %14, align 4
  br label %249

144:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %145 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  store ptr %145, ptr %20, align 8, !tbaa !5
  br label %146

146:                                              ; preds = %144
  %147 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder13addCrlOcspRefEv(ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %148 unwind label %154

148:                                              ; preds = %146
  store i32 %147, ptr %6, align 4, !tbaa !9
  %149 = load i32, ptr %6, align 4, !tbaa !9
  %150 = icmp ne i32 %149, 0
  br i1 %150, label %151, label %158

151:                                              ; preds = %148
  %152 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 584, i32 noundef %152)
          to label %153 unwind label %154

153:                                              ; preds = %151
  store i32 4, ptr %19, align 4
  br label %242

154:                                              ; preds = %233, %228, %223, %217, %209, %202, %197, %192, %186, %177, %160, %151, %146
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %13, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @_ZNSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #6
  br label %249

158:                                              ; preds = %148
  br label %159

159:                                              ; preds = %158
  br label %160

160:                                              ; preds = %159
  %161 = load i64, ptr %12, align 8, !tbaa !42
  %162 = add i64 %161, 1
  store i64 %162, ptr %12, align 8, !tbaa !42
  %163 = invoke noundef ptr @_ZNK7UapkiNS15AttributeHelper21RevocationRefsBuilder13getCrlOcspRefEm(ptr noundef nonnull align 8 dereferenceable(40) %8, i64 noundef %161)
          to label %164 unwind label %154

164:                                              ; preds = %160
  store ptr %163, ptr %9, align 8, !tbaa !5
  %165 = getelementptr inbounds %"class.UapkiNS::Doc::Sign::SigningDoc", ptr %23, i32 0, i32 0
  %166 = load ptr, ptr %165, align 8, !tbaa !11
  %167 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::SignParams", ptr %166, i32 0, i32 0
  %168 = load i32, ptr %167, align 8, !tbaa !43
  switch i32 %168, label %240 [
    i32 5, label %169
    i32 6, label %209
    i32 7, label %209
  ]

169:                                              ; preds = %164
  %170 = load ptr, ptr %20, align 8, !tbaa !5
  %171 = load ptr, ptr %170, align 8, !tbaa !5
  %172 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem", ptr %171, i32 0, i32 6
  %173 = load ptr, ptr %172, align 8, !tbaa !55
  store ptr %173, ptr %10, align 8, !tbaa !5
  %174 = load ptr, ptr %10, align 8, !tbaa !5
  %175 = icmp ne ptr %174, null
  br i1 %175, label %176, label %208

176:                                              ; preds = %169
  br label %177

177:                                              ; preds = %176
  %178 = load ptr, ptr %10, align 8, !tbaa !5
  %179 = getelementptr inbounds %"class.UapkiNS::Doc::Sign::SigningDoc", ptr %23, i32 0, i32 0
  %180 = load ptr, ptr %179, align 8, !tbaa !11
  %181 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::SignParams", ptr %180, i32 0, i32 5
  %182 = invoke noundef i32 @_ZN7UapkiNS3Crl7CrlItem12generateHashERKNS_19AlgorithmIdentifierEPPKNS_9OtherHashE(ptr noundef nonnull align 8 dereferenceable(268) %178, ptr noundef nonnull align 8 dereferenceable(40) %181, ptr noundef %11)
          to label %183 unwind label %154

183:                                              ; preds = %177
  store i32 %182, ptr %6, align 4, !tbaa !9
  %184 = load i32, ptr %6, align 4, !tbaa !9
  %185 = icmp ne i32 %184, 0
  br i1 %185, label %186, label %189

186:                                              ; preds = %183
  %187 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 590, i32 noundef %187)
          to label %188 unwind label %154

188:                                              ; preds = %186
  store i32 4, ptr %19, align 4
  br label %242

189:                                              ; preds = %183
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  br label %192

192:                                              ; preds = %191
  %193 = load ptr, ptr %9, align 8, !tbaa !5
  %194 = load ptr, ptr %11, align 8, !tbaa !5
  %195 = load ptr, ptr %10, align 8, !tbaa !5
  %196 = invoke noundef ptr @_ZNK7UapkiNS3Crl7CrlItem16getCrlIdentifierEv(ptr noundef nonnull align 8 dereferenceable(268) %195)
          to label %197 unwind label %154

197:                                              ; preds = %192
  %198 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addCrlValidatedIdERKNS_9OtherHashEPK12ByteArray_st(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef nonnull align 8 dereferenceable(48) %194, ptr noundef %196)
          to label %199 unwind label %154

199:                                              ; preds = %197
  store i32 %198, ptr %6, align 4, !tbaa !9
  %200 = load i32, ptr %6, align 4, !tbaa !9
  %201 = icmp ne i32 %200, 0
  br i1 %201, label %202, label %205

202:                                              ; preds = %199
  %203 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 591, i32 noundef %203)
          to label %204 unwind label %154

204:                                              ; preds = %202
  store i32 4, ptr %19, align 4
  br label %242

205:                                              ; preds = %199
  br label %206

206:                                              ; preds = %205
  br label %207

207:                                              ; preds = %206
  br label %208

208:                                              ; preds = %207, %169
  br label %241

209:                                              ; preds = %164, %164
  %210 = load ptr, ptr %20, align 8, !tbaa !5
  %211 = load ptr, ptr %210, align 8, !tbaa !5
  %212 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem", ptr %211, i32 0, i32 4
  %213 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3bufEv(ptr noundef nonnull align 8 dereferenceable(8) %212)
          to label %214 unwind label %154

214:                                              ; preds = %209
  %215 = icmp ne ptr %213, null
  br i1 %215, label %216, label %239

216:                                              ; preds = %214
  br label %217

217:                                              ; preds = %216
  %218 = load ptr, ptr %9, align 8, !tbaa !5
  %219 = load ptr, ptr %20, align 8, !tbaa !5
  %220 = load ptr, ptr %219, align 8, !tbaa !5
  %221 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem", ptr %220, i32 0, i32 4
  %222 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %221)
          to label %223 unwind label %154

223:                                              ; preds = %217
  %224 = load ptr, ptr %20, align 8, !tbaa !5
  %225 = load ptr, ptr %224, align 8, !tbaa !5
  %226 = getelementptr inbounds %"struct.UapkiNS::Doc::Sign::SigningDoc::CerDataItem", ptr %225, i32 0, i32 5
  %227 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %226)
          to label %228 unwind label %154

228:                                              ; preds = %223
  %229 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addOcspResponseIdEPK12ByteArray_stS5_(ptr noundef nonnull align 8 dereferenceable(8) %218, ptr noundef %222, ptr noundef %227)
          to label %230 unwind label %154

230:                                              ; preds = %228
  store i32 %229, ptr %6, align 4, !tbaa !9
  %231 = load i32, ptr %6, align 4, !tbaa !9
  %232 = icmp ne i32 %231, 0
  br i1 %232, label %233, label %236

233:                                              ; preds = %230
  %234 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 597, i32 noundef %234)
          to label %235 unwind label %154

235:                                              ; preds = %233
  store i32 4, ptr %19, align 4
  br label %242

236:                                              ; preds = %230
  br label %237

237:                                              ; preds = %236
  br label %238

238:                                              ; preds = %237
  br label %239

239:                                              ; preds = %238, %214
  br label %241

240:                                              ; preds = %164
  br label %241

241:                                              ; preds = %240, %239, %208
  store i32 0, ptr %19, align 4
  br label %242

242:                                              ; preds = %241, %235, %204, %188, %153
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  %243 = load i32, ptr %19, align 4
  switch i32 %243, label %247 [
    i32 0, label %244
  ]

244:                                              ; preds = %242
  br label %245

245:                                              ; preds = %244
  %246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  br label %137

247:                                              ; preds = %242, %139
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @_ZNSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  %248 = load i32, ptr %19, align 4
  switch i32 %248, label %277 [
    i32 14, label %250
    i32 4, label %271
  ]

249:                                              ; preds = %154, %140
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  br label %279

250:                                              ; preds = %247
  br label %251

251:                                              ; preds = %250
  %252 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder6encodeEv(ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %253 unwind label %35

253:                                              ; preds = %251
  store i32 %252, ptr %6, align 4, !tbaa !9
  %254 = load i32, ptr %6, align 4, !tbaa !9
  %255 = icmp ne i32 %254, 0
  br i1 %255, label %256, label %259

256:                                              ; preds = %253
  %257 = load i32, ptr %6, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str, i64 noundef 605, i32 noundef %257)
          to label %258 unwind label %35

258:                                              ; preds = %256
  br label %271

259:                                              ; preds = %253
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #6
  %262 = load ptr, ptr @OID_PKCS9_REVOCATION_REFS, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef %262, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %263 unwind label %273

263:                                              ; preds = %261
  %264 = load ptr, ptr %5, align 8, !tbaa !5
  %265 = getelementptr inbounds %"struct.UapkiNS::Attribute", ptr %264, i32 0, i32 0
  %266 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %265, ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  %267 = invoke noundef ptr @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10getEncodedEb(ptr noundef nonnull align 8 dereferenceable(40) %8, i1 noundef zeroext true)
          to label %268 unwind label %35

268:                                              ; preds = %263
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = getelementptr inbounds %"struct.UapkiNS::Attribute", ptr %269, i32 0, i32 1
  store ptr %267, ptr %270, align 8, !tbaa !56
  br label %271

271:                                              ; preds = %268, %258, %247, %123, %95, %79, %49, %34
  %272 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %272, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %277

273:                                              ; preds = %261
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %13, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  br label %279

277:                                              ; preds = %271, %247
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  call void @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilderD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #6
  %278 = load i32, ptr %3, align 4
  ret i32 %278

279:                                              ; preds = %273, %249, %35
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  call void @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilderD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #6
  br label %280

280:                                              ; preds = %279
  %281 = load ptr, ptr %13, align 8
  %282 = load i32, ptr %14, align 4
  %283 = insertvalue { ptr, i32 } poison, ptr %281, 0
  %284 = insertvalue { ptr, i32 } %283, i32 %282, 1
  resume { ptr, i32 } %284
}

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

declare void @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilderC1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #3

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder4initEv(ptr noundef nonnull align 8 dereferenceable(40)) #3

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder13addCrlOcspRefEv(ptr noundef nonnull align 8 dereferenceable(40)) #3

declare noundef ptr @_ZNK7UapkiNS15AttributeHelper21RevocationRefsBuilder13getCrlOcspRefEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) #3

declare noundef i32 @_ZN7UapkiNS3Crl7CrlItem12generateHashERKNS_19AlgorithmIdentifierEPPKNS_9OtherHashE(ptr noundef nonnull align 8 dereferenceable(268), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) #3

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addCrlValidatedIdERKNS_9OtherHashEPK12ByteArray_st(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7UapkiNS7SmartBA3bufEv(ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addOcspResponseIdEPK12ByteArray_stS5_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7UapkiNS3Doc4Sign10SigningDoc8getCertsEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.3") align 8, ptr noundef nonnull align 8 dereferenceable(464)) #4 align 2

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder6encodeEv(ptr noundef nonnull align 8 dereferenceable(40)) #3

declare noundef ptr @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10getEncodedEb(ptr noundef nonnull align 8 dereferenceable(40), i1 noundef zeroext) #3

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

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

!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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTSN7UapkiNS3Doc4Sign10SigningDocE", !6, i64 0, !13, i64 8, !6, i64 48, !18, i64 56, !18, i64 88, !21, i64 120, !22, i64 128, !25, i64 208, !25, i64 216, !25, i64 224, !18, i64 232, !26, i64 264, !34, i64 392, !38, i64 416, !38, i64 440}
!13 = !{!"_ZTSN7UapkiNS5Pkcs717SignedDataBuilderE", !6, i64 0, !14, i64 8, !6, i64 32}
!14 = !{!"_ZTSSt6vectorIPN7UapkiNS5Pkcs717SignedDataBuilder10SignerInfoESaIS4_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIPN7UapkiNS5Pkcs717SignedDataBuilder10SignerInfoESaIS4_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS5Pkcs717SignedDataBuilder10SignerInfoESaIS4_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS5Pkcs717SignedDataBuilder10SignerInfoESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !19, i64 0, !20, i64 8, !7, i64 16}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"_ZTSN7UapkiNS13ContentHasherE", !23, i64 0, !24, i64 4, !6, i64 8, !21, i64 16, !18, i64 24, !6, i64 56, !20, i64 64, !25, i64 72}
!23 = !{!"_ZTSN7UapkiNS13ContentHasher10SourceTypeE", !7, i64 0}
!24 = !{!"_ZTS7HashAlg", !7, i64 0}
!25 = !{!"_ZTSN7UapkiNS7SmartBAE", !6, i64 0}
!26 = !{!"_ZTSN7UapkiNS5Pkcs716ArchiveTs3HelperE", !6, i64 0, !24, i64 8, !27, i64 16, !33, i64 88, !25, i64 120}
!27 = !{!"_ZTSN7UapkiNS5Pkcs716ArchiveTs3Helper12ATSHashIndexE", !28, i64 0, !28, i64 24, !28, i64 48}
!28 = !{!"_ZTSN7UapkiNS8VectorBAE", !29, i64 0}
!29 = !{!"_ZTSSt6vectorIP12ByteArray_stSaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseIP12ByteArray_stSaIS1_EE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIP12ByteArray_stSaIS1_EE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIP12ByteArray_stSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!33 = !{!"_ZTSN7UapkiNS5Pkcs716ArchiveTs3HelperUt_E", !25, i64 0, !25, i64 8, !25, i64 16, !25, i64 24}
!34 = !{!"_ZTSSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!38 = !{!"_ZTSSt6vectorIPN7UapkiNS9AttributeESaIS2_EE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIPN7UapkiNS9AttributeESaIS2_EE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS9AttributeESaIS2_EE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS9AttributeESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!42 = !{!20, !20, i64 0}
!43 = !{!44, !45, i64 0}
!44 = !{!"_ZTSN7UapkiNS3Doc4Sign10SigningDoc10SignParamsE", !45, i64 0, !21, i64 4, !21, i64 5, !24, i64 8, !24, i64 12, !46, i64 16, !46, i64 56, !47, i64 96, !25, i64 160, !21, i64 168, !21, i64 169, !21, i64 170, !21, i64 171, !21, i64 172, !21, i64 173, !48, i64 176, !49, i64 184, !54, i64 256, !54, i64 296, !34, i64 336}
!45 = !{!"_ZTSN7UapkiNS15SignatureFormatE", !7, i64 0}
!46 = !{!"_ZTSN7UapkiNS19AlgorithmIdentifierE", !18, i64 0, !6, i64 32}
!47 = !{!"_ZTSN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemE", !6, i64 0, !6, i64 8, !21, i64 16, !25, i64 24, !25, i64 32, !25, i64 40, !6, i64 48, !6, i64 56}
!48 = !{!"_ZTSN7UapkiNS13LibraryConfig10OcspParamsE", !20, i64 0}
!49 = !{!"_ZTSN7UapkiNS13LibraryConfig9TspParamsE", !21, i64 0, !21, i64 1, !20, i64 8, !18, i64 16, !50, i64 48}
!50 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !51, i64 0}
!51 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!54 = !{!"_ZTSN7UapkiNS9AttributeE", !18, i64 0, !6, i64 32}
!55 = !{!47, !6, i64 48}
!56 = !{!54, !6, i64 32}


; 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.UapkiNS::AttributeHelper::RevocationRefsBuilder" = type { ptr, %"class.std::vector.40", ptr }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *, std::allocator<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *>>::_Vector_impl" }
%"struct.std::_Vector_base<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *, std::allocator<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *>>::_Vector_impl" = type { %"struct.std::_Vector_base<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *, std::allocator<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *, std::allocator<UapkiNS::AttributeHelper::RevocationRefsBuilder::CrlOcspRef *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *, std::allocator<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *>>::_Vector_impl" }
%"struct.std::_Vector_base<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *, std::allocator<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *>>::_Vector_impl" = type { %"struct.std::_Vector_base<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *, std::allocator<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *, std::allocator<UapkiNS::Doc::Sign::SigningDoc::CerDataItem *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@OID_PKCS9_REVOCATION_REFS = external local_unnamed_addr global ptr, align 8

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

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

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

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

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

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

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

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

declare void @stacktrace_add(ptr noundef, i64 noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7UapkiNS3Doc4Sign10SigningDoc20encodeRevocationRefsERNS_9AttributeE(ptr noundef nonnull align 8 dereferenceable(464) %0, ptr noundef nonnull align 8 dereferenceable(40) %1) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.UapkiNS::AttributeHelper::RevocationRefsBuilder", align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.std::vector.3", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = load ptr, ptr %0, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #6
  call void @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilderC1Ev(ptr noundef nonnull align 8 dereferenceable(40) %3)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #6
  store ptr null, ptr %4, align 8, !tbaa !39
  %11 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder4initEv(ptr noundef nonnull align 8 dereferenceable(40) %3)
          to label %12 unwind label %14

12:                                               ; preds = %2
  %.not = icmp eq i32 %11, 0
  br i1 %.not, label %16, label %13

13:                                               ; preds = %12
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 559, i32 noundef %11)
          to label %113 unwind label %14

14:                                               ; preds = %106, %103, %._crit_edge, %49, %43, %39, %38, %33, %32, %28, %20, %19, %16, %13, %2
  %15 = landingpad { ptr, i32 }
          cleanup
  br label %114

16:                                               ; preds = %12
  %17 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder13addCrlOcspRefEv(ptr noundef nonnull align 8 dereferenceable(40) %3)
          to label %18 unwind label %14

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

19:                                               ; preds = %18
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 562, i32 noundef %17)
          to label %113 unwind label %14

20:                                               ; preds = %18
  %21 = invoke noundef ptr @_ZNK7UapkiNS15AttributeHelper21RevocationRefsBuilder13getCrlOcspRefEm(ptr noundef nonnull align 8 dereferenceable(40) %3, i64 noundef 0)
          to label %22 unwind label %14

22:                                               ; preds = %20
  %23 = load ptr, ptr %0, align 8, !tbaa !5
  %24 = load i32, ptr %23, align 8, !tbaa !40
  switch i32 %24, label %50 [
    i32 5, label %25
    i32 6, label %39
    i32 7, label %39
  ]

25:                                               ; preds = %22
  %26 = getelementptr inbounds i8, ptr %10, i64 144
  %27 = load ptr, ptr %26, align 8, !tbaa !52
  %.not81 = icmp eq ptr %27, null
  br i1 %.not81, label %50, label %28

28:                                               ; preds = %25
  %29 = getelementptr inbounds i8, ptr %23, i64 16
  %30 = invoke noundef i32 @_ZN7UapkiNS3Crl7CrlItem12generateHashERKNS_19AlgorithmIdentifierEPPKNS_9OtherHashE(ptr noundef nonnull align 8 dereferenceable(268) %27, ptr noundef nonnull align 8 dereferenceable(40) %29, ptr noundef nonnull %4)
          to label %31 unwind label %14

31:                                               ; preds = %28
  %.not82 = icmp eq i32 %30, 0
  br i1 %.not82, label %33, label %32

32:                                               ; preds = %31
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 568, i32 noundef %30)
          to label %113 unwind label %14

33:                                               ; preds = %31
  %34 = load ptr, ptr %4, align 8, !tbaa !39
  %35 = call noundef ptr @_ZNK7UapkiNS3Crl7CrlItem16getCrlIdentifierEv(ptr noundef nonnull align 8 dereferenceable(268) %27)
  %36 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addCrlValidatedIdERKNS_9OtherHashEPK12ByteArray_st(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(48) %34, ptr noundef %35)
          to label %37 unwind label %14

37:                                               ; preds = %33
  %.not83 = icmp eq i32 %36, 0
  br i1 %.not83, label %50, label %38

38:                                               ; preds = %37
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 569, i32 noundef %36)
          to label %113 unwind label %14

39:                                               ; preds = %22, %22
  %40 = getelementptr inbounds i8, ptr %10, i64 128
  %41 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3bufEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %42 unwind label %14

42:                                               ; preds = %39
  %.not79 = icmp eq ptr %41, null
  br i1 %.not79, label %50, label %43

43:                                               ; preds = %42
  %44 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
  %45 = getelementptr inbounds i8, ptr %10, i64 136
  %46 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %45)
  %47 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addOcspResponseIdEPK12ByteArray_stS5_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef %44, ptr noundef %46)
          to label %48 unwind label %14

48:                                               ; preds = %43
  %.not80 = icmp eq i32 %47, 0
  br i1 %.not80, label %50, label %49

49:                                               ; preds = %48
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 575, i32 noundef %47)
          to label %113 unwind label %14

50:                                               ; preds = %22, %42, %48, %25, %37
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #6
  invoke void @_ZN7UapkiNS3Doc4Sign10SigningDoc8getCertsEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.3") align 8 %5, ptr noundef nonnull align 8 dereferenceable(464) %0)
          to label %51 unwind label %55

51:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  %52 = call ptr @_ZNSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  store ptr %52, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  %53 = call ptr @_ZNSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  store ptr %53, ptr %7, align 8
  %54 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  br i1 %54, label %.lr.ph, label %._crit_edge

55:                                               ; preds = %50
  %56 = landingpad { ptr, i32 }
          cleanup
  br label %114

.lr.ph:                                           ; preds = %51, %98
  %.057113 = phi i64 [ %63, %98 ], [ 1, %51 ]
  %57 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  %58 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder13addCrlOcspRefEv(ptr noundef nonnull align 8 dereferenceable(40) %3)
          to label %59 unwind label %.loopexit

59:                                               ; preds = %.lr.ph
  %.not84 = icmp eq i32 %58, 0
  br i1 %.not84, label %62, label %60

60:                                               ; preds = %59
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 584, i32 noundef %58)
          to label %.thread102 unwind label %.loopexit.split-lp

.loopexit:                                        ; preds = %.lr.ph, %62, %72, %77, %83, %88
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %61

.loopexit.split-lp:                               ; preds = %60, %76, %82, %97
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %61

61:                                               ; preds = %.loopexit.split-lp, %.loopexit
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @_ZNSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  br label %114

62:                                               ; preds = %59
  %63 = add i64 %.057113, 1
  %64 = invoke noundef ptr @_ZNK7UapkiNS15AttributeHelper21RevocationRefsBuilder13getCrlOcspRefEm(ptr noundef nonnull align 8 dereferenceable(40) %3, i64 noundef %.057113)
          to label %65 unwind label %.loopexit

65:                                               ; preds = %62
  %66 = load ptr, ptr %0, align 8, !tbaa !5
  %67 = load i32, ptr %66, align 8, !tbaa !40
  switch i32 %67, label %98 [
    i32 5, label %68
    i32 6, label %83
    i32 7, label %83
  ]

68:                                               ; preds = %65
  %69 = load ptr, ptr %57, align 8, !tbaa !39
  %70 = getelementptr inbounds i8, ptr %69, i64 48
  %71 = load ptr, ptr %70, align 8, !tbaa !52
  %.not87 = icmp eq ptr %71, null
  br i1 %.not87, label %98, label %72

72:                                               ; preds = %68
  %73 = getelementptr inbounds i8, ptr %66, i64 16
  %74 = invoke noundef i32 @_ZN7UapkiNS3Crl7CrlItem12generateHashERKNS_19AlgorithmIdentifierEPPKNS_9OtherHashE(ptr noundef nonnull align 8 dereferenceable(268) %71, ptr noundef nonnull align 8 dereferenceable(40) %73, ptr noundef nonnull %4)
          to label %75 unwind label %.loopexit

75:                                               ; preds = %72
  %.not88 = icmp eq i32 %74, 0
  br i1 %.not88, label %77, label %76

76:                                               ; preds = %75
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 590, i32 noundef %74)
          to label %.thread102 unwind label %.loopexit.split-lp

77:                                               ; preds = %75
  %78 = load ptr, ptr %4, align 8, !tbaa !39
  %79 = call noundef ptr @_ZNK7UapkiNS3Crl7CrlItem16getCrlIdentifierEv(ptr noundef nonnull align 8 dereferenceable(268) %71)
  %80 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addCrlValidatedIdERKNS_9OtherHashEPK12ByteArray_st(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(48) %78, ptr noundef %79)
          to label %81 unwind label %.loopexit

81:                                               ; preds = %77
  %.not89 = icmp eq i32 %80, 0
  br i1 %.not89, label %98, label %82

82:                                               ; preds = %81
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 591, i32 noundef %80)
          to label %.thread102 unwind label %.loopexit.split-lp

83:                                               ; preds = %65, %65
  %84 = load ptr, ptr %57, align 8, !tbaa !39
  %85 = getelementptr inbounds i8, ptr %84, i64 32
  %86 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3bufEv(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %87 unwind label %.loopexit

87:                                               ; preds = %83
  %.not85 = icmp eq ptr %86, null
  br i1 %.not85, label %98, label %88

88:                                               ; preds = %87
  %89 = load ptr, ptr %57, align 8, !tbaa !39
  %90 = getelementptr inbounds i8, ptr %89, i64 32
  %91 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %90)
  %92 = load ptr, ptr %57, align 8, !tbaa !39
  %93 = getelementptr inbounds i8, ptr %92, i64 40
  %94 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %93)
  %95 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addOcspResponseIdEPK12ByteArray_stS5_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef %91, ptr noundef %94)
          to label %96 unwind label %.loopexit

96:                                               ; preds = %88
  %.not86 = icmp eq i32 %95, 0
  br i1 %.not86, label %98, label %97

97:                                               ; preds = %96
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 597, i32 noundef %95)
          to label %.thread102 unwind label %.loopexit.split-lp

98:                                               ; preds = %65, %87, %96, %68, %81
  %99 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  %100 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  br i1 %100, label %.lr.ph, label %._crit_edge

.thread102:                                       ; preds = %60, %76, %82, %97
  %.4.ph = phi i32 [ %95, %97 ], [ %80, %82 ], [ %74, %76 ], [ %58, %60 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @_ZNSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  br label %113

._crit_edge:                                      ; preds = %98, %51
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @_ZNSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  %101 = invoke noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder6encodeEv(ptr noundef nonnull align 8 dereferenceable(40) %3)
          to label %102 unwind label %14

102:                                              ; preds = %._crit_edge
  %.not91 = icmp eq i32 %101, 0
  br i1 %.not91, label %104, label %103

103:                                              ; preds = %102
  invoke void @stacktrace_add(ptr noundef nonnull @.str, i64 noundef 605, i32 noundef %101)
          to label %113 unwind label %14

104:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #6
  %105 = load ptr, ptr @OID_PKCS9_REVOCATION_REFS, align 8, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef %105, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %106 unwind label %111

106:                                              ; preds = %104
  %107 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  %108 = invoke noundef ptr @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10getEncodedEb(ptr noundef nonnull align 8 dereferenceable(40) %3, i1 noundef zeroext true)
          to label %109 unwind label %14

109:                                              ; preds = %106
  %110 = getelementptr inbounds i8, ptr %1, i64 32
  store ptr %108, ptr %110, align 8, !tbaa !53
  br label %113

111:                                              ; preds = %104
  %112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  br label %114

113:                                              ; preds = %.thread102, %109, %13, %19, %32, %38, %49, %103
  %.0 = phi i32 [ %11, %13 ], [ %17, %19 ], [ %101, %103 ], [ 0, %109 ], [ %47, %49 ], [ %30, %32 ], [ %36, %38 ], [ %.4.ph, %.thread102 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilderD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %3) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #6
  ret i32 %.0

114:                                              ; preds = %55, %61, %111, %14
  %.pn92 = phi { ptr, i32 } [ %15, %14 ], [ %112, %111 ], [ %lpad.phi, %61 ], [ %56, %55 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  call void @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilderD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %3) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #6
  resume { ptr, i32 } %.pn92
}

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

declare void @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilderC1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #3

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder4initEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #3

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder13addCrlOcspRefEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #3

declare noundef ptr @_ZNK7UapkiNS15AttributeHelper21RevocationRefsBuilder13getCrlOcspRefEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) local_unnamed_addr #3

declare noundef i32 @_ZN7UapkiNS3Crl7CrlItem12generateHashERKNS_19AlgorithmIdentifierEPPKNS_9OtherHashE(ptr noundef nonnull align 8 dereferenceable(268), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) local_unnamed_addr #3

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addCrlValidatedIdERKNS_9OtherHashEPK12ByteArray_st(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) local_unnamed_addr #3

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

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

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder10CrlOcspRef17addOcspResponseIdEPK12ByteArray_stS5_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7UapkiNS3Doc4Sign10SigningDoc8getCertsEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.3") align 8, ptr noundef nonnull align 8 dereferenceable(464)) local_unnamed_addr #4 align 2

declare noundef i32 @_ZN7UapkiNS15AttributeHelper21RevocationRefsBuilder6encodeEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #3

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

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

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

!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, !7, i64 0}
!6 = !{!"_ZTSN7UapkiNS3Doc4Sign10SigningDocE", !7, i64 0, !10, i64 8, !7, i64 48, !15, i64 56, !15, i64 88, !18, i64 120, !19, i64 128, !22, i64 208, !22, i64 216, !22, i64 224, !15, i64 232, !23, i64 264, !31, i64 392, !35, i64 416, !35, i64 440}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN7UapkiNS5Pkcs717SignedDataBuilderE", !7, i64 0, !11, i64 8, !7, i64 32}
!11 = !{!"_ZTSSt6vectorIPN7UapkiNS5Pkcs717SignedDataBuilder10SignerInfoESaIS4_EE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseIPN7UapkiNS5Pkcs717SignedDataBuilder10SignerInfoESaIS4_EE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS5Pkcs717SignedDataBuilder10SignerInfoESaIS4_EE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS5Pkcs717SignedDataBuilder10SignerInfoESaIS4_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !16, i64 0, !17, i64 8, !8, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!17 = !{!"long", !8, i64 0}
!18 = !{!"bool", !8, i64 0}
!19 = !{!"_ZTSN7UapkiNS13ContentHasherE", !20, i64 0, !21, i64 4, !7, i64 8, !18, i64 16, !15, i64 24, !7, i64 56, !17, i64 64, !22, i64 72}
!20 = !{!"_ZTSN7UapkiNS13ContentHasher10SourceTypeE", !8, i64 0}
!21 = !{!"_ZTS7HashAlg", !8, i64 0}
!22 = !{!"_ZTSN7UapkiNS7SmartBAE", !7, i64 0}
!23 = !{!"_ZTSN7UapkiNS5Pkcs716ArchiveTs3HelperE", !7, i64 0, !21, i64 8, !24, i64 16, !30, i64 88, !22, i64 120}
!24 = !{!"_ZTSN7UapkiNS5Pkcs716ArchiveTs3Helper12ATSHashIndexE", !25, i64 0, !25, i64 24, !25, i64 48}
!25 = !{!"_ZTSN7UapkiNS8VectorBAE", !26, i64 0}
!26 = !{!"_ZTSSt6vectorIP12ByteArray_stSaIS1_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIP12ByteArray_stSaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIP12ByteArray_stSaIS1_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIP12ByteArray_stSaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!30 = !{!"_ZTSN7UapkiNS5Pkcs716ArchiveTs3HelperUt_E", !22, i64 0, !22, i64 8, !22, i64 16, !22, i64 24}
!31 = !{!"_ZTSSt6vectorIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!35 = !{!"_ZTSSt6vectorIPN7UapkiNS9AttributeESaIS2_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIPN7UapkiNS9AttributeESaIS2_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS9AttributeESaIS2_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIPN7UapkiNS9AttributeESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!39 = !{!7, !7, i64 0}
!40 = !{!41, !42, i64 0}
!41 = !{!"_ZTSN7UapkiNS3Doc4Sign10SigningDoc10SignParamsE", !42, i64 0, !18, i64 4, !18, i64 5, !21, i64 8, !21, i64 12, !43, i64 16, !43, i64 56, !44, i64 96, !22, i64 160, !18, i64 168, !18, i64 169, !18, i64 170, !18, i64 171, !18, i64 172, !18, i64 173, !45, i64 176, !46, i64 184, !51, i64 256, !51, i64 296, !31, i64 336}
!42 = !{!"_ZTSN7UapkiNS15SignatureFormatE", !8, i64 0}
!43 = !{!"_ZTSN7UapkiNS19AlgorithmIdentifierE", !15, i64 0, !7, i64 32}
!44 = !{!"_ZTSN7UapkiNS3Doc4Sign10SigningDoc11CerDataItemE", !7, i64 0, !7, i64 8, !18, i64 16, !22, i64 24, !22, i64 32, !22, i64 40, !7, i64 48, !7, i64 56}
!45 = !{!"_ZTSN7UapkiNS13LibraryConfig10OcspParamsE", !17, i64 0}
!46 = !{!"_ZTSN7UapkiNS13LibraryConfig9TspParamsE", !18, i64 0, !18, i64 1, !17, i64 8, !15, i64 16, !47, i64 48}
!47 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !48, i64 0}
!48 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!51 = !{!"_ZTSN7UapkiNS9AttributeE", !15, i64 0, !7, i64 32}
!52 = !{!44, !7, i64 48}
!53 = !{!51, !7, i64 32}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass