; LLVM IR from specinfo-ua/UAPKI :: library/uapki/src (store-json)

; 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::SmartBA" = 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] }
%struct.Certificate = type { %struct.TBSCertificate, %struct.AlgorithmIdentifier, %struct.BIT_STRING_s, %struct.asn_struct_ctx_s }
%struct.TBSCertificate = type { ptr, %struct.ASN__PRIMITIVE_TYPE_s, %struct.AlgorithmIdentifier, %struct.Name, %struct.Validity, %struct.Name, %struct.SubjectPublicKeyInfo, ptr, ptr, ptr, %struct.asn_struct_ctx_s }
%struct.ASN__PRIMITIVE_TYPE_s = type { ptr, i32 }
%struct.Validity = type { %struct.PKIXTime, %struct.PKIXTime, %struct.asn_struct_ctx_s }
%struct.PKIXTime = type { i32, %"union.PKIXTime::PKIXTime_u", %struct.asn_struct_ctx_s }
%"union.PKIXTime::PKIXTime_u" = type { %struct.OCTET_STRING }
%struct.OCTET_STRING = type { ptr, i32, %struct.asn_struct_ctx_s }
%struct.Name = type { i32, %"union.Name::Name_u", %struct.asn_struct_ctx_s }
%"union.Name::Name_u" = type { %struct.RDNSequence }
%struct.RDNSequence = type { %struct.anon, %struct.asn_struct_ctx_s }
%struct.anon = type { ptr, i32, i32, ptr }
%struct.SubjectPublicKeyInfo = type { %struct.AlgorithmIdentifier, %struct.BIT_STRING_s, %struct.asn_struct_ctx_s }
%struct.AlgorithmIdentifier = type { %struct.ASN__PRIMITIVE_TYPE_s, ptr, %struct.asn_struct_ctx_s }
%struct.BIT_STRING_s = type { ptr, i32, i32, %struct.asn_struct_ctx_s }
%struct.asn_struct_ctx_s = type { i16, i16, i32, ptr, i64 }
%struct.Extensions = type { %struct.anon.16, %struct.asn_struct_ctx_s }
%struct.anon.16 = type { ptr, i32, i32, ptr }
%struct.Extension = type { %struct.ASN__PRIMITIVE_TYPE_s, ptr, %struct.OCTET_STRING, %struct.asn_struct_ctx_s }

@.str.3 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [10 x i8], align 1
@OID_X509v3_KeyUsage = external global ptr, align 8
@.str.17 = external hidden unnamed_addr constant [9 x i8], align 1
@OID_X509v3_SubjectKeyIdentifier = external global ptr, align 8
@.str.18 = external hidden unnamed_addr constant [21 x i8], align 1
@OID_X509v3_AuthorityKeyIdentifier = external global ptr, align 8
@.str.19 = external hidden unnamed_addr constant [23 x i8], align 1
@OID_X509v3_BasicConstraints = external global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [17 x i8], align 1
@OID_X509v3_CRLDistributionPoints = external global ptr, align 8
@.str.21 = external hidden unnamed_addr constant [22 x i8], align 1
@OID_X509v3_CertificatePolicies = external global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [20 x i8], align 1
@OID_X509v3_ExtendedKeyUsage = external global ptr, align 8
@.str.23 = external hidden unnamed_addr constant [12 x i8], align 1
@OID_X509v3_FreshestCRL = external global ptr, align 8
@.str.24 = external hidden unnamed_addr constant [12 x i8], align 1
@OID_X509v3_SubjectDirectoryAttributes = external global ptr, align 8
@.str.25 = external hidden unnamed_addr constant [27 x i8], align 1
@OID_PKIX_AuthorityInfoAccess = external global ptr, align 8
@.str.26 = external hidden unnamed_addr constant [20 x i8], align 1
@OID_PKIX_QcStatements = external global ptr, align 8
@.str.27 = external hidden unnamed_addr constant [13 x i8], align 1
@OID_PKIX_SubjectInfoAccess = external global ptr, align 8
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@OID_X509v3_SubjectAlternativeName = external global ptr, align 8
@.str.29 = external hidden unnamed_addr constant [15 x i8], align 1
@OID_X509v3_IssuerAlternativeName = external global ptr, align 8
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1

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

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

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

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

declare noundef i32 @_ZN7UapkiNS4Util11oidFromAsn1EPK21ASN__PRIMITIVE_TYPE_sRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #1

declare i32 @__gxx_personality_v0(...)

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

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

declare i32 @json_object_set_string(ptr noundef, ptr noundef, ptr noundef) #1

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

declare ptr @json_value_init_object() #1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7UapkiNS4Cert16extensionsToJsonEP12json_array_tPKNS0_7CerItemERb(ptr noundef %0, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %2) #3 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca %"class.UapkiNS::SmartBA", align 8
  %11 = alloca %"class.UapkiNS::SmartBA", align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %"class.UapkiNS::SmartBA", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  store i32 0, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #4
  %21 = load ptr, ptr %6, align 8, !tbaa !5
  %22 = call noundef ptr @_ZNK7UapkiNS4Cert7CerItem7getCertEv(ptr noundef nonnull align 8 dereferenceable(401) %21)
  %23 = getelementptr inbounds %struct.Certificate, ptr %22, i32 0, i32 0
  %24 = getelementptr inbounds %struct.TBSCertificate, ptr %23, i32 0, i32 9
  %25 = load ptr, ptr %24, align 8, !tbaa !11
  store ptr %25, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #4
  call void @_ZN7UapkiNS7SmartBAC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #4
  invoke void @_ZN7UapkiNS7SmartBAC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %26 unwind label %30

26:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  store ptr null, ptr %14, align 8, !tbaa !5
  %27 = load ptr, ptr %9, align 8, !tbaa !5
  %28 = icmp ne ptr %27, null
  br i1 %28, label %34, label %29

29:                                               ; preds = %26
  store i32 4145, ptr %4, align 4
  store i32 1, ptr %15, align 4
  br label %503

30:                                               ; preds = %3
  %31 = landingpad { ptr, i32 }
          cleanup
  %32 = extractvalue { ptr, i32 } %31, 0
  store ptr %32, ptr %12, align 8
  %33 = extractvalue { ptr, i32 } %31, 1
  store i32 %33, ptr %13, align 4
  br label %506

34:                                               ; preds = %26
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  store i32 0, ptr %16, align 4, !tbaa !9
  br label %35

35:                                               ; preds = %471, %34
  %36 = load i32, ptr %16, align 4, !tbaa !9
  %37 = load ptr, ptr %9, align 8, !tbaa !5
  %38 = getelementptr inbounds %struct.Extensions, ptr %37, i32 0, i32 0
  %39 = getelementptr inbounds %struct.anon.16, ptr %38, i32 0, i32 1
  %40 = load i32, ptr %39, align 8, !tbaa !26
  %41 = icmp slt i32 %36, %40
  br i1 %41, label %43, label %42

42:                                               ; preds = %35
  store i32 2, ptr %15, align 4
  br label %476

43:                                               ; preds = %35
  %44 = load ptr, ptr %5, align 8, !tbaa !5
  %45 = invoke ptr @json_value_init_object()
          to label %46 unwind label %51

46:                                               ; preds = %43
  %47 = invoke i32 @json_array_append_value(ptr noundef %44, ptr noundef %45)
          to label %48 unwind label %51

48:                                               ; preds = %46
  %49 = icmp ne i32 %47, 0
  br i1 %49, label %50, label %55

50:                                               ; preds = %48
  store i32 4113, ptr %8, align 4, !tbaa !9
  store i32 5, ptr %15, align 4
  br label %476

51:                                               ; preds = %46, %43
  %52 = landingpad { ptr, i32 }
          cleanup
  %53 = extractvalue { ptr, i32 } %52, 0
  store ptr %53, ptr %12, align 8
  %54 = extractvalue { ptr, i32 } %52, 1
  store i32 %54, ptr %13, align 4
  br label %478

55:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #4
  %56 = load ptr, ptr %5, align 8, !tbaa !5
  %57 = load i32, ptr %16, align 4, !tbaa !9
  %58 = sext i32 %57 to i64
  %59 = invoke ptr @json_array_get_object(ptr noundef %56, i64 noundef %58)
          to label %60 unwind label %80

60:                                               ; preds = %55
  store ptr %59, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  %61 = load ptr, ptr %9, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.Extensions, ptr %61, i32 0, i32 0
  %63 = getelementptr inbounds %struct.anon.16, ptr %62, i32 0, i32 0
  %64 = load ptr, ptr %63, align 8, !tbaa !29
  %65 = load i32, ptr %16, align 4, !tbaa !9
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds ptr, ptr %64, i64 %66
  %68 = load ptr, ptr %67, align 8, !tbaa !5
  store ptr %68, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  invoke void @_ZN7UapkiNS7SmartBAC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %69 unwind label %84

69:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  br label %70

70:                                               ; preds = %69
  %71 = load ptr, ptr %18, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.Extension, ptr %71, i32 0, i32 0
  %73 = invoke noundef i32 @_ZN7UapkiNS4Util11oidFromAsn1EPK21ASN__PRIMITIVE_TYPE_sRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %72, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %74 unwind label %88

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

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

79:                                               ; preds = %77
  store i32 5, ptr %15, align 4
  br label %468

80:                                               ; preds = %55
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %12, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %13, align 4
  br label %475

84:                                               ; preds = %60
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %12, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %13, align 4
  br label %474

88:                                               ; preds = %448, %443, %440, %438, %432, %426, %421, %418, %416, %410, %404, %399, %396, %394, %388, %382, %377, %374, %372, %366, %360, %355, %352, %350, %344, %338, %333, %330, %328, %322, %316, %311, %308, %306, %300, %294, %289, %286, %284, %278, %272, %267, %264, %262, %256, %250, %245, %242, %240, %234, %228, %223, %220, %218, %212, %206, %201, %199, %196, %194, %188, %182, %177, %175, %172, %170, %164, %158, %153, %150, %148, %142, %137, %132, %129, %123, %118, %114, %106, %94, %77, %70
  %89 = landingpad { ptr, i32 }
          cleanup
  %90 = extractvalue { ptr, i32 } %89, 0
  store ptr %90, ptr %12, align 8
  %91 = extractvalue { ptr, i32 } %89, 1
  store i32 %91, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #4
  br label %474

92:                                               ; preds = %74
  br label %93

93:                                               ; preds = %92
  br label %94

94:                                               ; preds = %93
  %95 = load ptr, ptr %17, align 8, !tbaa !5
  %96 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %97 = invoke i32 @json_object_set_string(ptr noundef %95, ptr noundef @.str.14, ptr noundef %96)
          to label %98 unwind label %88

98:                                               ; preds = %94
  %99 = icmp ne i32 %97, 0
  br i1 %99, label %100, label %101

100:                                              ; preds = %98
  store i32 4113, ptr %8, align 4, !tbaa !9
  store i32 5, ptr %15, align 4
  br label %468

101:                                              ; preds = %98
  %102 = load ptr, ptr %18, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.Extension, ptr %102, i32 0, i32 1
  %104 = load ptr, ptr %103, align 8, !tbaa !30
  %105 = icmp ne ptr %104, null
  br i1 %105, label %106, label %113

106:                                              ; preds = %101
  %107 = load ptr, ptr %17, align 8, !tbaa !5
  %108 = invoke noundef i32 @_ZN12ParsonHelper20jsonObjectSetBooleanEP13json_object_tPKcb(ptr noundef %107, ptr noundef @.str.15, i1 noundef zeroext true)
          to label %109 unwind label %88

109:                                              ; preds = %106
  %110 = icmp ne i32 %108, 0
  br i1 %110, label %111, label %112

111:                                              ; preds = %109
  store i32 4113, ptr %8, align 4, !tbaa !9
  store i32 5, ptr %15, align 4
  br label %468

112:                                              ; preds = %109
  br label %113

113:                                              ; preds = %112, %101
  br label %114

114:                                              ; preds = %113
  %115 = load ptr, ptr %18, align 8, !tbaa !5
  %116 = getelementptr inbounds %struct.Extension, ptr %115, i32 0, i32 2
  %117 = invoke noundef ptr @_ZN7UapkiNS7SmartBAadEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %118 unwind label %88

118:                                              ; preds = %114
  %119 = invoke i32 @asn_OCTSTRING2ba(ptr noundef %116, ptr noundef %117)
          to label %120 unwind label %88

120:                                              ; preds = %118
  store i32 %119, ptr %8, align 4, !tbaa !9
  %121 = load i32, ptr %8, align 4, !tbaa !9
  %122 = icmp ne i32 %121, 0
  br i1 %122, label %123, label %126

123:                                              ; preds = %120
  %124 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 294, i32 noundef %124)
          to label %125 unwind label %88

125:                                              ; preds = %123
  store i32 5, ptr %15, align 4
  br label %468

126:                                              ; preds = %120
  br label %127

127:                                              ; preds = %126
  br label %128

128:                                              ; preds = %127
  br label %129

129:                                              ; preds = %128
  %130 = load ptr, ptr %17, align 8, !tbaa !5
  %131 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %132 unwind label %88

132:                                              ; preds = %129
  %133 = invoke i32 @json_object_set_base64(ptr noundef %130, ptr noundef @.str.16, ptr noundef %131)
          to label %134 unwind label %88

134:                                              ; preds = %132
  store i32 %133, ptr %8, align 4, !tbaa !9
  %135 = load i32, ptr %8, align 4, !tbaa !9
  %136 = icmp ne i32 %135, 0
  br i1 %136, label %137, label %140

137:                                              ; preds = %134
  %138 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 295, i32 noundef %138)
          to label %139 unwind label %88

139:                                              ; preds = %137
  store i32 5, ptr %15, align 4
  br label %468

140:                                              ; preds = %134
  br label %141

141:                                              ; preds = %140
  br label %142

142:                                              ; preds = %141
  %143 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %144 = load ptr, ptr @OID_X509v3_KeyUsage, align 8, !tbaa !5
  %145 = invoke zeroext i1 @oid_is_equal(ptr noundef %143, ptr noundef %144)
          to label %146 unwind label %88

146:                                              ; preds = %142
  br i1 %145, label %147, label %164

147:                                              ; preds = %146
  br label %148

148:                                              ; preds = %147
  %149 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %150 unwind label %88

150:                                              ; preds = %148
  %151 = load ptr, ptr %17, align 8, !tbaa !5
  %152 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %151, ptr noundef @.str.17)
          to label %153 unwind label %88

153:                                              ; preds = %150
  %154 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject8keyUsageEPK12ByteArray_stP13json_object_t(ptr noundef %149, ptr noundef %152)
          to label %155 unwind label %88

155:                                              ; preds = %153
  store i32 %154, ptr %8, align 4, !tbaa !9
  %156 = load i32, ptr %8, align 4, !tbaa !9
  %157 = icmp ne i32 %156, 0
  br i1 %157, label %158, label %161

158:                                              ; preds = %155
  %159 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 299, i32 noundef %159)
          to label %160 unwind label %88

160:                                              ; preds = %158
  store i32 5, ptr %15, align 4
  br label %468

161:                                              ; preds = %155
  br label %162

162:                                              ; preds = %161
  br label %163

163:                                              ; preds = %162
  br label %467

164:                                              ; preds = %146
  %165 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %166 = load ptr, ptr @OID_X509v3_SubjectKeyIdentifier, align 8, !tbaa !5
  %167 = invoke zeroext i1 @oid_is_equal(ptr noundef %165, ptr noundef %166)
          to label %168 unwind label %88

168:                                              ; preds = %164
  br i1 %167, label %169, label %188

169:                                              ; preds = %168
  br label %170

170:                                              ; preds = %169
  %171 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %172 unwind label %88

172:                                              ; preds = %170
  %173 = load ptr, ptr %17, align 8, !tbaa !5
  %174 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %173, ptr noundef @.str.18)
          to label %175 unwind label %88

175:                                              ; preds = %172
  %176 = invoke noundef ptr @_ZN7UapkiNS7SmartBAadEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %177 unwind label %88

177:                                              ; preds = %175
  %178 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject12subjectKeyIdEPK12ByteArray_stP13json_object_tPPS2_(ptr noundef %171, ptr noundef %174, ptr noundef %176)
          to label %179 unwind label %88

179:                                              ; preds = %177
  store i32 %178, ptr %8, align 4, !tbaa !9
  %180 = load i32, ptr %8, align 4, !tbaa !9
  %181 = icmp ne i32 %180, 0
  br i1 %181, label %182, label %185

182:                                              ; preds = %179
  %183 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 302, i32 noundef %183)
          to label %184 unwind label %88

184:                                              ; preds = %182
  store i32 5, ptr %15, align 4
  br label %468

185:                                              ; preds = %179
  br label %186

186:                                              ; preds = %185
  br label %187

187:                                              ; preds = %186
  br label %466

188:                                              ; preds = %168
  %189 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %190 = load ptr, ptr @OID_X509v3_AuthorityKeyIdentifier, align 8, !tbaa !5
  %191 = invoke zeroext i1 @oid_is_equal(ptr noundef %189, ptr noundef %190)
          to label %192 unwind label %88

192:                                              ; preds = %188
  br i1 %191, label %193, label %212

193:                                              ; preds = %192
  br label %194

194:                                              ; preds = %193
  %195 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %196 unwind label %88

196:                                              ; preds = %194
  %197 = load ptr, ptr %17, align 8, !tbaa !5
  %198 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %197, ptr noundef @.str.19)
          to label %199 unwind label %88

199:                                              ; preds = %196
  %200 = invoke noundef ptr @_ZN7UapkiNS7SmartBAadEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %201 unwind label %88

201:                                              ; preds = %199
  %202 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject14authorityKeyIdEPK12ByteArray_stP13json_object_tPPS2_(ptr noundef %195, ptr noundef %198, ptr noundef %200)
          to label %203 unwind label %88

203:                                              ; preds = %201
  store i32 %202, ptr %8, align 4, !tbaa !9
  %204 = load i32, ptr %8, align 4, !tbaa !9
  %205 = icmp ne i32 %204, 0
  br i1 %205, label %206, label %209

206:                                              ; preds = %203
  %207 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 305, i32 noundef %207)
          to label %208 unwind label %88

208:                                              ; preds = %206
  store i32 5, ptr %15, align 4
  br label %468

209:                                              ; preds = %203
  br label %210

210:                                              ; preds = %209
  br label %211

211:                                              ; preds = %210
  br label %465

212:                                              ; preds = %192
  %213 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %214 = load ptr, ptr @OID_X509v3_BasicConstraints, align 8, !tbaa !5
  %215 = invoke zeroext i1 @oid_is_equal(ptr noundef %213, ptr noundef %214)
          to label %216 unwind label %88

216:                                              ; preds = %212
  br i1 %215, label %217, label %234

217:                                              ; preds = %216
  br label %218

218:                                              ; preds = %217
  %219 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %220 unwind label %88

220:                                              ; preds = %218
  %221 = load ptr, ptr %17, align 8, !tbaa !5
  %222 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %221, ptr noundef @.str.20)
          to label %223 unwind label %88

223:                                              ; preds = %220
  %224 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject16basicConstraintsEPK12ByteArray_stP13json_object_t(ptr noundef %219, ptr noundef %222)
          to label %225 unwind label %88

225:                                              ; preds = %223
  store i32 %224, ptr %8, align 4, !tbaa !9
  %226 = load i32, ptr %8, align 4, !tbaa !9
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %228, label %231

228:                                              ; preds = %225
  %229 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 308, i32 noundef %229)
          to label %230 unwind label %88

230:                                              ; preds = %228
  store i32 5, ptr %15, align 4
  br label %468

231:                                              ; preds = %225
  br label %232

232:                                              ; preds = %231
  br label %233

233:                                              ; preds = %232
  br label %464

234:                                              ; preds = %216
  %235 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %236 = load ptr, ptr @OID_X509v3_CRLDistributionPoints, align 8, !tbaa !5
  %237 = invoke zeroext i1 @oid_is_equal(ptr noundef %235, ptr noundef %236)
          to label %238 unwind label %88

238:                                              ; preds = %234
  br i1 %237, label %239, label %256

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  %241 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %242 unwind label %88

242:                                              ; preds = %240
  %243 = load ptr, ptr %17, align 8, !tbaa !5
  %244 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %243, ptr noundef @.str.21)
          to label %245 unwind label %88

245:                                              ; preds = %242
  %246 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18distributionPointsEPK12ByteArray_stP13json_object_t(ptr noundef %241, ptr noundef %244)
          to label %247 unwind label %88

247:                                              ; preds = %245
  store i32 %246, ptr %8, align 4, !tbaa !9
  %248 = load i32, ptr %8, align 4, !tbaa !9
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %250, label %253

250:                                              ; preds = %247
  %251 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 311, i32 noundef %251)
          to label %252 unwind label %88

252:                                              ; preds = %250
  store i32 5, ptr %15, align 4
  br label %468

253:                                              ; preds = %247
  br label %254

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  br label %463

256:                                              ; preds = %238
  %257 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %258 = load ptr, ptr @OID_X509v3_CertificatePolicies, align 8, !tbaa !5
  %259 = invoke zeroext i1 @oid_is_equal(ptr noundef %257, ptr noundef %258)
          to label %260 unwind label %88

260:                                              ; preds = %256
  br i1 %259, label %261, label %278

261:                                              ; preds = %260
  br label %262

262:                                              ; preds = %261
  %263 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %264 unwind label %88

264:                                              ; preds = %262
  %265 = load ptr, ptr %17, align 8, !tbaa !5
  %266 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %265, ptr noundef @.str.22)
          to label %267 unwind label %88

267:                                              ; preds = %264
  %268 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject19certificatePoliciesEPK12ByteArray_stP13json_object_t(ptr noundef %263, ptr noundef %266)
          to label %269 unwind label %88

269:                                              ; preds = %267
  store i32 %268, ptr %8, align 4, !tbaa !9
  %270 = load i32, ptr %8, align 4, !tbaa !9
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %272, label %275

272:                                              ; preds = %269
  %273 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 314, i32 noundef %273)
          to label %274 unwind label %88

274:                                              ; preds = %272
  store i32 5, ptr %15, align 4
  br label %468

275:                                              ; preds = %269
  br label %276

276:                                              ; preds = %275
  br label %277

277:                                              ; preds = %276
  br label %462

278:                                              ; preds = %260
  %279 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %280 = load ptr, ptr @OID_X509v3_ExtendedKeyUsage, align 8, !tbaa !5
  %281 = invoke zeroext i1 @oid_is_equal(ptr noundef %279, ptr noundef %280)
          to label %282 unwind label %88

282:                                              ; preds = %278
  br i1 %281, label %283, label %300

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283
  %285 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %286 unwind label %88

286:                                              ; preds = %284
  %287 = load ptr, ptr %17, align 8, !tbaa !5
  %288 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %287, ptr noundef @.str.23)
          to label %289 unwind label %88

289:                                              ; preds = %286
  %290 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject16extendedKeyUsageEPK12ByteArray_stP13json_object_t(ptr noundef %285, ptr noundef %288)
          to label %291 unwind label %88

291:                                              ; preds = %289
  store i32 %290, ptr %8, align 4, !tbaa !9
  %292 = load i32, ptr %8, align 4, !tbaa !9
  %293 = icmp ne i32 %292, 0
  br i1 %293, label %294, label %297

294:                                              ; preds = %291
  %295 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 317, i32 noundef %295)
          to label %296 unwind label %88

296:                                              ; preds = %294
  store i32 5, ptr %15, align 4
  br label %468

297:                                              ; preds = %291
  br label %298

298:                                              ; preds = %297
  br label %299

299:                                              ; preds = %298
  br label %461

300:                                              ; preds = %282
  %301 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %302 = load ptr, ptr @OID_X509v3_FreshestCRL, align 8, !tbaa !5
  %303 = invoke zeroext i1 @oid_is_equal(ptr noundef %301, ptr noundef %302)
          to label %304 unwind label %88

304:                                              ; preds = %300
  br i1 %303, label %305, label %322

305:                                              ; preds = %304
  br label %306

306:                                              ; preds = %305
  %307 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %308 unwind label %88

308:                                              ; preds = %306
  %309 = load ptr, ptr %17, align 8, !tbaa !5
  %310 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %309, ptr noundef @.str.24)
          to label %311 unwind label %88

311:                                              ; preds = %308
  %312 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18distributionPointsEPK12ByteArray_stP13json_object_t(ptr noundef %307, ptr noundef %310)
          to label %313 unwind label %88

313:                                              ; preds = %311
  store i32 %312, ptr %8, align 4, !tbaa !9
  %314 = load i32, ptr %8, align 4, !tbaa !9
  %315 = icmp ne i32 %314, 0
  br i1 %315, label %316, label %319

316:                                              ; preds = %313
  %317 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 320, i32 noundef %317)
          to label %318 unwind label %88

318:                                              ; preds = %316
  store i32 5, ptr %15, align 4
  br label %468

319:                                              ; preds = %313
  br label %320

320:                                              ; preds = %319
  br label %321

321:                                              ; preds = %320
  br label %460

322:                                              ; preds = %304
  %323 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %324 = load ptr, ptr @OID_X509v3_SubjectDirectoryAttributes, align 8, !tbaa !5
  %325 = invoke zeroext i1 @oid_is_equal(ptr noundef %323, ptr noundef %324)
          to label %326 unwind label %88

326:                                              ; preds = %322
  br i1 %325, label %327, label %344

327:                                              ; preds = %326
  br label %328

328:                                              ; preds = %327
  %329 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %330 unwind label %88

330:                                              ; preds = %328
  %331 = load ptr, ptr %17, align 8, !tbaa !5
  %332 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %331, ptr noundef @.str.25)
          to label %333 unwind label %88

333:                                              ; preds = %330
  %334 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject26subjectDirectoryAttributesEPK12ByteArray_stP13json_object_t(ptr noundef %329, ptr noundef %332)
          to label %335 unwind label %88

335:                                              ; preds = %333
  store i32 %334, ptr %8, align 4, !tbaa !9
  %336 = load i32, ptr %8, align 4, !tbaa !9
  %337 = icmp ne i32 %336, 0
  br i1 %337, label %338, label %341

338:                                              ; preds = %335
  %339 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 323, i32 noundef %339)
          to label %340 unwind label %88

340:                                              ; preds = %338
  store i32 5, ptr %15, align 4
  br label %468

341:                                              ; preds = %335
  br label %342

342:                                              ; preds = %341
  br label %343

343:                                              ; preds = %342
  br label %459

344:                                              ; preds = %326
  %345 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %346 = load ptr, ptr @OID_PKIX_AuthorityInfoAccess, align 8, !tbaa !5
  %347 = invoke zeroext i1 @oid_is_equal(ptr noundef %345, ptr noundef %346)
          to label %348 unwind label %88

348:                                              ; preds = %344
  br i1 %347, label %349, label %366

349:                                              ; preds = %348
  br label %350

350:                                              ; preds = %349
  %351 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %352 unwind label %88

352:                                              ; preds = %350
  %353 = load ptr, ptr %17, align 8, !tbaa !5
  %354 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %353, ptr noundef @.str.26)
          to label %355 unwind label %88

355:                                              ; preds = %352
  %356 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18accessDescriptionsEPK12ByteArray_stP13json_object_t(ptr noundef %351, ptr noundef %354)
          to label %357 unwind label %88

357:                                              ; preds = %355
  store i32 %356, ptr %8, align 4, !tbaa !9
  %358 = load i32, ptr %8, align 4, !tbaa !9
  %359 = icmp ne i32 %358, 0
  br i1 %359, label %360, label %363

360:                                              ; preds = %357
  %361 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 326, i32 noundef %361)
          to label %362 unwind label %88

362:                                              ; preds = %360
  store i32 5, ptr %15, align 4
  br label %468

363:                                              ; preds = %357
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364
  br label %458

366:                                              ; preds = %348
  %367 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %368 = load ptr, ptr @OID_PKIX_QcStatements, align 8, !tbaa !5
  %369 = invoke zeroext i1 @oid_is_equal(ptr noundef %367, ptr noundef %368)
          to label %370 unwind label %88

370:                                              ; preds = %366
  br i1 %369, label %371, label %388

371:                                              ; preds = %370
  br label %372

372:                                              ; preds = %371
  %373 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %374 unwind label %88

374:                                              ; preds = %372
  %375 = load ptr, ptr %17, align 8, !tbaa !5
  %376 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %375, ptr noundef @.str.27)
          to label %377 unwind label %88

377:                                              ; preds = %374
  %378 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject12qcStatementsEPK12ByteArray_stP13json_object_t(ptr noundef %373, ptr noundef %376)
          to label %379 unwind label %88

379:                                              ; preds = %377
  store i32 %378, ptr %8, align 4, !tbaa !9
  %380 = load i32, ptr %8, align 4, !tbaa !9
  %381 = icmp ne i32 %380, 0
  br i1 %381, label %382, label %385

382:                                              ; preds = %379
  %383 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 329, i32 noundef %383)
          to label %384 unwind label %88

384:                                              ; preds = %382
  store i32 5, ptr %15, align 4
  br label %468

385:                                              ; preds = %379
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386
  br label %457

388:                                              ; preds = %370
  %389 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %390 = load ptr, ptr @OID_PKIX_SubjectInfoAccess, align 8, !tbaa !5
  %391 = invoke zeroext i1 @oid_is_equal(ptr noundef %389, ptr noundef %390)
          to label %392 unwind label %88

392:                                              ; preds = %388
  br i1 %391, label %393, label %410

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393
  %395 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %396 unwind label %88

396:                                              ; preds = %394
  %397 = load ptr, ptr %17, align 8, !tbaa !5
  %398 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %397, ptr noundef @.str.28)
          to label %399 unwind label %88

399:                                              ; preds = %396
  %400 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18accessDescriptionsEPK12ByteArray_stP13json_object_t(ptr noundef %395, ptr noundef %398)
          to label %401 unwind label %88

401:                                              ; preds = %399
  store i32 %400, ptr %8, align 4, !tbaa !9
  %402 = load i32, ptr %8, align 4, !tbaa !9
  %403 = icmp ne i32 %402, 0
  br i1 %403, label %404, label %407

404:                                              ; preds = %401
  %405 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 332, i32 noundef %405)
          to label %406 unwind label %88

406:                                              ; preds = %404
  store i32 5, ptr %15, align 4
  br label %468

407:                                              ; preds = %401
  br label %408

408:                                              ; preds = %407
  br label %409

409:                                              ; preds = %408
  br label %456

410:                                              ; preds = %392
  %411 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %412 = load ptr, ptr @OID_X509v3_SubjectAlternativeName, align 8, !tbaa !5
  %413 = invoke zeroext i1 @oid_is_equal(ptr noundef %411, ptr noundef %412)
          to label %414 unwind label %88

414:                                              ; preds = %410
  br i1 %413, label %415, label %432

415:                                              ; preds = %414
  br label %416

416:                                              ; preds = %415
  %417 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %418 unwind label %88

418:                                              ; preds = %416
  %419 = load ptr, ptr %17, align 8, !tbaa !5
  %420 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %419, ptr noundef @.str.29)
          to label %421 unwind label %88

421:                                              ; preds = %418
  %422 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject15alternativeNameEPK12ByteArray_stP13json_object_t(ptr noundef %417, ptr noundef %420)
          to label %423 unwind label %88

423:                                              ; preds = %421
  store i32 %422, ptr %8, align 4, !tbaa !9
  %424 = load i32, ptr %8, align 4, !tbaa !9
  %425 = icmp ne i32 %424, 0
  br i1 %425, label %426, label %429

426:                                              ; preds = %423
  %427 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 335, i32 noundef %427)
          to label %428 unwind label %88

428:                                              ; preds = %426
  store i32 5, ptr %15, align 4
  br label %468

429:                                              ; preds = %423
  br label %430

430:                                              ; preds = %429
  br label %431

431:                                              ; preds = %430
  br label %455

432:                                              ; preds = %414
  %433 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  %434 = load ptr, ptr @OID_X509v3_IssuerAlternativeName, align 8, !tbaa !5
  %435 = invoke zeroext i1 @oid_is_equal(ptr noundef %433, ptr noundef %434)
          to label %436 unwind label %88

436:                                              ; preds = %432
  br i1 %435, label %437, label %454

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  %439 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %440 unwind label %88

440:                                              ; preds = %438
  %441 = load ptr, ptr %17, align 8, !tbaa !5
  %442 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %441, ptr noundef @.str.30)
          to label %443 unwind label %88

443:                                              ; preds = %440
  %444 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject15alternativeNameEPK12ByteArray_stP13json_object_t(ptr noundef %439, ptr noundef %442)
          to label %445 unwind label %88

445:                                              ; preds = %443
  store i32 %444, ptr %8, align 4, !tbaa !9
  %446 = load i32, ptr %8, align 4, !tbaa !9
  %447 = icmp ne i32 %446, 0
  br i1 %447, label %448, label %451

448:                                              ; preds = %445
  %449 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @stacktrace_add(ptr noundef @.str.3, i64 noundef 338, i32 noundef %449)
          to label %450 unwind label %88

450:                                              ; preds = %448
  store i32 5, ptr %15, align 4
  br label %468

451:                                              ; preds = %445
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  br label %454

454:                                              ; preds = %453, %436
  br label %455

455:                                              ; preds = %454, %431
  br label %456

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

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

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

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

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

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

462:                                              ; preds = %461, %277
  br label %463

463:                                              ; preds = %462, %255
  br label %464

464:                                              ; preds = %463, %233
  br label %465

465:                                              ; preds = %464, %211
  br label %466

466:                                              ; preds = %465, %187
  br label %467

467:                                              ; preds = %466, %163
  store i32 0, ptr %15, align 4
  br label %468

468:                                              ; preds = %467, %450, %428, %406, %384, %362, %340, %318, %296, %274, %252, %230, %208, %184, %160, %139, %125, %111, %100, %79
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  %469 = load i32, ptr %15, align 4
  switch i32 %469, label %476 [
    i32 0, label %470
  ]

470:                                              ; preds = %468
  br label %471

471:                                              ; preds = %470
  %472 = load i32, ptr %16, align 4, !tbaa !9
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr %16, align 4, !tbaa !9
  br label %35, !llvm.loop !33

474:                                              ; preds = %88, %84
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  br label %475

475:                                              ; preds = %474, %80
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  br label %478

476:                                              ; preds = %468, %50, %42
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  %477 = load i32, ptr %15, align 4
  switch i32 %477, label %503 [
    i32 2, label %479
    i32 5, label %497
  ]

478:                                              ; preds = %475, %51
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  br label %505

479:                                              ; preds = %476
  %480 = invoke noundef zeroext i1 @_ZNK7UapkiNS7SmartBA5emptyEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %481 unwind label %499

481:                                              ; preds = %479
  br i1 %480, label %493, label %482

482:                                              ; preds = %481
  %483 = invoke noundef zeroext i1 @_ZNK7UapkiNS7SmartBA5emptyEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %484 unwind label %499

484:                                              ; preds = %482
  br i1 %483, label %493, label %485

485:                                              ; preds = %484
  %486 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %487 unwind label %499

487:                                              ; preds = %485
  %488 = invoke noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %489 unwind label %499

489:                                              ; preds = %487
  %490 = invoke i32 @ba_cmp(ptr noundef %486, ptr noundef %488)
          to label %491 unwind label %499

491:                                              ; preds = %489
  %492 = icmp eq i32 %490, 0
  br label %493

493:                                              ; preds = %491, %484, %481
  %494 = phi i1 [ false, %484 ], [ false, %481 ], [ %492, %491 ]
  %495 = load ptr, ptr %7, align 8, !tbaa !5
  %496 = zext i1 %494 to i8
  store i8 %496, ptr %495, align 1, !tbaa !35
  br label %497

497:                                              ; preds = %493, %476
  %498 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %498, ptr %4, align 4
  store i32 1, ptr %15, align 4
  br label %503

499:                                              ; preds = %489, %487, %485, %482, %479
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %12, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %13, align 4
  br label %505

503:                                              ; preds = %497, %476, %29
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  %504 = load i32, ptr %4, align 4
  ret i32 %504

505:                                              ; preds = %499, %478
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #4
  br label %506

506:                                              ; preds = %505, %30
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  br label %507

507:                                              ; preds = %506
  %508 = load ptr, ptr %12, align 8
  %509 = load i32, ptr %13, align 4
  %510 = insertvalue { ptr, i32 } poison, ptr %508, 0
  %511 = insertvalue { ptr, i32 } %510, i32 %509, 1
  resume { ptr, i32 } %511
}

declare noundef i32 @_ZN12ParsonHelper20jsonObjectSetBooleanEP13json_object_tPKcb(ptr noundef, ptr noundef, i1 noundef zeroext) #1

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

declare i32 @json_array_append_value(ptr noundef, ptr noundef) #1

declare ptr @json_array_get_object(ptr noundef, i64 noundef) #1

declare i32 @asn_OCTSTRING2ba(ptr noundef, ptr noundef) #1

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

declare i32 @json_object_set_base64(ptr noundef, ptr noundef, ptr noundef) #1

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

declare zeroext i1 @oid_is_equal(ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject8keyUsageEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef, ptr noundef) #3

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject12subjectKeyIdEPK12ByteArray_stP13json_object_tPPS2_(ptr noundef, ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject14authorityKeyIdEPK12ByteArray_stP13json_object_tPPS2_(ptr noundef, ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject16basicConstraintsEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18distributionPointsEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject19certificatePoliciesEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject16extendedKeyUsageEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject26subjectDirectoryAttributesEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18accessDescriptionsEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject12qcStatementsEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject15alternativeNameEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) #1

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

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

declare i32 @ba_cmp(ptr noundef, ptr noundef) #1

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

!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 528}
!12 = !{!"_ZTS11Certificate", !13, i64 0, !15, i64 560, !25, i64 608, !16, i64 648}
!13 = !{!"_ZTS14TBSCertificate", !6, i64 0, !14, i64 8, !15, i64 24, !19, i64 72, !21, i64 152, !19, i64 320, !24, i64 400, !6, i64 512, !6, i64 520, !6, i64 528, !16, i64 536}
!14 = !{!"_ZTS21ASN__PRIMITIVE_TYPE_s", !6, i64 0, !10, i64 8}
!15 = !{!"_ZTS19AlgorithmIdentifier", !14, i64 0, !6, i64 16, !16, i64 24}
!16 = !{!"_ZTS16asn_struct_ctx_s", !17, i64 0, !17, i64 2, !10, i64 4, !6, i64 8, !18, i64 16}
!17 = !{!"short", !7, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"_ZTS4Name", !20, i64 0, !7, i64 8, !16, i64 56}
!20 = !{!"_ZTS7Name_PR", !7, i64 0}
!21 = !{!"_ZTS8Validity", !22, i64 0, !22, i64 72, !16, i64 144}
!22 = !{!"_ZTS8PKIXTime", !23, i64 0, !7, i64 8, !16, i64 48}
!23 = !{!"_ZTS11PKIXTime_PR", !7, i64 0}
!24 = !{!"_ZTS20SubjectPublicKeyInfo", !15, i64 0, !25, i64 48, !16, i64 88}
!25 = !{!"_ZTS12BIT_STRING_s", !6, i64 0, !10, i64 8, !10, i64 12, !16, i64 16}
!26 = !{!27, !10, i64 8}
!27 = !{!"_ZTS10Extensions", !28, i64 0, !16, i64 24}
!28 = !{!"_ZTSN10ExtensionsUt_E", !6, i64 0, !10, i64 8, !10, i64 12, !6, i64 16}
!29 = !{!27, !6, i64 0}
!30 = !{!31, !6, i64 16}
!31 = !{!"_ZTS9Extension", !14, i64 0, !6, i64 16, !32, i64 24, !16, i64 64}
!32 = !{!"_ZTS12OCTET_STRING", !6, i64 0, !10, i64 8, !16, i64 16}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = !{!36, !36, i64 0}
!36 = !{!"bool", !7, i64 0}


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

%"class.UapkiNS::SmartBA" = 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] }

@.str.3 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [10 x i8], align 1
@OID_X509v3_KeyUsage = external local_unnamed_addr global ptr, align 8
@.str.17 = external hidden unnamed_addr constant [9 x i8], align 1
@OID_X509v3_SubjectKeyIdentifier = external local_unnamed_addr global ptr, align 8
@.str.18 = external hidden unnamed_addr constant [21 x i8], align 1
@OID_X509v3_AuthorityKeyIdentifier = external local_unnamed_addr global ptr, align 8
@.str.19 = external hidden unnamed_addr constant [23 x i8], align 1
@OID_X509v3_BasicConstraints = external local_unnamed_addr global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [17 x i8], align 1
@OID_X509v3_CRLDistributionPoints = external local_unnamed_addr global ptr, align 8
@.str.21 = external hidden unnamed_addr constant [22 x i8], align 1
@OID_X509v3_CertificatePolicies = external local_unnamed_addr global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [20 x i8], align 1
@OID_X509v3_ExtendedKeyUsage = external local_unnamed_addr global ptr, align 8
@.str.23 = external hidden unnamed_addr constant [12 x i8], align 1
@OID_X509v3_FreshestCRL = external local_unnamed_addr global ptr, align 8
@.str.24 = external hidden unnamed_addr constant [12 x i8], align 1
@OID_X509v3_SubjectDirectoryAttributes = external local_unnamed_addr global ptr, align 8
@.str.25 = external hidden unnamed_addr constant [27 x i8], align 1
@OID_PKIX_AuthorityInfoAccess = external local_unnamed_addr global ptr, align 8
@.str.26 = external hidden unnamed_addr constant [20 x i8], align 1
@OID_PKIX_QcStatements = external local_unnamed_addr global ptr, align 8
@.str.27 = external hidden unnamed_addr constant [13 x i8], align 1
@OID_PKIX_SubjectInfoAccess = external local_unnamed_addr global ptr, align 8
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@OID_X509v3_SubjectAlternativeName = external local_unnamed_addr global ptr, align 8
@.str.29 = external hidden unnamed_addr constant [15 x i8], align 1
@OID_X509v3_IssuerAlternativeName = external local_unnamed_addr global ptr, align 8
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1

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

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

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

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

declare noundef i32 @_ZN7UapkiNS4Util11oidFromAsn1EPK21ASN__PRIMITIVE_TYPE_sRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

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

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

declare i32 @json_object_set_string(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare ptr @json_value_init_object() local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7UapkiNS4Cert16extensionsToJsonEP12json_array_tPKNS0_7CerItemERb(ptr noundef %0, ptr noundef nonnull %1, ptr nocapture noundef nonnull writeonly align 1 dereferenceable(1) %2) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.UapkiNS::SmartBA", align 8
  %5 = alloca %"class.UapkiNS::SmartBA", align 8
  %6 = alloca %"class.UapkiNS::SmartBA", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = tail call noundef ptr @_ZNK7UapkiNS4Cert7CerItem7getCertEv(ptr noundef nonnull align 8 dereferenceable(401) %1)
  %9 = getelementptr inbounds i8, ptr %8, i64 528
  %10 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #4
  call void @_ZN7UapkiNS7SmartBAC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #4
  call void @_ZN7UapkiNS7SmartBAC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5)
  %.not = icmp eq ptr %10, null
  br i1 %.not, label %.thread, label %.preheader

.preheader:                                       ; preds = %3
  %11 = getelementptr inbounds i8, ptr %10, i64 8
  %12 = load i32, ptr %11, align 8, !tbaa !24
  %13 = icmp sgt i32 %12, 0
  br i1 %13, label %.lr.ph, label %._crit_edge

14:                                               ; preds = %228
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %15 = load i32, ptr %11, align 8, !tbaa !24
  %16 = sext i32 %15 to i64
  %17 = icmp slt i64 %indvars.iv.next, %16
  br i1 %17, label %.lr.ph, label %._crit_edge, !llvm.loop !27

.lr.ph:                                           ; preds = %.preheader, %14
  %indvars.iv = phi i64 [ %indvars.iv.next, %14 ], [ 0, %.preheader ]
  %18 = invoke ptr @json_value_init_object()
          to label %19 unwind label %22

19:                                               ; preds = %.lr.ph
  %20 = invoke i32 @json_array_append_value(ptr noundef %0, ptr noundef %18)
          to label %21 unwind label %22

21:                                               ; preds = %19
  %.not113 = icmp eq i32 %20, 0
  br i1 %.not113, label %24, label %.thread

22:                                               ; preds = %19, %.lr.ph
  %23 = landingpad { ptr, i32 }
          cleanup
  br label %245

24:                                               ; preds = %21
  %25 = invoke ptr @json_array_get_object(ptr noundef %0, i64 noundef %indvars.iv)
          to label %26 unwind label %33

26:                                               ; preds = %24
  %27 = load ptr, ptr %10, align 8, !tbaa !29
  %28 = getelementptr inbounds ptr, ptr %27, i64 %indvars.iv
  %29 = load ptr, ptr %28, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #4
  call void @_ZN7UapkiNS7SmartBAC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %30 = invoke noundef i32 @_ZN7UapkiNS4Util11oidFromAsn1EPK21ASN__PRIMITIVE_TYPE_sRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %29, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %31 unwind label %35

31:                                               ; preds = %26
  %.not114 = icmp eq i32 %30, 0
  br i1 %.not114, label %37, label %32

32:                                               ; preds = %31
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 287, i32 noundef %30)
          to label %228 unwind label %35

33:                                               ; preds = %24
  %34 = landingpad { ptr, i32 }
          cleanup
  br label %245

35:                                               ; preds = %227, %224, %221, %216, %215, %212, %209, %204, %203, %200, %197, %192, %191, %188, %185, %180, %179, %176, %173, %168, %167, %164, %161, %156, %155, %152, %149, %144, %143, %140, %137, %132, %131, %128, %125, %120, %119, %116, %113, %108, %107, %104, %101, %96, %95, %91, %88, %83, %82, %78, %75, %70, %69, %66, %63, %58, %57, %53, %52, %47, %44, %37, %32, %26
  %36 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #4
  br label %245

37:                                               ; preds = %31
  %38 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %39 = invoke i32 @json_object_set_string(ptr noundef %25, ptr noundef nonnull @.str.14, ptr noundef %38)
          to label %40 unwind label %35

40:                                               ; preds = %37
  %.not115 = icmp eq i32 %39, 0
  br i1 %.not115, label %41, label %228

41:                                               ; preds = %40
  %42 = getelementptr inbounds i8, ptr %29, i64 16
  %43 = load ptr, ptr %42, align 8, !tbaa !31
  %.not116 = icmp eq ptr %43, null
  br i1 %.not116, label %47, label %44

44:                                               ; preds = %41
  %45 = invoke noundef i32 @_ZN12ParsonHelper20jsonObjectSetBooleanEP13json_object_tPKcb(ptr noundef %25, ptr noundef nonnull @.str.15, i1 noundef zeroext true)
          to label %46 unwind label %35

46:                                               ; preds = %44
  %.not117 = icmp eq i32 %45, 0
  br i1 %.not117, label %47, label %228

47:                                               ; preds = %41, %46
  %48 = getelementptr inbounds i8, ptr %29, i64 24
  %49 = call noundef ptr @_ZN7UapkiNS7SmartBAadEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %50 = invoke i32 @asn_OCTSTRING2ba(ptr noundef nonnull %48, ptr noundef %49)
          to label %51 unwind label %35

51:                                               ; preds = %47
  %.not118 = icmp eq i32 %50, 0
  br i1 %.not118, label %53, label %52

52:                                               ; preds = %51
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 294, i32 noundef %50)
          to label %228 unwind label %35

53:                                               ; preds = %51
  %54 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %55 = invoke i32 @json_object_set_base64(ptr noundef %25, ptr noundef nonnull @.str.16, ptr noundef %54)
          to label %56 unwind label %35

56:                                               ; preds = %53
  %.not119 = icmp eq i32 %55, 0
  br i1 %.not119, label %58, label %57

57:                                               ; preds = %56
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 295, i32 noundef %55)
          to label %228 unwind label %35

58:                                               ; preds = %56
  %59 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %60 = load ptr, ptr @OID_X509v3_KeyUsage, align 8, !tbaa !30
  %61 = invoke zeroext i1 @oid_is_equal(ptr noundef %59, ptr noundef %60)
          to label %62 unwind label %35

62:                                               ; preds = %58
  br i1 %61, label %63, label %70

63:                                               ; preds = %62
  %64 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %65 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.17)
          to label %66 unwind label %35

66:                                               ; preds = %63
  %67 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject8keyUsageEPK12ByteArray_stP13json_object_t(ptr noundef %64, ptr noundef %65)
          to label %68 unwind label %35

68:                                               ; preds = %66
  %.not133 = icmp eq i32 %67, 0
  br i1 %.not133, label %228, label %69

69:                                               ; preds = %68
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 299, i32 noundef %67)
          to label %228 unwind label %35

70:                                               ; preds = %62
  %71 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %72 = load ptr, ptr @OID_X509v3_SubjectKeyIdentifier, align 8, !tbaa !30
  %73 = invoke zeroext i1 @oid_is_equal(ptr noundef %71, ptr noundef %72)
          to label %74 unwind label %35

74:                                               ; preds = %70
  br i1 %73, label %75, label %83

75:                                               ; preds = %74
  %76 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %77 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.18)
          to label %78 unwind label %35

78:                                               ; preds = %75
  %79 = call noundef ptr @_ZN7UapkiNS7SmartBAadEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  %80 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject12subjectKeyIdEPK12ByteArray_stP13json_object_tPPS2_(ptr noundef %76, ptr noundef %77, ptr noundef %79)
          to label %81 unwind label %35

81:                                               ; preds = %78
  %.not132 = icmp eq i32 %80, 0
  br i1 %.not132, label %228, label %82

82:                                               ; preds = %81
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 302, i32 noundef %80)
          to label %228 unwind label %35

83:                                               ; preds = %74
  %84 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %85 = load ptr, ptr @OID_X509v3_AuthorityKeyIdentifier, align 8, !tbaa !30
  %86 = invoke zeroext i1 @oid_is_equal(ptr noundef %84, ptr noundef %85)
          to label %87 unwind label %35

87:                                               ; preds = %83
  br i1 %86, label %88, label %96

88:                                               ; preds = %87
  %89 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %90 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.19)
          to label %91 unwind label %35

91:                                               ; preds = %88
  %92 = call noundef ptr @_ZN7UapkiNS7SmartBAadEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %93 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject14authorityKeyIdEPK12ByteArray_stP13json_object_tPPS2_(ptr noundef %89, ptr noundef %90, ptr noundef %92)
          to label %94 unwind label %35

94:                                               ; preds = %91
  %.not131 = icmp eq i32 %93, 0
  br i1 %.not131, label %228, label %95

95:                                               ; preds = %94
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 305, i32 noundef %93)
          to label %228 unwind label %35

96:                                               ; preds = %87
  %97 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %98 = load ptr, ptr @OID_X509v3_BasicConstraints, align 8, !tbaa !30
  %99 = invoke zeroext i1 @oid_is_equal(ptr noundef %97, ptr noundef %98)
          to label %100 unwind label %35

100:                                              ; preds = %96
  br i1 %99, label %101, label %108

101:                                              ; preds = %100
  %102 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %103 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.20)
          to label %104 unwind label %35

104:                                              ; preds = %101
  %105 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject16basicConstraintsEPK12ByteArray_stP13json_object_t(ptr noundef %102, ptr noundef %103)
          to label %106 unwind label %35

106:                                              ; preds = %104
  %.not130 = icmp eq i32 %105, 0
  br i1 %.not130, label %228, label %107

107:                                              ; preds = %106
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 308, i32 noundef %105)
          to label %228 unwind label %35

108:                                              ; preds = %100
  %109 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %110 = load ptr, ptr @OID_X509v3_CRLDistributionPoints, align 8, !tbaa !30
  %111 = invoke zeroext i1 @oid_is_equal(ptr noundef %109, ptr noundef %110)
          to label %112 unwind label %35

112:                                              ; preds = %108
  br i1 %111, label %113, label %120

113:                                              ; preds = %112
  %114 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %115 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.21)
          to label %116 unwind label %35

116:                                              ; preds = %113
  %117 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18distributionPointsEPK12ByteArray_stP13json_object_t(ptr noundef %114, ptr noundef %115)
          to label %118 unwind label %35

118:                                              ; preds = %116
  %.not129 = icmp eq i32 %117, 0
  br i1 %.not129, label %228, label %119

119:                                              ; preds = %118
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 311, i32 noundef %117)
          to label %228 unwind label %35

120:                                              ; preds = %112
  %121 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %122 = load ptr, ptr @OID_X509v3_CertificatePolicies, align 8, !tbaa !30
  %123 = invoke zeroext i1 @oid_is_equal(ptr noundef %121, ptr noundef %122)
          to label %124 unwind label %35

124:                                              ; preds = %120
  br i1 %123, label %125, label %132

125:                                              ; preds = %124
  %126 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %127 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.22)
          to label %128 unwind label %35

128:                                              ; preds = %125
  %129 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject19certificatePoliciesEPK12ByteArray_stP13json_object_t(ptr noundef %126, ptr noundef %127)
          to label %130 unwind label %35

130:                                              ; preds = %128
  %.not128 = icmp eq i32 %129, 0
  br i1 %.not128, label %228, label %131

131:                                              ; preds = %130
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 314, i32 noundef %129)
          to label %228 unwind label %35

132:                                              ; preds = %124
  %133 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %134 = load ptr, ptr @OID_X509v3_ExtendedKeyUsage, align 8, !tbaa !30
  %135 = invoke zeroext i1 @oid_is_equal(ptr noundef %133, ptr noundef %134)
          to label %136 unwind label %35

136:                                              ; preds = %132
  br i1 %135, label %137, label %144

137:                                              ; preds = %136
  %138 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %139 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.23)
          to label %140 unwind label %35

140:                                              ; preds = %137
  %141 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject16extendedKeyUsageEPK12ByteArray_stP13json_object_t(ptr noundef %138, ptr noundef %139)
          to label %142 unwind label %35

142:                                              ; preds = %140
  %.not127 = icmp eq i32 %141, 0
  br i1 %.not127, label %228, label %143

143:                                              ; preds = %142
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 317, i32 noundef %141)
          to label %228 unwind label %35

144:                                              ; preds = %136
  %145 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %146 = load ptr, ptr @OID_X509v3_FreshestCRL, align 8, !tbaa !30
  %147 = invoke zeroext i1 @oid_is_equal(ptr noundef %145, ptr noundef %146)
          to label %148 unwind label %35

148:                                              ; preds = %144
  br i1 %147, label %149, label %156

149:                                              ; preds = %148
  %150 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %151 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.24)
          to label %152 unwind label %35

152:                                              ; preds = %149
  %153 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18distributionPointsEPK12ByteArray_stP13json_object_t(ptr noundef %150, ptr noundef %151)
          to label %154 unwind label %35

154:                                              ; preds = %152
  %.not126 = icmp eq i32 %153, 0
  br i1 %.not126, label %228, label %155

155:                                              ; preds = %154
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 320, i32 noundef %153)
          to label %228 unwind label %35

156:                                              ; preds = %148
  %157 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %158 = load ptr, ptr @OID_X509v3_SubjectDirectoryAttributes, align 8, !tbaa !30
  %159 = invoke zeroext i1 @oid_is_equal(ptr noundef %157, ptr noundef %158)
          to label %160 unwind label %35

160:                                              ; preds = %156
  br i1 %159, label %161, label %168

161:                                              ; preds = %160
  %162 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %163 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.25)
          to label %164 unwind label %35

164:                                              ; preds = %161
  %165 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject26subjectDirectoryAttributesEPK12ByteArray_stP13json_object_t(ptr noundef %162, ptr noundef %163)
          to label %166 unwind label %35

166:                                              ; preds = %164
  %.not125 = icmp eq i32 %165, 0
  br i1 %.not125, label %228, label %167

167:                                              ; preds = %166
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 323, i32 noundef %165)
          to label %228 unwind label %35

168:                                              ; preds = %160
  %169 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %170 = load ptr, ptr @OID_PKIX_AuthorityInfoAccess, align 8, !tbaa !30
  %171 = invoke zeroext i1 @oid_is_equal(ptr noundef %169, ptr noundef %170)
          to label %172 unwind label %35

172:                                              ; preds = %168
  br i1 %171, label %173, label %180

173:                                              ; preds = %172
  %174 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %175 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.26)
          to label %176 unwind label %35

176:                                              ; preds = %173
  %177 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18accessDescriptionsEPK12ByteArray_stP13json_object_t(ptr noundef %174, ptr noundef %175)
          to label %178 unwind label %35

178:                                              ; preds = %176
  %.not124 = icmp eq i32 %177, 0
  br i1 %.not124, label %228, label %179

179:                                              ; preds = %178
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 326, i32 noundef %177)
          to label %228 unwind label %35

180:                                              ; preds = %172
  %181 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %182 = load ptr, ptr @OID_PKIX_QcStatements, align 8, !tbaa !30
  %183 = invoke zeroext i1 @oid_is_equal(ptr noundef %181, ptr noundef %182)
          to label %184 unwind label %35

184:                                              ; preds = %180
  br i1 %183, label %185, label %192

185:                                              ; preds = %184
  %186 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %187 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.27)
          to label %188 unwind label %35

188:                                              ; preds = %185
  %189 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject12qcStatementsEPK12ByteArray_stP13json_object_t(ptr noundef %186, ptr noundef %187)
          to label %190 unwind label %35

190:                                              ; preds = %188
  %.not123 = icmp eq i32 %189, 0
  br i1 %.not123, label %228, label %191

191:                                              ; preds = %190
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 329, i32 noundef %189)
          to label %228 unwind label %35

192:                                              ; preds = %184
  %193 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %194 = load ptr, ptr @OID_PKIX_SubjectInfoAccess, align 8, !tbaa !30
  %195 = invoke zeroext i1 @oid_is_equal(ptr noundef %193, ptr noundef %194)
          to label %196 unwind label %35

196:                                              ; preds = %192
  br i1 %195, label %197, label %204

197:                                              ; preds = %196
  %198 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %199 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.28)
          to label %200 unwind label %35

200:                                              ; preds = %197
  %201 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18accessDescriptionsEPK12ByteArray_stP13json_object_t(ptr noundef %198, ptr noundef %199)
          to label %202 unwind label %35

202:                                              ; preds = %200
  %.not122 = icmp eq i32 %201, 0
  br i1 %.not122, label %228, label %203

203:                                              ; preds = %202
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 332, i32 noundef %201)
          to label %228 unwind label %35

204:                                              ; preds = %196
  %205 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %206 = load ptr, ptr @OID_X509v3_SubjectAlternativeName, align 8, !tbaa !30
  %207 = invoke zeroext i1 @oid_is_equal(ptr noundef %205, ptr noundef %206)
          to label %208 unwind label %35

208:                                              ; preds = %204
  br i1 %207, label %209, label %216

209:                                              ; preds = %208
  %210 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %211 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.29)
          to label %212 unwind label %35

212:                                              ; preds = %209
  %213 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject15alternativeNameEPK12ByteArray_stP13json_object_t(ptr noundef %210, ptr noundef %211)
          to label %214 unwind label %35

214:                                              ; preds = %212
  %.not121 = icmp eq i32 %213, 0
  br i1 %.not121, label %228, label %215

215:                                              ; preds = %214
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 335, i32 noundef %213)
          to label %228 unwind label %35

216:                                              ; preds = %208
  %217 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  %218 = load ptr, ptr @OID_X509v3_IssuerAlternativeName, align 8, !tbaa !30
  %219 = invoke zeroext i1 @oid_is_equal(ptr noundef %217, ptr noundef %218)
          to label %220 unwind label %35

220:                                              ; preds = %216
  br i1 %219, label %221, label %228

221:                                              ; preds = %220
  %222 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6)
  %223 = invoke noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef %25, ptr noundef nonnull @.str.30)
          to label %224 unwind label %35

224:                                              ; preds = %221
  %225 = invoke noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject15alternativeNameEPK12ByteArray_stP13json_object_t(ptr noundef %222, ptr noundef %223)
          to label %226 unwind label %35

226:                                              ; preds = %224
  %.not120 = icmp eq i32 %225, 0
  br i1 %.not120, label %228, label %227

227:                                              ; preds = %226
  invoke void @stacktrace_add(ptr noundef nonnull @.str.3, i64 noundef 338, i32 noundef %225)
          to label %228 unwind label %35

228:                                              ; preds = %68, %94, %118, %142, %166, %190, %214, %226, %220, %202, %178, %154, %130, %106, %81, %227, %215, %203, %191, %179, %167, %155, %143, %131, %119, %107, %95, %82, %69, %57, %52, %46, %40, %32
  %cond = phi i1 [ false, %32 ], [ false, %40 ], [ false, %46 ], [ false, %52 ], [ false, %57 ], [ false, %69 ], [ false, %82 ], [ false, %95 ], [ false, %107 ], [ false, %119 ], [ false, %131 ], [ false, %143 ], [ false, %155 ], [ false, %167 ], [ false, %179 ], [ false, %191 ], [ false, %203 ], [ false, %215 ], [ false, %227 ], [ true, %81 ], [ true, %106 ], [ true, %130 ], [ true, %154 ], [ true, %178 ], [ true, %202 ], [ true, %220 ], [ true, %226 ], [ true, %214 ], [ true, %190 ], [ true, %166 ], [ true, %142 ], [ true, %118 ], [ true, %94 ], [ true, %68 ]
  %.2 = phi i32 [ %30, %32 ], [ 4113, %40 ], [ 4113, %46 ], [ %50, %52 ], [ %55, %57 ], [ %67, %69 ], [ %80, %82 ], [ %93, %95 ], [ %105, %107 ], [ %117, %119 ], [ %129, %131 ], [ %141, %143 ], [ %153, %155 ], [ %165, %167 ], [ %177, %179 ], [ %189, %191 ], [ %201, %203 ], [ %213, %215 ], [ %225, %227 ], [ 0, %81 ], [ 0, %106 ], [ 0, %130 ], [ 0, %154 ], [ 0, %178 ], [ 0, %202 ], [ 0, %220 ], [ 0, %226 ], [ 0, %214 ], [ 0, %190 ], [ 0, %166 ], [ 0, %142 ], [ 0, %118 ], [ 0, %94 ], [ 0, %68 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #4
  br i1 %cond, label %14, label %.thread

._crit_edge:                                      ; preds = %14, %.preheader
  %.070.lcssa = phi i32 [ 0, %.preheader ], [ %.2, %14 ]
  %229 = invoke noundef zeroext i1 @_ZNK7UapkiNS7SmartBA5emptyEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %230 unwind label %243

230:                                              ; preds = %._crit_edge
  br i1 %229, label %241, label %231

231:                                              ; preds = %230
  %232 = invoke noundef zeroext i1 @_ZNK7UapkiNS7SmartBA5emptyEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %233 unwind label %243

233:                                              ; preds = %231
  br i1 %232, label %241, label %234

234:                                              ; preds = %233
  %235 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  %236 = call noundef ptr @_ZNK7UapkiNS7SmartBA3getEv(ptr noundef nonnull align 8 dereferenceable(8) %4)
  %237 = invoke i32 @ba_cmp(ptr noundef %235, ptr noundef %236)
          to label %238 unwind label %243

238:                                              ; preds = %234
  %239 = icmp eq i32 %237, 0
  %240 = zext i1 %239 to i8
  br label %241

241:                                              ; preds = %238, %233, %230
  %242 = phi i8 [ 0, %233 ], [ 0, %230 ], [ %240, %238 ]
  store i8 %242, ptr %2, align 1, !tbaa !34
  br label %.thread

243:                                              ; preds = %234, %231, %._crit_edge
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %245

.thread:                                          ; preds = %21, %228, %241, %3
  %.0 = phi i32 [ 4145, %3 ], [ %.070.lcssa, %241 ], [ %.2, %228 ], [ 4113, %21 ]
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #4
  ret i32 %.0

245:                                              ; preds = %22, %35, %33, %243
  %.pn136 = phi { ptr, i32 } [ %244, %243 ], [ %23, %22 ], [ %36, %35 ], [ %34, %33 ]
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #4
  call void @_ZN7UapkiNS7SmartBAD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #4
  resume { ptr, i32 } %.pn136
}

declare noundef i32 @_ZN12ParsonHelper20jsonObjectSetBooleanEP13json_object_tPKcb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

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

declare i32 @json_array_append_value(ptr noundef, ptr noundef) local_unnamed_addr #1

declare ptr @json_array_get_object(ptr noundef, i64 noundef) local_unnamed_addr #1

declare i32 @asn_OCTSTRING2ba(ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare i32 @json_object_set_base64(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare zeroext i1 @oid_is_equal(ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject8keyUsageEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN7UapkiNSL21extn_json_add_decodedEP13json_object_tPKc(ptr noundef, ptr noundef) local_unnamed_addr #3

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject12subjectKeyIdEPK12ByteArray_stP13json_object_tPPS2_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject14authorityKeyIdEPK12ByteArray_stP13json_object_tPPS2_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject16basicConstraintsEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18distributionPointsEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject19certificatePoliciesEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject16extendedKeyUsageEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject26subjectDirectoryAttributesEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject18accessDescriptionsEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject12qcStatementsEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef i32 @_ZN7UapkiNS15ExtensionHelper18DecodeToJsonObject15alternativeNameEPK12ByteArray_stP13json_object_t(ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

declare i32 @ba_cmp(ptr noundef, ptr noundef) local_unnamed_addr #1

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

!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, !8, i64 528}
!6 = !{!"_ZTS11Certificate", !7, i64 0, !13, i64 560, !23, i64 608, !14, i64 648}
!7 = !{!"_ZTS14TBSCertificate", !8, i64 0, !11, i64 8, !13, i64 24, !17, i64 72, !19, i64 152, !17, i64 320, !22, i64 400, !8, i64 512, !8, i64 520, !8, i64 528, !14, i64 536}
!8 = !{!"any pointer", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"_ZTS21ASN__PRIMITIVE_TYPE_s", !8, i64 0, !12, i64 8}
!12 = !{!"int", !9, i64 0}
!13 = !{!"_ZTS19AlgorithmIdentifier", !11, i64 0, !8, i64 16, !14, i64 24}
!14 = !{!"_ZTS16asn_struct_ctx_s", !15, i64 0, !15, i64 2, !12, i64 4, !8, i64 8, !16, i64 16}
!15 = !{!"short", !9, i64 0}
!16 = !{!"long", !9, i64 0}
!17 = !{!"_ZTS4Name", !18, i64 0, !9, i64 8, !14, i64 56}
!18 = !{!"_ZTS7Name_PR", !9, i64 0}
!19 = !{!"_ZTS8Validity", !20, i64 0, !20, i64 72, !14, i64 144}
!20 = !{!"_ZTS8PKIXTime", !21, i64 0, !9, i64 8, !14, i64 48}
!21 = !{!"_ZTS11PKIXTime_PR", !9, i64 0}
!22 = !{!"_ZTS20SubjectPublicKeyInfo", !13, i64 0, !23, i64 48, !14, i64 88}
!23 = !{!"_ZTS12BIT_STRING_s", !8, i64 0, !12, i64 8, !12, i64 12, !14, i64 16}
!24 = !{!25, !12, i64 8}
!25 = !{!"_ZTS10Extensions", !26, i64 0, !14, i64 24}
!26 = !{!"_ZTSN10ExtensionsUt_E", !8, i64 0, !12, i64 8, !12, i64 12, !8, i64 16}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{!25, !8, i64 0}
!30 = !{!8, !8, i64 0}
!31 = !{!32, !8, i64 16}
!32 = !{!"_ZTS9Extension", !11, i64 0, !8, i64 16, !33, i64 24, !14, i64 64}
!33 = !{!"_ZTS12OCTET_STRING", !8, i64 0, !12, i64 8, !14, i64 16}
!34 = !{!35, !35, i64 0}
!35 = !{!"bool", !9, i64 0}


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