; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_cert_status_request_extension_test)

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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [104 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_client_cert_status_request_extension = external constant %struct.s2n_extension_type, align 8
@.str.12 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca %struct.s2n_result, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_result, align 4
  %25 = alloca %struct.s2n_result, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.s2n_stuffer, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i8, align 1
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca %struct.s2n_stuffer, align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca %struct.s2n_stuffer, align 8
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca %struct.s2n_stuffer, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca %struct.s2n_result, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %84

84:                                               ; preds = %2
  br label %85

85:                                               ; preds = %84
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %86 = load ptr, ptr @stdout, align 8, !tbaa !9
  %87 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %86, ptr noundef @.str, ptr noundef @.str.1) #8
  %88 = load ptr, ptr @stdout, align 8, !tbaa !9
  %89 = call i32 @fflush(ptr noundef %88)
  br label %90

90:                                               ; preds = %85
  %91 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %92 = icmp eq i32 %91, -1
  br i1 %92, label %93, label %144

93:                                               ; preds = %90
  br label %94

94:                                               ; preds = %93
  br label %95

95:                                               ; preds = %94
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  %96 = call ptr @__errno_location() #9
  %97 = load i32, ptr %96, align 4, !tbaa !5
  store i32 %97, ptr %6, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = call i32 @s2n_print_stacktrace(ptr noundef %98)
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc i8 %100 to i1
  br i1 %101, label %102, label %124

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = call i32 @fileno(ptr noundef %103) #8
  %105 = call i32 @isatty(i32 noundef %104) #8
  %106 = icmp ne i32 %105, 0
  br i1 %106, label %107, label %124

107:                                              ; preds = %102
  %108 = load i32, ptr %6, align 4, !tbaa !5
  %109 = call ptr @__errno_location() #9
  store i32 %108, ptr %109, align 4, !tbaa !5
  %110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %111 = load i32, ptr @test_count, align 4, !tbaa !5
  %112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %113 = load i32, ptr %112, align 4, !tbaa !5
  %114 = call ptr @s2n_strerror(i32 noundef %113, ptr noundef @.str.4)
  %115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %117 = call ptr @s2n_strerror_debug(i32 noundef %116, ptr noundef @.str.4)
  %118 = call ptr @__errno_location() #9
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = call ptr @strerror(i32 noundef %119) #8
  %121 = call ptr @__errno_location() #9
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %110, ptr noundef @.str.2, i32 noundef %111, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 22, ptr noundef %114, ptr noundef %117, ptr noundef %120, i32 noundef %122) #8
  br label %141

124:                                              ; preds = %102, %95
  %125 = load i32, ptr %6, align 4, !tbaa !5
  %126 = call ptr @__errno_location() #9
  store i32 %125, ptr %126, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = load i32, ptr @test_count, align 4, !tbaa !5
  %129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = call ptr @s2n_strerror(i32 noundef %130, ptr noundef @.str.4)
  %132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = call ptr @s2n_strerror_debug(i32 noundef %133, ptr noundef @.str.4)
  %135 = call ptr @__errno_location() #9
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = call ptr @strerror(i32 noundef %136) #8
  %138 = call ptr @__errno_location() #9
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %127, ptr noundef @.str.5, i32 noundef %128, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 22, ptr noundef %131, ptr noundef %134, ptr noundef %137, i32 noundef %139) #8
  br label %141

141:                                              ; preds = %124, %107
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %142

142:                                              ; preds = %141
  call void @exit(i32 noundef 1) #10
  unreachable

143:                                              ; No predecessors!
  br label %144

144:                                              ; preds = %143, %90
  br label %145

145:                                              ; preds = %144
  br label %146

146:                                              ; preds = %145
  %147 = load i32, ptr @test_count, align 4, !tbaa !5
  %148 = add nsw i32 %147, 1
  store i32 %148, ptr @test_count, align 4, !tbaa !5
  %149 = call i32 @s2n_enable_atexit()
  %150 = icmp eq i32 %149, -1
  br i1 %150, label %151, label %202

151:                                              ; preds = %146
  br label %152

152:                                              ; preds = %151
  br label %153

153:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  %154 = call ptr @__errno_location() #9
  %155 = load i32, ptr %154, align 4, !tbaa !5
  store i32 %155, ptr %7, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = call i32 @s2n_print_stacktrace(ptr noundef %156)
  %158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %159 = trunc i8 %158 to i1
  br i1 %159, label %160, label %182

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = call i32 @fileno(ptr noundef %161) #8
  %163 = call i32 @isatty(i32 noundef %162) #8
  %164 = icmp ne i32 %163, 0
  br i1 %164, label %165, label %182

165:                                              ; preds = %160
  %166 = load i32, ptr %7, align 4, !tbaa !5
  %167 = call ptr @__errno_location() #9
  store i32 %166, ptr %167, align 4, !tbaa !5
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = load i32, ptr @test_count, align 4, !tbaa !5
  %170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %171 = load i32, ptr %170, align 4, !tbaa !5
  %172 = call ptr @s2n_strerror(i32 noundef %171, ptr noundef @.str.4)
  %173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %174 = load i32, ptr %173, align 4, !tbaa !5
  %175 = call ptr @s2n_strerror_debug(i32 noundef %174, ptr noundef @.str.4)
  %176 = call ptr @__errno_location() #9
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call ptr @strerror(i32 noundef %177) #8
  %179 = call ptr @__errno_location() #9
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %168, ptr noundef @.str.2, i32 noundef %169, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 22, ptr noundef %172, ptr noundef %175, ptr noundef %178, i32 noundef %180) #8
  br label %199

182:                                              ; preds = %160, %153
  %183 = load i32, ptr %7, align 4, !tbaa !5
  %184 = call ptr @__errno_location() #9
  store i32 %183, ptr %184, align 4, !tbaa !5
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = load i32, ptr @test_count, align 4, !tbaa !5
  %187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %188 = load i32, ptr %187, align 4, !tbaa !5
  %189 = call ptr @s2n_strerror(i32 noundef %188, ptr noundef @.str.4)
  %190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = call ptr @s2n_strerror_debug(i32 noundef %191, ptr noundef @.str.4)
  %193 = call ptr @__errno_location() #9
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = call ptr @strerror(i32 noundef %194) #8
  %196 = call ptr @__errno_location() #9
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %185, ptr noundef @.str.5, i32 noundef %186, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 22, ptr noundef %189, ptr noundef %192, ptr noundef %195, i32 noundef %197) #8
  br label %199

199:                                              ; preds = %182, %165
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %200

200:                                              ; preds = %199
  call void @exit(i32 noundef 1) #10
  unreachable

201:                                              ; No predecessors!
  br label %202

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

203:                                              ; preds = %202
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  %206 = call i32 @s2n_init()
  %207 = icmp eq i32 %206, -1
  br i1 %207, label %208, label %259

208:                                              ; preds = %205
  br label %209

209:                                              ; preds = %208
  br label %210

210:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %211 = call ptr @__errno_location() #9
  %212 = load i32, ptr %211, align 4, !tbaa !5
  store i32 %212, ptr %8, align 4, !tbaa !5
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = call i32 @s2n_print_stacktrace(ptr noundef %213)
  %215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %216 = trunc i8 %215 to i1
  br i1 %216, label %217, label %239

217:                                              ; preds = %210
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = call i32 @fileno(ptr noundef %218) #8
  %220 = call i32 @isatty(i32 noundef %219) #8
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %222, label %239

222:                                              ; preds = %217
  %223 = load i32, ptr %8, align 4, !tbaa !5
  %224 = call ptr @__errno_location() #9
  store i32 %223, ptr %224, align 4, !tbaa !5
  %225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %226 = load i32, ptr @test_count, align 4, !tbaa !5
  %227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = call ptr @s2n_strerror(i32 noundef %228, ptr noundef @.str.4)
  %230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror_debug(i32 noundef %231, ptr noundef @.str.4)
  %233 = call ptr @__errno_location() #9
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = call ptr @strerror(i32 noundef %234) #8
  %236 = call ptr @__errno_location() #9
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %225, ptr noundef @.str.2, i32 noundef %226, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 22, ptr noundef %229, ptr noundef %232, ptr noundef %235, i32 noundef %237) #8
  br label %256

239:                                              ; preds = %217, %210
  %240 = load i32, ptr %8, align 4, !tbaa !5
  %241 = call ptr @__errno_location() #9
  store i32 %240, ptr %241, align 4, !tbaa !5
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = load i32, ptr @test_count, align 4, !tbaa !5
  %244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call ptr @s2n_strerror(i32 noundef %245, ptr noundef @.str.4)
  %247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call ptr @s2n_strerror_debug(i32 noundef %248, ptr noundef @.str.4)
  %250 = call ptr @__errno_location() #9
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call ptr @strerror(i32 noundef %251) #8
  %253 = call ptr @__errno_location() #9
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %242, ptr noundef @.str.5, i32 noundef %243, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 22, ptr noundef %246, ptr noundef %249, ptr noundef %252, i32 noundef %254) #8
  br label %256

256:                                              ; preds = %239, %222
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %257

257:                                              ; preds = %256
  call void @exit(i32 noundef 1) #10
  unreachable

258:                                              ; No predecessors!
  br label %259

259:                                              ; preds = %258, %205
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  br label %262

262:                                              ; preds = %261
  %263 = load i32, ptr @test_count, align 4, !tbaa !5
  %264 = add nsw i32 %263, 1
  store i32 %264, ptr @test_count, align 4, !tbaa !5
  %265 = call i32 (...) @s2n_disable_tls13_in_test()
  %266 = icmp eq i32 %265, -1
  br i1 %266, label %267, label %318

267:                                              ; preds = %262
  br label %268

268:                                              ; preds = %267
  br label %269

269:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  %270 = call ptr @__errno_location() #9
  %271 = load i32, ptr %270, align 4, !tbaa !5
  store i32 %271, ptr %9, align 4, !tbaa !5
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = call i32 @s2n_print_stacktrace(ptr noundef %272)
  %274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %275 = trunc i8 %274 to i1
  br i1 %275, label %276, label %298

276:                                              ; preds = %269
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = call i32 @fileno(ptr noundef %277) #8
  %279 = call i32 @isatty(i32 noundef %278) #8
  %280 = icmp ne i32 %279, 0
  br i1 %280, label %281, label %298

281:                                              ; preds = %276
  %282 = load i32, ptr %9, align 4, !tbaa !5
  %283 = call ptr @__errno_location() #9
  store i32 %282, ptr %283, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = call ptr @s2n_strerror(i32 noundef %287, ptr noundef @.str.4)
  %289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = call ptr @s2n_strerror_debug(i32 noundef %290, ptr noundef @.str.4)
  %292 = call ptr @__errno_location() #9
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call ptr @strerror(i32 noundef %293) #8
  %295 = call ptr @__errno_location() #9
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %284, ptr noundef @.str.2, i32 noundef %285, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 23, ptr noundef %288, ptr noundef %291, ptr noundef %294, i32 noundef %296) #8
  br label %315

298:                                              ; preds = %276, %269
  %299 = load i32, ptr %9, align 4, !tbaa !5
  %300 = call ptr @__errno_location() #9
  store i32 %299, ptr %300, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call ptr @s2n_strerror(i32 noundef %304, ptr noundef @.str.4)
  %306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = call ptr @s2n_strerror_debug(i32 noundef %307, ptr noundef @.str.4)
  %309 = call ptr @__errno_location() #9
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @strerror(i32 noundef %310) #8
  %312 = call ptr @__errno_location() #9
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef @.str.5, i32 noundef %302, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 23, ptr noundef %305, ptr noundef %308, ptr noundef %311, i32 noundef %313) #8
  br label %315

315:                                              ; preds = %298, %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %316

316:                                              ; preds = %315
  call void @exit(i32 noundef 1) #10
  unreachable

317:                                              ; No predecessors!
  br label %318

318:                                              ; preds = %317, %262
  br label %319

319:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  %320 = call ptr @s2n_config_new()
  store ptr %320, ptr %10, align 8, !tbaa !9
  br label %321

321:                                              ; preds = %319
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = add nsw i32 %322, 1
  store i32 %323, ptr @test_count, align 4, !tbaa !5
  %324 = load ptr, ptr %10, align 8, !tbaa !9
  %325 = icmp eq ptr %324, null
  br i1 %325, label %326, label %379

326:                                              ; preds = %321
  br label %327

327:                                              ; preds = %326
  br label %328

328:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  %329 = call ptr @__errno_location() #9
  %330 = load i32, ptr %329, align 4, !tbaa !5
  store i32 %330, ptr %11, align 4, !tbaa !5
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = call i32 @s2n_print_stacktrace(ptr noundef %331)
  %333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %334 = trunc i8 %333 to i1
  br i1 %334, label %335, label %357

335:                                              ; preds = %328
  %336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %337 = call i32 @fileno(ptr noundef %336) #8
  %338 = call i32 @isatty(i32 noundef %337) #8
  %339 = icmp ne i32 %338, 0
  br i1 %339, label %340, label %357

340:                                              ; preds = %335
  %341 = load i32, ptr %11, align 4, !tbaa !5
  %342 = call ptr @__errno_location() #9
  store i32 %341, ptr %342, align 4, !tbaa !5
  %343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %344 = load i32, ptr @test_count, align 4, !tbaa !5
  %345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %346 = load i32, ptr %345, align 4, !tbaa !5
  %347 = call ptr @s2n_strerror(i32 noundef %346, ptr noundef @.str.4)
  %348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %349 = load i32, ptr %348, align 4, !tbaa !5
  %350 = call ptr @s2n_strerror_debug(i32 noundef %349, ptr noundef @.str.4)
  %351 = call ptr @__errno_location() #9
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @strerror(i32 noundef %352) #8
  %354 = call ptr @__errno_location() #9
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %343, ptr noundef @.str.2, i32 noundef %344, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 28, ptr noundef %347, ptr noundef %350, ptr noundef %353, i32 noundef %355) #8
  br label %374

357:                                              ; preds = %335, %328
  %358 = load i32, ptr %11, align 4, !tbaa !5
  %359 = call ptr @__errno_location() #9
  store i32 %358, ptr %359, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = load i32, ptr @test_count, align 4, !tbaa !5
  %362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror(i32 noundef %363, ptr noundef @.str.4)
  %365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call ptr @s2n_strerror_debug(i32 noundef %366, ptr noundef @.str.4)
  %368 = call ptr @__errno_location() #9
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call ptr @strerror(i32 noundef %369) #8
  %371 = call ptr @__errno_location() #9
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %360, ptr noundef @.str.5, i32 noundef %361, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 28, ptr noundef %364, ptr noundef %367, ptr noundef %370, i32 noundef %372) #8
  br label %374

374:                                              ; preds = %357, %340
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  br label %375

375:                                              ; preds = %374
  br label %376

376:                                              ; preds = %375
  call void @exit(i32 noundef 1) #10
  unreachable

377:                                              ; No predecessors!
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378, %321
  br label %380

380:                                              ; preds = %379
  br label %381

381:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  %382 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %382, ptr %12, align 8, !tbaa !9
  br label %383

383:                                              ; preds = %381
  %384 = load i32, ptr @test_count, align 4, !tbaa !5
  %385 = add nsw i32 %384, 1
  store i32 %385, ptr @test_count, align 4, !tbaa !5
  %386 = load ptr, ptr %12, align 8, !tbaa !9
  %387 = icmp eq ptr %386, null
  br i1 %387, label %388, label %441

388:                                              ; preds = %383
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %391 = call ptr @__errno_location() #9
  %392 = load i32, ptr %391, align 4, !tbaa !5
  store i32 %392, ptr %13, align 4, !tbaa !5
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = call i32 @s2n_print_stacktrace(ptr noundef %393)
  %395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %396 = trunc i8 %395 to i1
  br i1 %396, label %397, label %419

397:                                              ; preds = %390
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = call i32 @fileno(ptr noundef %398) #8
  %400 = call i32 @isatty(i32 noundef %399) #8
  %401 = icmp ne i32 %400, 0
  br i1 %401, label %402, label %419

402:                                              ; preds = %397
  %403 = load i32, ptr %13, align 4, !tbaa !5
  %404 = call ptr @__errno_location() #9
  store i32 %403, ptr %404, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = load i32, ptr @test_count, align 4, !tbaa !5
  %407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror(i32 noundef %408, ptr noundef @.str.4)
  %410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call ptr @s2n_strerror_debug(i32 noundef %411, ptr noundef @.str.4)
  %413 = call ptr @__errno_location() #9
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call ptr @strerror(i32 noundef %414) #8
  %416 = call ptr @__errno_location() #9
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %405, ptr noundef @.str.2, i32 noundef %406, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 30, ptr noundef %409, ptr noundef %412, ptr noundef %415, i32 noundef %417) #8
  br label %436

419:                                              ; preds = %397, %390
  %420 = load i32, ptr %13, align 4, !tbaa !5
  %421 = call ptr @__errno_location() #9
  store i32 %420, ptr %421, align 4, !tbaa !5
  %422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @s2n_strerror(i32 noundef %425, ptr noundef @.str.4)
  %427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call ptr @s2n_strerror_debug(i32 noundef %428, ptr noundef @.str.4)
  %430 = call ptr @__errno_location() #9
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call ptr @strerror(i32 noundef %431) #8
  %433 = call ptr @__errno_location() #9
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %422, ptr noundef @.str.5, i32 noundef %423, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 30, ptr noundef %426, ptr noundef %429, ptr noundef %432, i32 noundef %434) #8
  br label %436

436:                                              ; preds = %419, %402
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %437

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  call void @exit(i32 noundef 1) #10
  unreachable

439:                                              ; No predecessors!
  br label %440

440:                                              ; preds = %439
  br label %441

441:                                              ; preds = %440, %383
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442
  br label %444

444:                                              ; preds = %443
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr @test_count, align 4, !tbaa !5
  %447 = load ptr, ptr %12, align 8, !tbaa !9
  %448 = load ptr, ptr %10, align 8, !tbaa !9
  %449 = call i32 @s2n_connection_set_config(ptr noundef %447, ptr noundef %448)
  %450 = icmp eq i32 %449, -1
  br i1 %450, label %451, label %504

451:                                              ; preds = %444
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %454 = call ptr @__errno_location() #9
  %455 = load i32, ptr %454, align 4, !tbaa !5
  store i32 %455, ptr %14, align 4, !tbaa !5
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = call i32 @s2n_print_stacktrace(ptr noundef %456)
  %458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %459 = trunc i8 %458 to i1
  br i1 %459, label %460, label %482

460:                                              ; preds = %453
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = call i32 @fileno(ptr noundef %461) #8
  %463 = call i32 @isatty(i32 noundef %462) #8
  %464 = icmp ne i32 %463, 0
  br i1 %464, label %465, label %482

465:                                              ; preds = %460
  %466 = load i32, ptr %14, align 4, !tbaa !5
  %467 = call ptr @__errno_location() #9
  store i32 %466, ptr %467, align 4, !tbaa !5
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = load i32, ptr @test_count, align 4, !tbaa !5
  %470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %471 = load i32, ptr %470, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror(i32 noundef %471, ptr noundef @.str.4)
  %473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror_debug(i32 noundef %474, ptr noundef @.str.4)
  %476 = call ptr @__errno_location() #9
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call ptr @strerror(i32 noundef %477) #8
  %479 = call ptr @__errno_location() #9
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %468, ptr noundef @.str.2, i32 noundef %469, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 31, ptr noundef %472, ptr noundef %475, ptr noundef %478, i32 noundef %480) #8
  br label %499

482:                                              ; preds = %460, %453
  %483 = load i32, ptr %14, align 4, !tbaa !5
  %484 = call ptr @__errno_location() #9
  store i32 %483, ptr %484, align 4, !tbaa !5
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror(i32 noundef %488, ptr noundef @.str.4)
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror_debug(i32 noundef %491, ptr noundef @.str.4)
  %493 = call ptr @__errno_location() #9
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @strerror(i32 noundef %494) #8
  %496 = call ptr @__errno_location() #9
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %485, ptr noundef @.str.5, i32 noundef %486, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 31, ptr noundef %489, ptr noundef %492, ptr noundef %495, i32 noundef %497) #8
  br label %499

499:                                              ; preds = %482, %465
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %500

500:                                              ; preds = %499
  br label %501

501:                                              ; preds = %500
  call void @exit(i32 noundef 1) #10
  unreachable

502:                                              ; No predecessors!
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503, %444
  br label %505

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506
  %508 = load i32, ptr @test_count, align 4, !tbaa !5
  %509 = add nsw i32 %508, 1
  store i32 %509, ptr @test_count, align 4, !tbaa !5
  %510 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cert_status_request_extension, i32 0, i32 5), align 8, !tbaa !15
  %511 = load ptr, ptr %12, align 8, !tbaa !9
  %512 = call zeroext i1 %510(ptr noundef %511)
  br i1 %512, label %513, label %566

513:                                              ; preds = %507
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %516 = call ptr @__errno_location() #9
  %517 = load i32, ptr %516, align 4, !tbaa !5
  store i32 %517, ptr %15, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = call i32 @s2n_print_stacktrace(ptr noundef %518)
  %520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %521 = trunc i8 %520 to i1
  br i1 %521, label %522, label %544

522:                                              ; preds = %515
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = call i32 @fileno(ptr noundef %523) #8
  %525 = call i32 @isatty(i32 noundef %524) #8
  %526 = icmp ne i32 %525, 0
  br i1 %526, label %527, label %544

527:                                              ; preds = %522
  %528 = load i32, ptr %15, align 4, !tbaa !5
  %529 = call ptr @__errno_location() #9
  store i32 %528, ptr %529, align 4, !tbaa !5
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call ptr @s2n_strerror(i32 noundef %533, ptr noundef @.str.4)
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror_debug(i32 noundef %536, ptr noundef @.str.4)
  %538 = call ptr @__errno_location() #9
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @strerror(i32 noundef %539) #8
  %541 = call ptr @__errno_location() #9
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %530, ptr noundef @.str.2, i32 noundef %531, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 33, ptr noundef %534, ptr noundef %537, ptr noundef %540, i32 noundef %542) #8
  br label %561

544:                                              ; preds = %522, %515
  %545 = load i32, ptr %15, align 4, !tbaa !5
  %546 = call ptr @__errno_location() #9
  store i32 %545, ptr %546, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = load i32, ptr @test_count, align 4, !tbaa !5
  %549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror(i32 noundef %550, ptr noundef @.str.4)
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef %553, ptr noundef @.str.4)
  %555 = call ptr @__errno_location() #9
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #8
  %558 = call ptr @__errno_location() #9
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %547, ptr noundef @.str.5, i32 noundef %548, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 33, ptr noundef %551, ptr noundef %554, ptr noundef %557, i32 noundef %559) #8
  br label %561

561:                                              ; preds = %544, %527
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %562

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562
  call void @exit(i32 noundef 1) #10
  unreachable

564:                                              ; No predecessors!
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565, %507
  br label %567

567:                                              ; preds = %566
  br label %568

568:                                              ; preds = %567
  %569 = call i32 @s2n_connection_ptr_free(ptr noundef %12)
  %570 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %569, ptr %570, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  %571 = call i32 @s2n_config_ptr_free(ptr noundef %10)
  %572 = getelementptr inbounds %struct.s2n_result, ptr %17, i32 0, i32 0
  store i32 %571, ptr %572, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %573 = call ptr @s2n_config_new()
  store ptr %573, ptr %18, align 8, !tbaa !9
  br label %574

574:                                              ; preds = %568
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = add nsw i32 %575, 1
  store i32 %576, ptr @test_count, align 4, !tbaa !5
  %577 = load ptr, ptr %18, align 8, !tbaa !9
  %578 = icmp eq ptr %577, null
  br i1 %578, label %579, label %632

579:                                              ; preds = %574
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %582 = call ptr @__errno_location() #9
  %583 = load i32, ptr %582, align 4, !tbaa !5
  store i32 %583, ptr %19, align 4, !tbaa !5
  %584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %585 = call i32 @s2n_print_stacktrace(ptr noundef %584)
  %586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %587 = trunc i8 %586 to i1
  br i1 %587, label %588, label %610

588:                                              ; preds = %581
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = call i32 @fileno(ptr noundef %589) #8
  %591 = call i32 @isatty(i32 noundef %590) #8
  %592 = icmp ne i32 %591, 0
  br i1 %592, label %593, label %610

593:                                              ; preds = %588
  %594 = load i32, ptr %19, align 4, !tbaa !5
  %595 = call ptr @__errno_location() #9
  store i32 %594, ptr %595, align 4, !tbaa !5
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = load i32, ptr @test_count, align 4, !tbaa !5
  %598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = call ptr @s2n_strerror(i32 noundef %599, ptr noundef @.str.4)
  %601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror_debug(i32 noundef %602, ptr noundef @.str.4)
  %604 = call ptr @__errno_location() #9
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #8
  %607 = call ptr @__errno_location() #9
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %596, ptr noundef @.str.2, i32 noundef %597, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 39, ptr noundef %600, ptr noundef %603, ptr noundef %606, i32 noundef %608) #8
  br label %627

610:                                              ; preds = %588, %581
  %611 = load i32, ptr %19, align 4, !tbaa !5
  %612 = call ptr @__errno_location() #9
  store i32 %611, ptr %612, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror(i32 noundef %616, ptr noundef @.str.4)
  %618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call ptr @s2n_strerror_debug(i32 noundef %619, ptr noundef @.str.4)
  %621 = call ptr @__errno_location() #9
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call ptr @strerror(i32 noundef %622) #8
  %624 = call ptr @__errno_location() #9
  %625 = load i32, ptr %624, align 4, !tbaa !5
  %626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %613, ptr noundef @.str.5, i32 noundef %614, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 39, ptr noundef %617, ptr noundef %620, ptr noundef %623, i32 noundef %625) #8
  br label %627

627:                                              ; preds = %610, %593
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %628
  call void @exit(i32 noundef 1) #10
  unreachable

630:                                              ; No predecessors!
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631, %574
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  %635 = load ptr, ptr %18, align 8, !tbaa !9
  %636 = load i32, ptr %635, align 8
  %637 = and i32 %636, -32769
  %638 = or i32 %637, 32768
  store i32 %638, ptr %635, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %639 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %639, ptr %20, align 8, !tbaa !9
  br label %640

640:                                              ; preds = %634
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr @test_count, align 4, !tbaa !5
  %643 = load ptr, ptr %20, align 8, !tbaa !9
  %644 = icmp eq ptr %643, null
  br i1 %644, label %645, label %698

645:                                              ; preds = %640
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %648 = call ptr @__errno_location() #9
  %649 = load i32, ptr %648, align 4, !tbaa !5
  store i32 %649, ptr %21, align 4, !tbaa !5
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = call i32 @s2n_print_stacktrace(ptr noundef %650)
  %652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %653 = trunc i8 %652 to i1
  br i1 %653, label %654, label %676

654:                                              ; preds = %647
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = call i32 @fileno(ptr noundef %655) #8
  %657 = call i32 @isatty(i32 noundef %656) #8
  %658 = icmp ne i32 %657, 0
  br i1 %658, label %659, label %676

659:                                              ; preds = %654
  %660 = load i32, ptr %21, align 4, !tbaa !5
  %661 = call ptr @__errno_location() #9
  store i32 %660, ptr %661, align 4, !tbaa !5
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = load i32, ptr @test_count, align 4, !tbaa !5
  %664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %665 = load i32, ptr %664, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror(i32 noundef %665, ptr noundef @.str.4)
  %667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror_debug(i32 noundef %668, ptr noundef @.str.4)
  %670 = call ptr @__errno_location() #9
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @strerror(i32 noundef %671) #8
  %673 = call ptr @__errno_location() #9
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %662, ptr noundef @.str.2, i32 noundef %663, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 43, ptr noundef %666, ptr noundef %669, ptr noundef %672, i32 noundef %674) #8
  br label %693

676:                                              ; preds = %654, %647
  %677 = load i32, ptr %21, align 4, !tbaa !5
  %678 = call ptr @__errno_location() #9
  store i32 %677, ptr %678, align 4, !tbaa !5
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror(i32 noundef %682, ptr noundef @.str.4)
  %684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %685 = load i32, ptr %684, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror_debug(i32 noundef %685, ptr noundef @.str.4)
  %687 = call ptr @__errno_location() #9
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call ptr @strerror(i32 noundef %688) #8
  %690 = call ptr @__errno_location() #9
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %679, ptr noundef @.str.5, i32 noundef %680, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 43, ptr noundef %683, ptr noundef %686, ptr noundef %689, i32 noundef %691) #8
  br label %693

693:                                              ; preds = %676, %659
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  call void @exit(i32 noundef 1) #10
  unreachable

696:                                              ; No predecessors!
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697, %640
  br label %699

699:                                              ; preds = %698
  br label %700

700:                                              ; preds = %699
  br label %701

701:                                              ; preds = %700
  %702 = load i32, ptr @test_count, align 4, !tbaa !5
  %703 = add nsw i32 %702, 1
  store i32 %703, ptr @test_count, align 4, !tbaa !5
  %704 = load ptr, ptr %20, align 8, !tbaa !9
  %705 = load ptr, ptr %18, align 8, !tbaa !9
  %706 = call i32 @s2n_connection_set_config(ptr noundef %704, ptr noundef %705)
  %707 = icmp eq i32 %706, -1
  br i1 %707, label %708, label %761

708:                                              ; preds = %701
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %711 = call ptr @__errno_location() #9
  %712 = load i32, ptr %711, align 4, !tbaa !5
  store i32 %712, ptr %22, align 4, !tbaa !5
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @s2n_print_stacktrace(ptr noundef %713)
  %715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %716 = trunc i8 %715 to i1
  br i1 %716, label %717, label %739

717:                                              ; preds = %710
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = call i32 @fileno(ptr noundef %718) #8
  %720 = call i32 @isatty(i32 noundef %719) #8
  %721 = icmp ne i32 %720, 0
  br i1 %721, label %722, label %739

722:                                              ; preds = %717
  %723 = load i32, ptr %22, align 4, !tbaa !5
  %724 = call ptr @__errno_location() #9
  store i32 %723, ptr %724, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror(i32 noundef %728, ptr noundef @.str.4)
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef @.str.4)
  %733 = call ptr @__errno_location() #9
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @strerror(i32 noundef %734) #8
  %736 = call ptr @__errno_location() #9
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef @.str.2, i32 noundef %726, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 44, ptr noundef %729, ptr noundef %732, ptr noundef %735, i32 noundef %737) #8
  br label %756

739:                                              ; preds = %717, %710
  %740 = load i32, ptr %22, align 4, !tbaa !5
  %741 = call ptr @__errno_location() #9
  store i32 %740, ptr %741, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror(i32 noundef %745, ptr noundef @.str.4)
  %747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror_debug(i32 noundef %748, ptr noundef @.str.4)
  %750 = call ptr @__errno_location() #9
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call ptr @strerror(i32 noundef %751) #8
  %753 = call ptr @__errno_location() #9
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef @.str.5, i32 noundef %743, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 44, ptr noundef %746, ptr noundef %749, ptr noundef %752, i32 noundef %754) #8
  br label %756

756:                                              ; preds = %739, %722
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  call void @exit(i32 noundef 1) #10
  unreachable

759:                                              ; No predecessors!
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760, %701
  br label %762

762:                                              ; preds = %761
  br label %763

763:                                              ; preds = %762
  br label %764

764:                                              ; preds = %763
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cert_status_request_extension, i32 0, i32 5), align 8, !tbaa !15
  %768 = load ptr, ptr %20, align 8, !tbaa !9
  %769 = call zeroext i1 %767(ptr noundef %768)
  br i1 %769, label %823, label %770

770:                                              ; preds = %764
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %773 = call ptr @__errno_location() #9
  %774 = load i32, ptr %773, align 4, !tbaa !5
  store i32 %774, ptr %23, align 4, !tbaa !5
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @s2n_print_stacktrace(ptr noundef %775)
  %777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %778 = trunc i8 %777 to i1
  br i1 %778, label %779, label %801

779:                                              ; preds = %772
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = call i32 @fileno(ptr noundef %780) #8
  %782 = call i32 @isatty(i32 noundef %781) #8
  %783 = icmp ne i32 %782, 0
  br i1 %783, label %784, label %801

784:                                              ; preds = %779
  %785 = load i32, ptr %23, align 4, !tbaa !5
  %786 = call ptr @__errno_location() #9
  store i32 %785, ptr %786, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror(i32 noundef %790, ptr noundef @.str.4)
  %792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef @.str.4)
  %795 = call ptr @__errno_location() #9
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @strerror(i32 noundef %796) #8
  %798 = call ptr @__errno_location() #9
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %787, ptr noundef @.str.2, i32 noundef %788, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 46, ptr noundef %791, ptr noundef %794, ptr noundef %797, i32 noundef %799) #8
  br label %818

801:                                              ; preds = %779, %772
  %802 = load i32, ptr %23, align 4, !tbaa !5
  %803 = call ptr @__errno_location() #9
  store i32 %802, ptr %803, align 4, !tbaa !5
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = load i32, ptr @test_count, align 4, !tbaa !5
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror(i32 noundef %807, ptr noundef @.str.4)
  %809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror_debug(i32 noundef %810, ptr noundef @.str.4)
  %812 = call ptr @__errno_location() #9
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @strerror(i32 noundef %813) #8
  %815 = call ptr @__errno_location() #9
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %804, ptr noundef @.str.5, i32 noundef %805, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 46, ptr noundef %808, ptr noundef %811, ptr noundef %814, i32 noundef %816) #8
  br label %818

818:                                              ; preds = %801, %784
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  call void @exit(i32 noundef 1) #10
  unreachable

821:                                              ; No predecessors!
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822, %764
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824
  %826 = call i32 @s2n_connection_ptr_free(ptr noundef %20)
  %827 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %826, ptr %827, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  %828 = call i32 @s2n_config_ptr_free(ptr noundef %18)
  %829 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %828, ptr %829, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %830 = call ptr @s2n_config_new()
  store ptr %830, ptr %26, align 8, !tbaa !9
  br label %831

831:                                              ; preds = %825
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = load ptr, ptr %26, align 8, !tbaa !9
  %835 = icmp eq ptr %834, null
  br i1 %835, label %836, label %889

836:                                              ; preds = %831
  br label %837

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %839 = call ptr @__errno_location() #9
  %840 = load i32, ptr %839, align 4, !tbaa !5
  store i32 %840, ptr %27, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @s2n_print_stacktrace(ptr noundef %841)
  %843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %844 = trunc i8 %843 to i1
  br i1 %844, label %845, label %867

845:                                              ; preds = %838
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = call i32 @fileno(ptr noundef %846) #8
  %848 = call i32 @isatty(i32 noundef %847) #8
  %849 = icmp ne i32 %848, 0
  br i1 %849, label %850, label %867

850:                                              ; preds = %845
  %851 = load i32, ptr %27, align 4, !tbaa !5
  %852 = call ptr @__errno_location() #9
  store i32 %851, ptr %852, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror(i32 noundef %856, ptr noundef @.str.4)
  %858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %859 = load i32, ptr %858, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror_debug(i32 noundef %859, ptr noundef @.str.4)
  %861 = call ptr @__errno_location() #9
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call ptr @strerror(i32 noundef %862) #8
  %864 = call ptr @__errno_location() #9
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef @.str.2, i32 noundef %854, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 50, ptr noundef %857, ptr noundef %860, ptr noundef %863, i32 noundef %865) #8
  br label %884

867:                                              ; preds = %845, %838
  %868 = load i32, ptr %27, align 4, !tbaa !5
  %869 = call ptr @__errno_location() #9
  store i32 %868, ptr %869, align 4, !tbaa !5
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call ptr @s2n_strerror(i32 noundef %873, ptr noundef @.str.4)
  %875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror_debug(i32 noundef %876, ptr noundef @.str.4)
  %878 = call ptr @__errno_location() #9
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #8
  %881 = call ptr @__errno_location() #9
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %870, ptr noundef @.str.5, i32 noundef %871, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 50, ptr noundef %874, ptr noundef %877, ptr noundef %880, i32 noundef %882) #8
  br label %884

884:                                              ; preds = %867, %850
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %885

885:                                              ; preds = %884
  br label %886

886:                                              ; preds = %885
  call void @exit(i32 noundef 1) #10
  unreachable

887:                                              ; No predecessors!
  br label %888

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888, %831
  br label %890

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890
  %892 = load ptr, ptr %26, align 8, !tbaa !9
  %893 = load i32, ptr %892, align 8
  %894 = and i32 %893, -32769
  %895 = or i32 %894, 32768
  store i32 %895, ptr %892, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  store ptr null, ptr %28, align 8, !tbaa !9
  br label %896

896:                                              ; preds = %891
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr @test_count, align 4, !tbaa !5
  %899 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %899, ptr %28, align 8, !tbaa !9
  %900 = icmp eq ptr %899, null
  br i1 %900, label %901, label %954

901:                                              ; preds = %896
  br label %902

902:                                              ; preds = %901
  br label %903

903:                                              ; preds = %902
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %904 = call ptr @__errno_location() #9
  %905 = load i32, ptr %904, align 4, !tbaa !5
  store i32 %905, ptr %29, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @s2n_print_stacktrace(ptr noundef %906)
  %908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %909 = trunc i8 %908 to i1
  br i1 %909, label %910, label %932

910:                                              ; preds = %903
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = call i32 @fileno(ptr noundef %911) #8
  %913 = call i32 @isatty(i32 noundef %912) #8
  %914 = icmp ne i32 %913, 0
  br i1 %914, label %915, label %932

915:                                              ; preds = %910
  %916 = load i32, ptr %29, align 4, !tbaa !5
  %917 = call ptr @__errno_location() #9
  store i32 %916, ptr %917, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror(i32 noundef %921, ptr noundef @.str.4)
  %923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call ptr @s2n_strerror_debug(i32 noundef %924, ptr noundef @.str.4)
  %926 = call ptr @__errno_location() #9
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @strerror(i32 noundef %927) #8
  %929 = call ptr @__errno_location() #9
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %918, ptr noundef @.str.2, i32 noundef %919, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 58, ptr noundef %922, ptr noundef %925, ptr noundef %928, i32 noundef %930) #8
  br label %949

932:                                              ; preds = %910, %903
  %933 = load i32, ptr %29, align 4, !tbaa !5
  %934 = call ptr @__errno_location() #9
  store i32 %933, ptr %934, align 4, !tbaa !5
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror(i32 noundef %938, ptr noundef @.str.4)
  %940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror_debug(i32 noundef %941, ptr noundef @.str.4)
  %943 = call ptr @__errno_location() #9
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #8
  %946 = call ptr @__errno_location() #9
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %935, ptr noundef @.str.5, i32 noundef %936, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 58, ptr noundef %939, ptr noundef %942, ptr noundef %945, i32 noundef %947) #8
  br label %949

949:                                              ; preds = %932, %915
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  call void @exit(i32 noundef 1) #10
  unreachable

952:                                              ; No predecessors!
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953, %896
  br label %955

955:                                              ; preds = %954
  br label %956

956:                                              ; preds = %955
  br label %957

957:                                              ; preds = %956
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = add nsw i32 %958, 1
  store i32 %959, ptr @test_count, align 4, !tbaa !5
  %960 = load ptr, ptr %28, align 8, !tbaa !9
  %961 = load ptr, ptr %26, align 8, !tbaa !9
  %962 = call i32 @s2n_connection_set_config(ptr noundef %960, ptr noundef %961)
  %963 = icmp eq i32 %962, -1
  br i1 %963, label %964, label %1017

964:                                              ; preds = %957
  br label %965

965:                                              ; preds = %964
  br label %966

966:                                              ; preds = %965
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %967 = call ptr @__errno_location() #9
  %968 = load i32, ptr %967, align 4, !tbaa !5
  store i32 %968, ptr %30, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = call i32 @s2n_print_stacktrace(ptr noundef %969)
  %971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %972 = trunc i8 %971 to i1
  br i1 %972, label %973, label %995

973:                                              ; preds = %966
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = call i32 @fileno(ptr noundef %974) #8
  %976 = call i32 @isatty(i32 noundef %975) #8
  %977 = icmp ne i32 %976, 0
  br i1 %977, label %978, label %995

978:                                              ; preds = %973
  %979 = load i32, ptr %30, align 4, !tbaa !5
  %980 = call ptr @__errno_location() #9
  store i32 %979, ptr %980, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror(i32 noundef %984, ptr noundef @.str.4)
  %986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror_debug(i32 noundef %987, ptr noundef @.str.4)
  %989 = call ptr @__errno_location() #9
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @strerror(i32 noundef %990) #8
  %992 = call ptr @__errno_location() #9
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %981, ptr noundef @.str.2, i32 noundef %982, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 59, ptr noundef %985, ptr noundef %988, ptr noundef %991, i32 noundef %993) #8
  br label %1012

995:                                              ; preds = %973, %966
  %996 = load i32, ptr %30, align 4, !tbaa !5
  %997 = call ptr @__errno_location() #9
  store i32 %996, ptr %997, align 4, !tbaa !5
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror(i32 noundef %1001, ptr noundef @.str.4)
  %1003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef @.str.4)
  %1006 = call ptr @__errno_location() #9
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @strerror(i32 noundef %1007) #8
  %1009 = call ptr @__errno_location() #9
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %998, ptr noundef @.str.5, i32 noundef %999, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1002, ptr noundef %1005, ptr noundef %1008, i32 noundef %1010) #8
  br label %1012

1012:                                             ; preds = %995, %978
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1013

1013:                                             ; preds = %1012
  br label %1014

1014:                                             ; preds = %1013
  call void @exit(i32 noundef 1) #10
  unreachable

1015:                                             ; No predecessors!
  br label %1016

1016:                                             ; preds = %1015
  br label %1017

1017:                                             ; preds = %1016, %957
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

1019:                                             ; preds = %1018
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #8
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 40, i1 false)
  br label %1020

1020:                                             ; preds = %1019
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = add nsw i32 %1021, 1
  store i32 %1022, ptr @test_count, align 4, !tbaa !5
  %1023 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %31, i32 noundef 0)
  %1024 = icmp eq i32 %1023, -1
  br i1 %1024, label %1025, label %1078

1025:                                             ; preds = %1020
  br label %1026

1026:                                             ; preds = %1025
  br label %1027

1027:                                             ; preds = %1026
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %1028 = call ptr @__errno_location() #9
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  store i32 %1029, ptr %32, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = call i32 @s2n_print_stacktrace(ptr noundef %1030)
  %1032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1033 = trunc i8 %1032 to i1
  br i1 %1033, label %1034, label %1056

1034:                                             ; preds = %1027
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = call i32 @fileno(ptr noundef %1035) #8
  %1037 = call i32 @isatty(i32 noundef %1036) #8
  %1038 = icmp ne i32 %1037, 0
  br i1 %1038, label %1039, label %1056

1039:                                             ; preds = %1034
  %1040 = load i32, ptr %32, align 4, !tbaa !5
  %1041 = call ptr @__errno_location() #9
  store i32 %1040, ptr %1041, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror(i32 noundef %1045, ptr noundef @.str.4)
  %1047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror_debug(i32 noundef %1048, ptr noundef @.str.4)
  %1050 = call ptr @__errno_location() #9
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @strerror(i32 noundef %1051) #8
  %1053 = call ptr @__errno_location() #9
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1042, ptr noundef @.str.2, i32 noundef %1043, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1046, ptr noundef %1049, ptr noundef %1052, i32 noundef %1054) #8
  br label %1073

1056:                                             ; preds = %1034, %1027
  %1057 = load i32, ptr %32, align 4, !tbaa !5
  %1058 = call ptr @__errno_location() #9
  store i32 %1057, ptr %1058, align 4, !tbaa !5
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @s2n_strerror(i32 noundef %1062, ptr noundef @.str.4)
  %1064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror_debug(i32 noundef %1065, ptr noundef @.str.4)
  %1067 = call ptr @__errno_location() #9
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @strerror(i32 noundef %1068) #8
  %1070 = call ptr @__errno_location() #9
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1059, ptr noundef @.str.5, i32 noundef %1060, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1063, ptr noundef %1066, ptr noundef %1069, i32 noundef %1071) #8
  br label %1073

1073:                                             ; preds = %1056, %1039
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074
  call void @exit(i32 noundef 1) #10
  unreachable

1076:                                             ; No predecessors!
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077, %1020
  br label %1079

1079:                                             ; preds = %1078
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080
  %1082 = load i32, ptr @test_count, align 4, !tbaa !5
  %1083 = add nsw i32 %1082, 1
  store i32 %1083, ptr @test_count, align 4, !tbaa !5
  %1084 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cert_status_request_extension, i32 0, i32 3), align 8, !tbaa !18
  %1085 = load ptr, ptr %28, align 8, !tbaa !9
  %1086 = call i32 %1084(ptr noundef %1085, ptr noundef %31)
  %1087 = icmp eq i32 %1086, -1
  br i1 %1087, label %1088, label %1141

1088:                                             ; preds = %1081
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1091 = call ptr @__errno_location() #9
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  store i32 %1092, ptr %33, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = call i32 @s2n_print_stacktrace(ptr noundef %1093)
  %1095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1096 = trunc i8 %1095 to i1
  br i1 %1096, label %1097, label %1119

1097:                                             ; preds = %1090
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @fileno(ptr noundef %1098) #8
  %1100 = call i32 @isatty(i32 noundef %1099) #8
  %1101 = icmp ne i32 %1100, 0
  br i1 %1101, label %1102, label %1119

1102:                                             ; preds = %1097
  %1103 = load i32, ptr %33, align 4, !tbaa !5
  %1104 = call ptr @__errno_location() #9
  store i32 %1103, ptr %1104, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror(i32 noundef %1108, ptr noundef @.str.4)
  %1110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef @.str.4)
  %1113 = call ptr @__errno_location() #9
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #8
  %1116 = call ptr @__errno_location() #9
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef @.str.2, i32 noundef %1106, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1109, ptr noundef %1112, ptr noundef %1115, i32 noundef %1117) #8
  br label %1136

1119:                                             ; preds = %1097, %1090
  %1120 = load i32, ptr %33, align 4, !tbaa !5
  %1121 = call ptr @__errno_location() #9
  store i32 %1120, ptr %1121, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef @.str.4)
  %1127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror_debug(i32 noundef %1128, ptr noundef @.str.4)
  %1130 = call ptr @__errno_location() #9
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @strerror(i32 noundef %1131) #8
  %1133 = call ptr @__errno_location() #9
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef @.str.5, i32 noundef %1123, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1126, ptr noundef %1129, ptr noundef %1132, i32 noundef %1134) #8
  br label %1136

1136:                                             ; preds = %1119, %1102
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137
  call void @exit(i32 noundef 1) #10
  unreachable

1139:                                             ; No predecessors!
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140, %1081
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #8
  store i8 0, ptr %34, align 1, !tbaa !19
  br label %1144

1144:                                             ; preds = %1143
  %1145 = load i32, ptr @test_count, align 4, !tbaa !5
  %1146 = add nsw i32 %1145, 1
  store i32 %1146, ptr @test_count, align 4, !tbaa !5
  %1147 = call i32 @s2n_stuffer_read_uint8(ptr noundef %31, ptr noundef %34)
  %1148 = icmp eq i32 %1147, -1
  br i1 %1148, label %1149, label %1202

1149:                                             ; preds = %1144
  br label %1150

1150:                                             ; preds = %1149
  br label %1151

1151:                                             ; preds = %1150
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1152 = call ptr @__errno_location() #9
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  store i32 %1153, ptr %35, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @s2n_print_stacktrace(ptr noundef %1154)
  %1156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1157 = trunc i8 %1156 to i1
  br i1 %1157, label %1158, label %1180

1158:                                             ; preds = %1151
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @fileno(ptr noundef %1159) #8
  %1161 = call i32 @isatty(i32 noundef %1160) #8
  %1162 = icmp ne i32 %1161, 0
  br i1 %1162, label %1163, label %1180

1163:                                             ; preds = %1158
  %1164 = load i32, ptr %35, align 4, !tbaa !5
  %1165 = call ptr @__errno_location() #9
  store i32 %1164, ptr %1165, align 4, !tbaa !5
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %1168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror(i32 noundef %1169, ptr noundef @.str.4)
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror_debug(i32 noundef %1172, ptr noundef @.str.4)
  %1174 = call ptr @__errno_location() #9
  %1175 = load i32, ptr %1174, align 4, !tbaa !5
  %1176 = call ptr @strerror(i32 noundef %1175) #8
  %1177 = call ptr @__errno_location() #9
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1166, ptr noundef @.str.2, i32 noundef %1167, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1170, ptr noundef %1173, ptr noundef %1176, i32 noundef %1178) #8
  br label %1197

1180:                                             ; preds = %1158, %1151
  %1181 = load i32, ptr %35, align 4, !tbaa !5
  %1182 = call ptr @__errno_location() #9
  store i32 %1181, ptr %1182, align 4, !tbaa !5
  %1183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1184 = load i32, ptr @test_count, align 4, !tbaa !5
  %1185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1186 = load i32, ptr %1185, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror(i32 noundef %1186, ptr noundef @.str.4)
  %1188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1189 = load i32, ptr %1188, align 4, !tbaa !5
  %1190 = call ptr @s2n_strerror_debug(i32 noundef %1189, ptr noundef @.str.4)
  %1191 = call ptr @__errno_location() #9
  %1192 = load i32, ptr %1191, align 4, !tbaa !5
  %1193 = call ptr @strerror(i32 noundef %1192) #8
  %1194 = call ptr @__errno_location() #9
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1183, ptr noundef @.str.5, i32 noundef %1184, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1187, ptr noundef %1190, ptr noundef %1193, i32 noundef %1195) #8
  br label %1197

1197:                                             ; preds = %1180, %1163
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1198

1198:                                             ; preds = %1197
  br label %1199

1199:                                             ; preds = %1198
  call void @exit(i32 noundef 1) #10
  unreachable

1200:                                             ; No predecessors!
  br label %1201

1201:                                             ; preds = %1200
  br label %1202

1202:                                             ; preds = %1201, %1144
  br label %1203

1203:                                             ; preds = %1202
  br label %1204

1204:                                             ; preds = %1203
  br label %1205

1205:                                             ; preds = %1204
  %1206 = load i32, ptr @test_count, align 4, !tbaa !5
  %1207 = add nsw i32 %1206, 1
  store i32 %1207, ptr @test_count, align 4, !tbaa !5
  %1208 = load i8, ptr %34, align 1, !tbaa !19
  %1209 = zext i8 %1208 to i32
  %1210 = icmp eq i32 %1209, 1
  br i1 %1210, label %1264, label %1211

1211:                                             ; preds = %1205
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1214 = call ptr @__errno_location() #9
  %1215 = load i32, ptr %1214, align 4, !tbaa !5
  store i32 %1215, ptr %36, align 4, !tbaa !5
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = call i32 @s2n_print_stacktrace(ptr noundef %1216)
  %1218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1219 = trunc i8 %1218 to i1
  br i1 %1219, label %1220, label %1242

1220:                                             ; preds = %1213
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = call i32 @fileno(ptr noundef %1221) #8
  %1223 = call i32 @isatty(i32 noundef %1222) #8
  %1224 = icmp ne i32 %1223, 0
  br i1 %1224, label %1225, label %1242

1225:                                             ; preds = %1220
  %1226 = load i32, ptr %36, align 4, !tbaa !5
  %1227 = call ptr @__errno_location() #9
  store i32 %1226, ptr %1227, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror(i32 noundef %1231, ptr noundef @.str.4)
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef @.str.4)
  %1236 = call ptr @__errno_location() #9
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @strerror(i32 noundef %1237) #8
  %1239 = call ptr @__errno_location() #9
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef @.str.2, i32 noundef %1229, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1232, ptr noundef %1235, ptr noundef %1238, i32 noundef %1240) #8
  br label %1259

1242:                                             ; preds = %1220, %1213
  %1243 = load i32, ptr %36, align 4, !tbaa !5
  %1244 = call ptr @__errno_location() #9
  store i32 %1243, ptr %1244, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call ptr @s2n_strerror(i32 noundef %1248, ptr noundef @.str.4)
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror_debug(i32 noundef %1251, ptr noundef @.str.4)
  %1253 = call ptr @__errno_location() #9
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @strerror(i32 noundef %1254) #8
  %1256 = call ptr @__errno_location() #9
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef @.str.5, i32 noundef %1246, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1249, ptr noundef %1252, ptr noundef %1255, i32 noundef %1257) #8
  br label %1259

1259:                                             ; preds = %1242, %1225
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1260

1260:                                             ; preds = %1259
  br label %1261

1261:                                             ; preds = %1260
  call void @exit(i32 noundef 1) #10
  unreachable

1262:                                             ; No predecessors!
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263, %1205
  br label %1265

1265:                                             ; preds = %1264
  br label %1266

1266:                                             ; preds = %1265
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1267

1267:                                             ; preds = %1266
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = add nsw i32 %1268, 1
  store i32 %1269, ptr @test_count, align 4, !tbaa !5
  %1270 = call i32 @s2n_stuffer_read_uint32(ptr noundef %31, ptr noundef %37)
  %1271 = icmp eq i32 %1270, -1
  br i1 %1271, label %1272, label %1325

1272:                                             ; preds = %1267
  br label %1273

1273:                                             ; preds = %1272
  br label %1274

1274:                                             ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1275 = call ptr @__errno_location() #9
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  store i32 %1276, ptr %38, align 4, !tbaa !5
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1278 = call i32 @s2n_print_stacktrace(ptr noundef %1277)
  %1279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1280 = trunc i8 %1279 to i1
  br i1 %1280, label %1281, label %1303

1281:                                             ; preds = %1274
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = call i32 @fileno(ptr noundef %1282) #8
  %1284 = call i32 @isatty(i32 noundef %1283) #8
  %1285 = icmp ne i32 %1284, 0
  br i1 %1285, label %1286, label %1303

1286:                                             ; preds = %1281
  %1287 = load i32, ptr %38, align 4, !tbaa !5
  %1288 = call ptr @__errno_location() #9
  store i32 %1287, ptr %1288, align 4, !tbaa !5
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror(i32 noundef %1292, ptr noundef @.str.4)
  %1294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror_debug(i32 noundef %1295, ptr noundef @.str.4)
  %1297 = call ptr @__errno_location() #9
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call ptr @strerror(i32 noundef %1298) #8
  %1300 = call ptr @__errno_location() #9
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1289, ptr noundef @.str.2, i32 noundef %1290, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1293, ptr noundef %1296, ptr noundef %1299, i32 noundef %1301) #8
  br label %1320

1303:                                             ; preds = %1281, %1274
  %1304 = load i32, ptr %38, align 4, !tbaa !5
  %1305 = call ptr @__errno_location() #9
  store i32 %1304, ptr %1305, align 4, !tbaa !5
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = load i32, ptr @test_count, align 4, !tbaa !5
  %1308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror(i32 noundef %1309, ptr noundef @.str.4)
  %1311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call ptr @s2n_strerror_debug(i32 noundef %1312, ptr noundef @.str.4)
  %1314 = call ptr @__errno_location() #9
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call ptr @strerror(i32 noundef %1315) #8
  %1317 = call ptr @__errno_location() #9
  %1318 = load i32, ptr %1317, align 4, !tbaa !5
  %1319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1306, ptr noundef @.str.5, i32 noundef %1307, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1310, ptr noundef %1313, ptr noundef %1316, i32 noundef %1318) #8
  br label %1320

1320:                                             ; preds = %1303, %1286
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321
  call void @exit(i32 noundef 1) #10
  unreachable

1323:                                             ; No predecessors!
  br label %1324

1324:                                             ; preds = %1323
  br label %1325

1325:                                             ; preds = %1324, %1267
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

1328:                                             ; preds = %1327
  %1329 = load i32, ptr @test_count, align 4, !tbaa !5
  %1330 = add nsw i32 %1329, 1
  store i32 %1330, ptr @test_count, align 4, !tbaa !5
  %1331 = load i32, ptr %37, align 4, !tbaa !5
  %1332 = icmp eq i32 %1331, 0
  br i1 %1332, label %1386, label %1333

1333:                                             ; preds = %1328
  br label %1334

1334:                                             ; preds = %1333
  br label %1335

1335:                                             ; preds = %1334
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1336 = call ptr @__errno_location() #9
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  store i32 %1337, ptr %39, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = call i32 @s2n_print_stacktrace(ptr noundef %1338)
  %1340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1341 = trunc i8 %1340 to i1
  br i1 %1341, label %1342, label %1364

1342:                                             ; preds = %1335
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = call i32 @fileno(ptr noundef %1343) #8
  %1345 = call i32 @isatty(i32 noundef %1344) #8
  %1346 = icmp ne i32 %1345, 0
  br i1 %1346, label %1347, label %1364

1347:                                             ; preds = %1342
  %1348 = load i32, ptr %39, align 4, !tbaa !5
  %1349 = call ptr @__errno_location() #9
  store i32 %1348, ptr %1349, align 4, !tbaa !5
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = load i32, ptr @test_count, align 4, !tbaa !5
  %1352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror(i32 noundef %1353, ptr noundef @.str.4)
  %1355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror_debug(i32 noundef %1356, ptr noundef @.str.4)
  %1358 = call ptr @__errno_location() #9
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call ptr @strerror(i32 noundef %1359) #8
  %1361 = call ptr @__errno_location() #9
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1350, ptr noundef @.str.2, i32 noundef %1351, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1354, ptr noundef %1357, ptr noundef %1360, i32 noundef %1362) #8
  br label %1381

1364:                                             ; preds = %1342, %1335
  %1365 = load i32, ptr %39, align 4, !tbaa !5
  %1366 = call ptr @__errno_location() #9
  store i32 %1365, ptr %1366, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror(i32 noundef %1370, ptr noundef @.str.4)
  %1372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = call ptr @s2n_strerror_debug(i32 noundef %1373, ptr noundef @.str.4)
  %1375 = call ptr @__errno_location() #9
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  %1377 = call ptr @strerror(i32 noundef %1376) #8
  %1378 = call ptr @__errno_location() #9
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1367, ptr noundef @.str.5, i32 noundef %1368, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1371, ptr noundef %1374, ptr noundef %1377, i32 noundef %1379) #8
  br label %1381

1381:                                             ; preds = %1364, %1347
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

1383:                                             ; preds = %1382
  call void @exit(i32 noundef 1) #10
  unreachable

1384:                                             ; No predecessors!
  br label %1385

1385:                                             ; preds = %1384
  br label %1386

1386:                                             ; preds = %1385, %1328
  br label %1387

1387:                                             ; preds = %1386
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

1389:                                             ; preds = %1388
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = add nsw i32 %1390, 1
  store i32 %1391, ptr @test_count, align 4, !tbaa !5
  %1392 = getelementptr inbounds %struct.s2n_stuffer, ptr %31, i32 0, i32 2
  %1393 = load i32, ptr %1392, align 4, !tbaa !20
  %1394 = getelementptr inbounds %struct.s2n_stuffer, ptr %31, i32 0, i32 1
  %1395 = load i32, ptr %1394, align 8, !tbaa !23
  %1396 = sub i32 %1393, %1395
  %1397 = icmp eq i32 %1396, 0
  br i1 %1397, label %1451, label %1398

1398:                                             ; preds = %1389
  br label %1399

1399:                                             ; preds = %1398
  br label %1400

1400:                                             ; preds = %1399
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1401 = call ptr @__errno_location() #9
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  store i32 %1402, ptr %40, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = call i32 @s2n_print_stacktrace(ptr noundef %1403)
  %1405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1406 = trunc i8 %1405 to i1
  br i1 %1406, label %1407, label %1429

1407:                                             ; preds = %1400
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = call i32 @fileno(ptr noundef %1408) #8
  %1410 = call i32 @isatty(i32 noundef %1409) #8
  %1411 = icmp ne i32 %1410, 0
  br i1 %1411, label %1412, label %1429

1412:                                             ; preds = %1407
  %1413 = load i32, ptr %40, align 4, !tbaa !5
  %1414 = call ptr @__errno_location() #9
  store i32 %1413, ptr %1414, align 4, !tbaa !5
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror(i32 noundef %1418, ptr noundef @.str.4)
  %1420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror_debug(i32 noundef %1421, ptr noundef @.str.4)
  %1423 = call ptr @__errno_location() #9
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @strerror(i32 noundef %1424) #8
  %1426 = call ptr @__errno_location() #9
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1415, ptr noundef @.str.2, i32 noundef %1416, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1419, ptr noundef %1422, ptr noundef %1425, i32 noundef %1427) #8
  br label %1446

1429:                                             ; preds = %1407, %1400
  %1430 = load i32, ptr %40, align 4, !tbaa !5
  %1431 = call ptr @__errno_location() #9
  store i32 %1430, ptr %1431, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror(i32 noundef %1435, ptr noundef @.str.4)
  %1437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror_debug(i32 noundef %1438, ptr noundef @.str.4)
  %1440 = call ptr @__errno_location() #9
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call ptr @strerror(i32 noundef %1441) #8
  %1443 = call ptr @__errno_location() #9
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1432, ptr noundef @.str.5, i32 noundef %1433, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1436, ptr noundef %1439, ptr noundef %1442, i32 noundef %1444) #8
  br label %1446

1446:                                             ; preds = %1429, %1412
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1447

1447:                                             ; preds = %1446
  br label %1448

1448:                                             ; preds = %1447
  call void @exit(i32 noundef 1) #10
  unreachable

1449:                                             ; No predecessors!
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

1451:                                             ; preds = %1450, %1389
  br label %1452

1452:                                             ; preds = %1451
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

1454:                                             ; preds = %1453
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %1456 = add nsw i32 %1455, 1
  store i32 %1456, ptr @test_count, align 4, !tbaa !5
  %1457 = call i32 @s2n_stuffer_free(ptr noundef %31)
  %1458 = icmp eq i32 %1457, -1
  br i1 %1458, label %1459, label %1512

1459:                                             ; preds = %1454
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

1461:                                             ; preds = %1460
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %1462 = call ptr @__errno_location() #9
  %1463 = load i32, ptr %1462, align 4, !tbaa !5
  store i32 %1463, ptr %41, align 4, !tbaa !5
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = call i32 @s2n_print_stacktrace(ptr noundef %1464)
  %1466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1467 = trunc i8 %1466 to i1
  br i1 %1467, label %1468, label %1490

1468:                                             ; preds = %1461
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = call i32 @fileno(ptr noundef %1469) #8
  %1471 = call i32 @isatty(i32 noundef %1470) #8
  %1472 = icmp ne i32 %1471, 0
  br i1 %1472, label %1473, label %1490

1473:                                             ; preds = %1468
  %1474 = load i32, ptr %41, align 4, !tbaa !5
  %1475 = call ptr @__errno_location() #9
  store i32 %1474, ptr %1475, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call ptr @s2n_strerror(i32 noundef %1479, ptr noundef @.str.4)
  %1481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call ptr @s2n_strerror_debug(i32 noundef %1482, ptr noundef @.str.4)
  %1484 = call ptr @__errno_location() #9
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call ptr @strerror(i32 noundef %1485) #8
  %1487 = call ptr @__errno_location() #9
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1476, ptr noundef @.str.2, i32 noundef %1477, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1480, ptr noundef %1483, ptr noundef %1486, i32 noundef %1488) #8
  br label %1507

1490:                                             ; preds = %1468, %1461
  %1491 = load i32, ptr %41, align 4, !tbaa !5
  %1492 = call ptr @__errno_location() #9
  store i32 %1491, ptr %1492, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror(i32 noundef %1496, ptr noundef @.str.4)
  %1498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror_debug(i32 noundef %1499, ptr noundef @.str.4)
  %1501 = call ptr @__errno_location() #9
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call ptr @strerror(i32 noundef %1502) #8
  %1504 = call ptr @__errno_location() #9
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1493, ptr noundef @.str.5, i32 noundef %1494, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1497, ptr noundef %1500, ptr noundef %1503, i32 noundef %1505) #8
  br label %1507

1507:                                             ; preds = %1490, %1473
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1508

1508:                                             ; preds = %1507
  br label %1509

1509:                                             ; preds = %1508
  call void @exit(i32 noundef 1) #10
  unreachable

1510:                                             ; No predecessors!
  br label %1511

1511:                                             ; preds = %1510
  br label %1512

1512:                                             ; preds = %1511, %1454
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

1514:                                             ; preds = %1513
  br label %1515

1515:                                             ; preds = %1514
  %1516 = load i32, ptr @test_count, align 4, !tbaa !5
  %1517 = add nsw i32 %1516, 1
  store i32 %1517, ptr @test_count, align 4, !tbaa !5
  %1518 = load ptr, ptr %28, align 8, !tbaa !9
  %1519 = call i32 @s2n_connection_free(ptr noundef %1518)
  %1520 = icmp eq i32 %1519, -1
  br i1 %1520, label %1521, label %1574

1521:                                             ; preds = %1515
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %1524 = call ptr @__errno_location() #9
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  store i32 %1525, ptr %42, align 4, !tbaa !5
  %1526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1527 = call i32 @s2n_print_stacktrace(ptr noundef %1526)
  %1528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1529 = trunc i8 %1528 to i1
  br i1 %1529, label %1530, label %1552

1530:                                             ; preds = %1523
  %1531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1532 = call i32 @fileno(ptr noundef %1531) #8
  %1533 = call i32 @isatty(i32 noundef %1532) #8
  %1534 = icmp ne i32 %1533, 0
  br i1 %1534, label %1535, label %1552

1535:                                             ; preds = %1530
  %1536 = load i32, ptr %42, align 4, !tbaa !5
  %1537 = call ptr @__errno_location() #9
  store i32 %1536, ptr %1537, align 4, !tbaa !5
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = load i32, ptr @test_count, align 4, !tbaa !5
  %1540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror(i32 noundef %1541, ptr noundef @.str.4)
  %1543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror_debug(i32 noundef %1544, ptr noundef @.str.4)
  %1546 = call ptr @__errno_location() #9
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @strerror(i32 noundef %1547) #8
  %1549 = call ptr @__errno_location() #9
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1538, ptr noundef @.str.2, i32 noundef %1539, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1542, ptr noundef %1545, ptr noundef %1548, i32 noundef %1550) #8
  br label %1569

1552:                                             ; preds = %1530, %1523
  %1553 = load i32, ptr %42, align 4, !tbaa !5
  %1554 = call ptr @__errno_location() #9
  store i32 %1553, ptr %1554, align 4, !tbaa !5
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = load i32, ptr @test_count, align 4, !tbaa !5
  %1557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror(i32 noundef %1558, ptr noundef @.str.4)
  %1560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call ptr @s2n_strerror_debug(i32 noundef %1561, ptr noundef @.str.4)
  %1563 = call ptr @__errno_location() #9
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call ptr @strerror(i32 noundef %1564) #8
  %1566 = call ptr @__errno_location() #9
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1555, ptr noundef @.str.5, i32 noundef %1556, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1559, ptr noundef %1562, ptr noundef %1565, i32 noundef %1567) #8
  br label %1569

1569:                                             ; preds = %1552, %1535
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %1570

1570:                                             ; preds = %1569
  br label %1571

1571:                                             ; preds = %1570
  call void @exit(i32 noundef 1) #10
  unreachable

1572:                                             ; No predecessors!
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

1574:                                             ; preds = %1573, %1515
  br label %1575

1575:                                             ; preds = %1574
  br label %1576

1576:                                             ; preds = %1575
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  store ptr null, ptr %43, align 8, !tbaa !9
  br label %1577

1577:                                             ; preds = %1576
  %1578 = load i32, ptr @test_count, align 4, !tbaa !5
  %1579 = add nsw i32 %1578, 1
  store i32 %1579, ptr @test_count, align 4, !tbaa !5
  %1580 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1580, ptr %43, align 8, !tbaa !9
  %1581 = icmp eq ptr %1580, null
  br i1 %1581, label %1582, label %1635

1582:                                             ; preds = %1577
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1583
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %1585 = call ptr @__errno_location() #9
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  store i32 %1586, ptr %44, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @s2n_print_stacktrace(ptr noundef %1587)
  %1589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1590 = trunc i8 %1589 to i1
  br i1 %1590, label %1591, label %1613

1591:                                             ; preds = %1584
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @fileno(ptr noundef %1592) #8
  %1594 = call i32 @isatty(i32 noundef %1593) #8
  %1595 = icmp ne i32 %1594, 0
  br i1 %1595, label %1596, label %1613

1596:                                             ; preds = %1591
  %1597 = load i32, ptr %44, align 4, !tbaa !5
  %1598 = call ptr @__errno_location() #9
  store i32 %1597, ptr %1598, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror(i32 noundef %1602, ptr noundef @.str.4)
  %1604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror_debug(i32 noundef %1605, ptr noundef @.str.4)
  %1607 = call ptr @__errno_location() #9
  %1608 = load i32, ptr %1607, align 4, !tbaa !5
  %1609 = call ptr @strerror(i32 noundef %1608) #8
  %1610 = call ptr @__errno_location() #9
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1599, ptr noundef @.str.2, i32 noundef %1600, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1603, ptr noundef %1606, ptr noundef %1609, i32 noundef %1611) #8
  br label %1630

1613:                                             ; preds = %1591, %1584
  %1614 = load i32, ptr %44, align 4, !tbaa !5
  %1615 = call ptr @__errno_location() #9
  store i32 %1614, ptr %1615, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror(i32 noundef %1619, ptr noundef @.str.4)
  %1621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror_debug(i32 noundef %1622, ptr noundef @.str.4)
  %1624 = call ptr @__errno_location() #9
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #8
  %1627 = call ptr @__errno_location() #9
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef @.str.5, i32 noundef %1617, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1620, ptr noundef %1623, ptr noundef %1626, i32 noundef %1628) #8
  br label %1630

1630:                                             ; preds = %1613, %1596
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %1631

1631:                                             ; preds = %1630
  br label %1632

1632:                                             ; preds = %1631
  call void @exit(i32 noundef 1) #10
  unreachable

1633:                                             ; No predecessors!
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

1635:                                             ; preds = %1634, %1577
  br label %1636

1636:                                             ; preds = %1635
  br label %1637

1637:                                             ; preds = %1636
  br label %1638

1638:                                             ; preds = %1637
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = add nsw i32 %1639, 1
  store i32 %1640, ptr @test_count, align 4, !tbaa !5
  %1641 = load ptr, ptr %43, align 8, !tbaa !9
  %1642 = load ptr, ptr %26, align 8, !tbaa !9
  %1643 = call i32 @s2n_connection_set_config(ptr noundef %1641, ptr noundef %1642)
  %1644 = icmp eq i32 %1643, -1
  br i1 %1644, label %1645, label %1698

1645:                                             ; preds = %1638
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

1647:                                             ; preds = %1646
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %1648 = call ptr @__errno_location() #9
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  store i32 %1649, ptr %45, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = call i32 @s2n_print_stacktrace(ptr noundef %1650)
  %1652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1653 = trunc i8 %1652 to i1
  br i1 %1653, label %1654, label %1676

1654:                                             ; preds = %1647
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = call i32 @fileno(ptr noundef %1655) #8
  %1657 = call i32 @isatty(i32 noundef %1656) #8
  %1658 = icmp ne i32 %1657, 0
  br i1 %1658, label %1659, label %1676

1659:                                             ; preds = %1654
  %1660 = load i32, ptr %45, align 4, !tbaa !5
  %1661 = call ptr @__errno_location() #9
  store i32 %1660, ptr %1661, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror(i32 noundef %1665, ptr noundef @.str.4)
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef @.str.4)
  %1670 = call ptr @__errno_location() #9
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @strerror(i32 noundef %1671) #8
  %1673 = call ptr @__errno_location() #9
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef @.str.2, i32 noundef %1663, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1666, ptr noundef %1669, ptr noundef %1672, i32 noundef %1674) #8
  br label %1693

1676:                                             ; preds = %1654, %1647
  %1677 = load i32, ptr %45, align 4, !tbaa !5
  %1678 = call ptr @__errno_location() #9
  store i32 %1677, ptr %1678, align 4, !tbaa !5
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = load i32, ptr @test_count, align 4, !tbaa !5
  %1681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = call ptr @s2n_strerror(i32 noundef %1682, ptr noundef @.str.4)
  %1684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror_debug(i32 noundef %1685, ptr noundef @.str.4)
  %1687 = call ptr @__errno_location() #9
  %1688 = load i32, ptr %1687, align 4, !tbaa !5
  %1689 = call ptr @strerror(i32 noundef %1688) #8
  %1690 = call ptr @__errno_location() #9
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1679, ptr noundef @.str.5, i32 noundef %1680, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1683, ptr noundef %1686, ptr noundef %1689, i32 noundef %1691) #8
  br label %1693

1693:                                             ; preds = %1676, %1659
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %1694

1694:                                             ; preds = %1693
  br label %1695

1695:                                             ; preds = %1694
  call void @exit(i32 noundef 1) #10
  unreachable

1696:                                             ; No predecessors!
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

1698:                                             ; preds = %1697, %1638
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

1700:                                             ; preds = %1699
  call void @llvm.lifetime.start.p0(i64 40, ptr %46) #8
  call void @llvm.memset.p0.i64(ptr align 8 %46, i8 0, i64 40, i1 false)
  br label %1701

1701:                                             ; preds = %1700
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = add nsw i32 %1702, 1
  store i32 %1703, ptr @test_count, align 4, !tbaa !5
  %1704 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %46, i32 noundef 0)
  %1705 = icmp eq i32 %1704, -1
  br i1 %1705, label %1706, label %1759

1706:                                             ; preds = %1701
  br label %1707

1707:                                             ; preds = %1706
  br label %1708

1708:                                             ; preds = %1707
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %1709 = call ptr @__errno_location() #9
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  store i32 %1710, ptr %47, align 4, !tbaa !5
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = call i32 @s2n_print_stacktrace(ptr noundef %1711)
  %1713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1714 = trunc i8 %1713 to i1
  br i1 %1714, label %1715, label %1737

1715:                                             ; preds = %1708
  %1716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1717 = call i32 @fileno(ptr noundef %1716) #8
  %1718 = call i32 @isatty(i32 noundef %1717) #8
  %1719 = icmp ne i32 %1718, 0
  br i1 %1719, label %1720, label %1737

1720:                                             ; preds = %1715
  %1721 = load i32, ptr %47, align 4, !tbaa !5
  %1722 = call ptr @__errno_location() #9
  store i32 %1721, ptr %1722, align 4, !tbaa !5
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = load i32, ptr @test_count, align 4, !tbaa !5
  %1725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror(i32 noundef %1726, ptr noundef @.str.4)
  %1728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef %1729, ptr noundef @.str.4)
  %1731 = call ptr @__errno_location() #9
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @strerror(i32 noundef %1732) #8
  %1734 = call ptr @__errno_location() #9
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1723, ptr noundef @.str.2, i32 noundef %1724, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1727, ptr noundef %1730, ptr noundef %1733, i32 noundef %1735) #8
  br label %1754

1737:                                             ; preds = %1715, %1708
  %1738 = load i32, ptr %47, align 4, !tbaa !5
  %1739 = call ptr @__errno_location() #9
  store i32 %1738, ptr %1739, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror(i32 noundef %1743, ptr noundef @.str.4)
  %1745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror_debug(i32 noundef %1746, ptr noundef @.str.4)
  %1748 = call ptr @__errno_location() #9
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call ptr @strerror(i32 noundef %1749) #8
  %1751 = call ptr @__errno_location() #9
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef @.str.5, i32 noundef %1741, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1744, ptr noundef %1747, ptr noundef %1750, i32 noundef %1752) #8
  br label %1754

1754:                                             ; preds = %1737, %1720
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %1755

1755:                                             ; preds = %1754
  br label %1756

1756:                                             ; preds = %1755
  call void @exit(i32 noundef 1) #10
  unreachable

1757:                                             ; No predecessors!
  br label %1758

1758:                                             ; preds = %1757
  br label %1759

1759:                                             ; preds = %1758, %1701
  br label %1760

1760:                                             ; preds = %1759
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761
  %1763 = load i32, ptr @test_count, align 4, !tbaa !5
  %1764 = add nsw i32 %1763, 1
  store i32 %1764, ptr @test_count, align 4, !tbaa !5
  %1765 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cert_status_request_extension, i32 0, i32 3), align 8, !tbaa !18
  %1766 = load ptr, ptr %43, align 8, !tbaa !9
  %1767 = call i32 %1765(ptr noundef %1766, ptr noundef %46)
  %1768 = icmp eq i32 %1767, -1
  br i1 %1768, label %1769, label %1822

1769:                                             ; preds = %1762
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %1772 = call ptr @__errno_location() #9
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  store i32 %1773, ptr %48, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = call i32 @s2n_print_stacktrace(ptr noundef %1774)
  %1776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1777 = trunc i8 %1776 to i1
  br i1 %1777, label %1778, label %1800

1778:                                             ; preds = %1771
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = call i32 @fileno(ptr noundef %1779) #8
  %1781 = call i32 @isatty(i32 noundef %1780) #8
  %1782 = icmp ne i32 %1781, 0
  br i1 %1782, label %1783, label %1800

1783:                                             ; preds = %1778
  %1784 = load i32, ptr %48, align 4, !tbaa !5
  %1785 = call ptr @__errno_location() #9
  store i32 %1784, ptr %1785, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef @.str.4)
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call ptr @__errno_location() #9
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #8
  %1797 = call ptr @__errno_location() #9
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1786, ptr noundef @.str.2, i32 noundef %1787, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1790, ptr noundef %1793, ptr noundef %1796, i32 noundef %1798) #8
  br label %1817

1800:                                             ; preds = %1778, %1771
  %1801 = load i32, ptr %48, align 4, !tbaa !5
  %1802 = call ptr @__errno_location() #9
  store i32 %1801, ptr %1802, align 4, !tbaa !5
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = load i32, ptr @test_count, align 4, !tbaa !5
  %1805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call ptr @s2n_strerror(i32 noundef %1806, ptr noundef @.str.4)
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror_debug(i32 noundef %1809, ptr noundef @.str.4)
  %1811 = call ptr @__errno_location() #9
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @strerror(i32 noundef %1812) #8
  %1814 = call ptr @__errno_location() #9
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1803, ptr noundef @.str.5, i32 noundef %1804, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1807, ptr noundef %1810, ptr noundef %1813, i32 noundef %1815) #8
  br label %1817

1817:                                             ; preds = %1800, %1783
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %1818

1818:                                             ; preds = %1817
  br label %1819

1819:                                             ; preds = %1818
  call void @exit(i32 noundef 1) #10
  unreachable

1820:                                             ; No predecessors!
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821, %1762
  br label %1823

1823:                                             ; preds = %1822
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

1825:                                             ; preds = %1824
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = add nsw i32 %1826, 1
  store i32 %1827, ptr @test_count, align 4, !tbaa !5
  %1828 = load ptr, ptr %43, align 8, !tbaa !9
  %1829 = getelementptr inbounds %struct.s2n_connection, ptr %1828, i32 0, i32 65
  %1830 = load i32, ptr %1829, align 8, !tbaa !24
  %1831 = icmp eq i32 %1830, 0
  br i1 %1831, label %1885, label %1832

1832:                                             ; preds = %1825
  br label %1833

1833:                                             ; preds = %1832
  br label %1834

1834:                                             ; preds = %1833
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  %1835 = call ptr @__errno_location() #9
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  store i32 %1836, ptr %49, align 4, !tbaa !5
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = call i32 @s2n_print_stacktrace(ptr noundef %1837)
  %1839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1840 = trunc i8 %1839 to i1
  br i1 %1840, label %1841, label %1863

1841:                                             ; preds = %1834
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = call i32 @fileno(ptr noundef %1842) #8
  %1844 = call i32 @isatty(i32 noundef %1843) #8
  %1845 = icmp ne i32 %1844, 0
  br i1 %1845, label %1846, label %1863

1846:                                             ; preds = %1841
  %1847 = load i32, ptr %49, align 4, !tbaa !5
  %1848 = call ptr @__errno_location() #9
  store i32 %1847, ptr %1848, align 4, !tbaa !5
  %1849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1850 = load i32, ptr @test_count, align 4, !tbaa !5
  %1851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror(i32 noundef %1852, ptr noundef @.str.4)
  %1854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call ptr @s2n_strerror_debug(i32 noundef %1855, ptr noundef @.str.4)
  %1857 = call ptr @__errno_location() #9
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call ptr @strerror(i32 noundef %1858) #8
  %1860 = call ptr @__errno_location() #9
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1849, ptr noundef @.str.2, i32 noundef %1850, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1853, ptr noundef %1856, ptr noundef %1859, i32 noundef %1861) #8
  br label %1880

1863:                                             ; preds = %1841, %1834
  %1864 = load i32, ptr %49, align 4, !tbaa !5
  %1865 = call ptr @__errno_location() #9
  store i32 %1864, ptr %1865, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror(i32 noundef %1869, ptr noundef @.str.4)
  %1871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @s2n_strerror_debug(i32 noundef %1872, ptr noundef @.str.4)
  %1874 = call ptr @__errno_location() #9
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #8
  %1877 = call ptr @__errno_location() #9
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1866, ptr noundef @.str.5, i32 noundef %1867, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1870, ptr noundef %1873, ptr noundef %1876, i32 noundef %1878) #8
  br label %1880

1880:                                             ; preds = %1863, %1846
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

1882:                                             ; preds = %1881
  call void @exit(i32 noundef 1) #10
  unreachable

1883:                                             ; No predecessors!
  br label %1884

1884:                                             ; preds = %1883
  br label %1885

1885:                                             ; preds = %1884, %1825
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886
  br label %1888

1888:                                             ; preds = %1887
  %1889 = load i32, ptr @test_count, align 4, !tbaa !5
  %1890 = add nsw i32 %1889, 1
  store i32 %1890, ptr @test_count, align 4, !tbaa !5
  %1891 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cert_status_request_extension, i32 0, i32 4), align 8, !tbaa !48
  %1892 = load ptr, ptr %43, align 8, !tbaa !9
  %1893 = call i32 %1891(ptr noundef %1892, ptr noundef %46)
  %1894 = icmp eq i32 %1893, -1
  br i1 %1894, label %1895, label %1948

1895:                                             ; preds = %1888
  br label %1896

1896:                                             ; preds = %1895
  br label %1897

1897:                                             ; preds = %1896
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %1898 = call ptr @__errno_location() #9
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  store i32 %1899, ptr %50, align 4, !tbaa !5
  %1900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1901 = call i32 @s2n_print_stacktrace(ptr noundef %1900)
  %1902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1903 = trunc i8 %1902 to i1
  br i1 %1903, label %1904, label %1926

1904:                                             ; preds = %1897
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = call i32 @fileno(ptr noundef %1905) #8
  %1907 = call i32 @isatty(i32 noundef %1906) #8
  %1908 = icmp ne i32 %1907, 0
  br i1 %1908, label %1909, label %1926

1909:                                             ; preds = %1904
  %1910 = load i32, ptr %50, align 4, !tbaa !5
  %1911 = call ptr @__errno_location() #9
  store i32 %1910, ptr %1911, align 4, !tbaa !5
  %1912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1913 = load i32, ptr @test_count, align 4, !tbaa !5
  %1914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = call ptr @s2n_strerror(i32 noundef %1915, ptr noundef @.str.4)
  %1917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  %1919 = call ptr @s2n_strerror_debug(i32 noundef %1918, ptr noundef @.str.4)
  %1920 = call ptr @__errno_location() #9
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = call ptr @strerror(i32 noundef %1921) #8
  %1923 = call ptr @__errno_location() #9
  %1924 = load i32, ptr %1923, align 4, !tbaa !5
  %1925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1912, ptr noundef @.str.2, i32 noundef %1913, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1916, ptr noundef %1919, ptr noundef %1922, i32 noundef %1924) #8
  br label %1943

1926:                                             ; preds = %1904, %1897
  %1927 = load i32, ptr %50, align 4, !tbaa !5
  %1928 = call ptr @__errno_location() #9
  store i32 %1927, ptr %1928, align 4, !tbaa !5
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = load i32, ptr @test_count, align 4, !tbaa !5
  %1931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  %1933 = call ptr @s2n_strerror(i32 noundef %1932, ptr noundef @.str.4)
  %1934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror_debug(i32 noundef %1935, ptr noundef @.str.4)
  %1937 = call ptr @__errno_location() #9
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @strerror(i32 noundef %1938) #8
  %1940 = call ptr @__errno_location() #9
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1929, ptr noundef @.str.5, i32 noundef %1930, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1933, ptr noundef %1936, ptr noundef %1939, i32 noundef %1941) #8
  br label %1943

1943:                                             ; preds = %1926, %1909
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %1944

1944:                                             ; preds = %1943
  br label %1945

1945:                                             ; preds = %1944
  call void @exit(i32 noundef 1) #10
  unreachable

1946:                                             ; No predecessors!
  br label %1947

1947:                                             ; preds = %1946
  br label %1948

1948:                                             ; preds = %1947, %1888
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

1950:                                             ; preds = %1949
  br label %1951

1951:                                             ; preds = %1950
  %1952 = load i32, ptr @test_count, align 4, !tbaa !5
  %1953 = add nsw i32 %1952, 1
  store i32 %1953, ptr @test_count, align 4, !tbaa !5
  %1954 = load ptr, ptr %43, align 8, !tbaa !9
  %1955 = getelementptr inbounds %struct.s2n_connection, ptr %1954, i32 0, i32 65
  %1956 = load i32, ptr %1955, align 8, !tbaa !24
  %1957 = icmp eq i32 %1956, 1
  br i1 %1957, label %2011, label %1958

1958:                                             ; preds = %1951
  br label %1959

1959:                                             ; preds = %1958
  br label %1960

1960:                                             ; preds = %1959
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %1961 = call ptr @__errno_location() #9
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  store i32 %1962, ptr %51, align 4, !tbaa !5
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = call i32 @s2n_print_stacktrace(ptr noundef %1963)
  %1965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1966 = trunc i8 %1965 to i1
  br i1 %1966, label %1967, label %1989

1967:                                             ; preds = %1960
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = call i32 @fileno(ptr noundef %1968) #8
  %1970 = call i32 @isatty(i32 noundef %1969) #8
  %1971 = icmp ne i32 %1970, 0
  br i1 %1971, label %1972, label %1989

1972:                                             ; preds = %1967
  %1973 = load i32, ptr %51, align 4, !tbaa !5
  %1974 = call ptr @__errno_location() #9
  store i32 %1973, ptr %1974, align 4, !tbaa !5
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = load i32, ptr @test_count, align 4, !tbaa !5
  %1977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1978 = load i32, ptr %1977, align 4, !tbaa !5
  %1979 = call ptr @s2n_strerror(i32 noundef %1978, ptr noundef @.str.4)
  %1980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1981 = load i32, ptr %1980, align 4, !tbaa !5
  %1982 = call ptr @s2n_strerror_debug(i32 noundef %1981, ptr noundef @.str.4)
  %1983 = call ptr @__errno_location() #9
  %1984 = load i32, ptr %1983, align 4, !tbaa !5
  %1985 = call ptr @strerror(i32 noundef %1984) #8
  %1986 = call ptr @__errno_location() #9
  %1987 = load i32, ptr %1986, align 4, !tbaa !5
  %1988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1975, ptr noundef @.str.2, i32 noundef %1976, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1979, ptr noundef %1982, ptr noundef %1985, i32 noundef %1987) #8
  br label %2006

1989:                                             ; preds = %1967, %1960
  %1990 = load i32, ptr %51, align 4, !tbaa !5
  %1991 = call ptr @__errno_location() #9
  store i32 %1990, ptr %1991, align 4, !tbaa !5
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = load i32, ptr @test_count, align 4, !tbaa !5
  %1994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  %1996 = call ptr @s2n_strerror(i32 noundef %1995, ptr noundef @.str.4)
  %1997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = call ptr @s2n_strerror_debug(i32 noundef %1998, ptr noundef @.str.4)
  %2000 = call ptr @__errno_location() #9
  %2001 = load i32, ptr %2000, align 4, !tbaa !5
  %2002 = call ptr @strerror(i32 noundef %2001) #8
  %2003 = call ptr @__errno_location() #9
  %2004 = load i32, ptr %2003, align 4, !tbaa !5
  %2005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1992, ptr noundef @.str.5, i32 noundef %1993, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1996, ptr noundef %1999, ptr noundef %2002, i32 noundef %2004) #8
  br label %2006

2006:                                             ; preds = %1989, %1972
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %2007

2007:                                             ; preds = %2006
  br label %2008

2008:                                             ; preds = %2007
  call void @exit(i32 noundef 1) #10
  unreachable

2009:                                             ; No predecessors!
  br label %2010

2010:                                             ; preds = %2009
  br label %2011

2011:                                             ; preds = %2010, %1951
  br label %2012

2012:                                             ; preds = %2011
  br label %2013

2013:                                             ; preds = %2012
  br label %2014

2014:                                             ; preds = %2013
  %2015 = load i32, ptr @test_count, align 4, !tbaa !5
  %2016 = add nsw i32 %2015, 1
  store i32 %2016, ptr @test_count, align 4, !tbaa !5
  %2017 = call i32 @s2n_stuffer_free(ptr noundef %46)
  %2018 = icmp eq i32 %2017, -1
  br i1 %2018, label %2019, label %2072

2019:                                             ; preds = %2014
  br label %2020

2020:                                             ; preds = %2019
  br label %2021

2021:                                             ; preds = %2020
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  %2022 = call ptr @__errno_location() #9
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  store i32 %2023, ptr %52, align 4, !tbaa !5
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @s2n_print_stacktrace(ptr noundef %2024)
  %2026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2027 = trunc i8 %2026 to i1
  br i1 %2027, label %2028, label %2050

2028:                                             ; preds = %2021
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = call i32 @fileno(ptr noundef %2029) #8
  %2031 = call i32 @isatty(i32 noundef %2030) #8
  %2032 = icmp ne i32 %2031, 0
  br i1 %2032, label %2033, label %2050

2033:                                             ; preds = %2028
  %2034 = load i32, ptr %52, align 4, !tbaa !5
  %2035 = call ptr @__errno_location() #9
  store i32 %2034, ptr %2035, align 4, !tbaa !5
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  %2040 = call ptr @s2n_strerror(i32 noundef %2039, ptr noundef @.str.4)
  %2041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = call ptr @s2n_strerror_debug(i32 noundef %2042, ptr noundef @.str.4)
  %2044 = call ptr @__errno_location() #9
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @strerror(i32 noundef %2045) #8
  %2047 = call ptr @__errno_location() #9
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2036, ptr noundef @.str.2, i32 noundef %2037, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2040, ptr noundef %2043, ptr noundef %2046, i32 noundef %2048) #8
  br label %2067

2050:                                             ; preds = %2028, %2021
  %2051 = load i32, ptr %52, align 4, !tbaa !5
  %2052 = call ptr @__errno_location() #9
  store i32 %2051, ptr %2052, align 4, !tbaa !5
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror(i32 noundef %2056, ptr noundef @.str.4)
  %2058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2059 = load i32, ptr %2058, align 4, !tbaa !5
  %2060 = call ptr @s2n_strerror_debug(i32 noundef %2059, ptr noundef @.str.4)
  %2061 = call ptr @__errno_location() #9
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @strerror(i32 noundef %2062) #8
  %2064 = call ptr @__errno_location() #9
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2053, ptr noundef @.str.5, i32 noundef %2054, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2057, ptr noundef %2060, ptr noundef %2063, i32 noundef %2065) #8
  br label %2067

2067:                                             ; preds = %2050, %2033
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %2068

2068:                                             ; preds = %2067
  br label %2069

2069:                                             ; preds = %2068
  call void @exit(i32 noundef 1) #10
  unreachable

2070:                                             ; No predecessors!
  br label %2071

2071:                                             ; preds = %2070
  br label %2072

2072:                                             ; preds = %2071, %2014
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073
  br label %2075

2075:                                             ; preds = %2074
  %2076 = load i32, ptr @test_count, align 4, !tbaa !5
  %2077 = add nsw i32 %2076, 1
  store i32 %2077, ptr @test_count, align 4, !tbaa !5
  %2078 = load ptr, ptr %43, align 8, !tbaa !9
  %2079 = call i32 @s2n_connection_free(ptr noundef %2078)
  %2080 = icmp eq i32 %2079, -1
  br i1 %2080, label %2081, label %2134

2081:                                             ; preds = %2075
  br label %2082

2082:                                             ; preds = %2081
  br label %2083

2083:                                             ; preds = %2082
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  %2084 = call ptr @__errno_location() #9
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  store i32 %2085, ptr %53, align 4, !tbaa !5
  %2086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2087 = call i32 @s2n_print_stacktrace(ptr noundef %2086)
  %2088 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2089 = trunc i8 %2088 to i1
  br i1 %2089, label %2090, label %2112

2090:                                             ; preds = %2083
  %2091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2092 = call i32 @fileno(ptr noundef %2091) #8
  %2093 = call i32 @isatty(i32 noundef %2092) #8
  %2094 = icmp ne i32 %2093, 0
  br i1 %2094, label %2095, label %2112

2095:                                             ; preds = %2090
  %2096 = load i32, ptr %53, align 4, !tbaa !5
  %2097 = call ptr @__errno_location() #9
  store i32 %2096, ptr %2097, align 4, !tbaa !5
  %2098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2099 = load i32, ptr @test_count, align 4, !tbaa !5
  %2100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror(i32 noundef %2101, ptr noundef @.str.4)
  %2103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = call ptr @s2n_strerror_debug(i32 noundef %2104, ptr noundef @.str.4)
  %2106 = call ptr @__errno_location() #9
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call ptr @strerror(i32 noundef %2107) #8
  %2109 = call ptr @__errno_location() #9
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2098, ptr noundef @.str.2, i32 noundef %2099, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2102, ptr noundef %2105, ptr noundef %2108, i32 noundef %2110) #8
  br label %2129

2112:                                             ; preds = %2090, %2083
  %2113 = load i32, ptr %53, align 4, !tbaa !5
  %2114 = call ptr @__errno_location() #9
  store i32 %2113, ptr %2114, align 4, !tbaa !5
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = load i32, ptr @test_count, align 4, !tbaa !5
  %2117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  %2119 = call ptr @s2n_strerror(i32 noundef %2118, ptr noundef @.str.4)
  %2120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2121 = load i32, ptr %2120, align 4, !tbaa !5
  %2122 = call ptr @s2n_strerror_debug(i32 noundef %2121, ptr noundef @.str.4)
  %2123 = call ptr @__errno_location() #9
  %2124 = load i32, ptr %2123, align 4, !tbaa !5
  %2125 = call ptr @strerror(i32 noundef %2124) #8
  %2126 = call ptr @__errno_location() #9
  %2127 = load i32, ptr %2126, align 4, !tbaa !5
  %2128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2115, ptr noundef @.str.5, i32 noundef %2116, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2119, ptr noundef %2122, ptr noundef %2125, i32 noundef %2127) #8
  br label %2129

2129:                                             ; preds = %2112, %2095
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %2130

2130:                                             ; preds = %2129
  br label %2131

2131:                                             ; preds = %2130
  call void @exit(i32 noundef 1) #10
  unreachable

2132:                                             ; No predecessors!
  br label %2133

2133:                                             ; preds = %2132
  br label %2134

2134:                                             ; preds = %2133, %2075
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

2136:                                             ; preds = %2135
  call void @llvm.lifetime.end.p0(i64 40, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  store ptr null, ptr %54, align 8, !tbaa !9
  br label %2137

2137:                                             ; preds = %2136
  %2138 = load i32, ptr @test_count, align 4, !tbaa !5
  %2139 = add nsw i32 %2138, 1
  store i32 %2139, ptr @test_count, align 4, !tbaa !5
  %2140 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2140, ptr %54, align 8, !tbaa !9
  %2141 = icmp eq ptr %2140, null
  br i1 %2141, label %2142, label %2195

2142:                                             ; preds = %2137
  br label %2143

2143:                                             ; preds = %2142
  br label %2144

2144:                                             ; preds = %2143
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  %2145 = call ptr @__errno_location() #9
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  store i32 %2146, ptr %55, align 4, !tbaa !5
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = call i32 @s2n_print_stacktrace(ptr noundef %2147)
  %2149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2150 = trunc i8 %2149 to i1
  br i1 %2150, label %2151, label %2173

2151:                                             ; preds = %2144
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = call i32 @fileno(ptr noundef %2152) #8
  %2154 = call i32 @isatty(i32 noundef %2153) #8
  %2155 = icmp ne i32 %2154, 0
  br i1 %2155, label %2156, label %2173

2156:                                             ; preds = %2151
  %2157 = load i32, ptr %55, align 4, !tbaa !5
  %2158 = call ptr @__errno_location() #9
  store i32 %2157, ptr %2158, align 4, !tbaa !5
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = load i32, ptr @test_count, align 4, !tbaa !5
  %2161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @s2n_strerror(i32 noundef %2162, ptr noundef @.str.4)
  %2164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @s2n_strerror_debug(i32 noundef %2165, ptr noundef @.str.4)
  %2167 = call ptr @__errno_location() #9
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call ptr @strerror(i32 noundef %2168) #8
  %2170 = call ptr @__errno_location() #9
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2159, ptr noundef @.str.2, i32 noundef %2160, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2163, ptr noundef %2166, ptr noundef %2169, i32 noundef %2171) #8
  br label %2190

2173:                                             ; preds = %2151, %2144
  %2174 = load i32, ptr %55, align 4, !tbaa !5
  %2175 = call ptr @__errno_location() #9
  store i32 %2174, ptr %2175, align 4, !tbaa !5
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = load i32, ptr @test_count, align 4, !tbaa !5
  %2178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = call ptr @s2n_strerror(i32 noundef %2179, ptr noundef @.str.4)
  %2181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror_debug(i32 noundef %2182, ptr noundef @.str.4)
  %2184 = call ptr @__errno_location() #9
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #8
  %2187 = call ptr @__errno_location() #9
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2176, ptr noundef @.str.5, i32 noundef %2177, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2180, ptr noundef %2183, ptr noundef %2186, i32 noundef %2188) #8
  br label %2190

2190:                                             ; preds = %2173, %2156
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %2191

2191:                                             ; preds = %2190
  br label %2192

2192:                                             ; preds = %2191
  call void @exit(i32 noundef 1) #10
  unreachable

2193:                                             ; No predecessors!
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

2195:                                             ; preds = %2194, %2137
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

2197:                                             ; preds = %2196
  br label %2198

2198:                                             ; preds = %2197
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = add nsw i32 %2199, 1
  store i32 %2200, ptr @test_count, align 4, !tbaa !5
  %2201 = load ptr, ptr %54, align 8, !tbaa !9
  %2202 = load ptr, ptr %26, align 8, !tbaa !9
  %2203 = call i32 @s2n_connection_set_config(ptr noundef %2201, ptr noundef %2202)
  %2204 = icmp eq i32 %2203, -1
  br i1 %2204, label %2205, label %2258

2205:                                             ; preds = %2198
  br label %2206

2206:                                             ; preds = %2205
  br label %2207

2207:                                             ; preds = %2206
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %2208 = call ptr @__errno_location() #9
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  store i32 %2209, ptr %56, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = call i32 @s2n_print_stacktrace(ptr noundef %2210)
  %2212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2213 = trunc i8 %2212 to i1
  br i1 %2213, label %2214, label %2236

2214:                                             ; preds = %2207
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = call i32 @fileno(ptr noundef %2215) #8
  %2217 = call i32 @isatty(i32 noundef %2216) #8
  %2218 = icmp ne i32 %2217, 0
  br i1 %2218, label %2219, label %2236

2219:                                             ; preds = %2214
  %2220 = load i32, ptr %56, align 4, !tbaa !5
  %2221 = call ptr @__errno_location() #9
  store i32 %2220, ptr %2221, align 4, !tbaa !5
  %2222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2223 = load i32, ptr @test_count, align 4, !tbaa !5
  %2224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = call ptr @s2n_strerror(i32 noundef %2225, ptr noundef @.str.4)
  %2227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = call ptr @s2n_strerror_debug(i32 noundef %2228, ptr noundef @.str.4)
  %2230 = call ptr @__errno_location() #9
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call ptr @strerror(i32 noundef %2231) #8
  %2233 = call ptr @__errno_location() #9
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2222, ptr noundef @.str.2, i32 noundef %2223, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2226, ptr noundef %2229, ptr noundef %2232, i32 noundef %2234) #8
  br label %2253

2236:                                             ; preds = %2214, %2207
  %2237 = load i32, ptr %56, align 4, !tbaa !5
  %2238 = call ptr @__errno_location() #9
  store i32 %2237, ptr %2238, align 4, !tbaa !5
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2242 = load i32, ptr %2241, align 4, !tbaa !5
  %2243 = call ptr @s2n_strerror(i32 noundef %2242, ptr noundef @.str.4)
  %2244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2245 = load i32, ptr %2244, align 4, !tbaa !5
  %2246 = call ptr @s2n_strerror_debug(i32 noundef %2245, ptr noundef @.str.4)
  %2247 = call ptr @__errno_location() #9
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = call ptr @strerror(i32 noundef %2248) #8
  %2250 = call ptr @__errno_location() #9
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  %2252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2239, ptr noundef @.str.5, i32 noundef %2240, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2243, ptr noundef %2246, ptr noundef %2249, i32 noundef %2251) #8
  br label %2253

2253:                                             ; preds = %2236, %2219
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %2254

2254:                                             ; preds = %2253
  br label %2255

2255:                                             ; preds = %2254
  call void @exit(i32 noundef 1) #10
  unreachable

2256:                                             ; No predecessors!
  br label %2257

2257:                                             ; preds = %2256
  br label %2258

2258:                                             ; preds = %2257, %2198
  br label %2259

2259:                                             ; preds = %2258
  br label %2260

2260:                                             ; preds = %2259
  call void @llvm.lifetime.start.p0(i64 40, ptr %57) #8
  call void @llvm.memset.p0.i64(ptr align 8 %57, i8 0, i64 40, i1 false)
  br label %2261

2261:                                             ; preds = %2260
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = add nsw i32 %2262, 1
  store i32 %2263, ptr @test_count, align 4, !tbaa !5
  %2264 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %57, i32 noundef 0)
  %2265 = icmp eq i32 %2264, -1
  br i1 %2265, label %2266, label %2319

2266:                                             ; preds = %2261
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  %2269 = call ptr @__errno_location() #9
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  store i32 %2270, ptr %58, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @s2n_print_stacktrace(ptr noundef %2271)
  %2273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2274 = trunc i8 %2273 to i1
  br i1 %2274, label %2275, label %2297

2275:                                             ; preds = %2268
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @fileno(ptr noundef %2276) #8
  %2278 = call i32 @isatty(i32 noundef %2277) #8
  %2279 = icmp ne i32 %2278, 0
  br i1 %2279, label %2280, label %2297

2280:                                             ; preds = %2275
  %2281 = load i32, ptr %58, align 4, !tbaa !5
  %2282 = call ptr @__errno_location() #9
  store i32 %2281, ptr %2282, align 4, !tbaa !5
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror(i32 noundef %2286, ptr noundef @.str.4)
  %2288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror_debug(i32 noundef %2289, ptr noundef @.str.4)
  %2291 = call ptr @__errno_location() #9
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call ptr @strerror(i32 noundef %2292) #8
  %2294 = call ptr @__errno_location() #9
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2283, ptr noundef @.str.2, i32 noundef %2284, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2287, ptr noundef %2290, ptr noundef %2293, i32 noundef %2295) #8
  br label %2314

2297:                                             ; preds = %2275, %2268
  %2298 = load i32, ptr %58, align 4, !tbaa !5
  %2299 = call ptr @__errno_location() #9
  store i32 %2298, ptr %2299, align 4, !tbaa !5
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @s2n_strerror(i32 noundef %2303, ptr noundef @.str.4)
  %2305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror_debug(i32 noundef %2306, ptr noundef @.str.4)
  %2308 = call ptr @__errno_location() #9
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @strerror(i32 noundef %2309) #8
  %2311 = call ptr @__errno_location() #9
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2300, ptr noundef @.str.5, i32 noundef %2301, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2304, ptr noundef %2307, ptr noundef %2310, i32 noundef %2312) #8
  br label %2314

2314:                                             ; preds = %2297, %2280
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  call void @exit(i32 noundef 1) #10
  unreachable

2317:                                             ; No predecessors!
  br label %2318

2318:                                             ; preds = %2317
  br label %2319

2319:                                             ; preds = %2318, %2261
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320
  br label %2322

2322:                                             ; preds = %2321
  %2323 = load i32, ptr @test_count, align 4, !tbaa !5
  %2324 = add nsw i32 %2323, 1
  store i32 %2324, ptr @test_count, align 4, !tbaa !5
  %2325 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cert_status_request_extension, i32 0, i32 3), align 8, !tbaa !18
  %2326 = load ptr, ptr %54, align 8, !tbaa !9
  %2327 = call i32 %2325(ptr noundef %2326, ptr noundef %57)
  %2328 = icmp eq i32 %2327, -1
  br i1 %2328, label %2329, label %2382

2329:                                             ; preds = %2322
  br label %2330

2330:                                             ; preds = %2329
  br label %2331

2331:                                             ; preds = %2330
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  %2332 = call ptr @__errno_location() #9
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  store i32 %2333, ptr %59, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = call i32 @s2n_print_stacktrace(ptr noundef %2334)
  %2336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2337 = trunc i8 %2336 to i1
  br i1 %2337, label %2338, label %2360

2338:                                             ; preds = %2331
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @fileno(ptr noundef %2339) #8
  %2341 = call i32 @isatty(i32 noundef %2340) #8
  %2342 = icmp ne i32 %2341, 0
  br i1 %2342, label %2343, label %2360

2343:                                             ; preds = %2338
  %2344 = load i32, ptr %59, align 4, !tbaa !5
  %2345 = call ptr @__errno_location() #9
  store i32 %2344, ptr %2345, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef @.str.4)
  %2351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror_debug(i32 noundef %2352, ptr noundef @.str.4)
  %2354 = call ptr @__errno_location() #9
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @strerror(i32 noundef %2355) #8
  %2357 = call ptr @__errno_location() #9
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef @.str.2, i32 noundef %2347, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2350, ptr noundef %2353, ptr noundef %2356, i32 noundef %2358) #8
  br label %2377

2360:                                             ; preds = %2338, %2331
  %2361 = load i32, ptr %59, align 4, !tbaa !5
  %2362 = call ptr @__errno_location() #9
  store i32 %2361, ptr %2362, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @s2n_strerror(i32 noundef %2366, ptr noundef @.str.4)
  %2368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call ptr @s2n_strerror_debug(i32 noundef %2369, ptr noundef @.str.4)
  %2371 = call ptr @__errno_location() #9
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = call ptr @strerror(i32 noundef %2372) #8
  %2374 = call ptr @__errno_location() #9
  %2375 = load i32, ptr %2374, align 4, !tbaa !5
  %2376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2363, ptr noundef @.str.5, i32 noundef %2364, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2367, ptr noundef %2370, ptr noundef %2373, i32 noundef %2375) #8
  br label %2377

2377:                                             ; preds = %2360, %2343
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %2378

2378:                                             ; preds = %2377
  br label %2379

2379:                                             ; preds = %2378
  call void @exit(i32 noundef 1) #10
  unreachable

2380:                                             ; No predecessors!
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

2382:                                             ; preds = %2381, %2322
  br label %2383

2383:                                             ; preds = %2382
  br label %2384

2384:                                             ; preds = %2383
  br label %2385

2385:                                             ; preds = %2384
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = add nsw i32 %2386, 1
  store i32 %2387, ptr @test_count, align 4, !tbaa !5
  %2388 = call i32 @s2n_stuffer_wipe_n(ptr noundef %57, i32 noundef 2)
  %2389 = icmp eq i32 %2388, -1
  br i1 %2389, label %2390, label %2443

2390:                                             ; preds = %2385
  br label %2391

2391:                                             ; preds = %2390
  br label %2392

2392:                                             ; preds = %2391
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #8
  %2393 = call ptr @__errno_location() #9
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  store i32 %2394, ptr %60, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = call i32 @s2n_print_stacktrace(ptr noundef %2395)
  %2397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2398 = trunc i8 %2397 to i1
  br i1 %2398, label %2399, label %2421

2399:                                             ; preds = %2392
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = call i32 @fileno(ptr noundef %2400) #8
  %2402 = call i32 @isatty(i32 noundef %2401) #8
  %2403 = icmp ne i32 %2402, 0
  br i1 %2403, label %2404, label %2421

2404:                                             ; preds = %2399
  %2405 = load i32, ptr %60, align 4, !tbaa !5
  %2406 = call ptr @__errno_location() #9
  store i32 %2405, ptr %2406, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror(i32 noundef %2410, ptr noundef @.str.4)
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror_debug(i32 noundef %2413, ptr noundef @.str.4)
  %2415 = call ptr @__errno_location() #9
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @strerror(i32 noundef %2416) #8
  %2418 = call ptr @__errno_location() #9
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2407, ptr noundef @.str.2, i32 noundef %2408, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2411, ptr noundef %2414, ptr noundef %2417, i32 noundef %2419) #8
  br label %2438

2421:                                             ; preds = %2399, %2392
  %2422 = load i32, ptr %60, align 4, !tbaa !5
  %2423 = call ptr @__errno_location() #9
  store i32 %2422, ptr %2423, align 4, !tbaa !5
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef @.str.4)
  %2429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror_debug(i32 noundef %2430, ptr noundef @.str.4)
  %2432 = call ptr @__errno_location() #9
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @strerror(i32 noundef %2433) #8
  %2435 = call ptr @__errno_location() #9
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2424, ptr noundef @.str.5, i32 noundef %2425, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2428, ptr noundef %2431, ptr noundef %2434, i32 noundef %2436) #8
  br label %2438

2438:                                             ; preds = %2421, %2404
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

2440:                                             ; preds = %2439
  call void @exit(i32 noundef 1) #10
  unreachable

2441:                                             ; No predecessors!
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

2443:                                             ; preds = %2442, %2385
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

2446:                                             ; preds = %2445
  %2447 = load i32, ptr @test_count, align 4, !tbaa !5
  %2448 = add nsw i32 %2447, 1
  store i32 %2448, ptr @test_count, align 4, !tbaa !5
  %2449 = load ptr, ptr %54, align 8, !tbaa !9
  %2450 = getelementptr inbounds %struct.s2n_connection, ptr %2449, i32 0, i32 65
  %2451 = load i32, ptr %2450, align 8, !tbaa !24
  %2452 = icmp eq i32 %2451, 0
  br i1 %2452, label %2506, label %2453

2453:                                             ; preds = %2446
  br label %2454

2454:                                             ; preds = %2453
  br label %2455

2455:                                             ; preds = %2454
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %2456 = call ptr @__errno_location() #9
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  store i32 %2457, ptr %61, align 4, !tbaa !5
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = call i32 @s2n_print_stacktrace(ptr noundef %2458)
  %2460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2461 = trunc i8 %2460 to i1
  br i1 %2461, label %2462, label %2484

2462:                                             ; preds = %2455
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = call i32 @fileno(ptr noundef %2463) #8
  %2465 = call i32 @isatty(i32 noundef %2464) #8
  %2466 = icmp ne i32 %2465, 0
  br i1 %2466, label %2467, label %2484

2467:                                             ; preds = %2462
  %2468 = load i32, ptr %61, align 4, !tbaa !5
  %2469 = call ptr @__errno_location() #9
  store i32 %2468, ptr %2469, align 4, !tbaa !5
  %2470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2471 = load i32, ptr @test_count, align 4, !tbaa !5
  %2472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @s2n_strerror(i32 noundef %2473, ptr noundef @.str.4)
  %2475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @s2n_strerror_debug(i32 noundef %2476, ptr noundef @.str.4)
  %2478 = call ptr @__errno_location() #9
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @strerror(i32 noundef %2479) #8
  %2481 = call ptr @__errno_location() #9
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2470, ptr noundef @.str.2, i32 noundef %2471, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2474, ptr noundef %2477, ptr noundef %2480, i32 noundef %2482) #8
  br label %2501

2484:                                             ; preds = %2462, %2455
  %2485 = load i32, ptr %61, align 4, !tbaa !5
  %2486 = call ptr @__errno_location() #9
  store i32 %2485, ptr %2486, align 4, !tbaa !5
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = load i32, ptr @test_count, align 4, !tbaa !5
  %2489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call ptr @s2n_strerror(i32 noundef %2490, ptr noundef @.str.4)
  %2492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror_debug(i32 noundef %2493, ptr noundef @.str.4)
  %2495 = call ptr @__errno_location() #9
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @strerror(i32 noundef %2496) #8
  %2498 = call ptr @__errno_location() #9
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2487, ptr noundef @.str.5, i32 noundef %2488, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2491, ptr noundef %2494, ptr noundef %2497, i32 noundef %2499) #8
  br label %2501

2501:                                             ; preds = %2484, %2467
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %2502

2502:                                             ; preds = %2501
  br label %2503

2503:                                             ; preds = %2502
  call void @exit(i32 noundef 1) #10
  unreachable

2504:                                             ; No predecessors!
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

2506:                                             ; preds = %2505, %2446
  br label %2507

2507:                                             ; preds = %2506
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508
  %2510 = load i32, ptr @test_count, align 4, !tbaa !5
  %2511 = add nsw i32 %2510, 1
  store i32 %2511, ptr @test_count, align 4, !tbaa !5
  %2512 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cert_status_request_extension, i32 0, i32 4), align 8, !tbaa !48
  %2513 = load ptr, ptr %54, align 8, !tbaa !9
  %2514 = call i32 %2512(ptr noundef %2513, ptr noundef %57)
  %2515 = icmp eq i32 %2514, -1
  br i1 %2515, label %2516, label %2569

2516:                                             ; preds = %2509
  br label %2517

2517:                                             ; preds = %2516
  br label %2518

2518:                                             ; preds = %2517
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #8
  %2519 = call ptr @__errno_location() #9
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  store i32 %2520, ptr %62, align 4, !tbaa !5
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = call i32 @s2n_print_stacktrace(ptr noundef %2521)
  %2523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2524 = trunc i8 %2523 to i1
  br i1 %2524, label %2525, label %2547

2525:                                             ; preds = %2518
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = call i32 @fileno(ptr noundef %2526) #8
  %2528 = call i32 @isatty(i32 noundef %2527) #8
  %2529 = icmp ne i32 %2528, 0
  br i1 %2529, label %2530, label %2547

2530:                                             ; preds = %2525
  %2531 = load i32, ptr %62, align 4, !tbaa !5
  %2532 = call ptr @__errno_location() #9
  store i32 %2531, ptr %2532, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = load i32, ptr @test_count, align 4, !tbaa !5
  %2535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror(i32 noundef %2536, ptr noundef @.str.4)
  %2538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror_debug(i32 noundef %2539, ptr noundef @.str.4)
  %2541 = call ptr @__errno_location() #9
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @strerror(i32 noundef %2542) #8
  %2544 = call ptr @__errno_location() #9
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2533, ptr noundef @.str.2, i32 noundef %2534, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2537, ptr noundef %2540, ptr noundef %2543, i32 noundef %2545) #8
  br label %2564

2547:                                             ; preds = %2525, %2518
  %2548 = load i32, ptr %62, align 4, !tbaa !5
  %2549 = call ptr @__errno_location() #9
  store i32 %2548, ptr %2549, align 4, !tbaa !5
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = load i32, ptr @test_count, align 4, !tbaa !5
  %2552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call ptr @s2n_strerror(i32 noundef %2553, ptr noundef @.str.4)
  %2555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror_debug(i32 noundef %2556, ptr noundef @.str.4)
  %2558 = call ptr @__errno_location() #9
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @strerror(i32 noundef %2559) #8
  %2561 = call ptr @__errno_location() #9
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2550, ptr noundef @.str.5, i32 noundef %2551, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2554, ptr noundef %2557, ptr noundef %2560, i32 noundef %2562) #8
  br label %2564

2564:                                             ; preds = %2547, %2530
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  br label %2565

2565:                                             ; preds = %2564
  br label %2566

2566:                                             ; preds = %2565
  call void @exit(i32 noundef 1) #10
  unreachable

2567:                                             ; No predecessors!
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568, %2509
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

2572:                                             ; preds = %2571
  %2573 = load i32, ptr @test_count, align 4, !tbaa !5
  %2574 = add nsw i32 %2573, 1
  store i32 %2574, ptr @test_count, align 4, !tbaa !5
  %2575 = load ptr, ptr %54, align 8, !tbaa !9
  %2576 = getelementptr inbounds %struct.s2n_connection, ptr %2575, i32 0, i32 65
  %2577 = load i32, ptr %2576, align 8, !tbaa !24
  %2578 = icmp eq i32 %2577, 0
  br i1 %2578, label %2632, label %2579

2579:                                             ; preds = %2572
  br label %2580

2580:                                             ; preds = %2579
  br label %2581

2581:                                             ; preds = %2580
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #8
  %2582 = call ptr @__errno_location() #9
  %2583 = load i32, ptr %2582, align 4, !tbaa !5
  store i32 %2583, ptr %63, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = call i32 @s2n_print_stacktrace(ptr noundef %2584)
  %2586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2587 = trunc i8 %2586 to i1
  br i1 %2587, label %2588, label %2610

2588:                                             ; preds = %2581
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @fileno(ptr noundef %2589) #8
  %2591 = call i32 @isatty(i32 noundef %2590) #8
  %2592 = icmp ne i32 %2591, 0
  br i1 %2592, label %2593, label %2610

2593:                                             ; preds = %2588
  %2594 = load i32, ptr %63, align 4, !tbaa !5
  %2595 = call ptr @__errno_location() #9
  store i32 %2594, ptr %2595, align 4, !tbaa !5
  %2596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2597 = load i32, ptr @test_count, align 4, !tbaa !5
  %2598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror(i32 noundef %2599, ptr noundef @.str.4)
  %2601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror_debug(i32 noundef %2602, ptr noundef @.str.4)
  %2604 = call ptr @__errno_location() #9
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call ptr @strerror(i32 noundef %2605) #8
  %2607 = call ptr @__errno_location() #9
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2596, ptr noundef @.str.2, i32 noundef %2597, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2600, ptr noundef %2603, ptr noundef %2606, i32 noundef %2608) #8
  br label %2627

2610:                                             ; preds = %2588, %2581
  %2611 = load i32, ptr %63, align 4, !tbaa !5
  %2612 = call ptr @__errno_location() #9
  store i32 %2611, ptr %2612, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror(i32 noundef %2616, ptr noundef @.str.4)
  %2618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call ptr @s2n_strerror_debug(i32 noundef %2619, ptr noundef @.str.4)
  %2621 = call ptr @__errno_location() #9
  %2622 = load i32, ptr %2621, align 4, !tbaa !5
  %2623 = call ptr @strerror(i32 noundef %2622) #8
  %2624 = call ptr @__errno_location() #9
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef @.str.5, i32 noundef %2614, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2617, ptr noundef %2620, ptr noundef %2623, i32 noundef %2625) #8
  br label %2627

2627:                                             ; preds = %2610, %2593
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %2628

2628:                                             ; preds = %2627
  br label %2629

2629:                                             ; preds = %2628
  call void @exit(i32 noundef 1) #10
  unreachable

2630:                                             ; No predecessors!
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

2632:                                             ; preds = %2631, %2572
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

2634:                                             ; preds = %2633
  br label %2635

2635:                                             ; preds = %2634
  %2636 = load i32, ptr @test_count, align 4, !tbaa !5
  %2637 = add nsw i32 %2636, 1
  store i32 %2637, ptr @test_count, align 4, !tbaa !5
  %2638 = call i32 @s2n_stuffer_free(ptr noundef %57)
  %2639 = icmp eq i32 %2638, -1
  br i1 %2639, label %2640, label %2693

2640:                                             ; preds = %2635
  br label %2641

2641:                                             ; preds = %2640
  br label %2642

2642:                                             ; preds = %2641
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #8
  %2643 = call ptr @__errno_location() #9
  %2644 = load i32, ptr %2643, align 4, !tbaa !5
  store i32 %2644, ptr %64, align 4, !tbaa !5
  %2645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2646 = call i32 @s2n_print_stacktrace(ptr noundef %2645)
  %2647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2648 = trunc i8 %2647 to i1
  br i1 %2648, label %2649, label %2671

2649:                                             ; preds = %2642
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = call i32 @fileno(ptr noundef %2650) #8
  %2652 = call i32 @isatty(i32 noundef %2651) #8
  %2653 = icmp ne i32 %2652, 0
  br i1 %2653, label %2654, label %2671

2654:                                             ; preds = %2649
  %2655 = load i32, ptr %64, align 4, !tbaa !5
  %2656 = call ptr @__errno_location() #9
  store i32 %2655, ptr %2656, align 4, !tbaa !5
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = load i32, ptr @test_count, align 4, !tbaa !5
  %2659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror(i32 noundef %2660, ptr noundef @.str.4)
  %2662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @s2n_strerror_debug(i32 noundef %2663, ptr noundef @.str.4)
  %2665 = call ptr @__errno_location() #9
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call ptr @strerror(i32 noundef %2666) #8
  %2668 = call ptr @__errno_location() #9
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2657, ptr noundef @.str.2, i32 noundef %2658, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2661, ptr noundef %2664, ptr noundef %2667, i32 noundef %2669) #8
  br label %2688

2671:                                             ; preds = %2649, %2642
  %2672 = load i32, ptr %64, align 4, !tbaa !5
  %2673 = call ptr @__errno_location() #9
  store i32 %2672, ptr %2673, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = load i32, ptr @test_count, align 4, !tbaa !5
  %2676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror(i32 noundef %2677, ptr noundef @.str.4)
  %2679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror_debug(i32 noundef %2680, ptr noundef @.str.4)
  %2682 = call ptr @__errno_location() #9
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @strerror(i32 noundef %2683) #8
  %2685 = call ptr @__errno_location() #9
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2674, ptr noundef @.str.5, i32 noundef %2675, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2678, ptr noundef %2681, ptr noundef %2684, i32 noundef %2686) #8
  br label %2688

2688:                                             ; preds = %2671, %2654
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  br label %2689

2689:                                             ; preds = %2688
  br label %2690

2690:                                             ; preds = %2689
  call void @exit(i32 noundef 1) #10
  unreachable

2691:                                             ; No predecessors!
  br label %2692

2692:                                             ; preds = %2691
  br label %2693

2693:                                             ; preds = %2692, %2635
  br label %2694

2694:                                             ; preds = %2693
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695
  %2697 = load i32, ptr @test_count, align 4, !tbaa !5
  %2698 = add nsw i32 %2697, 1
  store i32 %2698, ptr @test_count, align 4, !tbaa !5
  %2699 = load ptr, ptr %54, align 8, !tbaa !9
  %2700 = call i32 @s2n_connection_free(ptr noundef %2699)
  %2701 = icmp eq i32 %2700, -1
  br i1 %2701, label %2702, label %2755

2702:                                             ; preds = %2696
  br label %2703

2703:                                             ; preds = %2702
  br label %2704

2704:                                             ; preds = %2703
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #8
  %2705 = call ptr @__errno_location() #9
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  store i32 %2706, ptr %65, align 4, !tbaa !5
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = call i32 @s2n_print_stacktrace(ptr noundef %2707)
  %2709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2710 = trunc i8 %2709 to i1
  br i1 %2710, label %2711, label %2733

2711:                                             ; preds = %2704
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = call i32 @fileno(ptr noundef %2712) #8
  %2714 = call i32 @isatty(i32 noundef %2713) #8
  %2715 = icmp ne i32 %2714, 0
  br i1 %2715, label %2716, label %2733

2716:                                             ; preds = %2711
  %2717 = load i32, ptr %65, align 4, !tbaa !5
  %2718 = call ptr @__errno_location() #9
  store i32 %2717, ptr %2718, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = load i32, ptr @test_count, align 4, !tbaa !5
  %2721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call ptr @s2n_strerror(i32 noundef %2722, ptr noundef @.str.4)
  %2724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call ptr @s2n_strerror_debug(i32 noundef %2725, ptr noundef @.str.4)
  %2727 = call ptr @__errno_location() #9
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #8
  %2730 = call ptr @__errno_location() #9
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2719, ptr noundef @.str.2, i32 noundef %2720, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2723, ptr noundef %2726, ptr noundef %2729, i32 noundef %2731) #8
  br label %2750

2733:                                             ; preds = %2711, %2704
  %2734 = load i32, ptr %65, align 4, !tbaa !5
  %2735 = call ptr @__errno_location() #9
  store i32 %2734, ptr %2735, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = load i32, ptr @test_count, align 4, !tbaa !5
  %2738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = call ptr @s2n_strerror(i32 noundef %2739, ptr noundef @.str.4)
  %2741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2742 = load i32, ptr %2741, align 4, !tbaa !5
  %2743 = call ptr @s2n_strerror_debug(i32 noundef %2742, ptr noundef @.str.4)
  %2744 = call ptr @__errno_location() #9
  %2745 = load i32, ptr %2744, align 4, !tbaa !5
  %2746 = call ptr @strerror(i32 noundef %2745) #8
  %2747 = call ptr @__errno_location() #9
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2736, ptr noundef @.str.5, i32 noundef %2737, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2740, ptr noundef %2743, ptr noundef %2746, i32 noundef %2748) #8
  br label %2750

2750:                                             ; preds = %2733, %2716
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  br label %2751

2751:                                             ; preds = %2750
  br label %2752

2752:                                             ; preds = %2751
  call void @exit(i32 noundef 1) #10
  unreachable

2753:                                             ; No predecessors!
  br label %2754

2754:                                             ; preds = %2753
  br label %2755

2755:                                             ; preds = %2754, %2696
  br label %2756

2756:                                             ; preds = %2755
  br label %2757

2757:                                             ; preds = %2756
  call void @llvm.lifetime.end.p0(i64 40, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  %2758 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2758, ptr %66, align 8, !tbaa !9
  br label %2759

2759:                                             ; preds = %2757
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %2761 = add nsw i32 %2760, 1
  store i32 %2761, ptr @test_count, align 4, !tbaa !5
  %2762 = load ptr, ptr %66, align 8, !tbaa !9
  %2763 = icmp eq ptr %2762, null
  br i1 %2763, label %2764, label %2817

2764:                                             ; preds = %2759
  br label %2765

2765:                                             ; preds = %2764
  br label %2766

2766:                                             ; preds = %2765
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #8
  %2767 = call ptr @__errno_location() #9
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  store i32 %2768, ptr %67, align 4, !tbaa !5
  %2769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2770 = call i32 @s2n_print_stacktrace(ptr noundef %2769)
  %2771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2772 = trunc i8 %2771 to i1
  br i1 %2772, label %2773, label %2795

2773:                                             ; preds = %2766
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = call i32 @fileno(ptr noundef %2774) #8
  %2776 = call i32 @isatty(i32 noundef %2775) #8
  %2777 = icmp ne i32 %2776, 0
  br i1 %2777, label %2778, label %2795

2778:                                             ; preds = %2773
  %2779 = load i32, ptr %67, align 4, !tbaa !5
  %2780 = call ptr @__errno_location() #9
  store i32 %2779, ptr %2780, align 4, !tbaa !5
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = load i32, ptr @test_count, align 4, !tbaa !5
  %2783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror(i32 noundef %2784, ptr noundef @.str.4)
  %2786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror_debug(i32 noundef %2787, ptr noundef @.str.4)
  %2789 = call ptr @__errno_location() #9
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @strerror(i32 noundef %2790) #8
  %2792 = call ptr @__errno_location() #9
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2781, ptr noundef @.str.2, i32 noundef %2782, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2785, ptr noundef %2788, ptr noundef %2791, i32 noundef %2793) #8
  br label %2812

2795:                                             ; preds = %2773, %2766
  %2796 = load i32, ptr %67, align 4, !tbaa !5
  %2797 = call ptr @__errno_location() #9
  store i32 %2796, ptr %2797, align 4, !tbaa !5
  %2798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2799 = load i32, ptr @test_count, align 4, !tbaa !5
  %2800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2801 = load i32, ptr %2800, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror(i32 noundef %2801, ptr noundef @.str.4)
  %2803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  %2805 = call ptr @s2n_strerror_debug(i32 noundef %2804, ptr noundef @.str.4)
  %2806 = call ptr @__errno_location() #9
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @strerror(i32 noundef %2807) #8
  %2809 = call ptr @__errno_location() #9
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2798, ptr noundef @.str.5, i32 noundef %2799, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2802, ptr noundef %2805, ptr noundef %2808, i32 noundef %2810) #8
  br label %2812

2812:                                             ; preds = %2795, %2778
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  br label %2813

2813:                                             ; preds = %2812
  br label %2814

2814:                                             ; preds = %2813
  call void @exit(i32 noundef 1) #10
  unreachable

2815:                                             ; No predecessors!
  br label %2816

2816:                                             ; preds = %2815
  br label %2817

2817:                                             ; preds = %2816, %2759
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818
  call void @llvm.lifetime.start.p0(i64 40, ptr %68) #8
  call void @llvm.memset.p0.i64(ptr align 8 %68, i8 0, i64 40, i1 false)
  br label %2820

2820:                                             ; preds = %2819
  %2821 = load i32, ptr @test_count, align 4, !tbaa !5
  %2822 = add nsw i32 %2821, 1
  store i32 %2822, ptr @test_count, align 4, !tbaa !5
  %2823 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %68, i32 noundef 0)
  %2824 = icmp eq i32 %2823, -1
  br i1 %2824, label %2825, label %2878

2825:                                             ; preds = %2820
  br label %2826

2826:                                             ; preds = %2825
  br label %2827

2827:                                             ; preds = %2826
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #8
  %2828 = call ptr @__errno_location() #9
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  store i32 %2829, ptr %69, align 4, !tbaa !5
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = call i32 @s2n_print_stacktrace(ptr noundef %2830)
  %2832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2833 = trunc i8 %2832 to i1
  br i1 %2833, label %2834, label %2856

2834:                                             ; preds = %2827
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = call i32 @fileno(ptr noundef %2835) #8
  %2837 = call i32 @isatty(i32 noundef %2836) #8
  %2838 = icmp ne i32 %2837, 0
  br i1 %2838, label %2839, label %2856

2839:                                             ; preds = %2834
  %2840 = load i32, ptr %69, align 4, !tbaa !5
  %2841 = call ptr @__errno_location() #9
  store i32 %2840, ptr %2841, align 4, !tbaa !5
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = load i32, ptr @test_count, align 4, !tbaa !5
  %2844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call ptr @s2n_strerror(i32 noundef %2845, ptr noundef @.str.4)
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror_debug(i32 noundef %2848, ptr noundef @.str.4)
  %2850 = call ptr @__errno_location() #9
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @strerror(i32 noundef %2851) #8
  %2853 = call ptr @__errno_location() #9
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2842, ptr noundef @.str.2, i32 noundef %2843, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2846, ptr noundef %2849, ptr noundef %2852, i32 noundef %2854) #8
  br label %2873

2856:                                             ; preds = %2834, %2827
  %2857 = load i32, ptr %69, align 4, !tbaa !5
  %2858 = call ptr @__errno_location() #9
  store i32 %2857, ptr %2858, align 4, !tbaa !5
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = load i32, ptr @test_count, align 4, !tbaa !5
  %2861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = call ptr @s2n_strerror(i32 noundef %2862, ptr noundef @.str.4)
  %2864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror_debug(i32 noundef %2865, ptr noundef @.str.4)
  %2867 = call ptr @__errno_location() #9
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call ptr @strerror(i32 noundef %2868) #8
  %2870 = call ptr @__errno_location() #9
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2859, ptr noundef @.str.5, i32 noundef %2860, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2863, ptr noundef %2866, ptr noundef %2869, i32 noundef %2871) #8
  br label %2873

2873:                                             ; preds = %2856, %2839
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #8
  br label %2874

2874:                                             ; preds = %2873
  br label %2875

2875:                                             ; preds = %2874
  call void @exit(i32 noundef 1) #10
  unreachable

2876:                                             ; No predecessors!
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

2878:                                             ; preds = %2877, %2820
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880
  %2882 = load i32, ptr @test_count, align 4, !tbaa !5
  %2883 = add nsw i32 %2882, 1
  store i32 %2883, ptr @test_count, align 4, !tbaa !5
  %2884 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cert_status_request_extension, i32 0, i32 3), align 8, !tbaa !18
  %2885 = load ptr, ptr %66, align 8, !tbaa !9
  %2886 = call i32 %2884(ptr noundef %2885, ptr noundef %68)
  %2887 = icmp eq i32 %2886, -1
  br i1 %2887, label %2888, label %2941

2888:                                             ; preds = %2881
  br label %2889

2889:                                             ; preds = %2888
  br label %2890

2890:                                             ; preds = %2889
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #8
  %2891 = call ptr @__errno_location() #9
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  store i32 %2892, ptr %70, align 4, !tbaa !5
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = call i32 @s2n_print_stacktrace(ptr noundef %2893)
  %2895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2896 = trunc i8 %2895 to i1
  br i1 %2896, label %2897, label %2919

2897:                                             ; preds = %2890
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @fileno(ptr noundef %2898) #8
  %2900 = call i32 @isatty(i32 noundef %2899) #8
  %2901 = icmp ne i32 %2900, 0
  br i1 %2901, label %2902, label %2919

2902:                                             ; preds = %2897
  %2903 = load i32, ptr %70, align 4, !tbaa !5
  %2904 = call ptr @__errno_location() #9
  store i32 %2903, ptr %2904, align 4, !tbaa !5
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = load i32, ptr @test_count, align 4, !tbaa !5
  %2907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call ptr @s2n_strerror(i32 noundef %2908, ptr noundef @.str.4)
  %2910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call ptr @s2n_strerror_debug(i32 noundef %2911, ptr noundef @.str.4)
  %2913 = call ptr @__errno_location() #9
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call ptr @strerror(i32 noundef %2914) #8
  %2916 = call ptr @__errno_location() #9
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2905, ptr noundef @.str.2, i32 noundef %2906, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2909, ptr noundef %2912, ptr noundef %2915, i32 noundef %2917) #8
  br label %2936

2919:                                             ; preds = %2897, %2890
  %2920 = load i32, ptr %70, align 4, !tbaa !5
  %2921 = call ptr @__errno_location() #9
  store i32 %2920, ptr %2921, align 4, !tbaa !5
  %2922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2923 = load i32, ptr @test_count, align 4, !tbaa !5
  %2924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call ptr @s2n_strerror(i32 noundef %2925, ptr noundef @.str.4)
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror_debug(i32 noundef %2928, ptr noundef @.str.4)
  %2930 = call ptr @__errno_location() #9
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @strerror(i32 noundef %2931) #8
  %2933 = call ptr @__errno_location() #9
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2922, ptr noundef @.str.5, i32 noundef %2923, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2926, ptr noundef %2929, ptr noundef %2932, i32 noundef %2934) #8
  br label %2936

2936:                                             ; preds = %2919, %2902
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

2938:                                             ; preds = %2937
  call void @exit(i32 noundef 1) #10
  unreachable

2939:                                             ; No predecessors!
  br label %2940

2940:                                             ; preds = %2939
  br label %2941

2941:                                             ; preds = %2940, %2881
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #8
  %2944 = getelementptr inbounds %struct.s2n_stuffer, ptr %68, i32 0, i32 2
  %2945 = load i32, ptr %2944, align 4, !tbaa !20
  %2946 = getelementptr inbounds %struct.s2n_stuffer, ptr %68, i32 0, i32 1
  %2947 = load i32, ptr %2946, align 8, !tbaa !23
  %2948 = sub i32 %2945, %2947
  store i32 %2948, ptr %71, align 4, !tbaa !5
  br label %2949

2949:                                             ; preds = %2943
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = add nsw i32 %2950, 1
  store i32 %2951, ptr @test_count, align 4, !tbaa !5
  %2952 = call i32 @s2n_stuffer_rewrite(ptr noundef %68)
  %2953 = icmp eq i32 %2952, -1
  br i1 %2953, label %2954, label %3007

2954:                                             ; preds = %2949
  br label %2955

2955:                                             ; preds = %2954
  br label %2956

2956:                                             ; preds = %2955
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #8
  %2957 = call ptr @__errno_location() #9
  %2958 = load i32, ptr %2957, align 4, !tbaa !5
  store i32 %2958, ptr %72, align 4, !tbaa !5
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = call i32 @s2n_print_stacktrace(ptr noundef %2959)
  %2961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2962 = trunc i8 %2961 to i1
  br i1 %2962, label %2963, label %2985

2963:                                             ; preds = %2956
  %2964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2965 = call i32 @fileno(ptr noundef %2964) #8
  %2966 = call i32 @isatty(i32 noundef %2965) #8
  %2967 = icmp ne i32 %2966, 0
  br i1 %2967, label %2968, label %2985

2968:                                             ; preds = %2963
  %2969 = load i32, ptr %72, align 4, !tbaa !5
  %2970 = call ptr @__errno_location() #9
  store i32 %2969, ptr %2970, align 4, !tbaa !5
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = load i32, ptr @test_count, align 4, !tbaa !5
  %2973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror(i32 noundef %2974, ptr noundef @.str.4)
  %2976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror_debug(i32 noundef %2977, ptr noundef @.str.4)
  %2979 = call ptr @__errno_location() #9
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @strerror(i32 noundef %2980) #8
  %2982 = call ptr @__errno_location() #9
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2971, ptr noundef @.str.2, i32 noundef %2972, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2975, ptr noundef %2978, ptr noundef %2981, i32 noundef %2983) #8
  br label %3002

2985:                                             ; preds = %2963, %2956
  %2986 = load i32, ptr %72, align 4, !tbaa !5
  %2987 = call ptr @__errno_location() #9
  store i32 %2986, ptr %2987, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = load i32, ptr @test_count, align 4, !tbaa !5
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror(i32 noundef %2991, ptr noundef @.str.4)
  %2993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @s2n_strerror_debug(i32 noundef %2994, ptr noundef @.str.4)
  %2996 = call ptr @__errno_location() #9
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call ptr @strerror(i32 noundef %2997) #8
  %2999 = call ptr @__errno_location() #9
  %3000 = load i32, ptr %2999, align 4, !tbaa !5
  %3001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2988, ptr noundef @.str.5, i32 noundef %2989, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2992, ptr noundef %2995, ptr noundef %2998, i32 noundef %3000) #8
  br label %3002

3002:                                             ; preds = %2985, %2968
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #8
  br label %3003

3003:                                             ; preds = %3002
  br label %3004

3004:                                             ; preds = %3003
  call void @exit(i32 noundef 1) #10
  unreachable

3005:                                             ; No predecessors!
  br label %3006

3006:                                             ; preds = %3005
  br label %3007

3007:                                             ; preds = %3006, %2949
  br label %3008

3008:                                             ; preds = %3007
  br label %3009

3009:                                             ; preds = %3008
  br label %3010

3010:                                             ; preds = %3009
  %3011 = load i32, ptr @test_count, align 4, !tbaa !5
  %3012 = add nsw i32 %3011, 1
  store i32 %3012, ptr @test_count, align 4, !tbaa !5
  %3013 = call i32 @s2n_stuffer_write_uint8(ptr noundef %68, i8 noundef zeroext -1)
  %3014 = icmp eq i32 %3013, -1
  br i1 %3014, label %3015, label %3068

3015:                                             ; preds = %3010
  br label %3016

3016:                                             ; preds = %3015
  br label %3017

3017:                                             ; preds = %3016
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #8
  %3018 = call ptr @__errno_location() #9
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  store i32 %3019, ptr %73, align 4, !tbaa !5
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = call i32 @s2n_print_stacktrace(ptr noundef %3020)
  %3022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3023 = trunc i8 %3022 to i1
  br i1 %3023, label %3024, label %3046

3024:                                             ; preds = %3017
  %3025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3026 = call i32 @fileno(ptr noundef %3025) #8
  %3027 = call i32 @isatty(i32 noundef %3026) #8
  %3028 = icmp ne i32 %3027, 0
  br i1 %3028, label %3029, label %3046

3029:                                             ; preds = %3024
  %3030 = load i32, ptr %73, align 4, !tbaa !5
  %3031 = call ptr @__errno_location() #9
  store i32 %3030, ptr %3031, align 4, !tbaa !5
  %3032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3033 = load i32, ptr @test_count, align 4, !tbaa !5
  %3034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  %3036 = call ptr @s2n_strerror(i32 noundef %3035, ptr noundef @.str.4)
  %3037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  %3039 = call ptr @s2n_strerror_debug(i32 noundef %3038, ptr noundef @.str.4)
  %3040 = call ptr @__errno_location() #9
  %3041 = load i32, ptr %3040, align 4, !tbaa !5
  %3042 = call ptr @strerror(i32 noundef %3041) #8
  %3043 = call ptr @__errno_location() #9
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3032, ptr noundef @.str.2, i32 noundef %3033, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 132, ptr noundef %3036, ptr noundef %3039, ptr noundef %3042, i32 noundef %3044) #8
  br label %3063

3046:                                             ; preds = %3024, %3017
  %3047 = load i32, ptr %73, align 4, !tbaa !5
  %3048 = call ptr @__errno_location() #9
  store i32 %3047, ptr %3048, align 4, !tbaa !5
  %3049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3050 = load i32, ptr @test_count, align 4, !tbaa !5
  %3051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call ptr @s2n_strerror(i32 noundef %3052, ptr noundef @.str.4)
  %3054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror_debug(i32 noundef %3055, ptr noundef @.str.4)
  %3057 = call ptr @__errno_location() #9
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call ptr @strerror(i32 noundef %3058) #8
  %3060 = call ptr @__errno_location() #9
  %3061 = load i32, ptr %3060, align 4, !tbaa !5
  %3062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3049, ptr noundef @.str.5, i32 noundef %3050, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 132, ptr noundef %3053, ptr noundef %3056, ptr noundef %3059, i32 noundef %3061) #8
  br label %3063

3063:                                             ; preds = %3046, %3029
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  br label %3064

3064:                                             ; preds = %3063
  br label %3065

3065:                                             ; preds = %3064
  call void @exit(i32 noundef 1) #10
  unreachable

3066:                                             ; No predecessors!
  br label %3067

3067:                                             ; preds = %3066
  br label %3068

3068:                                             ; preds = %3067, %3010
  br label %3069

3069:                                             ; preds = %3068
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  %3072 = load i32, ptr @test_count, align 4, !tbaa !5
  %3073 = add nsw i32 %3072, 1
  store i32 %3073, ptr @test_count, align 4, !tbaa !5
  %3074 = load i32, ptr %71, align 4, !tbaa !5
  %3075 = sub nsw i32 %3074, 1
  %3076 = call i32 @s2n_stuffer_skip_write(ptr noundef %68, i32 noundef %3075)
  %3077 = icmp eq i32 %3076, -1
  br i1 %3077, label %3078, label %3131

3078:                                             ; preds = %3071
  br label %3079

3079:                                             ; preds = %3078
  br label %3080

3080:                                             ; preds = %3079
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #8
  %3081 = call ptr @__errno_location() #9
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  store i32 %3082, ptr %74, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = call i32 @s2n_print_stacktrace(ptr noundef %3083)
  %3085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3086 = trunc i8 %3085 to i1
  br i1 %3086, label %3087, label %3109

3087:                                             ; preds = %3080
  %3088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3089 = call i32 @fileno(ptr noundef %3088) #8
  %3090 = call i32 @isatty(i32 noundef %3089) #8
  %3091 = icmp ne i32 %3090, 0
  br i1 %3091, label %3092, label %3109

3092:                                             ; preds = %3087
  %3093 = load i32, ptr %74, align 4, !tbaa !5
  %3094 = call ptr @__errno_location() #9
  store i32 %3093, ptr %3094, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = load i32, ptr @test_count, align 4, !tbaa !5
  %3097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call ptr @s2n_strerror(i32 noundef %3098, ptr noundef @.str.4)
  %3100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror_debug(i32 noundef %3101, ptr noundef @.str.4)
  %3103 = call ptr @__errno_location() #9
  %3104 = load i32, ptr %3103, align 4, !tbaa !5
  %3105 = call ptr @strerror(i32 noundef %3104) #8
  %3106 = call ptr @__errno_location() #9
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3095, ptr noundef @.str.2, i32 noundef %3096, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3099, ptr noundef %3102, ptr noundef %3105, i32 noundef %3107) #8
  br label %3126

3109:                                             ; preds = %3087, %3080
  %3110 = load i32, ptr %74, align 4, !tbaa !5
  %3111 = call ptr @__errno_location() #9
  store i32 %3110, ptr %3111, align 4, !tbaa !5
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = load i32, ptr @test_count, align 4, !tbaa !5
  %3114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  %3116 = call ptr @s2n_strerror(i32 noundef %3115, ptr noundef @.str.4)
  %3117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3118 = load i32, ptr %3117, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror_debug(i32 noundef %3118, ptr noundef @.str.4)
  %3120 = call ptr @__errno_location() #9
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call ptr @strerror(i32 noundef %3121) #8
  %3123 = call ptr @__errno_location() #9
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3112, ptr noundef @.str.5, i32 noundef %3113, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3116, ptr noundef %3119, ptr noundef %3122, i32 noundef %3124) #8
  br label %3126

3126:                                             ; preds = %3109, %3092
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  br label %3127

3127:                                             ; preds = %3126
  br label %3128

3128:                                             ; preds = %3127
  call void @exit(i32 noundef 1) #10
  unreachable

3129:                                             ; No predecessors!
  br label %3130

3130:                                             ; preds = %3129
  br label %3131

3131:                                             ; preds = %3130, %3071
  br label %3132

3132:                                             ; preds = %3131
  br label %3133

3133:                                             ; preds = %3132
  br label %3134

3134:                                             ; preds = %3133
  %3135 = load i32, ptr @test_count, align 4, !tbaa !5
  %3136 = add nsw i32 %3135, 1
  store i32 %3136, ptr @test_count, align 4, !tbaa !5
  %3137 = getelementptr inbounds %struct.s2n_stuffer, ptr %68, i32 0, i32 2
  %3138 = load i32, ptr %3137, align 4, !tbaa !20
  %3139 = getelementptr inbounds %struct.s2n_stuffer, ptr %68, i32 0, i32 1
  %3140 = load i32, ptr %3139, align 8, !tbaa !23
  %3141 = sub i32 %3138, %3140
  %3142 = icmp uge i32 %3141, 5
  br i1 %3142, label %3196, label %3143

3143:                                             ; preds = %3134
  br label %3144

3144:                                             ; preds = %3143
  br label %3145

3145:                                             ; preds = %3144
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  %3146 = call ptr @__errno_location() #9
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  store i32 %3147, ptr %75, align 4, !tbaa !5
  %3148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3149 = call i32 @s2n_print_stacktrace(ptr noundef %3148)
  %3150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3151 = trunc i8 %3150 to i1
  br i1 %3151, label %3152, label %3174

3152:                                             ; preds = %3145
  %3153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3154 = call i32 @fileno(ptr noundef %3153) #8
  %3155 = call i32 @isatty(i32 noundef %3154) #8
  %3156 = icmp ne i32 %3155, 0
  br i1 %3156, label %3157, label %3174

3157:                                             ; preds = %3152
  %3158 = load i32, ptr %75, align 4, !tbaa !5
  %3159 = call ptr @__errno_location() #9
  store i32 %3158, ptr %3159, align 4, !tbaa !5
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3161 = load i32, ptr @test_count, align 4, !tbaa !5
  %3162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3163 = load i32, ptr %3162, align 4, !tbaa !5
  %3164 = call ptr @s2n_strerror(i32 noundef %3163, ptr noundef @.str.4)
  %3165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3166 = load i32, ptr %3165, align 4, !tbaa !5
  %3167 = call ptr @s2n_strerror_debug(i32 noundef %3166, ptr noundef @.str.4)
  %3168 = call ptr @__errno_location() #9
  %3169 = load i32, ptr %3168, align 4, !tbaa !5
  %3170 = call ptr @strerror(i32 noundef %3169) #8
  %3171 = call ptr @__errno_location() #9
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  %3173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3160, ptr noundef @.str.2, i32 noundef %3161, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3164, ptr noundef %3167, ptr noundef %3170, i32 noundef %3172) #8
  br label %3191

3174:                                             ; preds = %3152, %3145
  %3175 = load i32, ptr %75, align 4, !tbaa !5
  %3176 = call ptr @__errno_location() #9
  store i32 %3175, ptr %3176, align 4, !tbaa !5
  %3177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3178 = load i32, ptr @test_count, align 4, !tbaa !5
  %3179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3180 = load i32, ptr %3179, align 4, !tbaa !5
  %3181 = call ptr @s2n_strerror(i32 noundef %3180, ptr noundef @.str.4)
  %3182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3183 = load i32, ptr %3182, align 4, !tbaa !5
  %3184 = call ptr @s2n_strerror_debug(i32 noundef %3183, ptr noundef @.str.4)
  %3185 = call ptr @__errno_location() #9
  %3186 = load i32, ptr %3185, align 4, !tbaa !5
  %3187 = call ptr @strerror(i32 noundef %3186) #8
  %3188 = call ptr @__errno_location() #9
  %3189 = load i32, ptr %3188, align 4, !tbaa !5
  %3190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3177, ptr noundef @.str.5, i32 noundef %3178, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3181, ptr noundef %3184, ptr noundef %3187, i32 noundef %3189) #8
  br label %3191

3191:                                             ; preds = %3174, %3157
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

3193:                                             ; preds = %3192
  call void @exit(i32 noundef 1) #10
  unreachable

3194:                                             ; No predecessors!
  br label %3195

3195:                                             ; preds = %3194
  br label %3196

3196:                                             ; preds = %3195, %3134
  br label %3197

3197:                                             ; preds = %3196
  br label %3198

3198:                                             ; preds = %3197
  br label %3199

3199:                                             ; preds = %3198
  %3200 = load i32, ptr @test_count, align 4, !tbaa !5
  %3201 = add nsw i32 %3200, 1
  store i32 %3201, ptr @test_count, align 4, !tbaa !5
  %3202 = load ptr, ptr %66, align 8, !tbaa !9
  %3203 = getelementptr inbounds %struct.s2n_connection, ptr %3202, i32 0, i32 65
  %3204 = load i32, ptr %3203, align 8, !tbaa !24
  %3205 = icmp eq i32 %3204, 0
  br i1 %3205, label %3259, label %3206

3206:                                             ; preds = %3199
  br label %3207

3207:                                             ; preds = %3206
  br label %3208

3208:                                             ; preds = %3207
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  %3209 = call ptr @__errno_location() #9
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  store i32 %3210, ptr %76, align 4, !tbaa !5
  %3211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3212 = call i32 @s2n_print_stacktrace(ptr noundef %3211)
  %3213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3214 = trunc i8 %3213 to i1
  br i1 %3214, label %3215, label %3237

3215:                                             ; preds = %3208
  %3216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3217 = call i32 @fileno(ptr noundef %3216) #8
  %3218 = call i32 @isatty(i32 noundef %3217) #8
  %3219 = icmp ne i32 %3218, 0
  br i1 %3219, label %3220, label %3237

3220:                                             ; preds = %3215
  %3221 = load i32, ptr %76, align 4, !tbaa !5
  %3222 = call ptr @__errno_location() #9
  store i32 %3221, ptr %3222, align 4, !tbaa !5
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = load i32, ptr @test_count, align 4, !tbaa !5
  %3225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3226 = load i32, ptr %3225, align 4, !tbaa !5
  %3227 = call ptr @s2n_strerror(i32 noundef %3226, ptr noundef @.str.4)
  %3228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3229 = load i32, ptr %3228, align 4, !tbaa !5
  %3230 = call ptr @s2n_strerror_debug(i32 noundef %3229, ptr noundef @.str.4)
  %3231 = call ptr @__errno_location() #9
  %3232 = load i32, ptr %3231, align 4, !tbaa !5
  %3233 = call ptr @strerror(i32 noundef %3232) #8
  %3234 = call ptr @__errno_location() #9
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3223, ptr noundef @.str.2, i32 noundef %3224, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3227, ptr noundef %3230, ptr noundef %3233, i32 noundef %3235) #8
  br label %3254

3237:                                             ; preds = %3215, %3208
  %3238 = load i32, ptr %76, align 4, !tbaa !5
  %3239 = call ptr @__errno_location() #9
  store i32 %3238, ptr %3239, align 4, !tbaa !5
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = load i32, ptr @test_count, align 4, !tbaa !5
  %3242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3243 = load i32, ptr %3242, align 4, !tbaa !5
  %3244 = call ptr @s2n_strerror(i32 noundef %3243, ptr noundef @.str.4)
  %3245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  %3247 = call ptr @s2n_strerror_debug(i32 noundef %3246, ptr noundef @.str.4)
  %3248 = call ptr @__errno_location() #9
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = call ptr @strerror(i32 noundef %3249) #8
  %3251 = call ptr @__errno_location() #9
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3240, ptr noundef @.str.5, i32 noundef %3241, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3244, ptr noundef %3247, ptr noundef %3250, i32 noundef %3252) #8
  br label %3254

3254:                                             ; preds = %3237, %3220
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

3256:                                             ; preds = %3255
  call void @exit(i32 noundef 1) #10
  unreachable

3257:                                             ; No predecessors!
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

3259:                                             ; preds = %3258, %3199
  br label %3260

3260:                                             ; preds = %3259
  br label %3261

3261:                                             ; preds = %3260
  br label %3262

3262:                                             ; preds = %3261
  %3263 = load i32, ptr @test_count, align 4, !tbaa !5
  %3264 = add nsw i32 %3263, 1
  store i32 %3264, ptr @test_count, align 4, !tbaa !5
  %3265 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cert_status_request_extension, i32 0, i32 4), align 8, !tbaa !48
  %3266 = load ptr, ptr %66, align 8, !tbaa !9
  %3267 = call i32 %3265(ptr noundef %3266, ptr noundef %68)
  %3268 = icmp eq i32 %3267, -1
  br i1 %3268, label %3269, label %3322

3269:                                             ; preds = %3262
  br label %3270

3270:                                             ; preds = %3269
  br label %3271

3271:                                             ; preds = %3270
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  %3272 = call ptr @__errno_location() #9
  %3273 = load i32, ptr %3272, align 4, !tbaa !5
  store i32 %3273, ptr %77, align 4, !tbaa !5
  %3274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3275 = call i32 @s2n_print_stacktrace(ptr noundef %3274)
  %3276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3277 = trunc i8 %3276 to i1
  br i1 %3277, label %3278, label %3300

3278:                                             ; preds = %3271
  %3279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3280 = call i32 @fileno(ptr noundef %3279) #8
  %3281 = call i32 @isatty(i32 noundef %3280) #8
  %3282 = icmp ne i32 %3281, 0
  br i1 %3282, label %3283, label %3300

3283:                                             ; preds = %3278
  %3284 = load i32, ptr %77, align 4, !tbaa !5
  %3285 = call ptr @__errno_location() #9
  store i32 %3284, ptr %3285, align 4, !tbaa !5
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3287 = load i32, ptr @test_count, align 4, !tbaa !5
  %3288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3289 = load i32, ptr %3288, align 4, !tbaa !5
  %3290 = call ptr @s2n_strerror(i32 noundef %3289, ptr noundef @.str.4)
  %3291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3292 = load i32, ptr %3291, align 4, !tbaa !5
  %3293 = call ptr @s2n_strerror_debug(i32 noundef %3292, ptr noundef @.str.4)
  %3294 = call ptr @__errno_location() #9
  %3295 = load i32, ptr %3294, align 4, !tbaa !5
  %3296 = call ptr @strerror(i32 noundef %3295) #8
  %3297 = call ptr @__errno_location() #9
  %3298 = load i32, ptr %3297, align 4, !tbaa !5
  %3299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3286, ptr noundef @.str.2, i32 noundef %3287, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 139, ptr noundef %3290, ptr noundef %3293, ptr noundef %3296, i32 noundef %3298) #8
  br label %3317

3300:                                             ; preds = %3278, %3271
  %3301 = load i32, ptr %77, align 4, !tbaa !5
  %3302 = call ptr @__errno_location() #9
  store i32 %3301, ptr %3302, align 4, !tbaa !5
  %3303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3304 = load i32, ptr @test_count, align 4, !tbaa !5
  %3305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3306 = load i32, ptr %3305, align 4, !tbaa !5
  %3307 = call ptr @s2n_strerror(i32 noundef %3306, ptr noundef @.str.4)
  %3308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3309 = load i32, ptr %3308, align 4, !tbaa !5
  %3310 = call ptr @s2n_strerror_debug(i32 noundef %3309, ptr noundef @.str.4)
  %3311 = call ptr @__errno_location() #9
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call ptr @strerror(i32 noundef %3312) #8
  %3314 = call ptr @__errno_location() #9
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3303, ptr noundef @.str.5, i32 noundef %3304, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 139, ptr noundef %3307, ptr noundef %3310, ptr noundef %3313, i32 noundef %3315) #8
  br label %3317

3317:                                             ; preds = %3300, %3283
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  br label %3318

3318:                                             ; preds = %3317
  br label %3319

3319:                                             ; preds = %3318
  call void @exit(i32 noundef 1) #10
  unreachable

3320:                                             ; No predecessors!
  br label %3321

3321:                                             ; preds = %3320
  br label %3322

3322:                                             ; preds = %3321, %3262
  br label %3323

3323:                                             ; preds = %3322
  br label %3324

3324:                                             ; preds = %3323
  br label %3325

3325:                                             ; preds = %3324
  %3326 = load i32, ptr @test_count, align 4, !tbaa !5
  %3327 = add nsw i32 %3326, 1
  store i32 %3327, ptr @test_count, align 4, !tbaa !5
  %3328 = load ptr, ptr %66, align 8, !tbaa !9
  %3329 = getelementptr inbounds %struct.s2n_connection, ptr %3328, i32 0, i32 65
  %3330 = load i32, ptr %3329, align 8, !tbaa !24
  %3331 = icmp eq i32 %3330, 0
  br i1 %3331, label %3385, label %3332

3332:                                             ; preds = %3325
  br label %3333

3333:                                             ; preds = %3332
  br label %3334

3334:                                             ; preds = %3333
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #8
  %3335 = call ptr @__errno_location() #9
  %3336 = load i32, ptr %3335, align 4, !tbaa !5
  store i32 %3336, ptr %78, align 4, !tbaa !5
  %3337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3338 = call i32 @s2n_print_stacktrace(ptr noundef %3337)
  %3339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3340 = trunc i8 %3339 to i1
  br i1 %3340, label %3341, label %3363

3341:                                             ; preds = %3334
  %3342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3343 = call i32 @fileno(ptr noundef %3342) #8
  %3344 = call i32 @isatty(i32 noundef %3343) #8
  %3345 = icmp ne i32 %3344, 0
  br i1 %3345, label %3346, label %3363

3346:                                             ; preds = %3341
  %3347 = load i32, ptr %78, align 4, !tbaa !5
  %3348 = call ptr @__errno_location() #9
  store i32 %3347, ptr %3348, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = load i32, ptr @test_count, align 4, !tbaa !5
  %3351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call ptr @s2n_strerror(i32 noundef %3352, ptr noundef @.str.4)
  %3354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror_debug(i32 noundef %3355, ptr noundef @.str.4)
  %3357 = call ptr @__errno_location() #9
  %3358 = load i32, ptr %3357, align 4, !tbaa !5
  %3359 = call ptr @strerror(i32 noundef %3358) #8
  %3360 = call ptr @__errno_location() #9
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  %3362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3349, ptr noundef @.str.2, i32 noundef %3350, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3353, ptr noundef %3356, ptr noundef %3359, i32 noundef %3361) #8
  br label %3380

3363:                                             ; preds = %3341, %3334
  %3364 = load i32, ptr %78, align 4, !tbaa !5
  %3365 = call ptr @__errno_location() #9
  store i32 %3364, ptr %3365, align 4, !tbaa !5
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = load i32, ptr @test_count, align 4, !tbaa !5
  %3368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3369 = load i32, ptr %3368, align 4, !tbaa !5
  %3370 = call ptr @s2n_strerror(i32 noundef %3369, ptr noundef @.str.4)
  %3371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call ptr @s2n_strerror_debug(i32 noundef %3372, ptr noundef @.str.4)
  %3374 = call ptr @__errno_location() #9
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  %3376 = call ptr @strerror(i32 noundef %3375) #8
  %3377 = call ptr @__errno_location() #9
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  %3379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3366, ptr noundef @.str.5, i32 noundef %3367, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3370, ptr noundef %3373, ptr noundef %3376, i32 noundef %3378) #8
  br label %3380

3380:                                             ; preds = %3363, %3346
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #8
  br label %3381

3381:                                             ; preds = %3380
  br label %3382

3382:                                             ; preds = %3381
  call void @exit(i32 noundef 1) #10
  unreachable

3383:                                             ; No predecessors!
  br label %3384

3384:                                             ; preds = %3383
  br label %3385

3385:                                             ; preds = %3384, %3325
  br label %3386

3386:                                             ; preds = %3385
  br label %3387

3387:                                             ; preds = %3386
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  %3388 = call i32 @s2n_stuffer_free(ptr noundef %68)
  call void @llvm.lifetime.end.p0(i64 40, ptr %68) #8
  %3389 = call i32 @s2n_connection_ptr_free(ptr noundef %66)
  %3390 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  store i32 %3389, ptr %3390, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  br label %3391

3391:                                             ; preds = %3387
  br label %3392

3392:                                             ; preds = %3391
  %3393 = call i32 @s2n_cleanup()
  %3394 = icmp eq i32 %3393, -1
  br i1 %3394, label %3395, label %3448

3395:                                             ; preds = %3392
  br label %3396

3396:                                             ; preds = %3395
  br label %3397

3397:                                             ; preds = %3396
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #8
  %3398 = call ptr @__errno_location() #9
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  store i32 %3399, ptr %80, align 4, !tbaa !5
  %3400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3401 = call i32 @s2n_print_stacktrace(ptr noundef %3400)
  %3402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3403 = trunc i8 %3402 to i1
  br i1 %3403, label %3404, label %3426

3404:                                             ; preds = %3397
  %3405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3406 = call i32 @fileno(ptr noundef %3405) #8
  %3407 = call i32 @isatty(i32 noundef %3406) #8
  %3408 = icmp ne i32 %3407, 0
  br i1 %3408, label %3409, label %3426

3409:                                             ; preds = %3404
  %3410 = load i32, ptr %80, align 4, !tbaa !5
  %3411 = call ptr @__errno_location() #9
  store i32 %3410, ptr %3411, align 4, !tbaa !5
  %3412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3413 = load i32, ptr @test_count, align 4, !tbaa !5
  %3414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3415 = load i32, ptr %3414, align 4, !tbaa !5
  %3416 = call ptr @s2n_strerror(i32 noundef %3415, ptr noundef @.str.4)
  %3417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3418 = load i32, ptr %3417, align 4, !tbaa !5
  %3419 = call ptr @s2n_strerror_debug(i32 noundef %3418, ptr noundef @.str.4)
  %3420 = call ptr @__errno_location() #9
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  %3422 = call ptr @strerror(i32 noundef %3421) #8
  %3423 = call ptr @__errno_location() #9
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3412, ptr noundef @.str.2, i32 noundef %3413, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 143, ptr noundef %3416, ptr noundef %3419, ptr noundef %3422, i32 noundef %3424) #8
  br label %3443

3426:                                             ; preds = %3404, %3397
  %3427 = load i32, ptr %80, align 4, !tbaa !5
  %3428 = call ptr @__errno_location() #9
  store i32 %3427, ptr %3428, align 4, !tbaa !5
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3432 = load i32, ptr %3431, align 4, !tbaa !5
  %3433 = call ptr @s2n_strerror(i32 noundef %3432, ptr noundef @.str.4)
  %3434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3435 = load i32, ptr %3434, align 4, !tbaa !5
  %3436 = call ptr @s2n_strerror_debug(i32 noundef %3435, ptr noundef @.str.4)
  %3437 = call ptr @__errno_location() #9
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  %3439 = call ptr @strerror(i32 noundef %3438) #8
  %3440 = call ptr @__errno_location() #9
  %3441 = load i32, ptr %3440, align 4, !tbaa !5
  %3442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3429, ptr noundef @.str.5, i32 noundef %3430, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 143, ptr noundef %3433, ptr noundef %3436, ptr noundef %3439, i32 noundef %3441) #8
  br label %3443

3443:                                             ; preds = %3426, %3409
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  br label %3444

3444:                                             ; preds = %3443
  br label %3445

3445:                                             ; preds = %3444
  call void @exit(i32 noundef 1) #10
  unreachable

3446:                                             ; No predecessors!
  br label %3447

3447:                                             ; preds = %3446
  br label %3448

3448:                                             ; preds = %3447, %3392
  br label %3449

3449:                                             ; preds = %3448
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

3451:                                             ; preds = %3450
  br label %3452

3452:                                             ; preds = %3451
  %3453 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3454 = icmp eq i32 %3453, -1
  br i1 %3454, label %3455, label %3508

3455:                                             ; preds = %3452
  br label %3456

3456:                                             ; preds = %3455
  br label %3457

3457:                                             ; preds = %3456
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #8
  %3458 = call ptr @__errno_location() #9
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  store i32 %3459, ptr %81, align 4, !tbaa !5
  %3460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3461 = call i32 @s2n_print_stacktrace(ptr noundef %3460)
  %3462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3463 = trunc i8 %3462 to i1
  br i1 %3463, label %3464, label %3486

3464:                                             ; preds = %3457
  %3465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3466 = call i32 @fileno(ptr noundef %3465) #8
  %3467 = call i32 @isatty(i32 noundef %3466) #8
  %3468 = icmp ne i32 %3467, 0
  br i1 %3468, label %3469, label %3486

3469:                                             ; preds = %3464
  %3470 = load i32, ptr %81, align 4, !tbaa !5
  %3471 = call ptr @__errno_location() #9
  store i32 %3470, ptr %3471, align 4, !tbaa !5
  %3472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3473 = load i32, ptr @test_count, align 4, !tbaa !5
  %3474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  %3476 = call ptr @s2n_strerror(i32 noundef %3475, ptr noundef @.str.4)
  %3477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3478 = load i32, ptr %3477, align 4, !tbaa !5
  %3479 = call ptr @s2n_strerror_debug(i32 noundef %3478, ptr noundef @.str.4)
  %3480 = call ptr @__errno_location() #9
  %3481 = load i32, ptr %3480, align 4, !tbaa !5
  %3482 = call ptr @strerror(i32 noundef %3481) #8
  %3483 = call ptr @__errno_location() #9
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  %3485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3472, ptr noundef @.str.2, i32 noundef %3473, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 143, ptr noundef %3476, ptr noundef %3479, ptr noundef %3482, i32 noundef %3484) #8
  br label %3503

3486:                                             ; preds = %3464, %3457
  %3487 = load i32, ptr %81, align 4, !tbaa !5
  %3488 = call ptr @__errno_location() #9
  store i32 %3487, ptr %3488, align 4, !tbaa !5
  %3489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3490 = load i32, ptr @test_count, align 4, !tbaa !5
  %3491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3492 = load i32, ptr %3491, align 4, !tbaa !5
  %3493 = call ptr @s2n_strerror(i32 noundef %3492, ptr noundef @.str.4)
  %3494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3495 = load i32, ptr %3494, align 4, !tbaa !5
  %3496 = call ptr @s2n_strerror_debug(i32 noundef %3495, ptr noundef @.str.4)
  %3497 = call ptr @__errno_location() #9
  %3498 = load i32, ptr %3497, align 4, !tbaa !5
  %3499 = call ptr @strerror(i32 noundef %3498) #8
  %3500 = call ptr @__errno_location() #9
  %3501 = load i32, ptr %3500, align 4, !tbaa !5
  %3502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3489, ptr noundef @.str.5, i32 noundef %3490, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 143, ptr noundef %3493, ptr noundef %3496, ptr noundef %3499, i32 noundef %3501) #8
  br label %3503

3503:                                             ; preds = %3486, %3469
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %3504

3504:                                             ; preds = %3503
  br label %3505

3505:                                             ; preds = %3504
  call void @exit(i32 noundef 1) #10
  unreachable

3506:                                             ; No predecessors!
  br label %3507

3507:                                             ; preds = %3506
  br label %3508

3508:                                             ; preds = %3507, %3452
  br label %3509

3509:                                             ; preds = %3508
  br label %3510

3510:                                             ; preds = %3509
  %3511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3512 = trunc i8 %3511 to i1
  br i1 %3512, label %3513, label %3529

3513:                                             ; preds = %3510
  %3514 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3515 = call i32 @fileno(ptr noundef %3514) #8
  %3516 = call i32 @isatty(i32 noundef %3515) #8
  %3517 = icmp ne i32 %3516, 0
  br i1 %3517, label %3518, label %3529

3518:                                             ; preds = %3513
  %3519 = load i32, ptr @test_count, align 4, !tbaa !5
  %3520 = icmp ne i32 %3519, 0
  br i1 %3520, label %3521, label %3525

3521:                                             ; preds = %3518
  %3522 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3523 = load i32, ptr @test_count, align 4, !tbaa !5
  %3524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3522, ptr noundef @.str.34, i32 noundef %3523) #8
  br label %3528

3525:                                             ; preds = %3518
  %3526 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3526, ptr noundef @.str.35) #8
  br label %3528

3528:                                             ; preds = %3525, %3521
  br label %3540

3529:                                             ; preds = %3513, %3510
  %3530 = load i32, ptr @test_count, align 4, !tbaa !5
  %3531 = icmp ne i32 %3530, 0
  br i1 %3531, label %3532, label %3536

3532:                                             ; preds = %3529
  %3533 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3533, ptr noundef @.str.36, i32 noundef %3534) #8
  br label %3539

3536:                                             ; preds = %3529
  %3537 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3537, ptr noundef @.str.37) #8
  br label %3539

3539:                                             ; preds = %3536, %3532
  br label %3540

3540:                                             ; preds = %3539, %3528
  store i32 0, ptr %3, align 4
  store i32 1, ptr %82, align 4
  br label %3545

3541:                                             ; No predecessors!
  br label %3542

3542:                                             ; preds = %3541
  br label %3543

3543:                                             ; preds = %3542
  br label %3544

3544:                                             ; preds = %3543
  store i32 0, ptr %82, align 4
  br label %3545

3545:                                             ; preds = %3544, %3540
  %3546 = call i32 @s2n_config_ptr_free(ptr noundef %26)
  %3547 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  store i32 %3546, ptr %3547, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  %3548 = load i32, ptr %82, align 4
  switch i32 %3548, label %3551 [
    i32 0, label %3549
    i32 1, label %3549
  ]

3549:                                             ; preds = %3545, %3545
  %3550 = load i32, ptr %3, align 4
  ret i32 %3550

3551:                                             ; preds = %3545
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #5

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_read_uint32(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_stuffer_wipe_n(ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_rewrite(ptr noundef) #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) #2

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 24}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!16, !10, i64 8}
!19 = !{!7, !7, i64 0}
!20 = !{!21, !6, i64 28}
!21 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = !{!21, !6, i64 24}
!24 = !{!25, !6, i64 2784}
!25 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !26, i64 160, !27, i64 168, !27, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !28, i64 240, !10, i64 632, !10, i64 640, !29, i64 648, !34, i64 1144, !37, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !21, i64 1776, !21, i64 1816, !21, i64 1856, !21, i64 1896, !6, i64 1936, !27, i64 1944, !7, i64 1952, !21, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !39, i64 2004, !39, i64 2008, !40, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !27, i64 2224, !7, i64 2232, !27, i64 2240, !27, i64 2248, !27, i64 2256, !39, i64 2264, !39, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !22, i64 2792, !6, i64 2816, !22, i64 2824, !22, i64 2848, !22, i64 2872, !42, i64 2896, !44, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !22, i64 3784, !6, i64 3808, !46, i64 3816, !7, i64 3848, !21, i64 3992, !22, i64 4032, !22, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !22, i64 4096, !6, i64 4120, !47, i64 4128, !39, i64 4176, !7, i64 4180, !7, i64 4181}
!26 = !{!"s2n_timer", !27, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!29 = !{!"s2n_kex_parameters", !30, i64 0, !31, i64 8, !7, i64 24, !31, i64 56, !32, i64 72, !32, i64 184, !7, i64 296, !33, i64 360, !22, i64 448, !22, i64 472}
!30 = !{!"s2n_dh_params", !10, i64 0}
!31 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!32 = !{!"s2n_kem_group_params", !10, i64 0, !33, i64 8, !31, i64 96}
!33 = !{!"s2n_kem_params", !10, i64 0, !22, i64 8, !22, i64 32, !22, i64 56, !12, i64 80}
!34 = !{!"s2n_handshake_parameters", !35, i64 0, !35, i64 48, !22, i64 96, !6, i64 120, !36, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!35 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!36 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!37 = !{!"s2n_psk_parameters", !6, i64 0, !38, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!38 = !{!"s2n_array", !22, i64 0, !6, i64 24, !6, i64 28}
!39 = !{!"", !6, i64 0}
!40 = !{!"s2n_handshake", !21, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !41, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!41 = !{!"s2n_offered_early_data", !10, i64 0}
!42 = !{!"s2n_client_hello", !22, i64 0, !43, i64 24, !22, i64 728, !22, i64 752, !22, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!43 = !{!"", !7, i64 0, !22, i64 672, !17, i64 696}
!44 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !45, i64 48, !12, i64 52}
!45 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!46 = !{!"s2n_ticket_fields", !22, i64 0, !6, i64 24}
!47 = !{!"s2n_post_handshake", !21, i64 0, !7, i64 40}
!48 = !{!16, !10, i64 16}


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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [104 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_client_cert_status_request_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.12 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %struct.s2n_stuffer, align 8
  %9 = alloca i8, align 1
  %10 = alloca i32, align 4
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca %struct.s2n_stuffer, align 8
  %13 = alloca ptr, align 8
  %14 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %15 = load ptr, ptr @stdout, align 8, !tbaa !9
  %16 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %17 = load ptr, ptr @stdout, align 8, !tbaa !9
  %18 = tail call i32 @fflush(ptr noundef %17)
  %19 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %20 = icmp eq i32 %19, -1
  br i1 %20, label %21, label %45

21:                                               ; preds = %2
  %22 = tail call ptr @__errno_location() #10
  %23 = load i32, ptr %22, align 4, !tbaa !5
  %24 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25 = tail call i32 @s2n_print_stacktrace(ptr noundef %24) #9
  %26 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27 = trunc nuw i8 %26 to i1
  br i1 %27, label %28, label %32

28:                                               ; preds = %21
  %29 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30 = tail call i32 @fileno(ptr noundef %29) #9
  %31 = tail call i32 @isatty(i32 noundef %30) #9
  %.not193 = icmp eq i32 %31, 0
  br i1 %.not193, label %32, label %33

32:                                               ; preds = %28, %21
  br label %33

33:                                               ; preds = %28, %32
  %.str.5.sink = phi ptr [ @.str.5, %32 ], [ @.str.2, %28 ]
  store i32 %23, ptr %22, align 4, !tbaa !5
  %34 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35 = load i32, ptr @test_count, align 4, !tbaa !5
  %36 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37 = load i32, ptr %36, align 4, !tbaa !5
  %38 = tail call ptr @s2n_strerror(i32 noundef %37, ptr noundef nonnull @.str.4) #9
  %39 = load i32, ptr %36, align 4, !tbaa !5
  %40 = tail call ptr @s2n_strerror_debug(i32 noundef %39, ptr noundef nonnull @.str.4) #9
  %41 = load i32, ptr %22, align 4, !tbaa !5
  %42 = tail call ptr @strerror(i32 noundef %41) #9
  %43 = load i32, ptr %22, align 4, !tbaa !5
  %44 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34, ptr noundef nonnull %.str.5.sink, i32 noundef %35, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 22, ptr noundef %38, ptr noundef %40, ptr noundef %42, i32 noundef %43) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

45:                                               ; preds = %2
  %46 = load i32, ptr @test_count, align 4, !tbaa !5
  %47 = add nsw i32 %46, 1
  store i32 %47, ptr @test_count, align 4, !tbaa !5
  %48 = tail call i32 @s2n_enable_atexit() #9
  %49 = icmp eq i32 %48, -1
  br i1 %49, label %50, label %74

50:                                               ; preds = %45
  %51 = tail call ptr @__errno_location() #10
  %52 = load i32, ptr %51, align 4, !tbaa !5
  %53 = load ptr, ptr @stderr, align 8, !tbaa !9
  %54 = tail call i32 @s2n_print_stacktrace(ptr noundef %53) #9
  %55 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %56 = trunc nuw i8 %55 to i1
  br i1 %56, label %57, label %61

57:                                               ; preds = %50
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = tail call i32 @fileno(ptr noundef %58) #9
  %60 = tail call i32 @isatty(i32 noundef %59) #9
  %.not192 = icmp eq i32 %60, 0
  br i1 %.not192, label %61, label %62

61:                                               ; preds = %57, %50
  br label %62

62:                                               ; preds = %57, %61
  %.str.5.sink204 = phi ptr [ @.str.5, %61 ], [ @.str.2, %57 ]
  store i32 %52, ptr %51, align 4, !tbaa !5
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %67 = tail call ptr @s2n_strerror(i32 noundef %66, ptr noundef nonnull @.str.4) #9
  %68 = load i32, ptr %65, align 4, !tbaa !5
  %69 = tail call ptr @s2n_strerror_debug(i32 noundef %68, ptr noundef nonnull @.str.4) #9
  %70 = load i32, ptr %51, align 4, !tbaa !5
  %71 = tail call ptr @strerror(i32 noundef %70) #9
  %72 = load i32, ptr %51, align 4, !tbaa !5
  %73 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %63, ptr noundef nonnull %.str.5.sink204, i32 noundef %64, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 22, ptr noundef %67, ptr noundef %69, ptr noundef %71, i32 noundef %72) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

74:                                               ; preds = %45
  %75 = tail call i32 @s2n_init() #9
  %76 = icmp eq i32 %75, -1
  br i1 %76, label %77, label %101

77:                                               ; preds = %74
  %78 = tail call ptr @__errno_location() #10
  %79 = load i32, ptr %78, align 4, !tbaa !5
  %80 = load ptr, ptr @stderr, align 8, !tbaa !9
  %81 = tail call i32 @s2n_print_stacktrace(ptr noundef %80) #9
  %82 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %83 = trunc nuw i8 %82 to i1
  br i1 %83, label %84, label %88

84:                                               ; preds = %77
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = tail call i32 @fileno(ptr noundef %85) #9
  %87 = tail call i32 @isatty(i32 noundef %86) #9
  %.not191 = icmp eq i32 %87, 0
  br i1 %.not191, label %88, label %89

88:                                               ; preds = %84, %77
  br label %89

89:                                               ; preds = %84, %88
  %.str.5.sink215 = phi ptr [ @.str.5, %88 ], [ @.str.2, %84 ]
  store i32 %79, ptr %78, align 4, !tbaa !5
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = tail call ptr @s2n_strerror(i32 noundef %93, ptr noundef nonnull @.str.4) #9
  %95 = load i32, ptr %92, align 4, !tbaa !5
  %96 = tail call ptr @s2n_strerror_debug(i32 noundef %95, ptr noundef nonnull @.str.4) #9
  %97 = load i32, ptr %78, align 4, !tbaa !5
  %98 = tail call ptr @strerror(i32 noundef %97) #9
  %99 = load i32, ptr %78, align 4, !tbaa !5
  %100 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %90, ptr noundef nonnull %.str.5.sink215, i32 noundef %91, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 22, ptr noundef %94, ptr noundef %96, ptr noundef %98, i32 noundef %99) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

101:                                              ; preds = %74
  %102 = load i32, ptr @test_count, align 4, !tbaa !5
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr @test_count, align 4, !tbaa !5
  %104 = tail call i32 (...) @s2n_disable_tls13_in_test() #9
  %105 = icmp eq i32 %104, -1
  br i1 %105, label %106, label %130

106:                                              ; preds = %101
  %107 = tail call ptr @__errno_location() #10
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = tail call i32 @s2n_print_stacktrace(ptr noundef %109) #9
  %111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %112 = trunc nuw i8 %111 to i1
  br i1 %112, label %113, label %117

113:                                              ; preds = %106
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = tail call i32 @fileno(ptr noundef %114) #9
  %116 = tail call i32 @isatty(i32 noundef %115) #9
  %.not190 = icmp eq i32 %116, 0
  br i1 %.not190, label %117, label %118

117:                                              ; preds = %113, %106
  br label %118

118:                                              ; preds = %113, %117
  %.str.5.sink226 = phi ptr [ @.str.5, %117 ], [ @.str.2, %113 ]
  store i32 %108, ptr %107, align 4, !tbaa !5
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = tail call ptr @s2n_strerror(i32 noundef %122, ptr noundef nonnull @.str.4) #9
  %124 = load i32, ptr %121, align 4, !tbaa !5
  %125 = tail call ptr @s2n_strerror_debug(i32 noundef %124, ptr noundef nonnull @.str.4) #9
  %126 = load i32, ptr %107, align 4, !tbaa !5
  %127 = tail call ptr @strerror(i32 noundef %126) #9
  %128 = load i32, ptr %107, align 4, !tbaa !5
  %129 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %119, ptr noundef nonnull %.str.5.sink226, i32 noundef %120, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %123, ptr noundef %125, ptr noundef %127, i32 noundef %128) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

130:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #9
  %131 = tail call ptr @s2n_config_new() #9
  store ptr %131, ptr %3, align 8, !tbaa !9
  %132 = load i32, ptr @test_count, align 4, !tbaa !5
  %133 = add nsw i32 %132, 1
  store i32 %133, ptr @test_count, align 4, !tbaa !5
  %134 = icmp eq ptr %131, null
  br i1 %134, label %135, label %159

135:                                              ; preds = %130
  %136 = tail call ptr @__errno_location() #10
  %137 = load i32, ptr %136, align 4, !tbaa !5
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = tail call i32 @s2n_print_stacktrace(ptr noundef %138) #9
  %140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %141 = trunc nuw i8 %140 to i1
  br i1 %141, label %142, label %146

142:                                              ; preds = %135
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = tail call i32 @fileno(ptr noundef %143) #9
  %145 = tail call i32 @isatty(i32 noundef %144) #9
  %.not189 = icmp eq i32 %145, 0
  br i1 %.not189, label %146, label %147

146:                                              ; preds = %142, %135
  br label %147

147:                                              ; preds = %142, %146
  %.str.5.sink237 = phi ptr [ @.str.5, %146 ], [ @.str.2, %142 ]
  store i32 %137, ptr %136, align 4, !tbaa !5
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = tail call ptr @s2n_strerror(i32 noundef %151, ptr noundef nonnull @.str.4) #9
  %153 = load i32, ptr %150, align 4, !tbaa !5
  %154 = tail call ptr @s2n_strerror_debug(i32 noundef %153, ptr noundef nonnull @.str.4) #9
  %155 = load i32, ptr %136, align 4, !tbaa !5
  %156 = tail call ptr @strerror(i32 noundef %155) #9
  %157 = load i32, ptr %136, align 4, !tbaa !5
  %158 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %148, ptr noundef nonnull %.str.5.sink237, i32 noundef %149, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 28, ptr noundef %152, ptr noundef %154, ptr noundef %156, i32 noundef %157) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

159:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  %160 = tail call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %160, ptr %4, align 8, !tbaa !9
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr @test_count, align 4, !tbaa !5
  %163 = icmp eq ptr %160, null
  br i1 %163, label %164, label %188

164:                                              ; preds = %159
  %165 = tail call ptr @__errno_location() #10
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = tail call i32 @s2n_print_stacktrace(ptr noundef %167) #9
  %169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %170 = trunc nuw i8 %169 to i1
  br i1 %170, label %171, label %175

171:                                              ; preds = %164
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = tail call i32 @fileno(ptr noundef %172) #9
  %174 = tail call i32 @isatty(i32 noundef %173) #9
  %.not188 = icmp eq i32 %174, 0
  br i1 %.not188, label %175, label %176

175:                                              ; preds = %171, %164
  br label %176

176:                                              ; preds = %171, %175
  %.str.5.sink248 = phi ptr [ @.str.5, %175 ], [ @.str.2, %171 ]
  store i32 %166, ptr %165, align 4, !tbaa !5
  %177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = tail call ptr @s2n_strerror(i32 noundef %180, ptr noundef nonnull @.str.4) #9
  %182 = load i32, ptr %179, align 4, !tbaa !5
  %183 = tail call ptr @s2n_strerror_debug(i32 noundef %182, ptr noundef nonnull @.str.4) #9
  %184 = load i32, ptr %165, align 4, !tbaa !5
  %185 = tail call ptr @strerror(i32 noundef %184) #9
  %186 = load i32, ptr %165, align 4, !tbaa !5
  %187 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef nonnull %.str.5.sink248, i32 noundef %178, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %181, ptr noundef %183, ptr noundef %185, i32 noundef %186) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

188:                                              ; preds = %159
  %189 = add nsw i32 %161, 2
  store i32 %189, ptr @test_count, align 4, !tbaa !5
  %190 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %160, ptr noundef nonnull %131) #9
  %191 = icmp eq i32 %190, -1
  br i1 %191, label %192, label %216

192:                                              ; preds = %188
  %193 = tail call ptr @__errno_location() #10
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = tail call i32 @s2n_print_stacktrace(ptr noundef %195) #9
  %197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %198 = trunc nuw i8 %197 to i1
  br i1 %198, label %199, label %203

199:                                              ; preds = %192
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = tail call i32 @fileno(ptr noundef %200) #9
  %202 = tail call i32 @isatty(i32 noundef %201) #9
  %.not187 = icmp eq i32 %202, 0
  br i1 %.not187, label %203, label %204

203:                                              ; preds = %199, %192
  br label %204

204:                                              ; preds = %199, %203
  %.str.5.sink259 = phi ptr [ @.str.5, %203 ], [ @.str.2, %199 ]
  store i32 %194, ptr %193, align 4, !tbaa !5
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = load i32, ptr @test_count, align 4, !tbaa !5
  %207 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %208 = load i32, ptr %207, align 4, !tbaa !5
  %209 = tail call ptr @s2n_strerror(i32 noundef %208, ptr noundef nonnull @.str.4) #9
  %210 = load i32, ptr %207, align 4, !tbaa !5
  %211 = tail call ptr @s2n_strerror_debug(i32 noundef %210, ptr noundef nonnull @.str.4) #9
  %212 = load i32, ptr %193, align 4, !tbaa !5
  %213 = tail call ptr @strerror(i32 noundef %212) #9
  %214 = load i32, ptr %193, align 4, !tbaa !5
  %215 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %205, ptr noundef nonnull %.str.5.sink259, i32 noundef %206, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 31, ptr noundef %209, ptr noundef %211, ptr noundef %213, i32 noundef %214) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

216:                                              ; preds = %188
  %217 = load i32, ptr @test_count, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr @test_count, align 4, !tbaa !5
  %219 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_cert_status_request_extension, i64 24), align 8, !tbaa !15
  %220 = tail call zeroext i1 %219(ptr noundef nonnull %160) #9
  br i1 %220, label %221, label %245

221:                                              ; preds = %216
  %222 = tail call ptr @__errno_location() #10
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = tail call i32 @s2n_print_stacktrace(ptr noundef %224) #9
  %226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %227 = trunc nuw i8 %226 to i1
  br i1 %227, label %228, label %232

228:                                              ; preds = %221
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = tail call i32 @fileno(ptr noundef %229) #9
  %231 = tail call i32 @isatty(i32 noundef %230) #9
  %.not186 = icmp eq i32 %231, 0
  br i1 %.not186, label %232, label %233

232:                                              ; preds = %228, %221
  br label %233

233:                                              ; preds = %228, %232
  %.str.5.sink270 = phi ptr [ @.str.5, %232 ], [ @.str.2, %228 ]
  store i32 %223, ptr %222, align 4, !tbaa !5
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = load i32, ptr @test_count, align 4, !tbaa !5
  %236 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = tail call ptr @s2n_strerror(i32 noundef %237, ptr noundef nonnull @.str.4) #9
  %239 = load i32, ptr %236, align 4, !tbaa !5
  %240 = tail call ptr @s2n_strerror_debug(i32 noundef %239, ptr noundef nonnull @.str.4) #9
  %241 = load i32, ptr %222, align 4, !tbaa !5
  %242 = tail call ptr @strerror(i32 noundef %241) #9
  %243 = load i32, ptr %222, align 4, !tbaa !5
  %244 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %234, ptr noundef nonnull %.str.5.sink270, i32 noundef %235, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %238, ptr noundef %240, ptr noundef %242, i32 noundef %243) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

245:                                              ; preds = %216
  %246 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  %247 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %3) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %248 = call ptr @s2n_config_new() #9
  store ptr %248, ptr %5, align 8, !tbaa !9
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = add nsw i32 %249, 1
  store i32 %250, ptr @test_count, align 4, !tbaa !5
  %251 = icmp eq ptr %248, null
  br i1 %251, label %252, label %276

252:                                              ; preds = %245
  %253 = tail call ptr @__errno_location() #10
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = call i32 @s2n_print_stacktrace(ptr noundef %255) #9
  %257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %258 = trunc nuw i8 %257 to i1
  br i1 %258, label %259, label %263

259:                                              ; preds = %252
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = call i32 @fileno(ptr noundef %260) #9
  %262 = call i32 @isatty(i32 noundef %261) #9
  %.not185 = icmp eq i32 %262, 0
  br i1 %.not185, label %263, label %264

263:                                              ; preds = %259, %252
  br label %264

264:                                              ; preds = %259, %263
  %.str.5.sink281 = phi ptr [ @.str.5, %263 ], [ @.str.2, %259 ]
  store i32 %254, ptr %253, align 4, !tbaa !5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = load i32, ptr @test_count, align 4, !tbaa !5
  %267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror(i32 noundef %268, ptr noundef nonnull @.str.4) #9
  %270 = load i32, ptr %267, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror_debug(i32 noundef %270, ptr noundef nonnull @.str.4) #9
  %272 = load i32, ptr %253, align 4, !tbaa !5
  %273 = call ptr @strerror(i32 noundef %272) #9
  %274 = load i32, ptr %253, align 4, !tbaa !5
  %275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %265, ptr noundef nonnull %.str.5.sink281, i32 noundef %266, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %269, ptr noundef %271, ptr noundef %273, i32 noundef %274) #11
  call void @exit(i32 noundef 1) #12
  unreachable

276:                                              ; preds = %245
  %277 = load i32, ptr %248, align 8
  %278 = or i32 %277, 32768
  store i32 %278, ptr %248, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %279 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %279, ptr %6, align 8, !tbaa !9
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  store i32 %281, ptr @test_count, align 4, !tbaa !5
  %282 = icmp eq ptr %279, null
  br i1 %282, label %283, label %307

283:                                              ; preds = %276
  %284 = tail call ptr @__errno_location() #10
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = call i32 @s2n_print_stacktrace(ptr noundef %286) #9
  %288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %289 = trunc nuw i8 %288 to i1
  br i1 %289, label %290, label %294

290:                                              ; preds = %283
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @fileno(ptr noundef %291) #9
  %293 = call i32 @isatty(i32 noundef %292) #9
  %.not184 = icmp eq i32 %293, 0
  br i1 %.not184, label %294, label %295

294:                                              ; preds = %290, %283
  br label %295

295:                                              ; preds = %290, %294
  %.str.5.sink292 = phi ptr [ @.str.5, %294 ], [ @.str.2, %290 ]
  store i32 %285, ptr %284, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror(i32 noundef %299, ptr noundef nonnull @.str.4) #9
  %301 = load i32, ptr %298, align 4, !tbaa !5
  %302 = call ptr @s2n_strerror_debug(i32 noundef %301, ptr noundef nonnull @.str.4) #9
  %303 = load i32, ptr %284, align 4, !tbaa !5
  %304 = call ptr @strerror(i32 noundef %303) #9
  %305 = load i32, ptr %284, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef nonnull %.str.5.sink292, i32 noundef %297, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %300, ptr noundef %302, ptr noundef %304, i32 noundef %305) #11
  call void @exit(i32 noundef 1) #12
  unreachable

307:                                              ; preds = %276
  %308 = add nsw i32 %280, 2
  store i32 %308, ptr @test_count, align 4, !tbaa !5
  %309 = load ptr, ptr %5, align 8, !tbaa !9
  %310 = call i32 @s2n_connection_set_config(ptr noundef nonnull %279, ptr noundef %309) #9
  %311 = icmp eq i32 %310, -1
  br i1 %311, label %312, label %336

312:                                              ; preds = %307
  %313 = tail call ptr @__errno_location() #10
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = call i32 @s2n_print_stacktrace(ptr noundef %315) #9
  %317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %318 = trunc nuw i8 %317 to i1
  br i1 %318, label %319, label %323

319:                                              ; preds = %312
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = call i32 @fileno(ptr noundef %320) #9
  %322 = call i32 @isatty(i32 noundef %321) #9
  %.not183 = icmp eq i32 %322, 0
  br i1 %.not183, label %323, label %324

323:                                              ; preds = %319, %312
  br label %324

324:                                              ; preds = %319, %323
  %.str.5.sink303 = phi ptr [ @.str.5, %323 ], [ @.str.2, %319 ]
  store i32 %314, ptr %313, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror(i32 noundef %328, ptr noundef nonnull @.str.4) #9
  %330 = load i32, ptr %327, align 4, !tbaa !5
  %331 = call ptr @s2n_strerror_debug(i32 noundef %330, ptr noundef nonnull @.str.4) #9
  %332 = load i32, ptr %313, align 4, !tbaa !5
  %333 = call ptr @strerror(i32 noundef %332) #9
  %334 = load i32, ptr %313, align 4, !tbaa !5
  %335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %325, ptr noundef nonnull %.str.5.sink303, i32 noundef %326, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %329, ptr noundef %331, ptr noundef %333, i32 noundef %334) #11
  call void @exit(i32 noundef 1) #12
  unreachable

336:                                              ; preds = %307
  %337 = load i32, ptr @test_count, align 4, !tbaa !5
  %338 = add nsw i32 %337, 1
  store i32 %338, ptr @test_count, align 4, !tbaa !5
  %339 = load ptr, ptr %6, align 8, !tbaa !9
  %340 = call zeroext i1 %219(ptr noundef %339) #9
  br i1 %340, label %365, label %341

341:                                              ; preds = %336
  %342 = tail call ptr @__errno_location() #10
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @s2n_print_stacktrace(ptr noundef %344) #9
  %346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %347 = trunc nuw i8 %346 to i1
  br i1 %347, label %348, label %352

348:                                              ; preds = %341
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = call i32 @fileno(ptr noundef %349) #9
  %351 = call i32 @isatty(i32 noundef %350) #9
  %.not = icmp eq i32 %351, 0
  br i1 %.not, label %352, label %353

352:                                              ; preds = %348, %341
  br label %353

353:                                              ; preds = %348, %352
  %.str.5.sink314 = phi ptr [ @.str.5, %352 ], [ @.str.2, %348 ]
  store i32 %343, ptr %342, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror(i32 noundef %357, ptr noundef nonnull @.str.4) #9
  %359 = load i32, ptr %356, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror_debug(i32 noundef %359, ptr noundef nonnull @.str.4) #9
  %361 = load i32, ptr %342, align 4, !tbaa !5
  %362 = call ptr @strerror(i32 noundef %361) #9
  %363 = load i32, ptr %342, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %354, ptr noundef nonnull %.str.5.sink314, i32 noundef %355, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %358, ptr noundef %360, ptr noundef %362, i32 noundef %363) #11
  call void @exit(i32 noundef 1) #12
  unreachable

365:                                              ; preds = %336
  %366 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  %367 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %368 = call ptr @s2n_config_new() #9
  store ptr %368, ptr %7, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = add nsw i32 %369, 1
  store i32 %370, ptr @test_count, align 4, !tbaa !5
  %371 = icmp eq ptr %368, null
  br i1 %371, label %372, label %396

372:                                              ; preds = %365
  %373 = tail call ptr @__errno_location() #10
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = call i32 @s2n_print_stacktrace(ptr noundef %375) #9
  %377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %378 = trunc nuw i8 %377 to i1
  br i1 %378, label %379, label %383

379:                                              ; preds = %372
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = call i32 @fileno(ptr noundef %380) #9
  %382 = call i32 @isatty(i32 noundef %381) #9
  %.not182 = icmp eq i32 %382, 0
  br i1 %.not182, label %383, label %384

383:                                              ; preds = %379, %372
  br label %384

384:                                              ; preds = %379, %383
  %.str.5.sink325 = phi ptr [ @.str.5, %383 ], [ @.str.2, %379 ]
  store i32 %374, ptr %373, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror(i32 noundef %388, ptr noundef nonnull @.str.4) #9
  %390 = load i32, ptr %387, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror_debug(i32 noundef %390, ptr noundef nonnull @.str.4) #9
  %392 = load i32, ptr %373, align 4, !tbaa !5
  %393 = call ptr @strerror(i32 noundef %392) #9
  %394 = load i32, ptr %373, align 4, !tbaa !5
  %395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef nonnull %.str.5.sink325, i32 noundef %386, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %389, ptr noundef %391, ptr noundef %393, i32 noundef %394) #11
  call void @exit(i32 noundef 1) #12
  unreachable

396:                                              ; preds = %365
  %397 = load i32, ptr %368, align 8
  %398 = or i32 %397, 32768
  store i32 %398, ptr %368, align 8
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr @test_count, align 4, !tbaa !5
  %401 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %402 = icmp eq ptr %401, null
  br i1 %402, label %403, label %427

403:                                              ; preds = %396
  %404 = tail call ptr @__errno_location() #10
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = call i32 @s2n_print_stacktrace(ptr noundef %406) #9
  %408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %409 = trunc nuw i8 %408 to i1
  br i1 %409, label %410, label %414

410:                                              ; preds = %403
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = call i32 @fileno(ptr noundef %411) #9
  %413 = call i32 @isatty(i32 noundef %412) #9
  %.not181 = icmp eq i32 %413, 0
  br i1 %.not181, label %414, label %415

414:                                              ; preds = %410, %403
  br label %415

415:                                              ; preds = %410, %414
  %.str.5.sink336 = phi ptr [ @.str.5, %414 ], [ @.str.2, %410 ]
  store i32 %405, ptr %404, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror(i32 noundef %419, ptr noundef nonnull @.str.4) #9
  %421 = load i32, ptr %418, align 4, !tbaa !5
  %422 = call ptr @s2n_strerror_debug(i32 noundef %421, ptr noundef nonnull @.str.4) #9
  %423 = load i32, ptr %404, align 4, !tbaa !5
  %424 = call ptr @strerror(i32 noundef %423) #9
  %425 = load i32, ptr %404, align 4, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef nonnull %.str.5.sink336, i32 noundef %417, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %420, ptr noundef %422, ptr noundef %424, i32 noundef %425) #11
  call void @exit(i32 noundef 1) #12
  unreachable

427:                                              ; preds = %396
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @test_count, align 4, !tbaa !5
  %430 = call i32 @s2n_connection_set_config(ptr noundef nonnull %401, ptr noundef nonnull %368) #9
  %431 = icmp eq i32 %430, -1
  br i1 %431, label %432, label %456

432:                                              ; preds = %427
  %433 = tail call ptr @__errno_location() #10
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = call i32 @s2n_print_stacktrace(ptr noundef %435) #9
  %437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %438 = trunc nuw i8 %437 to i1
  br i1 %438, label %439, label %443

439:                                              ; preds = %432
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = call i32 @fileno(ptr noundef %440) #9
  %442 = call i32 @isatty(i32 noundef %441) #9
  %.not180 = icmp eq i32 %442, 0
  br i1 %.not180, label %443, label %444

443:                                              ; preds = %439, %432
  br label %444

444:                                              ; preds = %439, %443
  %.str.5.sink347 = phi ptr [ @.str.5, %443 ], [ @.str.2, %439 ]
  store i32 %434, ptr %433, align 4, !tbaa !5
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = load i32, ptr @test_count, align 4, !tbaa !5
  %447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = call ptr @s2n_strerror(i32 noundef %448, ptr noundef nonnull @.str.4) #9
  %450 = load i32, ptr %447, align 4, !tbaa !5
  %451 = call ptr @s2n_strerror_debug(i32 noundef %450, ptr noundef nonnull @.str.4) #9
  %452 = load i32, ptr %433, align 4, !tbaa !5
  %453 = call ptr @strerror(i32 noundef %452) #9
  %454 = load i32, ptr %433, align 4, !tbaa !5
  %455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %445, ptr noundef nonnull %.str.5.sink347, i32 noundef %446, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %449, ptr noundef %451, ptr noundef %453, i32 noundef %454) #11
  call void @exit(i32 noundef 1) #12
  unreachable

456:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = add nsw i32 %457, 1
  store i32 %458, ptr @test_count, align 4, !tbaa !5
  %459 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #9
  %460 = icmp eq i32 %459, -1
  br i1 %460, label %461, label %485

461:                                              ; preds = %456
  %462 = tail call ptr @__errno_location() #10
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @s2n_print_stacktrace(ptr noundef %464) #9
  %466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %467 = trunc nuw i8 %466 to i1
  br i1 %467, label %468, label %472

468:                                              ; preds = %461
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @fileno(ptr noundef %469) #9
  %471 = call i32 @isatty(i32 noundef %470) #9
  %.not179 = icmp eq i32 %471, 0
  br i1 %.not179, label %472, label %473

472:                                              ; preds = %468, %461
  br label %473

473:                                              ; preds = %468, %472
  %.str.5.sink358 = phi ptr [ @.str.5, %472 ], [ @.str.2, %468 ]
  store i32 %463, ptr %462, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror(i32 noundef %477, ptr noundef nonnull @.str.4) #9
  %479 = load i32, ptr %476, align 4, !tbaa !5
  %480 = call ptr @s2n_strerror_debug(i32 noundef %479, ptr noundef nonnull @.str.4) #9
  %481 = load i32, ptr %462, align 4, !tbaa !5
  %482 = call ptr @strerror(i32 noundef %481) #9
  %483 = load i32, ptr %462, align 4, !tbaa !5
  %484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %474, ptr noundef nonnull %.str.5.sink358, i32 noundef %475, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %478, ptr noundef %480, ptr noundef %482, i32 noundef %483) #11
  call void @exit(i32 noundef 1) #12
  unreachable

485:                                              ; preds = %456
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr @test_count, align 4, !tbaa !5
  %488 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_cert_status_request_extension, i64 8), align 8, !tbaa !18
  %489 = call i32 %488(ptr noundef nonnull %401, ptr noundef nonnull %8) #9
  %490 = icmp eq i32 %489, -1
  br i1 %490, label %491, label %515

491:                                              ; preds = %485
  %492 = tail call ptr @__errno_location() #10
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = call i32 @s2n_print_stacktrace(ptr noundef %494) #9
  %496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %497 = trunc nuw i8 %496 to i1
  br i1 %497, label %498, label %502

498:                                              ; preds = %491
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = call i32 @fileno(ptr noundef %499) #9
  %501 = call i32 @isatty(i32 noundef %500) #9
  %.not178 = icmp eq i32 %501, 0
  br i1 %.not178, label %502, label %503

502:                                              ; preds = %498, %491
  br label %503

503:                                              ; preds = %498, %502
  %.str.5.sink369 = phi ptr [ @.str.5, %502 ], [ @.str.2, %498 ]
  store i32 %493, ptr %492, align 4, !tbaa !5
  %504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %505 = load i32, ptr @test_count, align 4, !tbaa !5
  %506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = call ptr @s2n_strerror(i32 noundef %507, ptr noundef nonnull @.str.4) #9
  %509 = load i32, ptr %506, align 4, !tbaa !5
  %510 = call ptr @s2n_strerror_debug(i32 noundef %509, ptr noundef nonnull @.str.4) #9
  %511 = load i32, ptr %492, align 4, !tbaa !5
  %512 = call ptr @strerror(i32 noundef %511) #9
  %513 = load i32, ptr %492, align 4, !tbaa !5
  %514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %504, ptr noundef nonnull %.str.5.sink369, i32 noundef %505, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %508, ptr noundef %510, ptr noundef %512, i32 noundef %513) #11
  call void @exit(i32 noundef 1) #12
  unreachable

515:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #9
  store i8 0, ptr %9, align 1, !tbaa !19
  %516 = load i32, ptr @test_count, align 4, !tbaa !5
  %517 = add nsw i32 %516, 1
  store i32 %517, ptr @test_count, align 4, !tbaa !5
  %518 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %8, ptr noundef nonnull %9) #9
  %519 = icmp eq i32 %518, -1
  br i1 %519, label %520, label %544

520:                                              ; preds = %515
  %521 = tail call ptr @__errno_location() #10
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = call i32 @s2n_print_stacktrace(ptr noundef %523) #9
  %525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %526 = trunc nuw i8 %525 to i1
  br i1 %526, label %527, label %531

527:                                              ; preds = %520
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = call i32 @fileno(ptr noundef %528) #9
  %530 = call i32 @isatty(i32 noundef %529) #9
  %.not177 = icmp eq i32 %530, 0
  br i1 %.not177, label %531, label %532

531:                                              ; preds = %527, %520
  br label %532

532:                                              ; preds = %527, %531
  %.str.5.sink380 = phi ptr [ @.str.5, %531 ], [ @.str.2, %527 ]
  store i32 %522, ptr %521, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror(i32 noundef %536, ptr noundef nonnull @.str.4) #9
  %538 = load i32, ptr %535, align 4, !tbaa !5
  %539 = call ptr @s2n_strerror_debug(i32 noundef %538, ptr noundef nonnull @.str.4) #9
  %540 = load i32, ptr %521, align 4, !tbaa !5
  %541 = call ptr @strerror(i32 noundef %540) #9
  %542 = load i32, ptr %521, align 4, !tbaa !5
  %543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef nonnull %.str.5.sink380, i32 noundef %534, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %537, ptr noundef %539, ptr noundef %541, i32 noundef %542) #11
  call void @exit(i32 noundef 1) #12
  unreachable

544:                                              ; preds = %515
  %545 = load i32, ptr @test_count, align 4, !tbaa !5
  %546 = add nsw i32 %545, 1
  store i32 %546, ptr @test_count, align 4, !tbaa !5
  %547 = load i8, ptr %9, align 1, !tbaa !19
  %548 = icmp eq i8 %547, 1
  br i1 %548, label %573, label %549

549:                                              ; preds = %544
  %550 = tail call ptr @__errno_location() #10
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @s2n_print_stacktrace(ptr noundef %552) #9
  %554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %555 = trunc nuw i8 %554 to i1
  br i1 %555, label %556, label %560

556:                                              ; preds = %549
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = call i32 @fileno(ptr noundef %557) #9
  %559 = call i32 @isatty(i32 noundef %558) #9
  %.not137 = icmp eq i32 %559, 0
  br i1 %.not137, label %560, label %561

560:                                              ; preds = %556, %549
  br label %561

561:                                              ; preds = %556, %560
  %.str.5.sink391 = phi ptr [ @.str.5, %560 ], [ @.str.2, %556 ]
  store i32 %551, ptr %550, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call ptr @s2n_strerror(i32 noundef %565, ptr noundef nonnull @.str.4) #9
  %567 = load i32, ptr %564, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror_debug(i32 noundef %567, ptr noundef nonnull @.str.4) #9
  %569 = load i32, ptr %550, align 4, !tbaa !5
  %570 = call ptr @strerror(i32 noundef %569) #9
  %571 = load i32, ptr %550, align 4, !tbaa !5
  %572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %562, ptr noundef nonnull %.str.5.sink391, i32 noundef %563, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %566, ptr noundef %568, ptr noundef %570, i32 noundef %571) #11
  call void @exit(i32 noundef 1) #12
  unreachable

573:                                              ; preds = %544
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #9
  store i32 0, ptr %10, align 4, !tbaa !5
  %574 = add nsw i32 %545, 2
  store i32 %574, ptr @test_count, align 4, !tbaa !5
  %575 = call i32 @s2n_stuffer_read_uint32(ptr noundef nonnull %8, ptr noundef nonnull %10) #9
  %576 = icmp eq i32 %575, -1
  br i1 %576, label %577, label %601

577:                                              ; preds = %573
  %578 = tail call ptr @__errno_location() #10
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = call i32 @s2n_print_stacktrace(ptr noundef %580) #9
  %582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %583 = trunc nuw i8 %582 to i1
  br i1 %583, label %584, label %588

584:                                              ; preds = %577
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = call i32 @fileno(ptr noundef %585) #9
  %587 = call i32 @isatty(i32 noundef %586) #9
  %.not176 = icmp eq i32 %587, 0
  br i1 %.not176, label %588, label %589

588:                                              ; preds = %584, %577
  br label %589

589:                                              ; preds = %584, %588
  %.str.5.sink402 = phi ptr [ @.str.5, %588 ], [ @.str.2, %584 ]
  store i32 %579, ptr %578, align 4, !tbaa !5
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = load i32, ptr @test_count, align 4, !tbaa !5
  %592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = call ptr @s2n_strerror(i32 noundef %593, ptr noundef nonnull @.str.4) #9
  %595 = load i32, ptr %592, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror_debug(i32 noundef %595, ptr noundef nonnull @.str.4) #9
  %597 = load i32, ptr %578, align 4, !tbaa !5
  %598 = call ptr @strerror(i32 noundef %597) #9
  %599 = load i32, ptr %578, align 4, !tbaa !5
  %600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %590, ptr noundef nonnull %.str.5.sink402, i32 noundef %591, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %594, ptr noundef %596, ptr noundef %598, i32 noundef %599) #11
  call void @exit(i32 noundef 1) #12
  unreachable

601:                                              ; preds = %573
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr @test_count, align 4, !tbaa !5
  %604 = load i32, ptr %10, align 4, !tbaa !5
  %605 = icmp eq i32 %604, 0
  br i1 %605, label %630, label %606

606:                                              ; preds = %601
  %607 = tail call ptr @__errno_location() #10
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = call i32 @s2n_print_stacktrace(ptr noundef %609) #9
  %611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %612 = trunc nuw i8 %611 to i1
  br i1 %612, label %613, label %617

613:                                              ; preds = %606
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = call i32 @fileno(ptr noundef %614) #9
  %616 = call i32 @isatty(i32 noundef %615) #9
  %.not138 = icmp eq i32 %616, 0
  br i1 %.not138, label %617, label %618

617:                                              ; preds = %613, %606
  br label %618

618:                                              ; preds = %613, %617
  %.str.5.sink413 = phi ptr [ @.str.5, %617 ], [ @.str.2, %613 ]
  store i32 %608, ptr %607, align 4, !tbaa !5
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = load i32, ptr @test_count, align 4, !tbaa !5
  %621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call ptr @s2n_strerror(i32 noundef %622, ptr noundef nonnull @.str.4) #9
  %624 = load i32, ptr %621, align 4, !tbaa !5
  %625 = call ptr @s2n_strerror_debug(i32 noundef %624, ptr noundef nonnull @.str.4) #9
  %626 = load i32, ptr %607, align 4, !tbaa !5
  %627 = call ptr @strerror(i32 noundef %626) #9
  %628 = load i32, ptr %607, align 4, !tbaa !5
  %629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %619, ptr noundef nonnull %.str.5.sink413, i32 noundef %620, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %623, ptr noundef %625, ptr noundef %627, i32 noundef %628) #11
  call void @exit(i32 noundef 1) #12
  unreachable

630:                                              ; preds = %601
  %631 = add nsw i32 %602, 2
  store i32 %631, ptr @test_count, align 4, !tbaa !5
  %632 = getelementptr inbounds i8, ptr %8, i64 28
  %633 = load i32, ptr %632, align 4, !tbaa !20
  %634 = getelementptr inbounds i8, ptr %8, i64 24
  %635 = load i32, ptr %634, align 8, !tbaa !23
  %636 = icmp eq i32 %633, %635
  br i1 %636, label %661, label %637

637:                                              ; preds = %630
  %638 = tail call ptr @__errno_location() #10
  %639 = load i32, ptr %638, align 4, !tbaa !5
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = call i32 @s2n_print_stacktrace(ptr noundef %640) #9
  %642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %643 = trunc nuw i8 %642 to i1
  br i1 %643, label %644, label %648

644:                                              ; preds = %637
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = call i32 @fileno(ptr noundef %645) #9
  %647 = call i32 @isatty(i32 noundef %646) #9
  %.not139 = icmp eq i32 %647, 0
  br i1 %.not139, label %648, label %649

648:                                              ; preds = %644, %637
  br label %649

649:                                              ; preds = %644, %648
  %.str.5.sink424 = phi ptr [ @.str.5, %648 ], [ @.str.2, %644 ]
  store i32 %639, ptr %638, align 4, !tbaa !5
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %653 = load i32, ptr %652, align 4, !tbaa !5
  %654 = call ptr @s2n_strerror(i32 noundef %653, ptr noundef nonnull @.str.4) #9
  %655 = load i32, ptr %652, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror_debug(i32 noundef %655, ptr noundef nonnull @.str.4) #9
  %657 = load i32, ptr %638, align 4, !tbaa !5
  %658 = call ptr @strerror(i32 noundef %657) #9
  %659 = load i32, ptr %638, align 4, !tbaa !5
  %660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %650, ptr noundef nonnull %.str.5.sink424, i32 noundef %651, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %654, ptr noundef %656, ptr noundef %658, i32 noundef %659) #11
  call void @exit(i32 noundef 1) #12
  unreachable

661:                                              ; preds = %630
  %662 = add nsw i32 %602, 3
  store i32 %662, ptr @test_count, align 4, !tbaa !5
  %663 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #9
  %664 = icmp eq i32 %663, -1
  br i1 %664, label %665, label %689

665:                                              ; preds = %661
  %666 = tail call ptr @__errno_location() #10
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = call i32 @s2n_print_stacktrace(ptr noundef %668) #9
  %670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %671 = trunc nuw i8 %670 to i1
  br i1 %671, label %672, label %676

672:                                              ; preds = %665
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = call i32 @fileno(ptr noundef %673) #9
  %675 = call i32 @isatty(i32 noundef %674) #9
  %.not175 = icmp eq i32 %675, 0
  br i1 %.not175, label %676, label %677

676:                                              ; preds = %672, %665
  br label %677

677:                                              ; preds = %672, %676
  %.str.5.sink435 = phi ptr [ @.str.5, %676 ], [ @.str.2, %672 ]
  store i32 %667, ptr %666, align 4, !tbaa !5
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = load i32, ptr @test_count, align 4, !tbaa !5
  %680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror(i32 noundef %681, ptr noundef nonnull @.str.4) #9
  %683 = load i32, ptr %680, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror_debug(i32 noundef %683, ptr noundef nonnull @.str.4) #9
  %685 = load i32, ptr %666, align 4, !tbaa !5
  %686 = call ptr @strerror(i32 noundef %685) #9
  %687 = load i32, ptr %666, align 4, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %678, ptr noundef nonnull %.str.5.sink435, i32 noundef %679, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %682, ptr noundef %684, ptr noundef %686, i32 noundef %687) #11
  call void @exit(i32 noundef 1) #12
  unreachable

689:                                              ; preds = %661
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr @test_count, align 4, !tbaa !5
  %692 = call i32 @s2n_connection_free(ptr noundef nonnull %401) #9
  %693 = icmp eq i32 %692, -1
  br i1 %693, label %694, label %718

694:                                              ; preds = %689
  %695 = tail call ptr @__errno_location() #10
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = call i32 @s2n_print_stacktrace(ptr noundef %697) #9
  %699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %700 = trunc nuw i8 %699 to i1
  br i1 %700, label %701, label %705

701:                                              ; preds = %694
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = call i32 @fileno(ptr noundef %702) #9
  %704 = call i32 @isatty(i32 noundef %703) #9
  %.not174 = icmp eq i32 %704, 0
  br i1 %.not174, label %705, label %706

705:                                              ; preds = %701, %694
  br label %706

706:                                              ; preds = %701, %705
  %.str.5.sink446 = phi ptr [ @.str.5, %705 ], [ @.str.2, %701 ]
  store i32 %696, ptr %695, align 4, !tbaa !5
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror(i32 noundef %710, ptr noundef nonnull @.str.4) #9
  %712 = load i32, ptr %709, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror_debug(i32 noundef %712, ptr noundef nonnull @.str.4) #9
  %714 = load i32, ptr %695, align 4, !tbaa !5
  %715 = call ptr @strerror(i32 noundef %714) #9
  %716 = load i32, ptr %695, align 4, !tbaa !5
  %717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef nonnull %.str.5.sink446, i32 noundef %708, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %711, ptr noundef %713, ptr noundef %715, i32 noundef %716) #11
  call void @exit(i32 noundef 1) #12
  unreachable

718:                                              ; preds = %689
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #9
  %719 = load i32, ptr @test_count, align 4, !tbaa !5
  %720 = add nsw i32 %719, 1
  store i32 %720, ptr @test_count, align 4, !tbaa !5
  %721 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %722 = icmp eq ptr %721, null
  br i1 %722, label %723, label %747

723:                                              ; preds = %718
  %724 = tail call ptr @__errno_location() #10
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @s2n_print_stacktrace(ptr noundef %726) #9
  %728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %729 = trunc nuw i8 %728 to i1
  br i1 %729, label %730, label %734

730:                                              ; preds = %723
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = call i32 @fileno(ptr noundef %731) #9
  %733 = call i32 @isatty(i32 noundef %732) #9
  %.not173 = icmp eq i32 %733, 0
  br i1 %.not173, label %734, label %735

734:                                              ; preds = %730, %723
  br label %735

735:                                              ; preds = %730, %734
  %.str.5.sink457 = phi ptr [ @.str.5, %734 ], [ @.str.2, %730 ]
  store i32 %725, ptr %724, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror(i32 noundef %739, ptr noundef nonnull @.str.4) #9
  %741 = load i32, ptr %738, align 4, !tbaa !5
  %742 = call ptr @s2n_strerror_debug(i32 noundef %741, ptr noundef nonnull @.str.4) #9
  %743 = load i32, ptr %724, align 4, !tbaa !5
  %744 = call ptr @strerror(i32 noundef %743) #9
  %745 = load i32, ptr %724, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef nonnull %.str.5.sink457, i32 noundef %737, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %740, ptr noundef %742, ptr noundef %744, i32 noundef %745) #11
  call void @exit(i32 noundef 1) #12
  unreachable

747:                                              ; preds = %718
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = add nsw i32 %748, 1
  store i32 %749, ptr @test_count, align 4, !tbaa !5
  %750 = call i32 @s2n_connection_set_config(ptr noundef nonnull %721, ptr noundef nonnull %368) #9
  %751 = icmp eq i32 %750, -1
  br i1 %751, label %752, label %776

752:                                              ; preds = %747
  %753 = tail call ptr @__errno_location() #10
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = call i32 @s2n_print_stacktrace(ptr noundef %755) #9
  %757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %758 = trunc nuw i8 %757 to i1
  br i1 %758, label %759, label %763

759:                                              ; preds = %752
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = call i32 @fileno(ptr noundef %760) #9
  %762 = call i32 @isatty(i32 noundef %761) #9
  %.not172 = icmp eq i32 %762, 0
  br i1 %.not172, label %763, label %764

763:                                              ; preds = %759, %752
  br label %764

764:                                              ; preds = %759, %763
  %.str.5.sink468 = phi ptr [ @.str.5, %763 ], [ @.str.2, %759 ]
  store i32 %754, ptr %753, align 4, !tbaa !5
  %765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %766 = load i32, ptr @test_count, align 4, !tbaa !5
  %767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror(i32 noundef %768, ptr noundef nonnull @.str.4) #9
  %770 = load i32, ptr %767, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror_debug(i32 noundef %770, ptr noundef nonnull @.str.4) #9
  %772 = load i32, ptr %753, align 4, !tbaa !5
  %773 = call ptr @strerror(i32 noundef %772) #9
  %774 = load i32, ptr %753, align 4, !tbaa !5
  %775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %765, ptr noundef nonnull %.str.5.sink468, i32 noundef %766, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %769, ptr noundef %771, ptr noundef %773, i32 noundef %774) #11
  call void @exit(i32 noundef 1) #12
  unreachable

776:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  %777 = load i32, ptr @test_count, align 4, !tbaa !5
  %778 = add nsw i32 %777, 1
  store i32 %778, ptr @test_count, align 4, !tbaa !5
  %779 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %11, i32 noundef 0) #9
  %780 = icmp eq i32 %779, -1
  br i1 %780, label %781, label %805

781:                                              ; preds = %776
  %782 = tail call ptr @__errno_location() #10
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @s2n_print_stacktrace(ptr noundef %784) #9
  %786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %787 = trunc nuw i8 %786 to i1
  br i1 %787, label %788, label %792

788:                                              ; preds = %781
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = call i32 @fileno(ptr noundef %789) #9
  %791 = call i32 @isatty(i32 noundef %790) #9
  %.not171 = icmp eq i32 %791, 0
  br i1 %.not171, label %792, label %793

792:                                              ; preds = %788, %781
  br label %793

793:                                              ; preds = %788, %792
  %.str.5.sink479 = phi ptr [ @.str.5, %792 ], [ @.str.2, %788 ]
  store i32 %783, ptr %782, align 4, !tbaa !5
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror(i32 noundef %797, ptr noundef nonnull @.str.4) #9
  %799 = load i32, ptr %796, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror_debug(i32 noundef %799, ptr noundef nonnull @.str.4) #9
  %801 = load i32, ptr %782, align 4, !tbaa !5
  %802 = call ptr @strerror(i32 noundef %801) #9
  %803 = load i32, ptr %782, align 4, !tbaa !5
  %804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %794, ptr noundef nonnull %.str.5.sink479, i32 noundef %795, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %798, ptr noundef %800, ptr noundef %802, i32 noundef %803) #11
  call void @exit(i32 noundef 1) #12
  unreachable

805:                                              ; preds = %776
  %806 = load i32, ptr @test_count, align 4, !tbaa !5
  %807 = add nsw i32 %806, 1
  store i32 %807, ptr @test_count, align 4, !tbaa !5
  %808 = call i32 %488(ptr noundef nonnull %721, ptr noundef nonnull %11) #9
  %809 = icmp eq i32 %808, -1
  br i1 %809, label %810, label %834

810:                                              ; preds = %805
  %811 = tail call ptr @__errno_location() #10
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 @s2n_print_stacktrace(ptr noundef %813) #9
  %815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %816 = trunc nuw i8 %815 to i1
  br i1 %816, label %817, label %821

817:                                              ; preds = %810
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = call i32 @fileno(ptr noundef %818) #9
  %820 = call i32 @isatty(i32 noundef %819) #9
  %.not170 = icmp eq i32 %820, 0
  br i1 %.not170, label %821, label %822

821:                                              ; preds = %817, %810
  br label %822

822:                                              ; preds = %817, %821
  %.str.5.sink490 = phi ptr [ @.str.5, %821 ], [ @.str.2, %817 ]
  store i32 %812, ptr %811, align 4, !tbaa !5
  %823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %824 = load i32, ptr @test_count, align 4, !tbaa !5
  %825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror(i32 noundef %826, ptr noundef nonnull @.str.4) #9
  %828 = load i32, ptr %825, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef %828, ptr noundef nonnull @.str.4) #9
  %830 = load i32, ptr %811, align 4, !tbaa !5
  %831 = call ptr @strerror(i32 noundef %830) #9
  %832 = load i32, ptr %811, align 4, !tbaa !5
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %823, ptr noundef nonnull %.str.5.sink490, i32 noundef %824, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %827, ptr noundef %829, ptr noundef %831, i32 noundef %832) #11
  call void @exit(i32 noundef 1) #12
  unreachable

834:                                              ; preds = %805
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr @test_count, align 4, !tbaa !5
  %837 = getelementptr inbounds i8, ptr %721, i64 2784
  %838 = load i32, ptr %837, align 8, !tbaa !24
  %839 = icmp eq i32 %838, 0
  br i1 %839, label %864, label %840

840:                                              ; preds = %834
  %841 = tail call ptr @__errno_location() #10
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = call i32 @s2n_print_stacktrace(ptr noundef %843) #9
  %845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %846 = trunc nuw i8 %845 to i1
  br i1 %846, label %847, label %851

847:                                              ; preds = %840
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = call i32 @fileno(ptr noundef %848) #9
  %850 = call i32 @isatty(i32 noundef %849) #9
  %.not140 = icmp eq i32 %850, 0
  br i1 %.not140, label %851, label %852

851:                                              ; preds = %847, %840
  br label %852

852:                                              ; preds = %847, %851
  %.str.5.sink501 = phi ptr [ @.str.5, %851 ], [ @.str.2, %847 ]
  store i32 %842, ptr %841, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror(i32 noundef %856, ptr noundef nonnull @.str.4) #9
  %858 = load i32, ptr %855, align 4, !tbaa !5
  %859 = call ptr @s2n_strerror_debug(i32 noundef %858, ptr noundef nonnull @.str.4) #9
  %860 = load i32, ptr %841, align 4, !tbaa !5
  %861 = call ptr @strerror(i32 noundef %860) #9
  %862 = load i32, ptr %841, align 4, !tbaa !5
  %863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef nonnull %.str.5.sink501, i32 noundef %854, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %857, ptr noundef %859, ptr noundef %861, i32 noundef %862) #11
  call void @exit(i32 noundef 1) #12
  unreachable

864:                                              ; preds = %834
  %865 = add nsw i32 %835, 2
  store i32 %865, ptr @test_count, align 4, !tbaa !5
  %866 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_cert_status_request_extension, i64 16), align 8, !tbaa !48
  %867 = call i32 %866(ptr noundef nonnull %721, ptr noundef nonnull %11) #9
  %868 = icmp eq i32 %867, -1
  br i1 %868, label %869, label %893

869:                                              ; preds = %864
  %870 = tail call ptr @__errno_location() #10
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = call i32 @s2n_print_stacktrace(ptr noundef %872) #9
  %874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %875 = trunc nuw i8 %874 to i1
  br i1 %875, label %876, label %880

876:                                              ; preds = %869
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @fileno(ptr noundef %877) #9
  %879 = call i32 @isatty(i32 noundef %878) #9
  %.not169 = icmp eq i32 %879, 0
  br i1 %.not169, label %880, label %881

880:                                              ; preds = %876, %869
  br label %881

881:                                              ; preds = %876, %880
  %.str.5.sink512 = phi ptr [ @.str.5, %880 ], [ @.str.2, %876 ]
  store i32 %871, ptr %870, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = load i32, ptr @test_count, align 4, !tbaa !5
  %884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %885 = load i32, ptr %884, align 4, !tbaa !5
  %886 = call ptr @s2n_strerror(i32 noundef %885, ptr noundef nonnull @.str.4) #9
  %887 = load i32, ptr %884, align 4, !tbaa !5
  %888 = call ptr @s2n_strerror_debug(i32 noundef %887, ptr noundef nonnull @.str.4) #9
  %889 = load i32, ptr %870, align 4, !tbaa !5
  %890 = call ptr @strerror(i32 noundef %889) #9
  %891 = load i32, ptr %870, align 4, !tbaa !5
  %892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %882, ptr noundef nonnull %.str.5.sink512, i32 noundef %883, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %886, ptr noundef %888, ptr noundef %890, i32 noundef %891) #11
  call void @exit(i32 noundef 1) #12
  unreachable

893:                                              ; preds = %864
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = add nsw i32 %894, 1
  store i32 %895, ptr @test_count, align 4, !tbaa !5
  %896 = load i32, ptr %837, align 8, !tbaa !24
  %897 = icmp eq i32 %896, 1
  br i1 %897, label %922, label %898

898:                                              ; preds = %893
  %899 = tail call ptr @__errno_location() #10
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @s2n_print_stacktrace(ptr noundef %901) #9
  %903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %904 = trunc nuw i8 %903 to i1
  br i1 %904, label %905, label %909

905:                                              ; preds = %898
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @fileno(ptr noundef %906) #9
  %908 = call i32 @isatty(i32 noundef %907) #9
  %.not141 = icmp eq i32 %908, 0
  br i1 %.not141, label %909, label %910

909:                                              ; preds = %905, %898
  br label %910

910:                                              ; preds = %905, %909
  %.str.5.sink523 = phi ptr [ @.str.5, %909 ], [ @.str.2, %905 ]
  store i32 %900, ptr %899, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror(i32 noundef %914, ptr noundef nonnull @.str.4) #9
  %916 = load i32, ptr %913, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror_debug(i32 noundef %916, ptr noundef nonnull @.str.4) #9
  %918 = load i32, ptr %899, align 4, !tbaa !5
  %919 = call ptr @strerror(i32 noundef %918) #9
  %920 = load i32, ptr %899, align 4, !tbaa !5
  %921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %911, ptr noundef nonnull %.str.5.sink523, i32 noundef %912, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %915, ptr noundef %917, ptr noundef %919, i32 noundef %920) #11
  call void @exit(i32 noundef 1) #12
  unreachable

922:                                              ; preds = %893
  %923 = add nsw i32 %894, 2
  store i32 %923, ptr @test_count, align 4, !tbaa !5
  %924 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #9
  %925 = icmp eq i32 %924, -1
  br i1 %925, label %926, label %950

926:                                              ; preds = %922
  %927 = tail call ptr @__errno_location() #10
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = call i32 @s2n_print_stacktrace(ptr noundef %929) #9
  %931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %932 = trunc nuw i8 %931 to i1
  br i1 %932, label %933, label %937

933:                                              ; preds = %926
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @fileno(ptr noundef %934) #9
  %936 = call i32 @isatty(i32 noundef %935) #9
  %.not168 = icmp eq i32 %936, 0
  br i1 %.not168, label %937, label %938

937:                                              ; preds = %933, %926
  br label %938

938:                                              ; preds = %933, %937
  %.str.5.sink534 = phi ptr [ @.str.5, %937 ], [ @.str.2, %933 ]
  store i32 %928, ptr %927, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef nonnull @.str.4) #9
  %944 = load i32, ptr %941, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef nonnull @.str.4) #9
  %946 = load i32, ptr %927, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #9
  %948 = load i32, ptr %927, align 4, !tbaa !5
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef nonnull %.str.5.sink534, i32 noundef %940, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %943, ptr noundef %945, ptr noundef %947, i32 noundef %948) #11
  call void @exit(i32 noundef 1) #12
  unreachable

950:                                              ; preds = %922
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = add nsw i32 %951, 1
  store i32 %952, ptr @test_count, align 4, !tbaa !5
  %953 = call i32 @s2n_connection_free(ptr noundef nonnull %721) #9
  %954 = icmp eq i32 %953, -1
  br i1 %954, label %955, label %979

955:                                              ; preds = %950
  %956 = tail call ptr @__errno_location() #10
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @s2n_print_stacktrace(ptr noundef %958) #9
  %960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %961 = trunc nuw i8 %960 to i1
  br i1 %961, label %962, label %966

962:                                              ; preds = %955
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @fileno(ptr noundef %963) #9
  %965 = call i32 @isatty(i32 noundef %964) #9
  %.not167 = icmp eq i32 %965, 0
  br i1 %.not167, label %966, label %967

966:                                              ; preds = %962, %955
  br label %967

967:                                              ; preds = %962, %966
  %.str.5.sink545 = phi ptr [ @.str.5, %966 ], [ @.str.2, %962 ]
  store i32 %957, ptr %956, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror(i32 noundef %971, ptr noundef nonnull @.str.4) #9
  %973 = load i32, ptr %970, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror_debug(i32 noundef %973, ptr noundef nonnull @.str.4) #9
  %975 = load i32, ptr %956, align 4, !tbaa !5
  %976 = call ptr @strerror(i32 noundef %975) #9
  %977 = load i32, ptr %956, align 4, !tbaa !5
  %978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %968, ptr noundef nonnull %.str.5.sink545, i32 noundef %969, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %972, ptr noundef %974, ptr noundef %976, i32 noundef %977) #11
  call void @exit(i32 noundef 1) #12
  unreachable

979:                                              ; preds = %950
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #9
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = add nsw i32 %980, 1
  store i32 %981, ptr @test_count, align 4, !tbaa !5
  %982 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %983 = icmp eq ptr %982, null
  br i1 %983, label %984, label %1008

984:                                              ; preds = %979
  %985 = tail call ptr @__errno_location() #10
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @s2n_print_stacktrace(ptr noundef %987) #9
  %989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %991, label %995

991:                                              ; preds = %984
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = call i32 @fileno(ptr noundef %992) #9
  %994 = call i32 @isatty(i32 noundef %993) #9
  %.not166 = icmp eq i32 %994, 0
  br i1 %.not166, label %995, label %996

995:                                              ; preds = %991, %984
  br label %996

996:                                              ; preds = %991, %995
  %.str.5.sink556 = phi ptr [ @.str.5, %995 ], [ @.str.2, %991 ]
  store i32 %986, ptr %985, align 4, !tbaa !5
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = load i32, ptr @test_count, align 4, !tbaa !5
  %999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror(i32 noundef %1000, ptr noundef nonnull @.str.4) #9
  %1002 = load i32, ptr %999, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror_debug(i32 noundef %1002, ptr noundef nonnull @.str.4) #9
  %1004 = load i32, ptr %985, align 4, !tbaa !5
  %1005 = call ptr @strerror(i32 noundef %1004) #9
  %1006 = load i32, ptr %985, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef nonnull %.str.5.sink556, i32 noundef %998, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %1001, ptr noundef %1003, ptr noundef %1005, i32 noundef %1006) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1008:                                             ; preds = %979
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = add nsw i32 %1009, 1
  store i32 %1010, ptr @test_count, align 4, !tbaa !5
  %1011 = call i32 @s2n_connection_set_config(ptr noundef nonnull %982, ptr noundef nonnull %368) #9
  %1012 = icmp eq i32 %1011, -1
  br i1 %1012, label %1013, label %1037

1013:                                             ; preds = %1008
  %1014 = tail call ptr @__errno_location() #10
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @s2n_print_stacktrace(ptr noundef %1016) #9
  %1018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1019 = trunc nuw i8 %1018 to i1
  br i1 %1019, label %1020, label %1024

1020:                                             ; preds = %1013
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = call i32 @fileno(ptr noundef %1021) #9
  %1023 = call i32 @isatty(i32 noundef %1022) #9
  %.not165 = icmp eq i32 %1023, 0
  br i1 %.not165, label %1024, label %1025

1024:                                             ; preds = %1020, %1013
  br label %1025

1025:                                             ; preds = %1020, %1024
  %.str.5.sink567 = phi ptr [ @.str.5, %1024 ], [ @.str.2, %1020 ]
  store i32 %1015, ptr %1014, align 4, !tbaa !5
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = load i32, ptr @test_count, align 4, !tbaa !5
  %1028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror(i32 noundef %1029, ptr noundef nonnull @.str.4) #9
  %1031 = load i32, ptr %1028, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef nonnull @.str.4) #9
  %1033 = load i32, ptr %1014, align 4, !tbaa !5
  %1034 = call ptr @strerror(i32 noundef %1033) #9
  %1035 = load i32, ptr %1014, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1026, ptr noundef nonnull %.str.5.sink567, i32 noundef %1027, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %1030, ptr noundef %1032, ptr noundef %1034, i32 noundef %1035) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1037:                                             ; preds = %1008
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %12, i8 0, i64 40, i1 false)
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr @test_count, align 4, !tbaa !5
  %1040 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %12, i32 noundef 0) #9
  %1041 = icmp eq i32 %1040, -1
  br i1 %1041, label %1042, label %1066

1042:                                             ; preds = %1037
  %1043 = tail call ptr @__errno_location() #10
  %1044 = load i32, ptr %1043, align 4, !tbaa !5
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @s2n_print_stacktrace(ptr noundef %1045) #9
  %1047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1048 = trunc nuw i8 %1047 to i1
  br i1 %1048, label %1049, label %1053

1049:                                             ; preds = %1042
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = call i32 @fileno(ptr noundef %1050) #9
  %1052 = call i32 @isatty(i32 noundef %1051) #9
  %.not164 = icmp eq i32 %1052, 0
  br i1 %.not164, label %1053, label %1054

1053:                                             ; preds = %1049, %1042
  br label %1054

1054:                                             ; preds = %1049, %1053
  %.str.5.sink578 = phi ptr [ @.str.5, %1053 ], [ @.str.2, %1049 ]
  store i32 %1044, ptr %1043, align 4, !tbaa !5
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror(i32 noundef %1058, ptr noundef nonnull @.str.4) #9
  %1060 = load i32, ptr %1057, align 4, !tbaa !5
  %1061 = call ptr @s2n_strerror_debug(i32 noundef %1060, ptr noundef nonnull @.str.4) #9
  %1062 = load i32, ptr %1043, align 4, !tbaa !5
  %1063 = call ptr @strerror(i32 noundef %1062) #9
  %1064 = load i32, ptr %1043, align 4, !tbaa !5
  %1065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1055, ptr noundef nonnull %.str.5.sink578, i32 noundef %1056, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %1059, ptr noundef %1061, ptr noundef %1063, i32 noundef %1064) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1066:                                             ; preds = %1037
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = add nsw i32 %1067, 1
  store i32 %1068, ptr @test_count, align 4, !tbaa !5
  %1069 = call i32 %488(ptr noundef nonnull %982, ptr noundef nonnull %12) #9
  %1070 = icmp eq i32 %1069, -1
  br i1 %1070, label %1071, label %1095

1071:                                             ; preds = %1066
  %1072 = tail call ptr @__errno_location() #10
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @s2n_print_stacktrace(ptr noundef %1074) #9
  %1076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1077 = trunc nuw i8 %1076 to i1
  br i1 %1077, label %1078, label %1082

1078:                                             ; preds = %1071
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = call i32 @fileno(ptr noundef %1079) #9
  %1081 = call i32 @isatty(i32 noundef %1080) #9
  %.not163 = icmp eq i32 %1081, 0
  br i1 %.not163, label %1082, label %1083

1082:                                             ; preds = %1078, %1071
  br label %1083

1083:                                             ; preds = %1078, %1082
  %.str.5.sink589 = phi ptr [ @.str.5, %1082 ], [ @.str.2, %1078 ]
  store i32 %1073, ptr %1072, align 4, !tbaa !5
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror(i32 noundef %1087, ptr noundef nonnull @.str.4) #9
  %1089 = load i32, ptr %1086, align 4, !tbaa !5
  %1090 = call ptr @s2n_strerror_debug(i32 noundef %1089, ptr noundef nonnull @.str.4) #9
  %1091 = load i32, ptr %1072, align 4, !tbaa !5
  %1092 = call ptr @strerror(i32 noundef %1091) #9
  %1093 = load i32, ptr %1072, align 4, !tbaa !5
  %1094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1084, ptr noundef nonnull %.str.5.sink589, i32 noundef %1085, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %1088, ptr noundef %1090, ptr noundef %1092, i32 noundef %1093) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1095:                                             ; preds = %1066
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = add nsw i32 %1096, 1
  store i32 %1097, ptr @test_count, align 4, !tbaa !5
  %1098 = call i32 @s2n_stuffer_wipe_n(ptr noundef nonnull %12, i32 noundef 2) #9
  %1099 = icmp eq i32 %1098, -1
  br i1 %1099, label %1100, label %1124

1100:                                             ; preds = %1095
  %1101 = tail call ptr @__errno_location() #10
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1104 = call i32 @s2n_print_stacktrace(ptr noundef %1103) #9
  %1105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1106 = trunc nuw i8 %1105 to i1
  br i1 %1106, label %1107, label %1111

1107:                                             ; preds = %1100
  %1108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1109 = call i32 @fileno(ptr noundef %1108) #9
  %1110 = call i32 @isatty(i32 noundef %1109) #9
  %.not162 = icmp eq i32 %1110, 0
  br i1 %.not162, label %1111, label %1112

1111:                                             ; preds = %1107, %1100
  br label %1112

1112:                                             ; preds = %1107, %1111
  %.str.5.sink600 = phi ptr [ @.str.5, %1111 ], [ @.str.2, %1107 ]
  store i32 %1102, ptr %1101, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror(i32 noundef %1116, ptr noundef nonnull @.str.4) #9
  %1118 = load i32, ptr %1115, align 4, !tbaa !5
  %1119 = call ptr @s2n_strerror_debug(i32 noundef %1118, ptr noundef nonnull @.str.4) #9
  %1120 = load i32, ptr %1101, align 4, !tbaa !5
  %1121 = call ptr @strerror(i32 noundef %1120) #9
  %1122 = load i32, ptr %1101, align 4, !tbaa !5
  %1123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1113, ptr noundef nonnull %.str.5.sink600, i32 noundef %1114, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %1117, ptr noundef %1119, ptr noundef %1121, i32 noundef %1122) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1124:                                             ; preds = %1095
  %1125 = load i32, ptr @test_count, align 4, !tbaa !5
  %1126 = add nsw i32 %1125, 1
  store i32 %1126, ptr @test_count, align 4, !tbaa !5
  %1127 = getelementptr inbounds i8, ptr %982, i64 2784
  %1128 = load i32, ptr %1127, align 8, !tbaa !24
  %1129 = icmp eq i32 %1128, 0
  br i1 %1129, label %1154, label %1130

1130:                                             ; preds = %1124
  %1131 = tail call ptr @__errno_location() #10
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @s2n_print_stacktrace(ptr noundef %1133) #9
  %1135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1136 = trunc nuw i8 %1135 to i1
  br i1 %1136, label %1137, label %1141

1137:                                             ; preds = %1130
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = call i32 @fileno(ptr noundef %1138) #9
  %1140 = call i32 @isatty(i32 noundef %1139) #9
  %.not142 = icmp eq i32 %1140, 0
  br i1 %.not142, label %1141, label %1142

1141:                                             ; preds = %1137, %1130
  br label %1142

1142:                                             ; preds = %1137, %1141
  %.str.5.sink611 = phi ptr [ @.str.5, %1141 ], [ @.str.2, %1137 ]
  store i32 %1132, ptr %1131, align 4, !tbaa !5
  %1143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1144 = load i32, ptr @test_count, align 4, !tbaa !5
  %1145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror(i32 noundef %1146, ptr noundef nonnull @.str.4) #9
  %1148 = load i32, ptr %1145, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror_debug(i32 noundef %1148, ptr noundef nonnull @.str.4) #9
  %1150 = load i32, ptr %1131, align 4, !tbaa !5
  %1151 = call ptr @strerror(i32 noundef %1150) #9
  %1152 = load i32, ptr %1131, align 4, !tbaa !5
  %1153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1143, ptr noundef nonnull %.str.5.sink611, i32 noundef %1144, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %1147, ptr noundef %1149, ptr noundef %1151, i32 noundef %1152) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1154:                                             ; preds = %1124
  %1155 = add nsw i32 %1125, 2
  store i32 %1155, ptr @test_count, align 4, !tbaa !5
  %1156 = call i32 %866(ptr noundef nonnull %982, ptr noundef nonnull %12) #9
  %1157 = icmp eq i32 %1156, -1
  br i1 %1157, label %1158, label %1182

1158:                                             ; preds = %1154
  %1159 = tail call ptr @__errno_location() #10
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @s2n_print_stacktrace(ptr noundef %1161) #9
  %1163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1164 = trunc nuw i8 %1163 to i1
  br i1 %1164, label %1165, label %1169

1165:                                             ; preds = %1158
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = call i32 @fileno(ptr noundef %1166) #9
  %1168 = call i32 @isatty(i32 noundef %1167) #9
  %.not161 = icmp eq i32 %1168, 0
  br i1 %.not161, label %1169, label %1170

1169:                                             ; preds = %1165, %1158
  br label %1170

1170:                                             ; preds = %1165, %1169
  %.str.5.sink622 = phi ptr [ @.str.5, %1169 ], [ @.str.2, %1165 ]
  store i32 %1160, ptr %1159, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror(i32 noundef %1174, ptr noundef nonnull @.str.4) #9
  %1176 = load i32, ptr %1173, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror_debug(i32 noundef %1176, ptr noundef nonnull @.str.4) #9
  %1178 = load i32, ptr %1159, align 4, !tbaa !5
  %1179 = call ptr @strerror(i32 noundef %1178) #9
  %1180 = load i32, ptr %1159, align 4, !tbaa !5
  %1181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef nonnull %.str.5.sink622, i32 noundef %1172, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %1175, ptr noundef %1177, ptr noundef %1179, i32 noundef %1180) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1182:                                             ; preds = %1154
  %1183 = load i32, ptr @test_count, align 4, !tbaa !5
  %1184 = add nsw i32 %1183, 1
  store i32 %1184, ptr @test_count, align 4, !tbaa !5
  %1185 = load i32, ptr %1127, align 8, !tbaa !24
  %1186 = icmp eq i32 %1185, 0
  br i1 %1186, label %1211, label %1187

1187:                                             ; preds = %1182
  %1188 = tail call ptr @__errno_location() #10
  %1189 = load i32, ptr %1188, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = call i32 @s2n_print_stacktrace(ptr noundef %1190) #9
  %1192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1193 = trunc nuw i8 %1192 to i1
  br i1 %1193, label %1194, label %1198

1194:                                             ; preds = %1187
  %1195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1196 = call i32 @fileno(ptr noundef %1195) #9
  %1197 = call i32 @isatty(i32 noundef %1196) #9
  %.not143 = icmp eq i32 %1197, 0
  br i1 %.not143, label %1198, label %1199

1198:                                             ; preds = %1194, %1187
  br label %1199

1199:                                             ; preds = %1194, %1198
  %.str.5.sink633 = phi ptr [ @.str.5, %1198 ], [ @.str.2, %1194 ]
  store i32 %1189, ptr %1188, align 4, !tbaa !5
  %1200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror(i32 noundef %1203, ptr noundef nonnull @.str.4) #9
  %1205 = load i32, ptr %1202, align 4, !tbaa !5
  %1206 = call ptr @s2n_strerror_debug(i32 noundef %1205, ptr noundef nonnull @.str.4) #9
  %1207 = load i32, ptr %1188, align 4, !tbaa !5
  %1208 = call ptr @strerror(i32 noundef %1207) #9
  %1209 = load i32, ptr %1188, align 4, !tbaa !5
  %1210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1200, ptr noundef nonnull %.str.5.sink633, i32 noundef %1201, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %1204, ptr noundef %1206, ptr noundef %1208, i32 noundef %1209) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1211:                                             ; preds = %1182
  %1212 = add nsw i32 %1183, 2
  store i32 %1212, ptr @test_count, align 4, !tbaa !5
  %1213 = call i32 @s2n_stuffer_free(ptr noundef nonnull %12) #9
  %1214 = icmp eq i32 %1213, -1
  br i1 %1214, label %1215, label %1239

1215:                                             ; preds = %1211
  %1216 = tail call ptr @__errno_location() #10
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = call i32 @s2n_print_stacktrace(ptr noundef %1218) #9
  %1220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1221 = trunc nuw i8 %1220 to i1
  br i1 %1221, label %1222, label %1226

1222:                                             ; preds = %1215
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @fileno(ptr noundef %1223) #9
  %1225 = call i32 @isatty(i32 noundef %1224) #9
  %.not160 = icmp eq i32 %1225, 0
  br i1 %.not160, label %1226, label %1227

1226:                                             ; preds = %1222, %1215
  br label %1227

1227:                                             ; preds = %1222, %1226
  %.str.5.sink644 = phi ptr [ @.str.5, %1226 ], [ @.str.2, %1222 ]
  store i32 %1217, ptr %1216, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror(i32 noundef %1231, ptr noundef nonnull @.str.4) #9
  %1233 = load i32, ptr %1230, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror_debug(i32 noundef %1233, ptr noundef nonnull @.str.4) #9
  %1235 = load i32, ptr %1216, align 4, !tbaa !5
  %1236 = call ptr @strerror(i32 noundef %1235) #9
  %1237 = load i32, ptr %1216, align 4, !tbaa !5
  %1238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef nonnull %.str.5.sink644, i32 noundef %1229, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %1232, ptr noundef %1234, ptr noundef %1236, i32 noundef %1237) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1239:                                             ; preds = %1211
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = add nsw i32 %1240, 1
  store i32 %1241, ptr @test_count, align 4, !tbaa !5
  %1242 = call i32 @s2n_connection_free(ptr noundef nonnull %982) #9
  %1243 = icmp eq i32 %1242, -1
  br i1 %1243, label %1244, label %1268

1244:                                             ; preds = %1239
  %1245 = tail call ptr @__errno_location() #10
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @s2n_print_stacktrace(ptr noundef %1247) #9
  %1249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1250 = trunc nuw i8 %1249 to i1
  br i1 %1250, label %1251, label %1255

1251:                                             ; preds = %1244
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @fileno(ptr noundef %1252) #9
  %1254 = call i32 @isatty(i32 noundef %1253) #9
  %.not159 = icmp eq i32 %1254, 0
  br i1 %.not159, label %1255, label %1256

1255:                                             ; preds = %1251, %1244
  br label %1256

1256:                                             ; preds = %1251, %1255
  %.str.5.sink655 = phi ptr [ @.str.5, %1255 ], [ @.str.2, %1251 ]
  store i32 %1246, ptr %1245, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror(i32 noundef %1260, ptr noundef nonnull @.str.4) #9
  %1262 = load i32, ptr %1259, align 4, !tbaa !5
  %1263 = call ptr @s2n_strerror_debug(i32 noundef %1262, ptr noundef nonnull @.str.4) #9
  %1264 = load i32, ptr %1245, align 4, !tbaa !5
  %1265 = call ptr @strerror(i32 noundef %1264) #9
  %1266 = load i32, ptr %1245, align 4, !tbaa !5
  %1267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1257, ptr noundef nonnull %.str.5.sink655, i32 noundef %1258, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1261, ptr noundef %1263, ptr noundef %1265, i32 noundef %1266) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1268:                                             ; preds = %1239
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %1269 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %1269, ptr %13, align 8, !tbaa !9
  %1270 = load i32, ptr @test_count, align 4, !tbaa !5
  %1271 = add nsw i32 %1270, 1
  store i32 %1271, ptr @test_count, align 4, !tbaa !5
  %1272 = icmp eq ptr %1269, null
  br i1 %1272, label %1273, label %1297

1273:                                             ; preds = %1268
  %1274 = tail call ptr @__errno_location() #10
  %1275 = load i32, ptr %1274, align 4, !tbaa !5
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 @s2n_print_stacktrace(ptr noundef %1276) #9
  %1278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1279 = trunc nuw i8 %1278 to i1
  br i1 %1279, label %1280, label %1284

1280:                                             ; preds = %1273
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = call i32 @fileno(ptr noundef %1281) #9
  %1283 = call i32 @isatty(i32 noundef %1282) #9
  %.not158 = icmp eq i32 %1283, 0
  br i1 %.not158, label %1284, label %1285

1284:                                             ; preds = %1280, %1273
  br label %1285

1285:                                             ; preds = %1280, %1284
  %.str.5.sink666 = phi ptr [ @.str.5, %1284 ], [ @.str.2, %1280 ]
  store i32 %1275, ptr %1274, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call ptr @s2n_strerror(i32 noundef %1289, ptr noundef nonnull @.str.4) #9
  %1291 = load i32, ptr %1288, align 4, !tbaa !5
  %1292 = call ptr @s2n_strerror_debug(i32 noundef %1291, ptr noundef nonnull @.str.4) #9
  %1293 = load i32, ptr %1274, align 4, !tbaa !5
  %1294 = call ptr @strerror(i32 noundef %1293) #9
  %1295 = load i32, ptr %1274, align 4, !tbaa !5
  %1296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1286, ptr noundef nonnull %.str.5.sink666, i32 noundef %1287, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %1290, ptr noundef %1292, ptr noundef %1294, i32 noundef %1295) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1297:                                             ; preds = %1268
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %14, i8 0, i64 40, i1 false)
  %1298 = add nsw i32 %1270, 2
  store i32 %1298, ptr @test_count, align 4, !tbaa !5
  %1299 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %14, i32 noundef 0) #9
  %1300 = icmp eq i32 %1299, -1
  br i1 %1300, label %1301, label %1325

1301:                                             ; preds = %1297
  %1302 = tail call ptr @__errno_location() #10
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = call i32 @s2n_print_stacktrace(ptr noundef %1304) #9
  %1306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1307 = trunc nuw i8 %1306 to i1
  br i1 %1307, label %1308, label %1312

1308:                                             ; preds = %1301
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = call i32 @fileno(ptr noundef %1309) #9
  %1311 = call i32 @isatty(i32 noundef %1310) #9
  %.not157 = icmp eq i32 %1311, 0
  br i1 %.not157, label %1312, label %1313

1312:                                             ; preds = %1308, %1301
  br label %1313

1313:                                             ; preds = %1308, %1312
  %.str.5.sink677 = phi ptr [ @.str.5, %1312 ], [ @.str.2, %1308 ]
  store i32 %1303, ptr %1302, align 4, !tbaa !5
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = load i32, ptr @test_count, align 4, !tbaa !5
  %1316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1317 = load i32, ptr %1316, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror(i32 noundef %1317, ptr noundef nonnull @.str.4) #9
  %1319 = load i32, ptr %1316, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror_debug(i32 noundef %1319, ptr noundef nonnull @.str.4) #9
  %1321 = load i32, ptr %1302, align 4, !tbaa !5
  %1322 = call ptr @strerror(i32 noundef %1321) #9
  %1323 = load i32, ptr %1302, align 4, !tbaa !5
  %1324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1314, ptr noundef nonnull %.str.5.sink677, i32 noundef %1315, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1318, ptr noundef %1320, ptr noundef %1322, i32 noundef %1323) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1325:                                             ; preds = %1297
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = add nsw i32 %1326, 1
  store i32 %1327, ptr @test_count, align 4, !tbaa !5
  %1328 = call i32 %488(ptr noundef nonnull %1269, ptr noundef nonnull %14) #9
  %1329 = icmp eq i32 %1328, -1
  br i1 %1329, label %1330, label %1354

1330:                                             ; preds = %1325
  %1331 = tail call ptr @__errno_location() #10
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = call i32 @s2n_print_stacktrace(ptr noundef %1333) #9
  %1335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1336 = trunc nuw i8 %1335 to i1
  br i1 %1336, label %1337, label %1341

1337:                                             ; preds = %1330
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = call i32 @fileno(ptr noundef %1338) #9
  %1340 = call i32 @isatty(i32 noundef %1339) #9
  %.not156 = icmp eq i32 %1340, 0
  br i1 %.not156, label %1341, label %1342

1341:                                             ; preds = %1337, %1330
  br label %1342

1342:                                             ; preds = %1337, %1341
  %.str.5.sink688 = phi ptr [ @.str.5, %1341 ], [ @.str.2, %1337 ]
  store i32 %1332, ptr %1331, align 4, !tbaa !5
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = load i32, ptr @test_count, align 4, !tbaa !5
  %1345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror(i32 noundef %1346, ptr noundef nonnull @.str.4) #9
  %1348 = load i32, ptr %1345, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror_debug(i32 noundef %1348, ptr noundef nonnull @.str.4) #9
  %1350 = load i32, ptr %1331, align 4, !tbaa !5
  %1351 = call ptr @strerror(i32 noundef %1350) #9
  %1352 = load i32, ptr %1331, align 4, !tbaa !5
  %1353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1343, ptr noundef nonnull %.str.5.sink688, i32 noundef %1344, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %1347, ptr noundef %1349, ptr noundef %1351, i32 noundef %1352) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1354:                                             ; preds = %1325
  %1355 = getelementptr inbounds i8, ptr %14, i64 28
  %1356 = load i32, ptr %1355, align 4, !tbaa !20
  %1357 = getelementptr inbounds i8, ptr %14, i64 24
  %1358 = load i32, ptr %1357, align 8, !tbaa !23
  %1359 = load i32, ptr @test_count, align 4, !tbaa !5
  %1360 = add nsw i32 %1359, 1
  store i32 %1360, ptr @test_count, align 4, !tbaa !5
  %1361 = call i32 @s2n_stuffer_rewrite(ptr noundef nonnull %14) #9
  %1362 = icmp eq i32 %1361, -1
  br i1 %1362, label %1363, label %1387

1363:                                             ; preds = %1354
  %1364 = tail call ptr @__errno_location() #10
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = call i32 @s2n_print_stacktrace(ptr noundef %1366) #9
  %1368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1369 = trunc nuw i8 %1368 to i1
  br i1 %1369, label %1370, label %1374

1370:                                             ; preds = %1363
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @fileno(ptr noundef %1371) #9
  %1373 = call i32 @isatty(i32 noundef %1372) #9
  %.not155 = icmp eq i32 %1373, 0
  br i1 %.not155, label %1374, label %1375

1374:                                             ; preds = %1370, %1363
  br label %1375

1375:                                             ; preds = %1370, %1374
  %.str.5.sink699 = phi ptr [ @.str.5, %1374 ], [ @.str.2, %1370 ]
  store i32 %1365, ptr %1364, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror(i32 noundef %1379, ptr noundef nonnull @.str.4) #9
  %1381 = load i32, ptr %1378, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror_debug(i32 noundef %1381, ptr noundef nonnull @.str.4) #9
  %1383 = load i32, ptr %1364, align 4, !tbaa !5
  %1384 = call ptr @strerror(i32 noundef %1383) #9
  %1385 = load i32, ptr %1364, align 4, !tbaa !5
  %1386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1376, ptr noundef nonnull %.str.5.sink699, i32 noundef %1377, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1380, ptr noundef %1382, ptr noundef %1384, i32 noundef %1385) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1387:                                             ; preds = %1354
  %1388 = load i32, ptr @test_count, align 4, !tbaa !5
  %1389 = add nsw i32 %1388, 1
  store i32 %1389, ptr @test_count, align 4, !tbaa !5
  %1390 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %14, i8 noundef zeroext -1) #9
  %1391 = icmp eq i32 %1390, -1
  br i1 %1391, label %1392, label %1416

1392:                                             ; preds = %1387
  %1393 = tail call ptr @__errno_location() #10
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = call i32 @s2n_print_stacktrace(ptr noundef %1395) #9
  %1397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1398 = trunc nuw i8 %1397 to i1
  br i1 %1398, label %1399, label %1403

1399:                                             ; preds = %1392
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = call i32 @fileno(ptr noundef %1400) #9
  %1402 = call i32 @isatty(i32 noundef %1401) #9
  %.not154 = icmp eq i32 %1402, 0
  br i1 %.not154, label %1403, label %1404

1403:                                             ; preds = %1399, %1392
  br label %1404

1404:                                             ; preds = %1399, %1403
  %.str.5.sink710 = phi ptr [ @.str.5, %1403 ], [ @.str.2, %1399 ]
  store i32 %1394, ptr %1393, align 4, !tbaa !5
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror(i32 noundef %1408, ptr noundef nonnull @.str.4) #9
  %1410 = load i32, ptr %1407, align 4, !tbaa !5
  %1411 = call ptr @s2n_strerror_debug(i32 noundef %1410, ptr noundef nonnull @.str.4) #9
  %1412 = load i32, ptr %1393, align 4, !tbaa !5
  %1413 = call ptr @strerror(i32 noundef %1412) #9
  %1414 = load i32, ptr %1393, align 4, !tbaa !5
  %1415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1405, ptr noundef nonnull %.str.5.sink710, i32 noundef %1406, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1409, ptr noundef %1411, ptr noundef %1413, i32 noundef %1414) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1416:                                             ; preds = %1387
  %1417 = load i32, ptr @test_count, align 4, !tbaa !5
  %1418 = add nsw i32 %1417, 1
  store i32 %1418, ptr @test_count, align 4, !tbaa !5
  %1419 = xor i32 %1358, -1
  %1420 = add i32 %1356, %1419
  %1421 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %14, i32 noundef %1420) #9
  %1422 = icmp eq i32 %1421, -1
  br i1 %1422, label %1423, label %1447

1423:                                             ; preds = %1416
  %1424 = tail call ptr @__errno_location() #10
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = call i32 @s2n_print_stacktrace(ptr noundef %1426) #9
  %1428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1429 = trunc nuw i8 %1428 to i1
  br i1 %1429, label %1430, label %1434

1430:                                             ; preds = %1423
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @fileno(ptr noundef %1431) #9
  %1433 = call i32 @isatty(i32 noundef %1432) #9
  %.not153 = icmp eq i32 %1433, 0
  br i1 %.not153, label %1434, label %1435

1434:                                             ; preds = %1430, %1423
  br label %1435

1435:                                             ; preds = %1430, %1434
  %.str.5.sink721 = phi ptr [ @.str.5, %1434 ], [ @.str.2, %1430 ]
  store i32 %1425, ptr %1424, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call ptr @s2n_strerror(i32 noundef %1439, ptr noundef nonnull @.str.4) #9
  %1441 = load i32, ptr %1438, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror_debug(i32 noundef %1441, ptr noundef nonnull @.str.4) #9
  %1443 = load i32, ptr %1424, align 4, !tbaa !5
  %1444 = call ptr @strerror(i32 noundef %1443) #9
  %1445 = load i32, ptr %1424, align 4, !tbaa !5
  %1446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1436, ptr noundef nonnull %.str.5.sink721, i32 noundef %1437, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1440, ptr noundef %1442, ptr noundef %1444, i32 noundef %1445) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1447:                                             ; preds = %1416
  %1448 = load i32, ptr @test_count, align 4, !tbaa !5
  %1449 = add nsw i32 %1448, 1
  store i32 %1449, ptr @test_count, align 4, !tbaa !5
  %1450 = load i32, ptr %1355, align 4, !tbaa !20
  %1451 = load i32, ptr %1357, align 8, !tbaa !23
  %1452 = sub i32 %1450, %1451
  %1453 = icmp ugt i32 %1452, 4
  br i1 %1453, label %1478, label %1454

1454:                                             ; preds = %1447
  %1455 = tail call ptr @__errno_location() #10
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @s2n_print_stacktrace(ptr noundef %1457) #9
  %1459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1460 = trunc nuw i8 %1459 to i1
  br i1 %1460, label %1461, label %1465

1461:                                             ; preds = %1454
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = call i32 @fileno(ptr noundef %1462) #9
  %1464 = call i32 @isatty(i32 noundef %1463) #9
  %.not144 = icmp eq i32 %1464, 0
  br i1 %.not144, label %1465, label %1466

1465:                                             ; preds = %1461, %1454
  br label %1466

1466:                                             ; preds = %1461, %1465
  %.str.5.sink732 = phi ptr [ @.str.5, %1465 ], [ @.str.2, %1461 ]
  store i32 %1456, ptr %1455, align 4, !tbaa !5
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror(i32 noundef %1470, ptr noundef nonnull @.str.4) #9
  %1472 = load i32, ptr %1469, align 4, !tbaa !5
  %1473 = call ptr @s2n_strerror_debug(i32 noundef %1472, ptr noundef nonnull @.str.4) #9
  %1474 = load i32, ptr %1455, align 4, !tbaa !5
  %1475 = call ptr @strerror(i32 noundef %1474) #9
  %1476 = load i32, ptr %1455, align 4, !tbaa !5
  %1477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1467, ptr noundef nonnull %.str.5.sink732, i32 noundef %1468, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1471, ptr noundef %1473, ptr noundef %1475, i32 noundef %1476) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1478:                                             ; preds = %1447
  %1479 = add nsw i32 %1448, 2
  store i32 %1479, ptr @test_count, align 4, !tbaa !5
  %1480 = getelementptr inbounds i8, ptr %1269, i64 2784
  %1481 = load i32, ptr %1480, align 8, !tbaa !24
  %1482 = icmp eq i32 %1481, 0
  br i1 %1482, label %1507, label %1483

1483:                                             ; preds = %1478
  %1484 = tail call ptr @__errno_location() #10
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = call i32 @s2n_print_stacktrace(ptr noundef %1486) #9
  %1488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1489 = trunc nuw i8 %1488 to i1
  br i1 %1489, label %1490, label %1494

1490:                                             ; preds = %1483
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = call i32 @fileno(ptr noundef %1491) #9
  %1493 = call i32 @isatty(i32 noundef %1492) #9
  %.not145 = icmp eq i32 %1493, 0
  br i1 %.not145, label %1494, label %1495

1494:                                             ; preds = %1490, %1483
  br label %1495

1495:                                             ; preds = %1490, %1494
  %.str.5.sink743 = phi ptr [ @.str.5, %1494 ], [ @.str.2, %1490 ]
  store i32 %1485, ptr %1484, align 4, !tbaa !5
  %1496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1497 = load i32, ptr @test_count, align 4, !tbaa !5
  %1498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror(i32 noundef %1499, ptr noundef nonnull @.str.4) #9
  %1501 = load i32, ptr %1498, align 4, !tbaa !5
  %1502 = call ptr @s2n_strerror_debug(i32 noundef %1501, ptr noundef nonnull @.str.4) #9
  %1503 = load i32, ptr %1484, align 4, !tbaa !5
  %1504 = call ptr @strerror(i32 noundef %1503) #9
  %1505 = load i32, ptr %1484, align 4, !tbaa !5
  %1506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1496, ptr noundef nonnull %.str.5.sink743, i32 noundef %1497, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1500, ptr noundef %1502, ptr noundef %1504, i32 noundef %1505) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1507:                                             ; preds = %1478
  %1508 = add nsw i32 %1448, 3
  store i32 %1508, ptr @test_count, align 4, !tbaa !5
  %1509 = call i32 %866(ptr noundef nonnull %1269, ptr noundef nonnull %14) #9
  %1510 = icmp eq i32 %1509, -1
  br i1 %1510, label %1511, label %1535

1511:                                             ; preds = %1507
  %1512 = tail call ptr @__errno_location() #10
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = call i32 @s2n_print_stacktrace(ptr noundef %1514) #9
  %1516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1517 = trunc nuw i8 %1516 to i1
  br i1 %1517, label %1518, label %1522

1518:                                             ; preds = %1511
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = call i32 @fileno(ptr noundef %1519) #9
  %1521 = call i32 @isatty(i32 noundef %1520) #9
  %.not152 = icmp eq i32 %1521, 0
  br i1 %.not152, label %1522, label %1523

1522:                                             ; preds = %1518, %1511
  br label %1523

1523:                                             ; preds = %1518, %1522
  %.str.5.sink754 = phi ptr [ @.str.5, %1522 ], [ @.str.2, %1518 ]
  store i32 %1513, ptr %1512, align 4, !tbaa !5
  %1524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1525 = load i32, ptr @test_count, align 4, !tbaa !5
  %1526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror(i32 noundef %1527, ptr noundef nonnull @.str.4) #9
  %1529 = load i32, ptr %1526, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror_debug(i32 noundef %1529, ptr noundef nonnull @.str.4) #9
  %1531 = load i32, ptr %1512, align 4, !tbaa !5
  %1532 = call ptr @strerror(i32 noundef %1531) #9
  %1533 = load i32, ptr %1512, align 4, !tbaa !5
  %1534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1524, ptr noundef nonnull %.str.5.sink754, i32 noundef %1525, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %1528, ptr noundef %1530, ptr noundef %1532, i32 noundef %1533) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1535:                                             ; preds = %1507
  %1536 = load i32, ptr @test_count, align 4, !tbaa !5
  %1537 = add nsw i32 %1536, 1
  store i32 %1537, ptr @test_count, align 4, !tbaa !5
  %1538 = load i32, ptr %1480, align 8, !tbaa !24
  %1539 = icmp eq i32 %1538, 0
  br i1 %1539, label %1564, label %1540

1540:                                             ; preds = %1535
  %1541 = tail call ptr @__errno_location() #10
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1544 = call i32 @s2n_print_stacktrace(ptr noundef %1543) #9
  %1545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1546 = trunc nuw i8 %1545 to i1
  br i1 %1546, label %1547, label %1551

1547:                                             ; preds = %1540
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1549 = call i32 @fileno(ptr noundef %1548) #9
  %1550 = call i32 @isatty(i32 noundef %1549) #9
  %.not146 = icmp eq i32 %1550, 0
  br i1 %.not146, label %1551, label %1552

1551:                                             ; preds = %1547, %1540
  br label %1552

1552:                                             ; preds = %1547, %1551
  %.str.5.sink765 = phi ptr [ @.str.5, %1551 ], [ @.str.2, %1547 ]
  store i32 %1542, ptr %1541, align 4, !tbaa !5
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror(i32 noundef %1556, ptr noundef nonnull @.str.4) #9
  %1558 = load i32, ptr %1555, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror_debug(i32 noundef %1558, ptr noundef nonnull @.str.4) #9
  %1560 = load i32, ptr %1541, align 4, !tbaa !5
  %1561 = call ptr @strerror(i32 noundef %1560) #9
  %1562 = load i32, ptr %1541, align 4, !tbaa !5
  %1563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1553, ptr noundef nonnull %.str.5.sink765, i32 noundef %1554, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1557, ptr noundef %1559, ptr noundef %1561, i32 noundef %1562) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1564:                                             ; preds = %1535
  %1565 = call i32 @s2n_stuffer_free(ptr noundef nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #9
  %1566 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  %1567 = call i32 @s2n_cleanup() #9
  %1568 = icmp eq i32 %1567, -1
  br i1 %1568, label %1569, label %1593

1569:                                             ; preds = %1564
  %1570 = tail call ptr @__errno_location() #10
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @s2n_print_stacktrace(ptr noundef %1572) #9
  %1574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1575 = trunc nuw i8 %1574 to i1
  br i1 %1575, label %1576, label %1580

1576:                                             ; preds = %1569
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @fileno(ptr noundef %1577) #9
  %1579 = call i32 @isatty(i32 noundef %1578) #9
  %.not151 = icmp eq i32 %1579, 0
  br i1 %.not151, label %1580, label %1581

1580:                                             ; preds = %1576, %1569
  br label %1581

1581:                                             ; preds = %1576, %1580
  %.str.5.sink776 = phi ptr [ @.str.5, %1580 ], [ @.str.2, %1576 ]
  store i32 %1571, ptr %1570, align 4, !tbaa !5
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = load i32, ptr @test_count, align 4, !tbaa !5
  %1584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call ptr @s2n_strerror(i32 noundef %1585, ptr noundef nonnull @.str.4) #9
  %1587 = load i32, ptr %1584, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef nonnull @.str.4) #9
  %1589 = load i32, ptr %1570, align 4, !tbaa !5
  %1590 = call ptr @strerror(i32 noundef %1589) #9
  %1591 = load i32, ptr %1570, align 4, !tbaa !5
  %1592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1582, ptr noundef nonnull %.str.5.sink776, i32 noundef %1583, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1586, ptr noundef %1588, ptr noundef %1590, i32 noundef %1591) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1593:                                             ; preds = %1564
  %1594 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %1595 = icmp eq i32 %1594, -1
  br i1 %1595, label %1596, label %1620

1596:                                             ; preds = %1593
  %1597 = tail call ptr @__errno_location() #10
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @s2n_print_stacktrace(ptr noundef %1599) #9
  %1601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1602 = trunc nuw i8 %1601 to i1
  br i1 %1602, label %1603, label %1607

1603:                                             ; preds = %1596
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @fileno(ptr noundef %1604) #9
  %1606 = call i32 @isatty(i32 noundef %1605) #9
  %.not150 = icmp eq i32 %1606, 0
  br i1 %.not150, label %1607, label %1608

1607:                                             ; preds = %1603, %1596
  br label %1608

1608:                                             ; preds = %1603, %1607
  %.str.5.sink787 = phi ptr [ @.str.5, %1607 ], [ @.str.2, %1603 ]
  store i32 %1598, ptr %1597, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror(i32 noundef %1612, ptr noundef nonnull @.str.4) #9
  %1614 = load i32, ptr %1611, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror_debug(i32 noundef %1614, ptr noundef nonnull @.str.4) #9
  %1616 = load i32, ptr %1597, align 4, !tbaa !5
  %1617 = call ptr @strerror(i32 noundef %1616) #9
  %1618 = load i32, ptr %1597, align 4, !tbaa !5
  %1619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1609, ptr noundef nonnull %.str.5.sink787, i32 noundef %1610, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1613, ptr noundef %1615, ptr noundef %1617, i32 noundef %1618) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1620:                                             ; preds = %1593
  %1621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1622 = trunc nuw i8 %1621 to i1
  br i1 %1622, label %1623, label %1634

1623:                                             ; preds = %1620
  %1624 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1625 = call i32 @fileno(ptr noundef %1624) #9
  %1626 = call i32 @isatty(i32 noundef %1625) #9
  %.not147 = icmp eq i32 %1626, 0
  br i1 %.not147, label %1634, label %1627

1627:                                             ; preds = %1623
  %1628 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not149 = icmp eq i32 %1628, 0
  %1629 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not149, label %1632, label %1630

1630:                                             ; preds = %1627
  %1631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef nonnull @.str.34, i32 noundef %1628) #9
  br label %1641

1632:                                             ; preds = %1627
  %1633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef nonnull @.str.35) #9
  br label %1641

1634:                                             ; preds = %1623, %1620
  %1635 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not148 = icmp eq i32 %1635, 0
  %1636 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not148, label %1639, label %1637

1637:                                             ; preds = %1634
  %1638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1636, ptr noundef nonnull @.str.36, i32 noundef %1635) #9
  br label %1641

1639:                                             ; preds = %1634
  %1640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1636, ptr noundef nonnull @.str.37) #9
  br label %1641

1641:                                             ; preds = %1637, %1639, %1630, %1632
  %1642 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  ret i32 0
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #6

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #5

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint32(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe_n(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_rewrite(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 24}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!16, !10, i64 8}
!19 = !{!7, !7, i64 0}
!20 = !{!21, !6, i64 28}
!21 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = !{!21, !6, i64 24}
!24 = !{!25, !6, i64 2784}
!25 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !26, i64 160, !27, i64 168, !27, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !28, i64 240, !10, i64 632, !10, i64 640, !29, i64 648, !34, i64 1144, !37, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !21, i64 1776, !21, i64 1816, !21, i64 1856, !21, i64 1896, !6, i64 1936, !27, i64 1944, !7, i64 1952, !21, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !39, i64 2004, !39, i64 2008, !40, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !27, i64 2224, !7, i64 2232, !27, i64 2240, !27, i64 2248, !27, i64 2256, !39, i64 2264, !39, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !22, i64 2792, !6, i64 2816, !22, i64 2824, !22, i64 2848, !22, i64 2872, !42, i64 2896, !44, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !22, i64 3784, !6, i64 3808, !46, i64 3816, !7, i64 3848, !21, i64 3992, !22, i64 4032, !22, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !22, i64 4096, !6, i64 4120, !47, i64 4128, !39, i64 4176, !7, i64 4180, !7, i64 4181}
!26 = !{!"s2n_timer", !27, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!29 = !{!"s2n_kex_parameters", !30, i64 0, !31, i64 8, !7, i64 24, !31, i64 56, !32, i64 72, !32, i64 184, !7, i64 296, !33, i64 360, !22, i64 448, !22, i64 472}
!30 = !{!"s2n_dh_params", !10, i64 0}
!31 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!32 = !{!"s2n_kem_group_params", !10, i64 0, !33, i64 8, !31, i64 96}
!33 = !{!"s2n_kem_params", !10, i64 0, !22, i64 8, !22, i64 32, !22, i64 56, !12, i64 80}
!34 = !{!"s2n_handshake_parameters", !35, i64 0, !35, i64 48, !22, i64 96, !6, i64 120, !36, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!35 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!36 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!37 = !{!"s2n_psk_parameters", !6, i64 0, !38, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!38 = !{!"s2n_array", !22, i64 0, !6, i64 24, !6, i64 28}
!39 = !{!"", !6, i64 0}
!40 = !{!"s2n_handshake", !21, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !41, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!41 = !{!"s2n_offered_early_data", !10, i64 0}
!42 = !{!"s2n_client_hello", !22, i64 0, !43, i64 24, !22, i64 728, !22, i64 752, !22, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!43 = !{!"", !7, i64 0, !22, i64 672, !17, i64 696}
!44 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !45, i64 48, !12, i64 52}
!45 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!46 = !{!"s2n_ticket_fields", !22, i64 0, !6, i64 24}
!47 = !{!"s2n_post_handshake", !21, i64 0, !7, i64 40}
!48 = !{!16, !10, i64 16}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass