; LLVM IR from aws/s2n-tls :: tests/unit (s2n_ecc_point_format_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_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%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 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }

@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 [94 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 [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_server_ec_point_format_extension = external constant %struct.s2n_extension_type, align 8
@.str.11 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_rsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@s2n_dhe_rsa_with_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_ecdsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.13 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_client_ec_point_format_extension = external constant %struct.s2n_extension_type, align 8
@.str.18 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.34 = 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 i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %struct.s2n_stuffer, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i8, align 1
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i8, align 1
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %struct.s2n_stuffer, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, 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 %50

50:                                               ; preds = %2
  br label %51

51:                                               ; preds = %50
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %52 = load ptr, ptr @stdout, align 8, !tbaa !9
  %53 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef @.str, ptr noundef @.str.1) #8
  %54 = load ptr, ptr @stdout, align 8, !tbaa !9
  %55 = call i32 @fflush(ptr noundef %54)
  br label %56

56:                                               ; preds = %51
  %57 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %58 = icmp eq i32 %57, -1
  br i1 %58, label %59, label %110

59:                                               ; preds = %56
  br label %60

60:                                               ; preds = %59
  br label %61

61:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  %62 = call ptr @__errno_location() #9
  %63 = load i32, ptr %62, align 4, !tbaa !5
  store i32 %63, ptr %6, align 4, !tbaa !5
  %64 = load ptr, ptr @stderr, align 8, !tbaa !9
  %65 = call i32 @s2n_print_stacktrace(ptr noundef %64)
  %66 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %67 = trunc i8 %66 to i1
  br i1 %67, label %68, label %90

68:                                               ; preds = %61
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = call i32 @fileno(ptr noundef %69) #8
  %71 = call i32 @isatty(i32 noundef %70) #8
  %72 = icmp ne i32 %71, 0
  br i1 %72, label %73, label %90

73:                                               ; preds = %68
  %74 = load i32, ptr %6, align 4, !tbaa !5
  %75 = call ptr @__errno_location() #9
  store i32 %74, ptr %75, align 4, !tbaa !5
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = load i32, ptr @test_count, align 4, !tbaa !5
  %78 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %79 = load i32, ptr %78, align 4, !tbaa !5
  %80 = call ptr @s2n_strerror(i32 noundef %79, ptr noundef @.str.4)
  %81 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = call ptr @s2n_strerror_debug(i32 noundef %82, ptr noundef @.str.4)
  %84 = call ptr @__errno_location() #9
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = call ptr @strerror(i32 noundef %85) #8
  %87 = call ptr @__errno_location() #9
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %76, ptr noundef @.str.2, i32 noundef %77, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 23, ptr noundef %80, ptr noundef %83, ptr noundef %86, i32 noundef %88) #8
  br label %107

90:                                               ; preds = %68, %61
  %91 = load i32, ptr %6, align 4, !tbaa !5
  %92 = call ptr @__errno_location() #9
  store i32 %91, ptr %92, align 4, !tbaa !5
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = load i32, ptr @test_count, align 4, !tbaa !5
  %95 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %96 = load i32, ptr %95, align 4, !tbaa !5
  %97 = call ptr @s2n_strerror(i32 noundef %96, ptr noundef @.str.4)
  %98 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %99 = load i32, ptr %98, align 4, !tbaa !5
  %100 = call ptr @s2n_strerror_debug(i32 noundef %99, ptr noundef @.str.4)
  %101 = call ptr @__errno_location() #9
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = call ptr @strerror(i32 noundef %102) #8
  %104 = call ptr @__errno_location() #9
  %105 = load i32, ptr %104, align 4, !tbaa !5
  %106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %93, ptr noundef @.str.5, i32 noundef %94, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 23, ptr noundef %97, ptr noundef %100, ptr noundef %103, i32 noundef %105) #8
  br label %107

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

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

109:                                              ; No predecessors!
  br label %110

110:                                              ; preds = %109, %56
  br label %111

111:                                              ; preds = %110
  br label %112

112:                                              ; preds = %111
  %113 = load i32, ptr @test_count, align 4, !tbaa !5
  %114 = add nsw i32 %113, 1
  store i32 %114, ptr @test_count, align 4, !tbaa !5
  %115 = call i32 @s2n_enable_atexit()
  %116 = icmp eq i32 %115, -1
  br i1 %116, label %117, label %168

117:                                              ; preds = %112
  br label %118

118:                                              ; preds = %117
  br label %119

119:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  %120 = call ptr @__errno_location() #9
  %121 = load i32, ptr %120, align 4, !tbaa !5
  store i32 %121, ptr %7, align 4, !tbaa !5
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = call i32 @s2n_print_stacktrace(ptr noundef %122)
  %124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %125 = trunc i8 %124 to i1
  br i1 %125, label %126, label %148

126:                                              ; preds = %119
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = call i32 @fileno(ptr noundef %127) #8
  %129 = call i32 @isatty(i32 noundef %128) #8
  %130 = icmp ne i32 %129, 0
  br i1 %130, label %131, label %148

131:                                              ; preds = %126
  %132 = load i32, ptr %7, align 4, !tbaa !5
  %133 = call ptr @__errno_location() #9
  store i32 %132, ptr %133, align 4, !tbaa !5
  %134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %135 = load i32, ptr @test_count, align 4, !tbaa !5
  %136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %137 = load i32, ptr %136, align 4, !tbaa !5
  %138 = call ptr @s2n_strerror(i32 noundef %137, ptr noundef @.str.4)
  %139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = call ptr @s2n_strerror_debug(i32 noundef %140, ptr noundef @.str.4)
  %142 = call ptr @__errno_location() #9
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = call ptr @strerror(i32 noundef %143) #8
  %145 = call ptr @__errno_location() #9
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %134, ptr noundef @.str.2, i32 noundef %135, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 23, ptr noundef %138, ptr noundef %141, ptr noundef %144, i32 noundef %146) #8
  br label %165

148:                                              ; preds = %126, %119
  %149 = load i32, ptr %7, align 4, !tbaa !5
  %150 = call ptr @__errno_location() #9
  store i32 %149, ptr %150, align 4, !tbaa !5
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = call ptr @s2n_strerror(i32 noundef %154, ptr noundef @.str.4)
  %156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = call ptr @s2n_strerror_debug(i32 noundef %157, ptr noundef @.str.4)
  %159 = call ptr @__errno_location() #9
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call ptr @strerror(i32 noundef %160) #8
  %162 = call ptr @__errno_location() #9
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %151, ptr noundef @.str.5, i32 noundef %152, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 23, ptr noundef %155, ptr noundef %158, ptr noundef %161, i32 noundef %163) #8
  br label %165

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

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

167:                                              ; No predecessors!
  br label %168

168:                                              ; preds = %167, %112
  br label %169

169:                                              ; preds = %168
  br label %170

170:                                              ; preds = %169
  br label %171

171:                                              ; preds = %170
  %172 = call i32 @s2n_init()
  %173 = icmp eq i32 %172, -1
  br i1 %173, label %174, label %225

174:                                              ; preds = %171
  br label %175

175:                                              ; preds = %174
  br label %176

176:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %177 = call ptr @__errno_location() #9
  %178 = load i32, ptr %177, align 4, !tbaa !5
  store i32 %178, ptr %8, align 4, !tbaa !5
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = call i32 @s2n_print_stacktrace(ptr noundef %179)
  %181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %182 = trunc i8 %181 to i1
  br i1 %182, label %183, label %205

183:                                              ; preds = %176
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = call i32 @fileno(ptr noundef %184) #8
  %186 = call i32 @isatty(i32 noundef %185) #8
  %187 = icmp ne i32 %186, 0
  br i1 %187, label %188, label %205

188:                                              ; preds = %183
  %189 = load i32, ptr %8, align 4, !tbaa !5
  %190 = call ptr @__errno_location() #9
  store i32 %189, ptr %190, align 4, !tbaa !5
  %191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %192 = load i32, ptr @test_count, align 4, !tbaa !5
  %193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = call ptr @s2n_strerror(i32 noundef %194, ptr noundef @.str.4)
  %196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call ptr @s2n_strerror_debug(i32 noundef %197, ptr noundef @.str.4)
  %199 = call ptr @__errno_location() #9
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = call ptr @strerror(i32 noundef %200) #8
  %202 = call ptr @__errno_location() #9
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef @.str.2, i32 noundef %192, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 23, ptr noundef %195, ptr noundef %198, ptr noundef %201, i32 noundef %203) #8
  br label %222

205:                                              ; preds = %183, %176
  %206 = load i32, ptr %8, align 4, !tbaa !5
  %207 = call ptr @__errno_location() #9
  store i32 %206, ptr %207, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = call ptr @s2n_strerror(i32 noundef %211, ptr noundef @.str.4)
  %213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = call ptr @s2n_strerror_debug(i32 noundef %214, ptr noundef @.str.4)
  %216 = call ptr @__errno_location() #9
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = call ptr @strerror(i32 noundef %217) #8
  %219 = call ptr @__errno_location() #9
  %220 = load i32, ptr %219, align 4, !tbaa !5
  %221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %208, ptr noundef @.str.5, i32 noundef %209, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 23, ptr noundef %212, ptr noundef %215, ptr noundef %218, i32 noundef %220) #8
  br label %222

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

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

224:                                              ; No predecessors!
  br label %225

225:                                              ; preds = %224, %171
  br label %226

226:                                              ; preds = %225
  br label %227

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %227
  %229 = load i32, ptr @test_count, align 4, !tbaa !5
  %230 = add nsw i32 %229, 1
  store i32 %230, ptr @test_count, align 4, !tbaa !5
  %231 = call i32 (...) @s2n_disable_tls13_in_test()
  %232 = icmp eq i32 %231, -1
  br i1 %232, label %233, label %284

233:                                              ; preds = %228
  br label %234

234:                                              ; preds = %233
  br label %235

235:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  %236 = call ptr @__errno_location() #9
  %237 = load i32, ptr %236, align 4, !tbaa !5
  store i32 %237, ptr %9, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = call i32 @s2n_print_stacktrace(ptr noundef %238)
  %240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %241 = trunc i8 %240 to i1
  br i1 %241, label %242, label %264

242:                                              ; preds = %235
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = call i32 @fileno(ptr noundef %243) #8
  %245 = call i32 @isatty(i32 noundef %244) #8
  %246 = icmp ne i32 %245, 0
  br i1 %246, label %247, label %264

247:                                              ; preds = %242
  %248 = load i32, ptr %9, align 4, !tbaa !5
  %249 = call ptr @__errno_location() #9
  store i32 %248, ptr %249, align 4, !tbaa !5
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = call ptr @s2n_strerror(i32 noundef %253, ptr noundef @.str.4)
  %255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror_debug(i32 noundef %256, ptr noundef @.str.4)
  %258 = call ptr @__errno_location() #9
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = call ptr @strerror(i32 noundef %259) #8
  %261 = call ptr @__errno_location() #9
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %250, ptr noundef @.str.2, i32 noundef %251, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 24, ptr noundef %254, ptr noundef %257, ptr noundef %260, i32 noundef %262) #8
  br label %281

264:                                              ; preds = %242, %235
  %265 = load i32, ptr %9, align 4, !tbaa !5
  %266 = call ptr @__errno_location() #9
  store i32 %265, ptr %266, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror(i32 noundef %270, ptr noundef @.str.4)
  %272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %273 = load i32, ptr %272, align 4, !tbaa !5
  %274 = call ptr @s2n_strerror_debug(i32 noundef %273, ptr noundef @.str.4)
  %275 = call ptr @__errno_location() #9
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = call ptr @strerror(i32 noundef %276) #8
  %278 = call ptr @__errno_location() #9
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %267, ptr noundef @.str.5, i32 noundef %268, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 24, ptr noundef %271, ptr noundef %274, ptr noundef %277, i32 noundef %279) #8
  br label %281

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

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

283:                                              ; No predecessors!
  br label %284

284:                                              ; preds = %283, %228
  br label %285

285:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  store ptr null, ptr %10, align 8, !tbaa !9
  br label %286

286:                                              ; preds = %285
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = add nsw i32 %287, 1
  store i32 %288, ptr @test_count, align 4, !tbaa !5
  %289 = call ptr @s2n_config_new()
  store ptr %289, ptr %10, align 8, !tbaa !9
  %290 = icmp eq ptr %289, null
  br i1 %290, label %291, label %344

291:                                              ; preds = %286
  br label %292

292:                                              ; preds = %291
  br label %293

293:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  %294 = call ptr @__errno_location() #9
  %295 = load i32, ptr %294, align 4, !tbaa !5
  store i32 %295, ptr %11, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = call i32 @s2n_print_stacktrace(ptr noundef %296)
  %298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %299 = trunc i8 %298 to i1
  br i1 %299, label %300, label %322

300:                                              ; preds = %293
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = call i32 @fileno(ptr noundef %301) #8
  %303 = call i32 @isatty(i32 noundef %302) #8
  %304 = icmp ne i32 %303, 0
  br i1 %304, label %305, label %322

305:                                              ; preds = %300
  %306 = load i32, ptr %11, align 4, !tbaa !5
  %307 = call ptr @__errno_location() #9
  store i32 %306, ptr %307, align 4, !tbaa !5
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = load i32, ptr @test_count, align 4, !tbaa !5
  %310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror(i32 noundef %311, ptr noundef @.str.4)
  %313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror_debug(i32 noundef %314, ptr noundef @.str.4)
  %316 = call ptr @__errno_location() #9
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call ptr @strerror(i32 noundef %317) #8
  %319 = call ptr @__errno_location() #9
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %308, ptr noundef @.str.2, i32 noundef %309, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 27, ptr noundef %312, ptr noundef %315, ptr noundef %318, i32 noundef %320) #8
  br label %339

322:                                              ; preds = %300, %293
  %323 = load i32, ptr %11, align 4, !tbaa !5
  %324 = call ptr @__errno_location() #9
  store i32 %323, ptr %324, 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 @.str.4)
  %330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @s2n_strerror_debug(i32 noundef %331, ptr noundef @.str.4)
  %333 = call ptr @__errno_location() #9
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call ptr @strerror(i32 noundef %334) #8
  %336 = call ptr @__errno_location() #9
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %325, ptr noundef @.str.5, i32 noundef %326, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 27, ptr noundef %329, ptr noundef %332, ptr noundef %335, i32 noundef %337) #8
  br label %339

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

340:                                              ; preds = %339
  br label %341

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

342:                                              ; No predecessors!
  br label %343

343:                                              ; preds = %342
  br label %344

344:                                              ; preds = %343, %286
  br label %345

345:                                              ; preds = %344
  br label %346

346:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %347

347:                                              ; preds = %346
  %348 = load i32, ptr @test_count, align 4, !tbaa !5
  %349 = add nsw i32 %348, 1
  store i32 %349, ptr @test_count, align 4, !tbaa !5
  %350 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %350, ptr %12, align 8, !tbaa !9
  %351 = icmp eq ptr %350, null
  br i1 %351, label %352, label %405

352:                                              ; preds = %347
  br label %353

353:                                              ; preds = %352
  br label %354

354:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %355 = call ptr @__errno_location() #9
  %356 = load i32, ptr %355, align 4, !tbaa !5
  store i32 %356, ptr %13, align 4, !tbaa !5
  %357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %358 = call i32 @s2n_print_stacktrace(ptr noundef %357)
  %359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %360 = trunc i8 %359 to i1
  br i1 %360, label %361, label %383

361:                                              ; preds = %354
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = call i32 @fileno(ptr noundef %362) #8
  %364 = call i32 @isatty(i32 noundef %363) #8
  %365 = icmp ne i32 %364, 0
  br i1 %365, label %366, label %383

366:                                              ; preds = %361
  %367 = load i32, ptr %13, align 4, !tbaa !5
  %368 = call ptr @__errno_location() #9
  store i32 %367, ptr %368, align 4, !tbaa !5
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = call ptr @s2n_strerror(i32 noundef %372, ptr noundef @.str.4)
  %374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror_debug(i32 noundef %375, ptr noundef @.str.4)
  %377 = call ptr @__errno_location() #9
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call ptr @strerror(i32 noundef %378) #8
  %380 = call ptr @__errno_location() #9
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %369, ptr noundef @.str.2, i32 noundef %370, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 32, ptr noundef %373, ptr noundef %376, ptr noundef %379, i32 noundef %381) #8
  br label %400

383:                                              ; preds = %361, %354
  %384 = load i32, ptr %13, align 4, !tbaa !5
  %385 = call ptr @__errno_location() #9
  store i32 %384, ptr %385, align 4, !tbaa !5
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = load i32, ptr @test_count, align 4, !tbaa !5
  %388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror(i32 noundef %389, ptr noundef @.str.4)
  %391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %392 = load i32, ptr %391, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror_debug(i32 noundef %392, ptr noundef @.str.4)
  %394 = call ptr @__errno_location() #9
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = call ptr @strerror(i32 noundef %395) #8
  %397 = call ptr @__errno_location() #9
  %398 = load i32, ptr %397, align 4, !tbaa !5
  %399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef @.str.5, i32 noundef %387, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 32, ptr noundef %390, ptr noundef %393, ptr noundef %396, i32 noundef %398) #8
  br label %400

400:                                              ; preds = %383, %366
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %401

401:                                              ; preds = %400
  br label %402

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

403:                                              ; No predecessors!
  br label %404

404:                                              ; preds = %403
  br label %405

405:                                              ; preds = %404, %347
  br label %406

406:                                              ; preds = %405
  br label %407

407:                                              ; preds = %406
  br label %408

408:                                              ; preds = %407
  %409 = load i32, ptr @test_count, align 4, !tbaa !5
  %410 = add nsw i32 %409, 1
  store i32 %410, ptr @test_count, align 4, !tbaa !5
  %411 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_ec_point_format_extension, i32 0, i32 5), align 8, !tbaa !15
  %412 = call zeroext i1 %411(ptr noundef null)
  br i1 %412, label %413, label %466

413:                                              ; preds = %408
  br label %414

414:                                              ; preds = %413
  br label %415

415:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %416 = call ptr @__errno_location() #9
  %417 = load i32, ptr %416, align 4, !tbaa !5
  store i32 %417, ptr %14, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = call i32 @s2n_print_stacktrace(ptr noundef %418)
  %420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %421 = trunc i8 %420 to i1
  br i1 %421, label %422, label %444

422:                                              ; preds = %415
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @fileno(ptr noundef %423) #8
  %425 = call i32 @isatty(i32 noundef %424) #8
  %426 = icmp ne i32 %425, 0
  br i1 %426, label %427, label %444

427:                                              ; preds = %422
  %428 = load i32, ptr %14, align 4, !tbaa !5
  %429 = call ptr @__errno_location() #9
  store i32 %428, ptr %429, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror(i32 noundef %433, ptr noundef @.str.4)
  %435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror_debug(i32 noundef %436, ptr noundef @.str.4)
  %438 = call ptr @__errno_location() #9
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call ptr @strerror(i32 noundef %439) #8
  %441 = call ptr @__errno_location() #9
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %430, ptr noundef @.str.2, i32 noundef %431, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 35, ptr noundef %434, ptr noundef %437, ptr noundef %440, i32 noundef %442) #8
  br label %461

444:                                              ; preds = %422, %415
  %445 = load i32, ptr %14, align 4, !tbaa !5
  %446 = call ptr @__errno_location() #9
  store i32 %445, ptr %446, align 4, !tbaa !5
  %447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %448 = load i32, ptr @test_count, align 4, !tbaa !5
  %449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = call ptr @s2n_strerror(i32 noundef %450, ptr noundef @.str.4)
  %452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %453, ptr noundef @.str.4)
  %455 = call ptr @__errno_location() #9
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = call ptr @strerror(i32 noundef %456) #8
  %458 = call ptr @__errno_location() #9
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %447, ptr noundef @.str.5, i32 noundef %448, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 35, ptr noundef %451, ptr noundef %454, ptr noundef %457, i32 noundef %459) #8
  br label %461

461:                                              ; preds = %444, %427
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %462

462:                                              ; preds = %461
  br label %463

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

464:                                              ; No predecessors!
  br label %465

465:                                              ; preds = %464
  br label %466

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

467:                                              ; preds = %466
  br label %468

468:                                              ; preds = %467
  %469 = load ptr, ptr %12, align 8, !tbaa !9
  %470 = getelementptr inbounds %struct.s2n_connection, ptr %469, i32 0, i32 27
  %471 = load ptr, ptr %470, align 8, !tbaa !18
  %472 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %471, i32 0, i32 0
  store ptr null, ptr %472, align 8, !tbaa !44
  br label %473

473:                                              ; preds = %468
  %474 = load i32, ptr @test_count, align 4, !tbaa !5
  %475 = add nsw i32 %474, 1
  store i32 %475, ptr @test_count, align 4, !tbaa !5
  %476 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_ec_point_format_extension, i32 0, i32 5), align 8, !tbaa !15
  %477 = load ptr, ptr %12, align 8, !tbaa !9
  %478 = call zeroext i1 %476(ptr noundef %477)
  br i1 %478, label %479, label %532

479:                                              ; preds = %473
  br label %480

480:                                              ; preds = %479
  br label %481

481:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %482 = call ptr @__errno_location() #9
  %483 = load i32, ptr %482, align 4, !tbaa !5
  store i32 %483, ptr %15, align 4, !tbaa !5
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = call i32 @s2n_print_stacktrace(ptr noundef %484)
  %486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %487 = trunc i8 %486 to i1
  br i1 %487, label %488, label %510

488:                                              ; preds = %481
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @fileno(ptr noundef %489) #8
  %491 = call i32 @isatty(i32 noundef %490) #8
  %492 = icmp ne i32 %491, 0
  br i1 %492, label %493, label %510

493:                                              ; preds = %488
  %494 = load i32, ptr %15, align 4, !tbaa !5
  %495 = call ptr @__errno_location() #9
  store i32 %494, ptr %495, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %499 = load i32, ptr %498, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror(i32 noundef %499, ptr noundef @.str.4)
  %501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %502 = load i32, ptr %501, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror_debug(i32 noundef %502, ptr noundef @.str.4)
  %504 = call ptr @__errno_location() #9
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @strerror(i32 noundef %505) #8
  %507 = call ptr @__errno_location() #9
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %496, ptr noundef @.str.2, i32 noundef %497, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 39, ptr noundef %500, ptr noundef %503, ptr noundef %506, i32 noundef %508) #8
  br label %527

510:                                              ; preds = %488, %481
  %511 = load i32, ptr %15, align 4, !tbaa !5
  %512 = call ptr @__errno_location() #9
  store i32 %511, ptr %512, align 4, !tbaa !5
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = load i32, ptr @test_count, align 4, !tbaa !5
  %515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror(i32 noundef %516, ptr noundef @.str.4)
  %518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror_debug(i32 noundef %519, ptr noundef @.str.4)
  %521 = call ptr @__errno_location() #9
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @strerror(i32 noundef %522) #8
  %524 = call ptr @__errno_location() #9
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %513, ptr noundef @.str.5, i32 noundef %514, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 39, ptr noundef %517, ptr noundef %520, ptr noundef %523, i32 noundef %525) #8
  br label %527

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

528:                                              ; preds = %527
  br label %529

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

530:                                              ; No predecessors!
  br label %531

531:                                              ; preds = %530
  br label %532

532:                                              ; preds = %531, %473
  br label %533

533:                                              ; preds = %532
  br label %534

534:                                              ; preds = %533
  %535 = load ptr, ptr %12, align 8, !tbaa !9
  %536 = getelementptr inbounds %struct.s2n_connection, ptr %535, i32 0, i32 27
  %537 = load ptr, ptr %536, align 8, !tbaa !18
  %538 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %537, i32 0, i32 0
  store ptr @s2n_rsa_with_aes_128_cbc_sha, ptr %538, align 8, !tbaa !44
  br label %539

539:                                              ; preds = %534
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr @test_count, align 4, !tbaa !5
  %542 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_ec_point_format_extension, i32 0, i32 5), align 8, !tbaa !15
  %543 = load ptr, ptr %12, align 8, !tbaa !9
  %544 = call zeroext i1 %542(ptr noundef %543)
  br i1 %544, label %545, label %598

545:                                              ; preds = %539
  br label %546

546:                                              ; preds = %545
  br label %547

547:                                              ; preds = %546
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %548 = call ptr @__errno_location() #9
  %549 = load i32, ptr %548, align 4, !tbaa !5
  store i32 %549, ptr %16, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = call i32 @s2n_print_stacktrace(ptr noundef %550)
  %552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %553 = trunc i8 %552 to i1
  br i1 %553, label %554, label %576

554:                                              ; preds = %547
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = call i32 @fileno(ptr noundef %555) #8
  %557 = call i32 @isatty(i32 noundef %556) #8
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %576

559:                                              ; preds = %554
  %560 = load i32, ptr %16, align 4, !tbaa !5
  %561 = call ptr @__errno_location() #9
  store i32 %560, ptr %561, 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 @.str.4)
  %567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = call ptr @s2n_strerror_debug(i32 noundef %568, ptr noundef @.str.4)
  %570 = call ptr @__errno_location() #9
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = call ptr @strerror(i32 noundef %571) #8
  %573 = call ptr @__errno_location() #9
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %562, ptr noundef @.str.2, i32 noundef %563, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 43, ptr noundef %566, ptr noundef %569, ptr noundef %572, i32 noundef %574) #8
  br label %593

576:                                              ; preds = %554, %547
  %577 = load i32, ptr %16, align 4, !tbaa !5
  %578 = call ptr @__errno_location() #9
  store i32 %577, ptr %578, align 4, !tbaa !5
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror(i32 noundef %582, ptr noundef @.str.4)
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror_debug(i32 noundef %585, ptr noundef @.str.4)
  %587 = call ptr @__errno_location() #9
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #8
  %590 = call ptr @__errno_location() #9
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %579, ptr noundef @.str.5, i32 noundef %580, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 43, ptr noundef %583, ptr noundef %586, ptr noundef %589, i32 noundef %591) #8
  br label %593

593:                                              ; preds = %576, %559
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %594

594:                                              ; preds = %593
  br label %595

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

596:                                              ; No predecessors!
  br label %597

597:                                              ; preds = %596
  br label %598

598:                                              ; preds = %597, %539
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  %601 = load ptr, ptr %12, align 8, !tbaa !9
  %602 = getelementptr inbounds %struct.s2n_connection, ptr %601, i32 0, i32 27
  %603 = load ptr, ptr %602, align 8, !tbaa !18
  %604 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %603, i32 0, i32 0
  store ptr @s2n_dhe_rsa_with_chacha20_poly1305_sha256, ptr %604, align 8, !tbaa !44
  br label %605

605:                                              ; preds = %600
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr @test_count, align 4, !tbaa !5
  %608 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_ec_point_format_extension, i32 0, i32 5), align 8, !tbaa !15
  %609 = load ptr, ptr %12, align 8, !tbaa !9
  %610 = call zeroext i1 %608(ptr noundef %609)
  br i1 %610, label %611, label %664

611:                                              ; preds = %605
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %614 = call ptr @__errno_location() #9
  %615 = load i32, ptr %614, align 4, !tbaa !5
  store i32 %615, ptr %17, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = call i32 @s2n_print_stacktrace(ptr noundef %616)
  %618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %619 = trunc i8 %618 to i1
  br i1 %619, label %620, label %642

620:                                              ; preds = %613
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = call i32 @fileno(ptr noundef %621) #8
  %623 = call i32 @isatty(i32 noundef %622) #8
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %625, label %642

625:                                              ; preds = %620
  %626 = load i32, ptr %17, align 4, !tbaa !5
  %627 = call ptr @__errno_location() #9
  store i32 %626, ptr %627, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef @.str.4)
  %633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror_debug(i32 noundef %634, ptr noundef @.str.4)
  %636 = call ptr @__errno_location() #9
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call ptr @strerror(i32 noundef %637) #8
  %639 = call ptr @__errno_location() #9
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef @.str.2, i32 noundef %629, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 45, ptr noundef %632, ptr noundef %635, ptr noundef %638, i32 noundef %640) #8
  br label %659

642:                                              ; preds = %620, %613
  %643 = load i32, ptr %17, align 4, !tbaa !5
  %644 = call ptr @__errno_location() #9
  store i32 %643, ptr %644, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror(i32 noundef %648, ptr noundef @.str.4)
  %650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call ptr @s2n_strerror_debug(i32 noundef %651, ptr noundef @.str.4)
  %653 = call ptr @__errno_location() #9
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call ptr @strerror(i32 noundef %654) #8
  %656 = call ptr @__errno_location() #9
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %645, ptr noundef @.str.5, i32 noundef %646, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 45, ptr noundef %649, ptr noundef %652, ptr noundef %655, i32 noundef %657) #8
  br label %659

659:                                              ; preds = %642, %625
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %660

660:                                              ; preds = %659
  br label %661

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

662:                                              ; No predecessors!
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663, %605
  br label %665

665:                                              ; preds = %664
  br label %666

666:                                              ; preds = %665
  %667 = load ptr, ptr %12, align 8, !tbaa !9
  %668 = getelementptr inbounds %struct.s2n_connection, ptr %667, i32 0, i32 27
  %669 = load ptr, ptr %668, align 8, !tbaa !18
  %670 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %669, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %670, align 8, !tbaa !44
  br label %671

671:                                              ; preds = %666
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr @test_count, align 4, !tbaa !5
  %674 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_ec_point_format_extension, i32 0, i32 5), align 8, !tbaa !15
  %675 = load ptr, ptr %12, align 8, !tbaa !9
  %676 = call zeroext i1 %674(ptr noundef %675)
  br i1 %676, label %730, label %677

677:                                              ; preds = %671
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %680 = call ptr @__errno_location() #9
  %681 = load i32, ptr %680, align 4, !tbaa !5
  store i32 %681, ptr %18, align 4, !tbaa !5
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = call i32 @s2n_print_stacktrace(ptr noundef %682)
  %684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %685 = trunc i8 %684 to i1
  br i1 %685, label %686, label %708

686:                                              ; preds = %679
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = call i32 @fileno(ptr noundef %687) #8
  %689 = call i32 @isatty(i32 noundef %688) #8
  %690 = icmp ne i32 %689, 0
  br i1 %690, label %691, label %708

691:                                              ; preds = %686
  %692 = load i32, ptr %18, align 4, !tbaa !5
  %693 = call ptr @__errno_location() #9
  store i32 %692, ptr %693, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef @.str.4)
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror_debug(i32 noundef %700, ptr noundef @.str.4)
  %702 = call ptr @__errno_location() #9
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #8
  %705 = call ptr @__errno_location() #9
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef @.str.2, i32 noundef %695, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 49, ptr noundef %698, ptr noundef %701, ptr noundef %704, i32 noundef %706) #8
  br label %725

708:                                              ; preds = %686, %679
  %709 = load i32, ptr %18, align 4, !tbaa !5
  %710 = call ptr @__errno_location() #9
  store i32 %709, ptr %710, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = call ptr @s2n_strerror(i32 noundef %714, ptr noundef @.str.4)
  %716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %717 = load i32, ptr %716, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror_debug(i32 noundef %717, ptr noundef @.str.4)
  %719 = call ptr @__errno_location() #9
  %720 = load i32, ptr %719, align 4, !tbaa !5
  %721 = call ptr @strerror(i32 noundef %720) #8
  %722 = call ptr @__errno_location() #9
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %711, ptr noundef @.str.5, i32 noundef %712, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 49, ptr noundef %715, ptr noundef %718, ptr noundef %721, i32 noundef %723) #8
  br label %725

725:                                              ; preds = %708, %691
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %726

726:                                              ; preds = %725
  br label %727

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

728:                                              ; No predecessors!
  br label %729

729:                                              ; preds = %728
  br label %730

730:                                              ; preds = %729, %671
  br label %731

731:                                              ; preds = %730
  br label %732

732:                                              ; preds = %731
  br label %733

733:                                              ; preds = %732
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = add nsw i32 %734, 1
  store i32 %735, ptr @test_count, align 4, !tbaa !5
  %736 = load ptr, ptr %12, align 8, !tbaa !9
  %737 = call i32 @s2n_connection_free(ptr noundef %736)
  %738 = icmp eq i32 %737, -1
  br i1 %738, label %739, label %792

739:                                              ; preds = %733
  br label %740

740:                                              ; preds = %739
  br label %741

741:                                              ; preds = %740
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %742 = call ptr @__errno_location() #9
  %743 = load i32, ptr %742, align 4, !tbaa !5
  store i32 %743, ptr %19, align 4, !tbaa !5
  %744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %745 = call i32 @s2n_print_stacktrace(ptr noundef %744)
  %746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %747 = trunc i8 %746 to i1
  br i1 %747, label %748, label %770

748:                                              ; preds = %741
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = call i32 @fileno(ptr noundef %749) #8
  %751 = call i32 @isatty(i32 noundef %750) #8
  %752 = icmp ne i32 %751, 0
  br i1 %752, label %753, label %770

753:                                              ; preds = %748
  %754 = load i32, ptr %19, align 4, !tbaa !5
  %755 = call ptr @__errno_location() #9
  store i32 %754, ptr %755, align 4, !tbaa !5
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = load i32, ptr @test_count, align 4, !tbaa !5
  %758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @s2n_strerror(i32 noundef %759, ptr noundef @.str.4)
  %761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror_debug(i32 noundef %762, ptr noundef @.str.4)
  %764 = call ptr @__errno_location() #9
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @strerror(i32 noundef %765) #8
  %767 = call ptr @__errno_location() #9
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %756, ptr noundef @.str.2, i32 noundef %757, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 51, ptr noundef %760, ptr noundef %763, ptr noundef %766, i32 noundef %768) #8
  br label %787

770:                                              ; preds = %748, %741
  %771 = load i32, ptr %19, align 4, !tbaa !5
  %772 = call ptr @__errno_location() #9
  store i32 %771, ptr %772, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = call ptr @s2n_strerror(i32 noundef %776, ptr noundef @.str.4)
  %778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %779 = load i32, ptr %778, align 4, !tbaa !5
  %780 = call ptr @s2n_strerror_debug(i32 noundef %779, ptr noundef @.str.4)
  %781 = call ptr @__errno_location() #9
  %782 = load i32, ptr %781, align 4, !tbaa !5
  %783 = call ptr @strerror(i32 noundef %782) #8
  %784 = call ptr @__errno_location() #9
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %773, ptr noundef @.str.5, i32 noundef %774, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 51, ptr noundef %777, ptr noundef %780, ptr noundef %783, i32 noundef %785) #8
  br label %787

787:                                              ; preds = %770, %753
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %788

788:                                              ; preds = %787
  br label %789

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

790:                                              ; No predecessors!
  br label %791

791:                                              ; preds = %790
  br label %792

792:                                              ; preds = %791, %733
  br label %793

793:                                              ; preds = %792
  br label %794

794:                                              ; preds = %793
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  store ptr null, ptr %20, align 8, !tbaa !9
  br label %795

795:                                              ; preds = %794
  %796 = load i32, ptr @test_count, align 4, !tbaa !5
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr @test_count, align 4, !tbaa !5
  %798 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %798, ptr %20, align 8, !tbaa !9
  %799 = icmp eq ptr %798, null
  br i1 %799, label %800, label %853

800:                                              ; preds = %795
  br label %801

801:                                              ; preds = %800
  br label %802

802:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %803 = call ptr @__errno_location() #9
  %804 = load i32, ptr %803, align 4, !tbaa !5
  store i32 %804, ptr %21, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @s2n_print_stacktrace(ptr noundef %805)
  %807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %808 = trunc i8 %807 to i1
  br i1 %808, label %809, label %831

809:                                              ; preds = %802
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @fileno(ptr noundef %810) #8
  %812 = call i32 @isatty(i32 noundef %811) #8
  %813 = icmp ne i32 %812, 0
  br i1 %813, label %814, label %831

814:                                              ; preds = %809
  %815 = load i32, ptr %21, align 4, !tbaa !5
  %816 = call ptr @__errno_location() #9
  store i32 %815, ptr %816, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror(i32 noundef %820, ptr noundef @.str.4)
  %822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror_debug(i32 noundef %823, ptr noundef @.str.4)
  %825 = call ptr @__errno_location() #9
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #8
  %828 = call ptr @__errno_location() #9
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %817, ptr noundef @.str.2, i32 noundef %818, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 57, ptr noundef %821, ptr noundef %824, ptr noundef %827, i32 noundef %829) #8
  br label %848

831:                                              ; preds = %809, %802
  %832 = load i32, ptr %21, align 4, !tbaa !5
  %833 = call ptr @__errno_location() #9
  store i32 %832, ptr %833, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror(i32 noundef %837, ptr noundef @.str.4)
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror_debug(i32 noundef %840, ptr noundef @.str.4)
  %842 = call ptr @__errno_location() #9
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @strerror(i32 noundef %843) #8
  %845 = call ptr @__errno_location() #9
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %834, ptr noundef @.str.5, i32 noundef %835, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 57, ptr noundef %838, ptr noundef %841, ptr noundef %844, i32 noundef %846) #8
  br label %848

848:                                              ; preds = %831, %814
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %849

849:                                              ; preds = %848
  br label %850

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

851:                                              ; No predecessors!
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852, %795
  br label %854

854:                                              ; preds = %853
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = load ptr, ptr %20, align 8, !tbaa !9
  %860 = load ptr, ptr %10, align 8, !tbaa !9
  %861 = call i32 @s2n_connection_set_config(ptr noundef %859, ptr noundef %860)
  %862 = icmp eq i32 %861, -1
  br i1 %862, label %863, label %916

863:                                              ; preds = %856
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %866 = call ptr @__errno_location() #9
  %867 = load i32, ptr %866, align 4, !tbaa !5
  store i32 %867, ptr %22, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @s2n_print_stacktrace(ptr noundef %868)
  %870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %871 = trunc i8 %870 to i1
  br i1 %871, label %872, label %894

872:                                              ; preds = %865
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = call i32 @fileno(ptr noundef %873) #8
  %875 = call i32 @isatty(i32 noundef %874) #8
  %876 = icmp ne i32 %875, 0
  br i1 %876, label %877, label %894

877:                                              ; preds = %872
  %878 = load i32, ptr %22, align 4, !tbaa !5
  %879 = call ptr @__errno_location() #9
  store i32 %878, ptr %879, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = load i32, ptr @test_count, align 4, !tbaa !5
  %882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror(i32 noundef %883, ptr noundef @.str.4)
  %885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror_debug(i32 noundef %886, ptr noundef @.str.4)
  %888 = call ptr @__errno_location() #9
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call ptr @strerror(i32 noundef %889) #8
  %891 = call ptr @__errno_location() #9
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %880, ptr noundef @.str.2, i32 noundef %881, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 58, ptr noundef %884, ptr noundef %887, ptr noundef %890, i32 noundef %892) #8
  br label %911

894:                                              ; preds = %872, %865
  %895 = load i32, ptr %22, align 4, !tbaa !5
  %896 = call ptr @__errno_location() #9
  store i32 %895, ptr %896, align 4, !tbaa !5
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror(i32 noundef %900, ptr noundef @.str.4)
  %902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror_debug(i32 noundef %903, ptr noundef @.str.4)
  %905 = call ptr @__errno_location() #9
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call ptr @strerror(i32 noundef %906) #8
  %908 = call ptr @__errno_location() #9
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %897, ptr noundef @.str.5, i32 noundef %898, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 58, ptr noundef %901, ptr noundef %904, ptr noundef %907, i32 noundef %909) #8
  br label %911

911:                                              ; preds = %894, %877
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %912

912:                                              ; preds = %911
  br label %913

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

914:                                              ; No predecessors!
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915, %856
  br label %917

917:                                              ; preds = %916
  br label %918

918:                                              ; preds = %917
  call void @llvm.lifetime.start.p0(i64 40, ptr %23) #8
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 40, i1 false)
  br label %919

919:                                              ; preds = %918
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr @test_count, align 4, !tbaa !5
  %922 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %23, i32 noundef 0)
  %923 = icmp eq i32 %922, -1
  br i1 %923, label %924, label %977

924:                                              ; preds = %919
  br label %925

925:                                              ; preds = %924
  br label %926

926:                                              ; preds = %925
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %927 = call ptr @__errno_location() #9
  %928 = load i32, ptr %927, align 4, !tbaa !5
  store i32 %928, ptr %24, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = call i32 @s2n_print_stacktrace(ptr noundef %929)
  %931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %932 = trunc i8 %931 to i1
  br i1 %932, label %933, label %955

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

938:                                              ; preds = %933
  %939 = load i32, ptr %24, align 4, !tbaa !5
  %940 = call ptr @__errno_location() #9
  store i32 %939, ptr %940, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror(i32 noundef %944, ptr noundef @.str.4)
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef @.str.4)
  %949 = call ptr @__errno_location() #9
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #8
  %952 = call ptr @__errno_location() #9
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef @.str.2, i32 noundef %942, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 61, ptr noundef %945, ptr noundef %948, ptr noundef %951, i32 noundef %953) #8
  br label %972

955:                                              ; preds = %933, %926
  %956 = load i32, ptr %24, align 4, !tbaa !5
  %957 = call ptr @__errno_location() #9
  store i32 %956, ptr %957, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = load i32, ptr @test_count, align 4, !tbaa !5
  %960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror(i32 noundef %961, ptr noundef @.str.4)
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror_debug(i32 noundef %964, ptr noundef @.str.4)
  %966 = call ptr @__errno_location() #9
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @strerror(i32 noundef %967) #8
  %969 = call ptr @__errno_location() #9
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %958, ptr noundef @.str.5, i32 noundef %959, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 61, ptr noundef %962, ptr noundef %965, ptr noundef %968, i32 noundef %970) #8
  br label %972

972:                                              ; preds = %955, %938
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %973

973:                                              ; preds = %972
  br label %974

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

975:                                              ; No predecessors!
  br label %976

976:                                              ; preds = %975
  br label %977

977:                                              ; preds = %976, %919
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_ec_point_format_extension, i32 0, i32 3), align 8, !tbaa !49
  %984 = load ptr, ptr %20, align 8, !tbaa !9
  %985 = call i32 %983(ptr noundef %984, ptr noundef %23)
  %986 = icmp eq i32 %985, -1
  br i1 %986, label %987, label %1040

987:                                              ; preds = %980
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %990 = call ptr @__errno_location() #9
  %991 = load i32, ptr %990, align 4, !tbaa !5
  store i32 %991, ptr %25, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = call i32 @s2n_print_stacktrace(ptr noundef %992)
  %994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %995 = trunc i8 %994 to i1
  br i1 %995, label %996, label %1018

996:                                              ; preds = %989
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = call i32 @fileno(ptr noundef %997) #8
  %999 = call i32 @isatty(i32 noundef %998) #8
  %1000 = icmp ne i32 %999, 0
  br i1 %1000, label %1001, label %1018

1001:                                             ; preds = %996
  %1002 = load i32, ptr %25, align 4, !tbaa !5
  %1003 = call ptr @__errno_location() #9
  store i32 %1002, ptr %1003, align 4, !tbaa !5
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror(i32 noundef %1007, ptr noundef @.str.4)
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror_debug(i32 noundef %1010, ptr noundef @.str.4)
  %1012 = call ptr @__errno_location() #9
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @strerror(i32 noundef %1013) #8
  %1015 = call ptr @__errno_location() #9
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1004, ptr noundef @.str.2, i32 noundef %1005, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1008, ptr noundef %1011, ptr noundef %1014, i32 noundef %1016) #8
  br label %1035

1018:                                             ; preds = %996, %989
  %1019 = load i32, ptr %25, align 4, !tbaa !5
  %1020 = call ptr @__errno_location() #9
  store i32 %1019, ptr %1020, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef @.str.4)
  %1026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror_debug(i32 noundef %1027, ptr noundef @.str.4)
  %1029 = call ptr @__errno_location() #9
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @strerror(i32 noundef %1030) #8
  %1032 = call ptr @__errno_location() #9
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef @.str.5, i32 noundef %1022, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1025, ptr noundef %1028, ptr noundef %1031, i32 noundef %1033) #8
  br label %1035

1035:                                             ; preds = %1018, %1001
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

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

1038:                                             ; No predecessors!
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

1040:                                             ; preds = %1039, %980
  br label %1041

1041:                                             ; preds = %1040
  br label %1042

1042:                                             ; preds = %1041
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #8
  store i8 0, ptr %26, align 1, !tbaa !50
  br label %1043

1043:                                             ; preds = %1042
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = add nsw i32 %1044, 1
  store i32 %1045, ptr @test_count, align 4, !tbaa !5
  %1046 = call i32 @s2n_stuffer_read_uint8(ptr noundef %23, ptr noundef %26)
  %1047 = icmp eq i32 %1046, -1
  br i1 %1047, label %1048, label %1101

1048:                                             ; preds = %1043
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %1051 = call ptr @__errno_location() #9
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  store i32 %1052, ptr %27, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = call i32 @s2n_print_stacktrace(ptr noundef %1053)
  %1055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1056 = trunc i8 %1055 to i1
  br i1 %1056, label %1057, label %1079

1057:                                             ; preds = %1050
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = call i32 @fileno(ptr noundef %1058) #8
  %1060 = call i32 @isatty(i32 noundef %1059) #8
  %1061 = icmp ne i32 %1060, 0
  br i1 %1061, label %1062, label %1079

1062:                                             ; preds = %1057
  %1063 = load i32, ptr %27, align 4, !tbaa !5
  %1064 = call ptr @__errno_location() #9
  store i32 %1063, ptr %1064, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = load i32, ptr @test_count, align 4, !tbaa !5
  %1067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror(i32 noundef %1068, ptr noundef @.str.4)
  %1070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call ptr @s2n_strerror_debug(i32 noundef %1071, ptr noundef @.str.4)
  %1073 = call ptr @__errno_location() #9
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call ptr @strerror(i32 noundef %1074) #8
  %1076 = call ptr @__errno_location() #9
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1065, ptr noundef @.str.2, i32 noundef %1066, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1069, ptr noundef %1072, ptr noundef %1075, i32 noundef %1077) #8
  br label %1096

1079:                                             ; preds = %1057, %1050
  %1080 = load i32, ptr %27, align 4, !tbaa !5
  %1081 = call ptr @__errno_location() #9
  store i32 %1080, ptr %1081, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = load i32, ptr @test_count, align 4, !tbaa !5
  %1084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror(i32 noundef %1085, ptr noundef @.str.4)
  %1087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror_debug(i32 noundef %1088, ptr noundef @.str.4)
  %1090 = call ptr @__errno_location() #9
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call ptr @strerror(i32 noundef %1091) #8
  %1093 = call ptr @__errno_location() #9
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1082, ptr noundef @.str.5, i32 noundef %1083, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1086, ptr noundef %1089, ptr noundef %1092, i32 noundef %1094) #8
  br label %1096

1096:                                             ; preds = %1079, %1062
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

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

1099:                                             ; No predecessors!
  br label %1100

1100:                                             ; preds = %1099
  br label %1101

1101:                                             ; preds = %1100, %1043
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102
  br label %1104

1104:                                             ; preds = %1103
  %1105 = load i32, ptr @test_count, align 4, !tbaa !5
  %1106 = add nsw i32 %1105, 1
  store i32 %1106, ptr @test_count, align 4, !tbaa !5
  %1107 = load i8, ptr %26, align 1, !tbaa !50
  %1108 = zext i8 %1107 to i32
  %1109 = getelementptr inbounds %struct.s2n_stuffer, ptr %23, i32 0, i32 2
  %1110 = load i32, ptr %1109, align 4, !tbaa !51
  %1111 = getelementptr inbounds %struct.s2n_stuffer, ptr %23, i32 0, i32 1
  %1112 = load i32, ptr %1111, align 8, !tbaa !52
  %1113 = sub i32 %1110, %1112
  %1114 = icmp eq i32 %1108, %1113
  br i1 %1114, label %1168, label %1115

1115:                                             ; preds = %1104
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

1117:                                             ; preds = %1116
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1118 = call ptr @__errno_location() #9
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  store i32 %1119, ptr %28, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = call i32 @s2n_print_stacktrace(ptr noundef %1120)
  %1122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1123 = trunc i8 %1122 to i1
  br i1 %1123, label %1124, label %1146

1124:                                             ; preds = %1117
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @fileno(ptr noundef %1125) #8
  %1127 = call i32 @isatty(i32 noundef %1126) #8
  %1128 = icmp ne i32 %1127, 0
  br i1 %1128, label %1129, label %1146

1129:                                             ; preds = %1124
  %1130 = load i32, ptr %28, align 4, !tbaa !5
  %1131 = call ptr @__errno_location() #9
  store i32 %1130, ptr %1131, align 4, !tbaa !5
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1135 = load i32, ptr %1134, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror(i32 noundef %1135, ptr noundef @.str.4)
  %1137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror_debug(i32 noundef %1138, ptr noundef @.str.4)
  %1140 = call ptr @__errno_location() #9
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #8
  %1143 = call ptr @__errno_location() #9
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1132, ptr noundef @.str.2, i32 noundef %1133, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1136, ptr noundef %1139, ptr noundef %1142, i32 noundef %1144) #8
  br label %1163

1146:                                             ; preds = %1124, %1117
  %1147 = load i32, ptr %28, align 4, !tbaa !5
  %1148 = call ptr @__errno_location() #9
  store i32 %1147, ptr %1148, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror(i32 noundef %1152, ptr noundef @.str.4)
  %1154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef @.str.4)
  %1157 = call ptr @__errno_location() #9
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #8
  %1160 = call ptr @__errno_location() #9
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef @.str.5, i32 noundef %1150, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1153, ptr noundef %1156, ptr noundef %1159, i32 noundef %1161) #8
  br label %1163

1163:                                             ; preds = %1146, %1129
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

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

1166:                                             ; No predecessors!
  br label %1167

1167:                                             ; preds = %1166
  br label %1168

1168:                                             ; preds = %1167, %1104
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  store i8 0, ptr %29, align 1, !tbaa !50
  br label %1171

1171:                                             ; preds = %1170
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = add nsw i32 %1172, 1
  store i32 %1173, ptr @test_count, align 4, !tbaa !5
  %1174 = call i32 @s2n_stuffer_read_uint8(ptr noundef %23, ptr noundef %29)
  %1175 = icmp eq i32 %1174, -1
  br i1 %1175, label %1176, label %1229

1176:                                             ; preds = %1171
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %1179 = call ptr @__errno_location() #9
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  store i32 %1180, ptr %30, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = call i32 @s2n_print_stacktrace(ptr noundef %1181)
  %1183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1184 = trunc i8 %1183 to i1
  br i1 %1184, label %1185, label %1207

1185:                                             ; preds = %1178
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = call i32 @fileno(ptr noundef %1186) #8
  %1188 = call i32 @isatty(i32 noundef %1187) #8
  %1189 = icmp ne i32 %1188, 0
  br i1 %1189, label %1190, label %1207

1190:                                             ; preds = %1185
  %1191 = load i32, ptr %30, align 4, !tbaa !5
  %1192 = call ptr @__errno_location() #9
  store i32 %1191, ptr %1192, align 4, !tbaa !5
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror(i32 noundef %1196, ptr noundef @.str.4)
  %1198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror_debug(i32 noundef %1199, ptr noundef @.str.4)
  %1201 = call ptr @__errno_location() #9
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @strerror(i32 noundef %1202) #8
  %1204 = call ptr @__errno_location() #9
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1193, ptr noundef @.str.2, i32 noundef %1194, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1197, ptr noundef %1200, ptr noundef %1203, i32 noundef %1205) #8
  br label %1224

1207:                                             ; preds = %1185, %1178
  %1208 = load i32, ptr %30, align 4, !tbaa !5
  %1209 = call ptr @__errno_location() #9
  store i32 %1208, ptr %1209, align 4, !tbaa !5
  %1210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1211 = load i32, ptr @test_count, align 4, !tbaa !5
  %1212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = call ptr @s2n_strerror(i32 noundef %1213, ptr noundef @.str.4)
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef @.str.4)
  %1218 = call ptr @__errno_location() #9
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @strerror(i32 noundef %1219) #8
  %1221 = call ptr @__errno_location() #9
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1210, ptr noundef @.str.5, i32 noundef %1211, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1214, ptr noundef %1217, ptr noundef %1220, i32 noundef %1222) #8
  br label %1224

1224:                                             ; preds = %1207, %1190
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1225

1225:                                             ; preds = %1224
  br label %1226

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

1227:                                             ; No predecessors!
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228, %1171
  br label %1230

1230:                                             ; preds = %1229
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

1232:                                             ; preds = %1231
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = add nsw i32 %1233, 1
  store i32 %1234, ptr @test_count, align 4, !tbaa !5
  %1235 = load i8, ptr %29, align 1, !tbaa !50
  %1236 = zext i8 %1235 to i32
  %1237 = icmp eq i32 %1236, 0
  br i1 %1237, label %1291, label %1238

1238:                                             ; preds = %1232
  br label %1239

1239:                                             ; preds = %1238
  br label %1240

1240:                                             ; preds = %1239
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %1241 = call ptr @__errno_location() #9
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  store i32 %1242, ptr %31, align 4, !tbaa !5
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = call i32 @s2n_print_stacktrace(ptr noundef %1243)
  %1245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1246 = trunc i8 %1245 to i1
  br i1 %1246, label %1247, label %1269

1247:                                             ; preds = %1240
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = call i32 @fileno(ptr noundef %1248) #8
  %1250 = call i32 @isatty(i32 noundef %1249) #8
  %1251 = icmp ne i32 %1250, 0
  br i1 %1251, label %1252, label %1269

1252:                                             ; preds = %1247
  %1253 = load i32, ptr %31, align 4, !tbaa !5
  %1254 = call ptr @__errno_location() #9
  store i32 %1253, ptr %1254, align 4, !tbaa !5
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = load i32, ptr @test_count, align 4, !tbaa !5
  %1257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @s2n_strerror(i32 noundef %1258, ptr noundef @.str.4)
  %1260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror_debug(i32 noundef %1261, ptr noundef @.str.4)
  %1263 = call ptr @__errno_location() #9
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call ptr @strerror(i32 noundef %1264) #8
  %1266 = call ptr @__errno_location() #9
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1255, ptr noundef @.str.2, i32 noundef %1256, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1259, ptr noundef %1262, ptr noundef %1265, i32 noundef %1267) #8
  br label %1286

1269:                                             ; preds = %1247, %1240
  %1270 = load i32, ptr %31, align 4, !tbaa !5
  %1271 = call ptr @__errno_location() #9
  store i32 %1270, ptr %1271, align 4, !tbaa !5
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1275 = load i32, ptr %1274, align 4, !tbaa !5
  %1276 = call ptr @s2n_strerror(i32 noundef %1275, ptr noundef @.str.4)
  %1277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror_debug(i32 noundef %1278, ptr noundef @.str.4)
  %1280 = call ptr @__errno_location() #9
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = call ptr @strerror(i32 noundef %1281) #8
  %1283 = call ptr @__errno_location() #9
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1272, ptr noundef @.str.5, i32 noundef %1273, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1276, ptr noundef %1279, ptr noundef %1282, i32 noundef %1284) #8
  br label %1286

1286:                                             ; preds = %1269, %1252
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1287

1287:                                             ; preds = %1286
  br label %1288

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

1289:                                             ; No predecessors!
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

1291:                                             ; preds = %1290, %1232
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293
  %1295 = load i32, ptr @test_count, align 4, !tbaa !5
  %1296 = add nsw i32 %1295, 1
  store i32 %1296, ptr @test_count, align 4, !tbaa !5
  %1297 = getelementptr inbounds %struct.s2n_stuffer, ptr %23, i32 0, i32 2
  %1298 = load i32, ptr %1297, align 4, !tbaa !51
  %1299 = getelementptr inbounds %struct.s2n_stuffer, ptr %23, i32 0, i32 1
  %1300 = load i32, ptr %1299, align 8, !tbaa !52
  %1301 = sub i32 %1298, %1300
  %1302 = icmp eq i32 %1301, 0
  br i1 %1302, label %1356, label %1303

1303:                                             ; preds = %1294
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %1306 = call ptr @__errno_location() #9
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  store i32 %1307, ptr %32, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @s2n_print_stacktrace(ptr noundef %1308)
  %1310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1311 = trunc i8 %1310 to i1
  br i1 %1311, label %1312, label %1334

1312:                                             ; preds = %1305
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @fileno(ptr noundef %1313) #8
  %1315 = call i32 @isatty(i32 noundef %1314) #8
  %1316 = icmp ne i32 %1315, 0
  br i1 %1316, label %1317, label %1334

1317:                                             ; preds = %1312
  %1318 = load i32, ptr %32, align 4, !tbaa !5
  %1319 = call ptr @__errno_location() #9
  store i32 %1318, ptr %1319, align 4, !tbaa !5
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef @.str.4)
  %1325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror_debug(i32 noundef %1326, ptr noundef @.str.4)
  %1328 = call ptr @__errno_location() #9
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #8
  %1331 = call ptr @__errno_location() #9
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef @.str.2, i32 noundef %1321, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1324, ptr noundef %1327, ptr noundef %1330, i32 noundef %1332) #8
  br label %1351

1334:                                             ; preds = %1312, %1305
  %1335 = load i32, ptr %32, align 4, !tbaa !5
  %1336 = call ptr @__errno_location() #9
  store i32 %1335, ptr %1336, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef @.str.4)
  %1342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror_debug(i32 noundef %1343, ptr noundef @.str.4)
  %1345 = call ptr @__errno_location() #9
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #8
  %1348 = call ptr @__errno_location() #9
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef @.str.5, i32 noundef %1338, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1341, ptr noundef %1344, ptr noundef %1347, i32 noundef %1349) #8
  br label %1351

1351:                                             ; preds = %1334, %1317
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

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

1354:                                             ; No predecessors!
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355, %1294
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

1359:                                             ; preds = %1358
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = add nsw i32 %1360, 1
  store i32 %1361, ptr @test_count, align 4, !tbaa !5
  %1362 = call i32 @s2n_stuffer_free(ptr noundef %23)
  %1363 = icmp eq i32 %1362, -1
  br i1 %1363, label %1364, label %1417

1364:                                             ; preds = %1359
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

1366:                                             ; preds = %1365
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1367 = call ptr @__errno_location() #9
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  store i32 %1368, ptr %33, align 4, !tbaa !5
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = call i32 @s2n_print_stacktrace(ptr noundef %1369)
  %1371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1372 = trunc i8 %1371 to i1
  br i1 %1372, label %1373, label %1395

1373:                                             ; preds = %1366
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = call i32 @fileno(ptr noundef %1374) #8
  %1376 = call i32 @isatty(i32 noundef %1375) #8
  %1377 = icmp ne i32 %1376, 0
  br i1 %1377, label %1378, label %1395

1378:                                             ; preds = %1373
  %1379 = load i32, ptr %33, align 4, !tbaa !5
  %1380 = call ptr @__errno_location() #9
  store i32 %1379, ptr %1380, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef @.str.4)
  %1386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call ptr @s2n_strerror_debug(i32 noundef %1387, ptr noundef @.str.4)
  %1389 = call ptr @__errno_location() #9
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #8
  %1392 = call ptr @__errno_location() #9
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1381, ptr noundef @.str.2, i32 noundef %1382, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1385, ptr noundef %1388, ptr noundef %1391, i32 noundef %1393) #8
  br label %1412

1395:                                             ; preds = %1373, %1366
  %1396 = load i32, ptr %33, align 4, !tbaa !5
  %1397 = call ptr @__errno_location() #9
  store i32 %1396, ptr %1397, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror(i32 noundef %1401, ptr noundef @.str.4)
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror_debug(i32 noundef %1404, ptr noundef @.str.4)
  %1406 = call ptr @__errno_location() #9
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #8
  %1409 = call ptr @__errno_location() #9
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1398, ptr noundef @.str.5, i32 noundef %1399, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1402, ptr noundef %1405, ptr noundef %1408, i32 noundef %1410) #8
  br label %1412

1412:                                             ; preds = %1395, %1378
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

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

1415:                                             ; No predecessors!
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

1417:                                             ; preds = %1416, %1359
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419
  %1421 = load i32, ptr @test_count, align 4, !tbaa !5
  %1422 = add nsw i32 %1421, 1
  store i32 %1422, ptr @test_count, align 4, !tbaa !5
  %1423 = load ptr, ptr %20, align 8, !tbaa !9
  %1424 = call i32 @s2n_connection_free(ptr noundef %1423)
  %1425 = icmp eq i32 %1424, -1
  br i1 %1425, label %1426, label %1479

1426:                                             ; preds = %1420
  br label %1427

1427:                                             ; preds = %1426
  br label %1428

1428:                                             ; preds = %1427
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %1429 = call ptr @__errno_location() #9
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  store i32 %1430, ptr %34, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @s2n_print_stacktrace(ptr noundef %1431)
  %1433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1434 = trunc i8 %1433 to i1
  br i1 %1434, label %1435, label %1457

1435:                                             ; preds = %1428
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = call i32 @fileno(ptr noundef %1436) #8
  %1438 = call i32 @isatty(i32 noundef %1437) #8
  %1439 = icmp ne i32 %1438, 0
  br i1 %1439, label %1440, label %1457

1440:                                             ; preds = %1435
  %1441 = load i32, ptr %34, align 4, !tbaa !5
  %1442 = call ptr @__errno_location() #9
  store i32 %1441, ptr %1442, align 4, !tbaa !5
  %1443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1444 = load i32, ptr @test_count, align 4, !tbaa !5
  %1445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = call ptr @s2n_strerror(i32 noundef %1446, ptr noundef @.str.4)
  %1448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1449 = load i32, ptr %1448, align 4, !tbaa !5
  %1450 = call ptr @s2n_strerror_debug(i32 noundef %1449, ptr noundef @.str.4)
  %1451 = call ptr @__errno_location() #9
  %1452 = load i32, ptr %1451, align 4, !tbaa !5
  %1453 = call ptr @strerror(i32 noundef %1452) #8
  %1454 = call ptr @__errno_location() #9
  %1455 = load i32, ptr %1454, align 4, !tbaa !5
  %1456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1443, ptr noundef @.str.2, i32 noundef %1444, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1447, ptr noundef %1450, ptr noundef %1453, i32 noundef %1455) #8
  br label %1474

1457:                                             ; preds = %1435, %1428
  %1458 = load i32, ptr %34, align 4, !tbaa !5
  %1459 = call ptr @__errno_location() #9
  store i32 %1458, ptr %1459, align 4, !tbaa !5
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1463 = load i32, ptr %1462, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror(i32 noundef %1463, ptr noundef @.str.4)
  %1465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1466 = load i32, ptr %1465, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef @.str.4)
  %1468 = call ptr @__errno_location() #9
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = call ptr @strerror(i32 noundef %1469) #8
  %1471 = call ptr @__errno_location() #9
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1460, ptr noundef @.str.5, i32 noundef %1461, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1464, ptr noundef %1467, ptr noundef %1470, i32 noundef %1472) #8
  br label %1474

1474:                                             ; preds = %1457, %1440
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

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

1477:                                             ; No predecessors!
  br label %1478

1478:                                             ; preds = %1477
  br label %1479

1479:                                             ; preds = %1478, %1420
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

1481:                                             ; preds = %1480
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store ptr null, ptr %35, align 8, !tbaa !9
  br label %1482

1482:                                             ; preds = %1481
  %1483 = load i32, ptr @test_count, align 4, !tbaa !5
  %1484 = add nsw i32 %1483, 1
  store i32 %1484, ptr @test_count, align 4, !tbaa !5
  %1485 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1485, ptr %35, align 8, !tbaa !9
  %1486 = icmp eq ptr %1485, null
  br i1 %1486, label %1487, label %1540

1487:                                             ; preds = %1482
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

1489:                                             ; preds = %1488
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1490 = call ptr @__errno_location() #9
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  store i32 %1491, ptr %36, align 4, !tbaa !5
  %1492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1493 = call i32 @s2n_print_stacktrace(ptr noundef %1492)
  %1494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1495 = trunc i8 %1494 to i1
  br i1 %1495, label %1496, label %1518

1496:                                             ; preds = %1489
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = call i32 @fileno(ptr noundef %1497) #8
  %1499 = call i32 @isatty(i32 noundef %1498) #8
  %1500 = icmp ne i32 %1499, 0
  br i1 %1500, label %1501, label %1518

1501:                                             ; preds = %1496
  %1502 = load i32, ptr %36, align 4, !tbaa !5
  %1503 = call ptr @__errno_location() #9
  store i32 %1502, ptr %1503, align 4, !tbaa !5
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror(i32 noundef %1507, ptr noundef @.str.4)
  %1509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror_debug(i32 noundef %1510, ptr noundef @.str.4)
  %1512 = call ptr @__errno_location() #9
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @strerror(i32 noundef %1513) #8
  %1515 = call ptr @__errno_location() #9
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1504, ptr noundef @.str.2, i32 noundef %1505, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1508, ptr noundef %1511, ptr noundef %1514, i32 noundef %1516) #8
  br label %1535

1518:                                             ; preds = %1496, %1489
  %1519 = load i32, ptr %36, align 4, !tbaa !5
  %1520 = call ptr @__errno_location() #9
  store i32 %1519, ptr %1520, align 4, !tbaa !5
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = load i32, ptr @test_count, align 4, !tbaa !5
  %1523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror(i32 noundef %1524, ptr noundef @.str.4)
  %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_debug(i32 noundef %1527, ptr noundef @.str.4)
  %1529 = call ptr @__errno_location() #9
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call ptr @strerror(i32 noundef %1530) #8
  %1532 = call ptr @__errno_location() #9
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1521, ptr noundef @.str.5, i32 noundef %1522, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1525, ptr noundef %1528, ptr noundef %1531, i32 noundef %1533) #8
  br label %1535

1535:                                             ; preds = %1518, %1501
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

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

1538:                                             ; No predecessors!
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539, %1482
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

1542:                                             ; preds = %1541
  br label %1543

1543:                                             ; preds = %1542
  %1544 = load i32, ptr @test_count, align 4, !tbaa !5
  %1545 = add nsw i32 %1544, 1
  store i32 %1545, ptr @test_count, align 4, !tbaa !5
  %1546 = load ptr, ptr %35, align 8, !tbaa !9
  %1547 = load ptr, ptr %10, align 8, !tbaa !9
  %1548 = call i32 @s2n_connection_set_config(ptr noundef %1546, ptr noundef %1547)
  %1549 = icmp eq i32 %1548, -1
  br i1 %1549, label %1550, label %1603

1550:                                             ; preds = %1543
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1553 = call ptr @__errno_location() #9
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  store i32 %1554, ptr %37, align 4, !tbaa !5
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = call i32 @s2n_print_stacktrace(ptr noundef %1555)
  %1557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1558 = trunc i8 %1557 to i1
  br i1 %1558, label %1559, label %1581

1559:                                             ; preds = %1552
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @fileno(ptr noundef %1560) #8
  %1562 = call i32 @isatty(i32 noundef %1561) #8
  %1563 = icmp ne i32 %1562, 0
  br i1 %1563, label %1564, label %1581

1564:                                             ; preds = %1559
  %1565 = load i32, ptr %37, align 4, !tbaa !5
  %1566 = call ptr @__errno_location() #9
  store i32 %1565, ptr %1566, align 4, !tbaa !5
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = load i32, ptr @test_count, align 4, !tbaa !5
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror(i32 noundef %1570, ptr noundef @.str.4)
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror_debug(i32 noundef %1573, ptr noundef @.str.4)
  %1575 = call ptr @__errno_location() #9
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #8
  %1578 = call ptr @__errno_location() #9
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1567, ptr noundef @.str.2, i32 noundef %1568, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1571, ptr noundef %1574, ptr noundef %1577, i32 noundef %1579) #8
  br label %1598

1581:                                             ; preds = %1559, %1552
  %1582 = load i32, ptr %37, align 4, !tbaa !5
  %1583 = call ptr @__errno_location() #9
  store i32 %1582, ptr %1583, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = load i32, ptr @test_count, align 4, !tbaa !5
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror(i32 noundef %1587, ptr noundef @.str.4)
  %1589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @s2n_strerror_debug(i32 noundef %1590, ptr noundef @.str.4)
  %1592 = call ptr @__errno_location() #9
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #8
  %1595 = call ptr @__errno_location() #9
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1584, ptr noundef @.str.5, i32 noundef %1585, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1588, ptr noundef %1591, ptr noundef %1594, i32 noundef %1596) #8
  br label %1598

1598:                                             ; preds = %1581, %1564
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

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

1601:                                             ; No predecessors!
  br label %1602

1602:                                             ; preds = %1601
  br label %1603

1603:                                             ; preds = %1602, %1543
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

1605:                                             ; preds = %1604
  call void @llvm.lifetime.start.p0(i64 40, ptr %38) #8
  call void @llvm.memset.p0.i64(ptr align 8 %38, i8 0, i64 40, i1 false)
  br label %1606

1606:                                             ; preds = %1605
  %1607 = load i32, ptr @test_count, align 4, !tbaa !5
  %1608 = add nsw i32 %1607, 1
  store i32 %1608, ptr @test_count, align 4, !tbaa !5
  %1609 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %38, i32 noundef 0)
  %1610 = icmp eq i32 %1609, -1
  br i1 %1610, label %1611, label %1664

1611:                                             ; preds = %1606
  br label %1612

1612:                                             ; preds = %1611
  br label %1613

1613:                                             ; preds = %1612
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1614 = call ptr @__errno_location() #9
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  store i32 %1615, ptr %39, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = call i32 @s2n_print_stacktrace(ptr noundef %1616)
  %1618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1619 = trunc i8 %1618 to i1
  br i1 %1619, label %1620, label %1642

1620:                                             ; preds = %1613
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @fileno(ptr noundef %1621) #8
  %1623 = call i32 @isatty(i32 noundef %1622) #8
  %1624 = icmp ne i32 %1623, 0
  br i1 %1624, label %1625, label %1642

1625:                                             ; preds = %1620
  %1626 = load i32, ptr %39, align 4, !tbaa !5
  %1627 = call ptr @__errno_location() #9
  store i32 %1626, ptr %1627, align 4, !tbaa !5
  %1628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1629 = load i32, ptr @test_count, align 4, !tbaa !5
  %1630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror(i32 noundef %1631, ptr noundef @.str.4)
  %1633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror_debug(i32 noundef %1634, ptr noundef @.str.4)
  %1636 = call ptr @__errno_location() #9
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call ptr @strerror(i32 noundef %1637) #8
  %1639 = call ptr @__errno_location() #9
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1628, ptr noundef @.str.2, i32 noundef %1629, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1632, ptr noundef %1635, ptr noundef %1638, i32 noundef %1640) #8
  br label %1659

1642:                                             ; preds = %1620, %1613
  %1643 = load i32, ptr %39, align 4, !tbaa !5
  %1644 = call ptr @__errno_location() #9
  store i32 %1643, ptr %1644, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef @.str.4)
  %1650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef @.str.4)
  %1653 = call ptr @__errno_location() #9
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #8
  %1656 = call ptr @__errno_location() #9
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef @.str.5, i32 noundef %1646, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1649, ptr noundef %1652, ptr noundef %1655, i32 noundef %1657) #8
  br label %1659

1659:                                             ; preds = %1642, %1625
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1660

1660:                                             ; preds = %1659
  br label %1661

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

1662:                                             ; No predecessors!
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

1664:                                             ; preds = %1663, %1606
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = add nsw i32 %1668, 1
  store i32 %1669, ptr @test_count, align 4, !tbaa !5
  %1670 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_ec_point_format_extension, i32 0, i32 3), align 8, !tbaa !49
  %1671 = load ptr, ptr %35, align 8, !tbaa !9
  %1672 = call i32 %1670(ptr noundef %1671, ptr noundef %38)
  %1673 = icmp eq i32 %1672, -1
  br i1 %1673, label %1674, label %1727

1674:                                             ; preds = %1667
  br label %1675

1675:                                             ; preds = %1674
  br label %1676

1676:                                             ; preds = %1675
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1677 = call ptr @__errno_location() #9
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  store i32 %1678, ptr %40, align 4, !tbaa !5
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = call i32 @s2n_print_stacktrace(ptr noundef %1679)
  %1681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1682 = trunc i8 %1681 to i1
  br i1 %1682, label %1683, label %1705

1683:                                             ; preds = %1676
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = call i32 @fileno(ptr noundef %1684) #8
  %1686 = call i32 @isatty(i32 noundef %1685) #8
  %1687 = icmp ne i32 %1686, 0
  br i1 %1687, label %1688, label %1705

1688:                                             ; preds = %1683
  %1689 = load i32, ptr %40, align 4, !tbaa !5
  %1690 = call ptr @__errno_location() #9
  store i32 %1689, ptr %1690, align 4, !tbaa !5
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  %1695 = call ptr @s2n_strerror(i32 noundef %1694, ptr noundef @.str.4)
  %1696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1697 = load i32, ptr %1696, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror_debug(i32 noundef %1697, ptr noundef @.str.4)
  %1699 = call ptr @__errno_location() #9
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = call ptr @strerror(i32 noundef %1700) #8
  %1702 = call ptr @__errno_location() #9
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1691, ptr noundef @.str.2, i32 noundef %1692, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1695, ptr noundef %1698, ptr noundef %1701, i32 noundef %1703) #8
  br label %1722

1705:                                             ; preds = %1683, %1676
  %1706 = load i32, ptr %40, align 4, !tbaa !5
  %1707 = call ptr @__errno_location() #9
  store i32 %1706, ptr %1707, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = load i32, ptr @test_count, align 4, !tbaa !5
  %1710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror(i32 noundef %1711, ptr noundef @.str.4)
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror_debug(i32 noundef %1714, ptr noundef @.str.4)
  %1716 = call ptr @__errno_location() #9
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call ptr @strerror(i32 noundef %1717) #8
  %1719 = call ptr @__errno_location() #9
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1708, ptr noundef @.str.5, i32 noundef %1709, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1712, ptr noundef %1715, ptr noundef %1718, i32 noundef %1720) #8
  br label %1722

1722:                                             ; preds = %1705, %1688
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1723

1723:                                             ; preds = %1722
  br label %1724

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

1725:                                             ; No predecessors!
  br label %1726

1726:                                             ; preds = %1725
  br label %1727

1727:                                             ; preds = %1726, %1667
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729
  %1731 = load i32, ptr @test_count, align 4, !tbaa !5
  %1732 = add nsw i32 %1731, 1
  store i32 %1732, ptr @test_count, align 4, !tbaa !5
  %1733 = load ptr, ptr %35, align 8, !tbaa !9
  %1734 = load i32, ptr %1733, align 8
  %1735 = lshr i32 %1734, 4
  %1736 = and i32 %1735, 1
  %1737 = icmp ne i32 %1736, 0
  br i1 %1737, label %1738, label %1791

1738:                                             ; preds = %1730
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

1740:                                             ; preds = %1739
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %1741 = call ptr @__errno_location() #9
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  store i32 %1742, ptr %41, align 4, !tbaa !5
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = call i32 @s2n_print_stacktrace(ptr noundef %1743)
  %1745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1746 = trunc i8 %1745 to i1
  br i1 %1746, label %1747, label %1769

1747:                                             ; preds = %1740
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = call i32 @fileno(ptr noundef %1748) #8
  %1750 = call i32 @isatty(i32 noundef %1749) #8
  %1751 = icmp ne i32 %1750, 0
  br i1 %1751, label %1752, label %1769

1752:                                             ; preds = %1747
  %1753 = load i32, ptr %41, align 4, !tbaa !5
  %1754 = call ptr @__errno_location() #9
  store i32 %1753, ptr %1754, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @s2n_strerror(i32 noundef %1758, ptr noundef @.str.4)
  %1760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call ptr @s2n_strerror_debug(i32 noundef %1761, ptr noundef @.str.4)
  %1763 = call ptr @__errno_location() #9
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call ptr @strerror(i32 noundef %1764) #8
  %1766 = call ptr @__errno_location() #9
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1755, ptr noundef @.str.2, i32 noundef %1756, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1759, ptr noundef %1762, ptr noundef %1765, i32 noundef %1767) #8
  br label %1786

1769:                                             ; preds = %1747, %1740
  %1770 = load i32, ptr %41, align 4, !tbaa !5
  %1771 = call ptr @__errno_location() #9
  store i32 %1770, ptr %1771, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror(i32 noundef %1775, ptr noundef @.str.4)
  %1777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @s2n_strerror_debug(i32 noundef %1778, ptr noundef @.str.4)
  %1780 = call ptr @__errno_location() #9
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call ptr @strerror(i32 noundef %1781) #8
  %1783 = call ptr @__errno_location() #9
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1772, ptr noundef @.str.5, i32 noundef %1773, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1776, ptr noundef %1779, ptr noundef %1782, i32 noundef %1784) #8
  br label %1786

1786:                                             ; preds = %1769, %1752
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

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

1789:                                             ; No predecessors!
  br label %1790

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790, %1730
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

1793:                                             ; preds = %1792
  br label %1794

1794:                                             ; preds = %1793
  %1795 = load i32, ptr @test_count, align 4, !tbaa !5
  %1796 = add nsw i32 %1795, 1
  store i32 %1796, ptr @test_count, align 4, !tbaa !5
  %1797 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_ec_point_format_extension, i32 0, i32 4), align 8, !tbaa !53
  %1798 = load ptr, ptr %35, align 8, !tbaa !9
  %1799 = call i32 %1797(ptr noundef %1798, ptr noundef %38)
  %1800 = icmp eq i32 %1799, -1
  br i1 %1800, label %1801, label %1854

1801:                                             ; preds = %1794
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %1804 = call ptr @__errno_location() #9
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  store i32 %1805, ptr %42, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @s2n_print_stacktrace(ptr noundef %1806)
  %1808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1809 = trunc i8 %1808 to i1
  br i1 %1809, label %1810, label %1832

1810:                                             ; preds = %1803
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @fileno(ptr noundef %1811) #8
  %1813 = call i32 @isatty(i32 noundef %1812) #8
  %1814 = icmp ne i32 %1813, 0
  br i1 %1814, label %1815, label %1832

1815:                                             ; preds = %1810
  %1816 = load i32, ptr %42, align 4, !tbaa !5
  %1817 = call ptr @__errno_location() #9
  store i32 %1816, ptr %1817, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = load i32, ptr @test_count, align 4, !tbaa !5
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror(i32 noundef %1821, ptr noundef @.str.4)
  %1823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror_debug(i32 noundef %1824, ptr noundef @.str.4)
  %1826 = call ptr @__errno_location() #9
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call ptr @strerror(i32 noundef %1827) #8
  %1829 = call ptr @__errno_location() #9
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1818, ptr noundef @.str.2, i32 noundef %1819, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1822, ptr noundef %1825, ptr noundef %1828, i32 noundef %1830) #8
  br label %1849

1832:                                             ; preds = %1810, %1803
  %1833 = load i32, ptr %42, align 4, !tbaa !5
  %1834 = call ptr @__errno_location() #9
  store i32 %1833, ptr %1834, align 4, !tbaa !5
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = load i32, ptr @test_count, align 4, !tbaa !5
  %1837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call ptr @s2n_strerror(i32 noundef %1838, ptr noundef @.str.4)
  %1840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror_debug(i32 noundef %1841, ptr noundef @.str.4)
  %1843 = call ptr @__errno_location() #9
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call ptr @strerror(i32 noundef %1844) #8
  %1846 = call ptr @__errno_location() #9
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1835, ptr noundef @.str.5, i32 noundef %1836, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1839, ptr noundef %1842, ptr noundef %1845, i32 noundef %1847) #8
  br label %1849

1849:                                             ; preds = %1832, %1815
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

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

1852:                                             ; No predecessors!
  br label %1853

1853:                                             ; preds = %1852
  br label %1854

1854:                                             ; preds = %1853, %1794
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

1857:                                             ; preds = %1856
  %1858 = load i32, ptr @test_count, align 4, !tbaa !5
  %1859 = add nsw i32 %1858, 1
  store i32 %1859, ptr @test_count, align 4, !tbaa !5
  %1860 = load ptr, ptr %35, align 8, !tbaa !9
  %1861 = load i32, ptr %1860, align 8
  %1862 = lshr i32 %1861, 4
  %1863 = and i32 %1862, 1
  %1864 = icmp ne i32 %1863, 0
  br i1 %1864, label %1918, label %1865

1865:                                             ; preds = %1857
  br label %1866

1866:                                             ; preds = %1865
  br label %1867

1867:                                             ; preds = %1866
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %1868 = call ptr @__errno_location() #9
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  store i32 %1869, ptr %43, align 4, !tbaa !5
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = call i32 @s2n_print_stacktrace(ptr noundef %1870)
  %1872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1873 = trunc i8 %1872 to i1
  br i1 %1873, label %1874, label %1896

1874:                                             ; preds = %1867
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = call i32 @fileno(ptr noundef %1875) #8
  %1877 = call i32 @isatty(i32 noundef %1876) #8
  %1878 = icmp ne i32 %1877, 0
  br i1 %1878, label %1879, label %1896

1879:                                             ; preds = %1874
  %1880 = load i32, ptr %43, align 4, !tbaa !5
  %1881 = call ptr @__errno_location() #9
  store i32 %1880, ptr %1881, align 4, !tbaa !5
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = load i32, ptr @test_count, align 4, !tbaa !5
  %1884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror(i32 noundef %1885, ptr noundef @.str.4)
  %1887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call ptr @s2n_strerror_debug(i32 noundef %1888, ptr noundef @.str.4)
  %1890 = call ptr @__errno_location() #9
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call ptr @strerror(i32 noundef %1891) #8
  %1893 = call ptr @__errno_location() #9
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1882, ptr noundef @.str.2, i32 noundef %1883, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1886, ptr noundef %1889, ptr noundef %1892, i32 noundef %1894) #8
  br label %1913

1896:                                             ; preds = %1874, %1867
  %1897 = load i32, ptr %43, align 4, !tbaa !5
  %1898 = call ptr @__errno_location() #9
  store i32 %1897, ptr %1898, align 4, !tbaa !5
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = load i32, ptr @test_count, align 4, !tbaa !5
  %1901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror(i32 noundef %1902, ptr noundef @.str.4)
  %1904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror_debug(i32 noundef %1905, ptr noundef @.str.4)
  %1907 = call ptr @__errno_location() #9
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @strerror(i32 noundef %1908) #8
  %1910 = call ptr @__errno_location() #9
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1899, ptr noundef @.str.5, i32 noundef %1900, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1903, ptr noundef %1906, ptr noundef %1909, i32 noundef %1911) #8
  br label %1913

1913:                                             ; preds = %1896, %1879
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %1914

1914:                                             ; preds = %1913
  br label %1915

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

1916:                                             ; No predecessors!
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917, %1857
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

1920:                                             ; preds = %1919
  br label %1921

1921:                                             ; preds = %1920
  %1922 = load i32, ptr @test_count, align 4, !tbaa !5
  %1923 = add nsw i32 %1922, 1
  store i32 %1923, ptr @test_count, align 4, !tbaa !5
  %1924 = call i32 @s2n_stuffer_free(ptr noundef %38)
  %1925 = icmp eq i32 %1924, -1
  br i1 %1925, label %1926, label %1979

1926:                                             ; preds = %1921
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

1928:                                             ; preds = %1927
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %1929 = call ptr @__errno_location() #9
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  store i32 %1930, ptr %44, align 4, !tbaa !5
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = call i32 @s2n_print_stacktrace(ptr noundef %1931)
  %1933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1934 = trunc i8 %1933 to i1
  br i1 %1934, label %1935, label %1957

1935:                                             ; preds = %1928
  %1936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1937 = call i32 @fileno(ptr noundef %1936) #8
  %1938 = call i32 @isatty(i32 noundef %1937) #8
  %1939 = icmp ne i32 %1938, 0
  br i1 %1939, label %1940, label %1957

1940:                                             ; preds = %1935
  %1941 = load i32, ptr %44, align 4, !tbaa !5
  %1942 = call ptr @__errno_location() #9
  store i32 %1941, ptr %1942, align 4, !tbaa !5
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  %1947 = call ptr @s2n_strerror(i32 noundef %1946, ptr noundef @.str.4)
  %1948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call ptr @s2n_strerror_debug(i32 noundef %1949, ptr noundef @.str.4)
  %1951 = call ptr @__errno_location() #9
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @strerror(i32 noundef %1952) #8
  %1954 = call ptr @__errno_location() #9
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1943, ptr noundef @.str.2, i32 noundef %1944, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1947, ptr noundef %1950, ptr noundef %1953, i32 noundef %1955) #8
  br label %1974

1957:                                             ; preds = %1935, %1928
  %1958 = load i32, ptr %44, align 4, !tbaa !5
  %1959 = call ptr @__errno_location() #9
  store i32 %1958, ptr %1959, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @s2n_strerror(i32 noundef %1963, ptr noundef @.str.4)
  %1965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror_debug(i32 noundef %1966, ptr noundef @.str.4)
  %1968 = call ptr @__errno_location() #9
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @strerror(i32 noundef %1969) #8
  %1971 = call ptr @__errno_location() #9
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1960, ptr noundef @.str.5, i32 noundef %1961, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1964, ptr noundef %1967, ptr noundef %1970, i32 noundef %1972) #8
  br label %1974

1974:                                             ; preds = %1957, %1940
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

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

1977:                                             ; No predecessors!
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978, %1921
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  br label %1982

1982:                                             ; preds = %1981
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = load ptr, ptr %35, align 8, !tbaa !9
  %1986 = call i32 @s2n_connection_free(ptr noundef %1985)
  %1987 = icmp eq i32 %1986, -1
  br i1 %1987, label %1988, label %2041

1988:                                             ; preds = %1982
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

1990:                                             ; preds = %1989
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %1991 = call ptr @__errno_location() #9
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  store i32 %1992, ptr %45, align 4, !tbaa !5
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = call i32 @s2n_print_stacktrace(ptr noundef %1993)
  %1995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1996 = trunc i8 %1995 to i1
  br i1 %1996, label %1997, label %2019

1997:                                             ; preds = %1990
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = call i32 @fileno(ptr noundef %1998) #8
  %2000 = call i32 @isatty(i32 noundef %1999) #8
  %2001 = icmp ne i32 %2000, 0
  br i1 %2001, label %2002, label %2019

2002:                                             ; preds = %1997
  %2003 = load i32, ptr %45, align 4, !tbaa !5
  %2004 = call ptr @__errno_location() #9
  store i32 %2003, ptr %2004, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = load i32, ptr @test_count, align 4, !tbaa !5
  %2007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror(i32 noundef %2008, ptr noundef @.str.4)
  %2010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call ptr @s2n_strerror_debug(i32 noundef %2011, ptr noundef @.str.4)
  %2013 = call ptr @__errno_location() #9
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call ptr @strerror(i32 noundef %2014) #8
  %2016 = call ptr @__errno_location() #9
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2005, ptr noundef @.str.2, i32 noundef %2006, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2009, ptr noundef %2012, ptr noundef %2015, i32 noundef %2017) #8
  br label %2036

2019:                                             ; preds = %1997, %1990
  %2020 = load i32, ptr %45, align 4, !tbaa !5
  %2021 = call ptr @__errno_location() #9
  store i32 %2020, ptr %2021, align 4, !tbaa !5
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = load i32, ptr @test_count, align 4, !tbaa !5
  %2024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @s2n_strerror(i32 noundef %2025, ptr noundef @.str.4)
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror_debug(i32 noundef %2028, ptr noundef @.str.4)
  %2030 = call ptr @__errno_location() #9
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #8
  %2033 = call ptr @__errno_location() #9
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2022, ptr noundef @.str.5, i32 noundef %2023, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2026, ptr noundef %2029, ptr noundef %2032, i32 noundef %2034) #8
  br label %2036

2036:                                             ; preds = %2019, %2002
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

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

2039:                                             ; No predecessors!
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040, %1982
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

2043:                                             ; preds = %2042
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %2044

2044:                                             ; preds = %2043
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = add nsw i32 %2045, 1
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = load ptr, ptr %10, align 8, !tbaa !9
  %2048 = call i32 @s2n_config_free(ptr noundef %2047)
  %2049 = icmp eq i32 %2048, -1
  br i1 %2049, label %2050, label %2103

2050:                                             ; preds = %2044
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

2052:                                             ; preds = %2051
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  %2053 = call ptr @__errno_location() #9
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  store i32 %2054, ptr %46, align 4, !tbaa !5
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @s2n_print_stacktrace(ptr noundef %2055)
  %2057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2058 = trunc i8 %2057 to i1
  br i1 %2058, label %2059, label %2081

2059:                                             ; preds = %2052
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @fileno(ptr noundef %2060) #8
  %2062 = call i32 @isatty(i32 noundef %2061) #8
  %2063 = icmp ne i32 %2062, 0
  br i1 %2063, label %2064, label %2081

2064:                                             ; preds = %2059
  %2065 = load i32, ptr %46, align 4, !tbaa !5
  %2066 = call ptr @__errno_location() #9
  store i32 %2065, ptr %2066, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror(i32 noundef %2070, ptr noundef @.str.4)
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror_debug(i32 noundef %2073, ptr noundef @.str.4)
  %2075 = call ptr @__errno_location() #9
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #8
  %2078 = call ptr @__errno_location() #9
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2067, ptr noundef @.str.2, i32 noundef %2068, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2071, ptr noundef %2074, ptr noundef %2077, i32 noundef %2079) #8
  br label %2098

2081:                                             ; preds = %2059, %2052
  %2082 = load i32, ptr %46, align 4, !tbaa !5
  %2083 = call ptr @__errno_location() #9
  store i32 %2082, ptr %2083, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror(i32 noundef %2087, ptr noundef @.str.4)
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror_debug(i32 noundef %2090, ptr noundef @.str.4)
  %2092 = call ptr @__errno_location() #9
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @strerror(i32 noundef %2093) #8
  %2095 = call ptr @__errno_location() #9
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2084, ptr noundef @.str.5, i32 noundef %2085, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2088, ptr noundef %2091, ptr noundef %2094, i32 noundef %2096) #8
  br label %2098

2098:                                             ; preds = %2081, %2064
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

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

2101:                                             ; No predecessors!
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102, %2044
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105
  br label %2107

2107:                                             ; preds = %2106
  %2108 = call i32 @s2n_cleanup()
  %2109 = icmp eq i32 %2108, -1
  br i1 %2109, label %2110, label %2163

2110:                                             ; preds = %2107
  br label %2111

2111:                                             ; preds = %2110
  br label %2112

2112:                                             ; preds = %2111
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %2113 = call ptr @__errno_location() #9
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  store i32 %2114, ptr %47, align 4, !tbaa !5
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = call i32 @s2n_print_stacktrace(ptr noundef %2115)
  %2117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2118 = trunc i8 %2117 to i1
  br i1 %2118, label %2119, label %2141

2119:                                             ; preds = %2112
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = call i32 @fileno(ptr noundef %2120) #8
  %2122 = call i32 @isatty(i32 noundef %2121) #8
  %2123 = icmp ne i32 %2122, 0
  br i1 %2123, label %2124, label %2141

2124:                                             ; preds = %2119
  %2125 = load i32, ptr %47, align 4, !tbaa !5
  %2126 = call ptr @__errno_location() #9
  store i32 %2125, ptr %2126, align 4, !tbaa !5
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = load i32, ptr @test_count, align 4, !tbaa !5
  %2129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2130 = load i32, ptr %2129, align 4, !tbaa !5
  %2131 = call ptr @s2n_strerror(i32 noundef %2130, ptr noundef @.str.4)
  %2132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror_debug(i32 noundef %2133, ptr noundef @.str.4)
  %2135 = call ptr @__errno_location() #9
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call ptr @strerror(i32 noundef %2136) #8
  %2138 = call ptr @__errno_location() #9
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2127, ptr noundef @.str.2, i32 noundef %2128, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2131, ptr noundef %2134, ptr noundef %2137, i32 noundef %2139) #8
  br label %2158

2141:                                             ; preds = %2119, %2112
  %2142 = load i32, ptr %47, align 4, !tbaa !5
  %2143 = call ptr @__errno_location() #9
  store i32 %2142, ptr %2143, align 4, !tbaa !5
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = load i32, ptr @test_count, align 4, !tbaa !5
  %2146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror(i32 noundef %2147, ptr noundef @.str.4)
  %2149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror_debug(i32 noundef %2150, ptr noundef @.str.4)
  %2152 = call ptr @__errno_location() #9
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @strerror(i32 noundef %2153) #8
  %2155 = call ptr @__errno_location() #9
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2144, ptr noundef @.str.5, i32 noundef %2145, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2148, ptr noundef %2151, ptr noundef %2154, i32 noundef %2156) #8
  br label %2158

2158:                                             ; preds = %2141, %2124
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %2159

2159:                                             ; preds = %2158
  br label %2160

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

2161:                                             ; No predecessors!
  br label %2162

2162:                                             ; preds = %2161
  br label %2163

2163:                                             ; preds = %2162, %2107
  br label %2164

2164:                                             ; preds = %2163
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166
  %2168 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2169 = icmp eq i32 %2168, -1
  br i1 %2169, label %2170, label %2223

2170:                                             ; preds = %2167
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

2172:                                             ; preds = %2171
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %2173 = call ptr @__errno_location() #9
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  store i32 %2174, ptr %48, align 4, !tbaa !5
  %2175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2176 = call i32 @s2n_print_stacktrace(ptr noundef %2175)
  %2177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2178 = trunc i8 %2177 to i1
  br i1 %2178, label %2179, label %2201

2179:                                             ; preds = %2172
  %2180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2181 = call i32 @fileno(ptr noundef %2180) #8
  %2182 = call i32 @isatty(i32 noundef %2181) #8
  %2183 = icmp ne i32 %2182, 0
  br i1 %2183, label %2184, label %2201

2184:                                             ; preds = %2179
  %2185 = load i32, ptr %48, align 4, !tbaa !5
  %2186 = call ptr @__errno_location() #9
  store i32 %2185, ptr %2186, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = load i32, ptr @test_count, align 4, !tbaa !5
  %2189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  %2191 = call ptr @s2n_strerror(i32 noundef %2190, ptr noundef @.str.4)
  %2192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2193 = load i32, ptr %2192, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror_debug(i32 noundef %2193, ptr noundef @.str.4)
  %2195 = call ptr @__errno_location() #9
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = call ptr @strerror(i32 noundef %2196) #8
  %2198 = call ptr @__errno_location() #9
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2187, ptr noundef @.str.2, i32 noundef %2188, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2191, ptr noundef %2194, ptr noundef %2197, i32 noundef %2199) #8
  br label %2218

2201:                                             ; preds = %2179, %2172
  %2202 = load i32, ptr %48, align 4, !tbaa !5
  %2203 = call ptr @__errno_location() #9
  store i32 %2202, ptr %2203, align 4, !tbaa !5
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %2206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call ptr @s2n_strerror(i32 noundef %2207, ptr noundef @.str.4)
  %2209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror_debug(i32 noundef %2210, ptr noundef @.str.4)
  %2212 = call ptr @__errno_location() #9
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @strerror(i32 noundef %2213) #8
  %2215 = call ptr @__errno_location() #9
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2204, ptr noundef @.str.5, i32 noundef %2205, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2208, ptr noundef %2211, ptr noundef %2214, i32 noundef %2216) #8
  br label %2218

2218:                                             ; preds = %2201, %2184
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %2219

2219:                                             ; preds = %2218
  br label %2220

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

2221:                                             ; No predecessors!
  br label %2222

2222:                                             ; preds = %2221
  br label %2223

2223:                                             ; preds = %2222, %2167
  br label %2224

2224:                                             ; preds = %2223
  br label %2225

2225:                                             ; preds = %2224
  %2226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2227 = trunc i8 %2226 to i1
  br i1 %2227, label %2228, label %2244

2228:                                             ; preds = %2225
  %2229 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2230 = call i32 @fileno(ptr noundef %2229) #8
  %2231 = call i32 @isatty(i32 noundef %2230) #8
  %2232 = icmp ne i32 %2231, 0
  br i1 %2232, label %2233, label %2244

2233:                                             ; preds = %2228
  %2234 = load i32, ptr @test_count, align 4, !tbaa !5
  %2235 = icmp ne i32 %2234, 0
  br i1 %2235, label %2236, label %2240

2236:                                             ; preds = %2233
  %2237 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2237, ptr noundef @.str.31, i32 noundef %2238) #8
  br label %2243

2240:                                             ; preds = %2233
  %2241 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2241, ptr noundef @.str.32) #8
  br label %2243

2243:                                             ; preds = %2240, %2236
  br label %2255

2244:                                             ; preds = %2228, %2225
  %2245 = load i32, ptr @test_count, align 4, !tbaa !5
  %2246 = icmp ne i32 %2245, 0
  br i1 %2246, label %2247, label %2251

2247:                                             ; preds = %2244
  %2248 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %2250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2248, ptr noundef @.str.33, i32 noundef %2249) #8
  br label %2254

2251:                                             ; preds = %2244
  %2252 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2252, ptr noundef @.str.34) #8
  br label %2254

2254:                                             ; preds = %2251, %2247
  br label %2255

2255:                                             ; preds = %2254, %2243
  store i32 0, ptr %3, align 4
  store i32 1, ptr %49, align 4
  br label %2260

2256:                                             ; No predecessors!
  br label %2257

2257:                                             ; preds = %2256
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258
  store i32 0, ptr %49, align 4
  br label %2260

2260:                                             ; preds = %2259, %2255
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  %2261 = load i32, ptr %49, align 4
  switch i32 %2261, label %2264 [
    i32 0, label %2262
    i32 1, label %2262
  ]

2262:                                             ; preds = %2260, %2260
  %2263 = load i32, ptr %3, align 4
  ret i32 %2263

2264:                                             ; preds = %2260
  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 ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_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_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr 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 = !{!19, !10, i64 232}
!19 = !{!"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, !20, i64 160, !21, i64 168, !21, 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, !22, i64 240, !10, i64 632, !10, i64 640, !23, i64 648, !29, i64 1144, !32, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !28, i64 2792, !6, i64 2816, !28, i64 2824, !28, i64 2848, !28, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !28, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !28, i64 4032, !28, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !28, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!20 = !{!"s2n_timer", !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!23 = !{!"s2n_kex_parameters", !24, i64 0, !25, i64 8, !7, i64 24, !25, i64 56, !26, i64 72, !26, i64 184, !7, i64 296, !27, i64 360, !28, i64 448, !28, i64 472}
!24 = !{!"s2n_dh_params", !10, i64 0}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!"s2n_kem_group_params", !10, i64 0, !27, i64 8, !25, i64 96}
!27 = !{!"s2n_kem_params", !10, i64 0, !28, i64 8, !28, i64 32, !28, i64 56, !12, i64 80}
!28 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!29 = !{!"s2n_handshake_parameters", !30, i64 0, !30, i64 48, !28, i64 96, !6, i64 120, !31, 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}
!30 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!31 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!32 = !{!"s2n_psk_parameters", !6, i64 0, !33, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !28, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"s2n_stuffer", !28, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, 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, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !28, i64 0, !39, i64 24, !28, i64 728, !28, i64 752, !28, 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}
!39 = !{!"", !7, i64 0, !28, i64 672, !17, i64 696}
!40 = !{!"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, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !28, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!45, !10, i64 0}
!45 = !{!"s2n_crypto_parameters", !10, i64 0, !46, i64 8, !46, i64 16, !47, i64 24, !47, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!46 = !{!"s2n_session_key", !10, i64 0}
!47 = !{!"s2n_hmac_state", !6, i64 0, !17, i64 4, !6, i64 8, !17, i64 12, !7, i64 14, !48, i64 16, !48, i64 72, !48, i64 128, !48, i64 184, !7, i64 240, !7, i64 368}
!48 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !21, i64 16, !7, i64 24}
!49 = !{!16, !10, i64 8}
!50 = !{!7, !7, i64 0}
!51 = !{!34, !6, i64 28}
!52 = !{!34, !6, i64 24}
!53 = !{!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_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%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 [94 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 [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_server_ec_point_format_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.11 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_rsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@s2n_dhe_rsa_with_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_ecdsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.13 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_client_ec_point_format_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.18 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.34 = 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 %struct.s2n_stuffer, align 8
  %4 = alloca i8, align 1
  %5 = alloca i8, align 1
  %6 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %7 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %9 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10 = tail call i32 @fflush(ptr noundef %9)
  %11 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %12 = icmp eq i32 %11, -1
  br i1 %12, label %13, label %37

13:                                               ; preds = %2
  %14 = tail call ptr @__errno_location() #10
  %15 = load i32, ptr %14, align 4, !tbaa !5
  %16 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17 = tail call i32 @s2n_print_stacktrace(ptr noundef %16) #9
  %18 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19 = trunc nuw i8 %18 to i1
  br i1 %19, label %20, label %24

20:                                               ; preds = %13
  %21 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22 = tail call i32 @fileno(ptr noundef %21) #9
  %23 = tail call i32 @isatty(i32 noundef %22) #9
  %.not134 = icmp eq i32 %23, 0
  br i1 %.not134, label %24, label %25

24:                                               ; preds = %20, %13
  br label %25

25:                                               ; preds = %20, %24
  %.str.5.sink = phi ptr [ @.str.5, %24 ], [ @.str.2, %20 ]
  store i32 %15, ptr %14, align 4, !tbaa !5
  %26 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27 = load i32, ptr @test_count, align 4, !tbaa !5
  %28 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29 = load i32, ptr %28, align 4, !tbaa !5
  %30 = tail call ptr @s2n_strerror(i32 noundef %29, ptr noundef nonnull @.str.4) #9
  %31 = load i32, ptr %28, align 4, !tbaa !5
  %32 = tail call ptr @s2n_strerror_debug(i32 noundef %31, ptr noundef nonnull @.str.4) #9
  %33 = load i32, ptr %14, align 4, !tbaa !5
  %34 = tail call ptr @strerror(i32 noundef %33) #9
  %35 = load i32, ptr %14, align 4, !tbaa !5
  %36 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26, ptr noundef nonnull %.str.5.sink, i32 noundef %27, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %30, ptr noundef %32, ptr noundef %34, i32 noundef %35) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

37:                                               ; preds = %2
  %38 = load i32, ptr @test_count, align 4, !tbaa !5
  %39 = add nsw i32 %38, 1
  store i32 %39, ptr @test_count, align 4, !tbaa !5
  %40 = tail call i32 @s2n_enable_atexit() #9
  %41 = icmp eq i32 %40, -1
  br i1 %41, label %42, label %66

42:                                               ; preds = %37
  %43 = tail call ptr @__errno_location() #10
  %44 = load i32, ptr %43, align 4, !tbaa !5
  %45 = load ptr, ptr @stderr, align 8, !tbaa !9
  %46 = tail call i32 @s2n_print_stacktrace(ptr noundef %45) #9
  %47 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %48 = trunc nuw i8 %47 to i1
  br i1 %48, label %49, label %53

49:                                               ; preds = %42
  %50 = load ptr, ptr @stderr, align 8, !tbaa !9
  %51 = tail call i32 @fileno(ptr noundef %50) #9
  %52 = tail call i32 @isatty(i32 noundef %51) #9
  %.not133 = icmp eq i32 %52, 0
  br i1 %.not133, label %53, label %54

53:                                               ; preds = %49, %42
  br label %54

54:                                               ; preds = %49, %53
  %.str.5.sink145 = phi ptr [ @.str.5, %53 ], [ @.str.2, %49 ]
  store i32 %44, ptr %43, align 4, !tbaa !5
  %55 = load ptr, ptr @stderr, align 8, !tbaa !9
  %56 = load i32, ptr @test_count, align 4, !tbaa !5
  %57 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = tail call ptr @s2n_strerror(i32 noundef %58, ptr noundef nonnull @.str.4) #9
  %60 = load i32, ptr %57, align 4, !tbaa !5
  %61 = tail call ptr @s2n_strerror_debug(i32 noundef %60, ptr noundef nonnull @.str.4) #9
  %62 = load i32, ptr %43, align 4, !tbaa !5
  %63 = tail call ptr @strerror(i32 noundef %62) #9
  %64 = load i32, ptr %43, align 4, !tbaa !5
  %65 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef nonnull %.str.5.sink145, i32 noundef %56, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %59, ptr noundef %61, ptr noundef %63, i32 noundef %64) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

66:                                               ; preds = %37
  %67 = tail call i32 @s2n_init() #9
  %68 = icmp eq i32 %67, -1
  br i1 %68, label %69, label %93

69:                                               ; preds = %66
  %70 = tail call ptr @__errno_location() #10
  %71 = load i32, ptr %70, align 4, !tbaa !5
  %72 = load ptr, ptr @stderr, align 8, !tbaa !9
  %73 = tail call i32 @s2n_print_stacktrace(ptr noundef %72) #9
  %74 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %75 = trunc nuw i8 %74 to i1
  br i1 %75, label %76, label %80

76:                                               ; preds = %69
  %77 = load ptr, ptr @stderr, align 8, !tbaa !9
  %78 = tail call i32 @fileno(ptr noundef %77) #9
  %79 = tail call i32 @isatty(i32 noundef %78) #9
  %.not132 = icmp eq i32 %79, 0
  br i1 %.not132, label %80, label %81

80:                                               ; preds = %76, %69
  br label %81

81:                                               ; preds = %76, %80
  %.str.5.sink156 = phi ptr [ @.str.5, %80 ], [ @.str.2, %76 ]
  store i32 %71, ptr %70, align 4, !tbaa !5
  %82 = load ptr, ptr @stderr, align 8, !tbaa !9
  %83 = load i32, ptr @test_count, align 4, !tbaa !5
  %84 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = tail call ptr @s2n_strerror(i32 noundef %85, ptr noundef nonnull @.str.4) #9
  %87 = load i32, ptr %84, align 4, !tbaa !5
  %88 = tail call ptr @s2n_strerror_debug(i32 noundef %87, ptr noundef nonnull @.str.4) #9
  %89 = load i32, ptr %70, align 4, !tbaa !5
  %90 = tail call ptr @strerror(i32 noundef %89) #9
  %91 = load i32, ptr %70, align 4, !tbaa !5
  %92 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull %.str.5.sink156, i32 noundef %83, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %86, ptr noundef %88, ptr noundef %90, i32 noundef %91) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

93:                                               ; preds = %66
  %94 = load i32, ptr @test_count, align 4, !tbaa !5
  %95 = add nsw i32 %94, 1
  store i32 %95, ptr @test_count, align 4, !tbaa !5
  %96 = tail call i32 (...) @s2n_disable_tls13_in_test() #9
  %97 = icmp eq i32 %96, -1
  br i1 %97, label %98, label %122

98:                                               ; preds = %93
  %99 = tail call ptr @__errno_location() #10
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %102 = tail call i32 @s2n_print_stacktrace(ptr noundef %101) #9
  %103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %104 = trunc nuw i8 %103 to i1
  br i1 %104, label %105, label %109

105:                                              ; preds = %98
  %106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %107 = tail call i32 @fileno(ptr noundef %106) #9
  %108 = tail call i32 @isatty(i32 noundef %107) #9
  %.not131 = icmp eq i32 %108, 0
  br i1 %.not131, label %109, label %110

109:                                              ; preds = %105, %98
  br label %110

110:                                              ; preds = %105, %109
  %.str.5.sink167 = phi ptr [ @.str.5, %109 ], [ @.str.2, %105 ]
  store i32 %100, ptr %99, align 4, !tbaa !5
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = load i32, ptr @test_count, align 4, !tbaa !5
  %113 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = tail call ptr @s2n_strerror(i32 noundef %114, ptr noundef nonnull @.str.4) #9
  %116 = load i32, ptr %113, align 4, !tbaa !5
  %117 = tail call ptr @s2n_strerror_debug(i32 noundef %116, ptr noundef nonnull @.str.4) #9
  %118 = load i32, ptr %99, align 4, !tbaa !5
  %119 = tail call ptr @strerror(i32 noundef %118) #9
  %120 = load i32, ptr %99, align 4, !tbaa !5
  %121 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %111, ptr noundef nonnull %.str.5.sink167, i32 noundef %112, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 24, ptr noundef %115, ptr noundef %117, ptr noundef %119, i32 noundef %120) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

122:                                              ; preds = %93
  %123 = load i32, ptr @test_count, align 4, !tbaa !5
  %124 = add nsw i32 %123, 1
  store i32 %124, ptr @test_count, align 4, !tbaa !5
  %125 = tail call ptr @s2n_config_new() #9
  %126 = icmp eq ptr %125, null
  br i1 %126, label %127, label %151

127:                                              ; preds = %122
  %128 = tail call ptr @__errno_location() #10
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = tail call i32 @s2n_print_stacktrace(ptr noundef %130) #9
  %132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %133 = trunc nuw i8 %132 to i1
  br i1 %133, label %134, label %138

134:                                              ; preds = %127
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = tail call i32 @fileno(ptr noundef %135) #9
  %137 = tail call i32 @isatty(i32 noundef %136) #9
  %.not130 = icmp eq i32 %137, 0
  br i1 %.not130, label %138, label %139

138:                                              ; preds = %134, %127
  br label %139

139:                                              ; preds = %134, %138
  %.str.5.sink178 = phi ptr [ @.str.5, %138 ], [ @.str.2, %134 ]
  store i32 %129, ptr %128, align 4, !tbaa !5
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = load i32, ptr @test_count, align 4, !tbaa !5
  %142 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = tail call ptr @s2n_strerror(i32 noundef %143, ptr noundef nonnull @.str.4) #9
  %145 = load i32, ptr %142, align 4, !tbaa !5
  %146 = tail call ptr @s2n_strerror_debug(i32 noundef %145, ptr noundef nonnull @.str.4) #9
  %147 = load i32, ptr %128, align 4, !tbaa !5
  %148 = tail call ptr @strerror(i32 noundef %147) #9
  %149 = load i32, ptr %128, align 4, !tbaa !5
  %150 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %140, ptr noundef nonnull %.str.5.sink178, i32 noundef %141, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 27, ptr noundef %144, ptr noundef %146, ptr noundef %148, i32 noundef %149) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

151:                                              ; preds = %122
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = add nsw i32 %152, 1
  store i32 %153, ptr @test_count, align 4, !tbaa !5
  %154 = tail call ptr @s2n_connection_new(i32 noundef 0) #9
  %155 = icmp eq ptr %154, null
  br i1 %155, label %156, label %180

156:                                              ; preds = %151
  %157 = tail call ptr @__errno_location() #10
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = tail call i32 @s2n_print_stacktrace(ptr noundef %159) #9
  %161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %162 = trunc nuw i8 %161 to i1
  br i1 %162, label %163, label %167

163:                                              ; preds = %156
  %164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %165 = tail call i32 @fileno(ptr noundef %164) #9
  %166 = tail call i32 @isatty(i32 noundef %165) #9
  %.not129 = icmp eq i32 %166, 0
  br i1 %.not129, label %167, label %168

167:                                              ; preds = %163, %156
  br label %168

168:                                              ; preds = %163, %167
  %.str.5.sink189 = phi ptr [ @.str.5, %167 ], [ @.str.2, %163 ]
  store i32 %158, ptr %157, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = load i32, ptr @test_count, align 4, !tbaa !5
  %171 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = tail call ptr @s2n_strerror(i32 noundef %172, ptr noundef nonnull @.str.4) #9
  %174 = load i32, ptr %171, align 4, !tbaa !5
  %175 = tail call ptr @s2n_strerror_debug(i32 noundef %174, ptr noundef nonnull @.str.4) #9
  %176 = load i32, ptr %157, align 4, !tbaa !5
  %177 = tail call ptr @strerror(i32 noundef %176) #9
  %178 = load i32, ptr %157, align 4, !tbaa !5
  %179 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %169, ptr noundef nonnull %.str.5.sink189, i32 noundef %170, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %173, ptr noundef %175, ptr noundef %177, i32 noundef %178) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

180:                                              ; preds = %151
  %181 = load i32, ptr @test_count, align 4, !tbaa !5
  %182 = add nsw i32 %181, 1
  store i32 %182, ptr @test_count, align 4, !tbaa !5
  %183 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_ec_point_format_extension, i64 24), align 8, !tbaa !15
  %184 = tail call zeroext i1 %183(ptr noundef null) #9
  br i1 %184, label %185, label %209

185:                                              ; preds = %180
  %186 = tail call ptr @__errno_location() #10
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = tail call i32 @s2n_print_stacktrace(ptr noundef %188) #9
  %190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %191 = trunc nuw i8 %190 to i1
  br i1 %191, label %192, label %196

192:                                              ; preds = %185
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = tail call i32 @fileno(ptr noundef %193) #9
  %195 = tail call i32 @isatty(i32 noundef %194) #9
  %.not128 = icmp eq i32 %195, 0
  br i1 %.not128, label %196, label %197

196:                                              ; preds = %192, %185
  br label %197

197:                                              ; preds = %192, %196
  %.str.5.sink200 = phi ptr [ @.str.5, %196 ], [ @.str.2, %192 ]
  store i32 %187, ptr %186, align 4, !tbaa !5
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = load i32, ptr @test_count, align 4, !tbaa !5
  %200 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = tail call ptr @s2n_strerror(i32 noundef %201, ptr noundef nonnull @.str.4) #9
  %203 = load i32, ptr %200, align 4, !tbaa !5
  %204 = tail call ptr @s2n_strerror_debug(i32 noundef %203, ptr noundef nonnull @.str.4) #9
  %205 = load i32, ptr %186, align 4, !tbaa !5
  %206 = tail call ptr @strerror(i32 noundef %205) #9
  %207 = load i32, ptr %186, align 4, !tbaa !5
  %208 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %198, ptr noundef nonnull %.str.5.sink200, i32 noundef %199, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %202, ptr noundef %204, ptr noundef %206, i32 noundef %207) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

209:                                              ; preds = %180
  %210 = getelementptr inbounds i8, ptr %154, i64 232
  %211 = load ptr, ptr %210, align 8, !tbaa !18
  store ptr null, ptr %211, align 8, !tbaa !44
  %212 = load i32, ptr @test_count, align 4, !tbaa !5
  %213 = add nsw i32 %212, 1
  store i32 %213, ptr @test_count, align 4, !tbaa !5
  %214 = tail call zeroext i1 %183(ptr noundef nonnull %154) #9
  br i1 %214, label %215, label %239

215:                                              ; preds = %209
  %216 = tail call ptr @__errno_location() #10
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = tail call i32 @s2n_print_stacktrace(ptr noundef %218) #9
  %220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %221 = trunc nuw i8 %220 to i1
  br i1 %221, label %222, label %226

222:                                              ; preds = %215
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = tail call i32 @fileno(ptr noundef %223) #9
  %225 = tail call i32 @isatty(i32 noundef %224) #9
  %.not127 = icmp eq i32 %225, 0
  br i1 %.not127, label %226, label %227

226:                                              ; preds = %222, %215
  br label %227

227:                                              ; preds = %222, %226
  %.str.5.sink211 = phi ptr [ @.str.5, %226 ], [ @.str.2, %222 ]
  store i32 %217, ptr %216, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = load i32, ptr @test_count, align 4, !tbaa !5
  %230 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = tail call ptr @s2n_strerror(i32 noundef %231, ptr noundef nonnull @.str.4) #9
  %233 = load i32, ptr %230, align 4, !tbaa !5
  %234 = tail call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef nonnull @.str.4) #9
  %235 = load i32, ptr %216, align 4, !tbaa !5
  %236 = tail call ptr @strerror(i32 noundef %235) #9
  %237 = load i32, ptr %216, align 4, !tbaa !5
  %238 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %228, ptr noundef nonnull %.str.5.sink211, i32 noundef %229, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %232, ptr noundef %234, ptr noundef %236, i32 noundef %237) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

239:                                              ; preds = %209
  %240 = load ptr, ptr %210, align 8, !tbaa !18
  store ptr @s2n_rsa_with_aes_128_cbc_sha, ptr %240, align 8, !tbaa !44
  %241 = load i32, ptr @test_count, align 4, !tbaa !5
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr @test_count, align 4, !tbaa !5
  %243 = tail call zeroext i1 %183(ptr noundef nonnull %154) #9
  br i1 %243, label %244, label %268

244:                                              ; preds = %239
  %245 = tail call ptr @__errno_location() #10
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = tail call i32 @s2n_print_stacktrace(ptr noundef %247) #9
  %249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %250 = trunc nuw i8 %249 to i1
  br i1 %250, label %251, label %255

251:                                              ; preds = %244
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = tail call i32 @fileno(ptr noundef %252) #9
  %254 = tail call i32 @isatty(i32 noundef %253) #9
  %.not126 = icmp eq i32 %254, 0
  br i1 %.not126, label %255, label %256

255:                                              ; preds = %251, %244
  br label %256

256:                                              ; preds = %251, %255
  %.str.5.sink222 = phi ptr [ @.str.5, %255 ], [ @.str.2, %251 ]
  store i32 %246, ptr %245, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = load i32, ptr @test_count, align 4, !tbaa !5
  %259 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = tail call ptr @s2n_strerror(i32 noundef %260, ptr noundef nonnull @.str.4) #9
  %262 = load i32, ptr %259, align 4, !tbaa !5
  %263 = tail call ptr @s2n_strerror_debug(i32 noundef %262, ptr noundef nonnull @.str.4) #9
  %264 = load i32, ptr %245, align 4, !tbaa !5
  %265 = tail call ptr @strerror(i32 noundef %264) #9
  %266 = load i32, ptr %245, align 4, !tbaa !5
  %267 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %257, ptr noundef nonnull %.str.5.sink222, i32 noundef %258, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %261, ptr noundef %263, ptr noundef %265, i32 noundef %266) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

268:                                              ; preds = %239
  %269 = load ptr, ptr %210, align 8, !tbaa !18
  store ptr @s2n_dhe_rsa_with_chacha20_poly1305_sha256, ptr %269, align 8, !tbaa !44
  %270 = load i32, ptr @test_count, align 4, !tbaa !5
  %271 = add nsw i32 %270, 1
  store i32 %271, ptr @test_count, align 4, !tbaa !5
  %272 = tail call zeroext i1 %183(ptr noundef nonnull %154) #9
  br i1 %272, label %273, label %297

273:                                              ; preds = %268
  %274 = tail call ptr @__errno_location() #10
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = tail call i32 @s2n_print_stacktrace(ptr noundef %276) #9
  %278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %279 = trunc nuw i8 %278 to i1
  br i1 %279, label %280, label %284

280:                                              ; preds = %273
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = tail call i32 @fileno(ptr noundef %281) #9
  %283 = tail call i32 @isatty(i32 noundef %282) #9
  %.not125 = icmp eq i32 %283, 0
  br i1 %.not125, label %284, label %285

284:                                              ; preds = %280, %273
  br label %285

285:                                              ; preds = %280, %284
  %.str.5.sink233 = phi ptr [ @.str.5, %284 ], [ @.str.2, %280 ]
  store i32 %275, ptr %274, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = tail call ptr @s2n_strerror(i32 noundef %289, ptr noundef nonnull @.str.4) #9
  %291 = load i32, ptr %288, align 4, !tbaa !5
  %292 = tail call ptr @s2n_strerror_debug(i32 noundef %291, ptr noundef nonnull @.str.4) #9
  %293 = load i32, ptr %274, align 4, !tbaa !5
  %294 = tail call ptr @strerror(i32 noundef %293) #9
  %295 = load i32, ptr %274, align 4, !tbaa !5
  %296 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef nonnull %.str.5.sink233, i32 noundef %287, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %290, ptr noundef %292, ptr noundef %294, i32 noundef %295) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

297:                                              ; preds = %268
  %298 = load ptr, ptr %210, align 8, !tbaa !18
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha, ptr %298, align 8, !tbaa !44
  %299 = load i32, ptr @test_count, align 4, !tbaa !5
  %300 = add nsw i32 %299, 1
  store i32 %300, ptr @test_count, align 4, !tbaa !5
  %301 = tail call zeroext i1 %183(ptr noundef nonnull %154) #9
  br i1 %301, label %326, label %302

302:                                              ; preds = %297
  %303 = tail call ptr @__errno_location() #10
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = tail call i32 @s2n_print_stacktrace(ptr noundef %305) #9
  %307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %308 = trunc nuw i8 %307 to i1
  br i1 %308, label %309, label %313

309:                                              ; preds = %302
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = tail call i32 @fileno(ptr noundef %310) #9
  %312 = tail call i32 @isatty(i32 noundef %311) #9
  %.not = icmp eq i32 %312, 0
  br i1 %.not, label %313, label %314

313:                                              ; preds = %309, %302
  br label %314

314:                                              ; preds = %309, %313
  %.str.5.sink244 = phi ptr [ @.str.5, %313 ], [ @.str.2, %309 ]
  store i32 %304, ptr %303, align 4, !tbaa !5
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = tail call ptr @s2n_strerror(i32 noundef %318, ptr noundef nonnull @.str.4) #9
  %320 = load i32, ptr %317, align 4, !tbaa !5
  %321 = tail call ptr @s2n_strerror_debug(i32 noundef %320, ptr noundef nonnull @.str.4) #9
  %322 = load i32, ptr %303, align 4, !tbaa !5
  %323 = tail call ptr @strerror(i32 noundef %322) #9
  %324 = load i32, ptr %303, align 4, !tbaa !5
  %325 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %315, ptr noundef nonnull %.str.5.sink244, i32 noundef %316, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %319, ptr noundef %321, ptr noundef %323, i32 noundef %324) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

326:                                              ; preds = %297
  %327 = load i32, ptr @test_count, align 4, !tbaa !5
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr @test_count, align 4, !tbaa !5
  %329 = tail call i32 @s2n_connection_free(ptr noundef nonnull %154) #9
  %330 = icmp eq i32 %329, -1
  br i1 %330, label %331, label %355

331:                                              ; preds = %326
  %332 = tail call ptr @__errno_location() #10
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = tail call i32 @s2n_print_stacktrace(ptr noundef %334) #9
  %336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %337 = trunc nuw i8 %336 to i1
  br i1 %337, label %338, label %342

338:                                              ; preds = %331
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = tail call i32 @fileno(ptr noundef %339) #9
  %341 = tail call i32 @isatty(i32 noundef %340) #9
  %.not124 = icmp eq i32 %341, 0
  br i1 %.not124, label %342, label %343

342:                                              ; preds = %338, %331
  br label %343

343:                                              ; preds = %338, %342
  %.str.5.sink255 = phi ptr [ @.str.5, %342 ], [ @.str.2, %338 ]
  store i32 %333, ptr %332, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = tail call ptr @s2n_strerror(i32 noundef %347, ptr noundef nonnull @.str.4) #9
  %349 = load i32, ptr %346, align 4, !tbaa !5
  %350 = tail call ptr @s2n_strerror_debug(i32 noundef %349, ptr noundef nonnull @.str.4) #9
  %351 = load i32, ptr %332, align 4, !tbaa !5
  %352 = tail call ptr @strerror(i32 noundef %351) #9
  %353 = load i32, ptr %332, align 4, !tbaa !5
  %354 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef nonnull %.str.5.sink255, i32 noundef %345, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %348, ptr noundef %350, ptr noundef %352, i32 noundef %353) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

355:                                              ; preds = %326
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = add nsw i32 %356, 1
  store i32 %357, ptr @test_count, align 4, !tbaa !5
  %358 = tail call ptr @s2n_connection_new(i32 noundef 1) #9
  %359 = icmp eq ptr %358, null
  br i1 %359, label %360, label %384

360:                                              ; preds = %355
  %361 = tail call ptr @__errno_location() #10
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %364 = tail call i32 @s2n_print_stacktrace(ptr noundef %363) #9
  %365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %366 = trunc nuw i8 %365 to i1
  br i1 %366, label %367, label %371

367:                                              ; preds = %360
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = tail call i32 @fileno(ptr noundef %368) #9
  %370 = tail call i32 @isatty(i32 noundef %369) #9
  %.not123 = icmp eq i32 %370, 0
  br i1 %.not123, label %371, label %372

371:                                              ; preds = %367, %360
  br label %372

372:                                              ; preds = %367, %371
  %.str.5.sink266 = phi ptr [ @.str.5, %371 ], [ @.str.2, %367 ]
  store i32 %362, ptr %361, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = load i32, ptr @test_count, align 4, !tbaa !5
  %375 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = tail call ptr @s2n_strerror(i32 noundef %376, ptr noundef nonnull @.str.4) #9
  %378 = load i32, ptr %375, align 4, !tbaa !5
  %379 = tail call ptr @s2n_strerror_debug(i32 noundef %378, ptr noundef nonnull @.str.4) #9
  %380 = load i32, ptr %361, align 4, !tbaa !5
  %381 = tail call ptr @strerror(i32 noundef %380) #9
  %382 = load i32, ptr %361, align 4, !tbaa !5
  %383 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %373, ptr noundef nonnull %.str.5.sink266, i32 noundef %374, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %377, ptr noundef %379, ptr noundef %381, i32 noundef %382) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

384:                                              ; preds = %355
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = add nsw i32 %385, 1
  store i32 %386, ptr @test_count, align 4, !tbaa !5
  %387 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %358, ptr noundef nonnull %125) #9
  %388 = icmp eq i32 %387, -1
  br i1 %388, label %389, label %413

389:                                              ; preds = %384
  %390 = tail call ptr @__errno_location() #10
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = tail call i32 @s2n_print_stacktrace(ptr noundef %392) #9
  %394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %395 = trunc nuw i8 %394 to i1
  br i1 %395, label %396, label %400

396:                                              ; preds = %389
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = tail call i32 @fileno(ptr noundef %397) #9
  %399 = tail call i32 @isatty(i32 noundef %398) #9
  %.not122 = icmp eq i32 %399, 0
  br i1 %.not122, label %400, label %401

400:                                              ; preds = %396, %389
  br label %401

401:                                              ; preds = %396, %400
  %.str.5.sink277 = phi ptr [ @.str.5, %400 ], [ @.str.2, %396 ]
  store i32 %391, ptr %390, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %404 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = tail call ptr @s2n_strerror(i32 noundef %405, ptr noundef nonnull @.str.4) #9
  %407 = load i32, ptr %404, align 4, !tbaa !5
  %408 = tail call ptr @s2n_strerror_debug(i32 noundef %407, ptr noundef nonnull @.str.4) #9
  %409 = load i32, ptr %390, align 4, !tbaa !5
  %410 = tail call ptr @strerror(i32 noundef %409) #9
  %411 = load i32, ptr %390, align 4, !tbaa !5
  %412 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %402, ptr noundef nonnull %.str.5.sink277, i32 noundef %403, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %406, ptr noundef %408, ptr noundef %410, i32 noundef %411) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

413:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, i8 0, i64 40, i1 false)
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = add nsw i32 %414, 1
  store i32 %415, ptr @test_count, align 4, !tbaa !5
  %416 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %3, i32 noundef 0) #9
  %417 = icmp eq i32 %416, -1
  br i1 %417, label %418, label %442

418:                                              ; preds = %413
  %419 = tail call ptr @__errno_location() #10
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = call i32 @s2n_print_stacktrace(ptr noundef %421) #9
  %423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %424 = trunc nuw i8 %423 to i1
  br i1 %424, label %425, label %429

425:                                              ; preds = %418
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = call i32 @fileno(ptr noundef %426) #9
  %428 = call i32 @isatty(i32 noundef %427) #9
  %.not121 = icmp eq i32 %428, 0
  br i1 %.not121, label %429, label %430

429:                                              ; preds = %425, %418
  br label %430

430:                                              ; preds = %425, %429
  %.str.5.sink288 = phi ptr [ @.str.5, %429 ], [ @.str.2, %425 ]
  store i32 %420, ptr %419, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = load i32, ptr @test_count, align 4, !tbaa !5
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror(i32 noundef %434, ptr noundef nonnull @.str.4) #9
  %436 = load i32, ptr %433, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror_debug(i32 noundef %436, ptr noundef nonnull @.str.4) #9
  %438 = load i32, ptr %419, align 4, !tbaa !5
  %439 = call ptr @strerror(i32 noundef %438) #9
  %440 = load i32, ptr %419, align 4, !tbaa !5
  %441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef nonnull %.str.5.sink288, i32 noundef %432, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %435, ptr noundef %437, ptr noundef %439, i32 noundef %440) #11
  call void @exit(i32 noundef 1) #12
  unreachable

442:                                              ; preds = %413
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_ec_point_format_extension, i64 8), align 8, !tbaa !49
  %446 = call i32 %445(ptr noundef nonnull %358, ptr noundef nonnull %3) #9
  %447 = icmp eq i32 %446, -1
  br i1 %447, label %448, label %472

448:                                              ; preds = %442
  %449 = tail call ptr @__errno_location() #10
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @s2n_print_stacktrace(ptr noundef %451) #9
  %453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %454 = trunc nuw i8 %453 to i1
  br i1 %454, label %455, label %459

455:                                              ; preds = %448
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = call i32 @fileno(ptr noundef %456) #9
  %458 = call i32 @isatty(i32 noundef %457) #9
  %.not120 = icmp eq i32 %458, 0
  br i1 %.not120, label %459, label %460

459:                                              ; preds = %455, %448
  br label %460

460:                                              ; preds = %455, %459
  %.str.5.sink299 = phi ptr [ @.str.5, %459 ], [ @.str.2, %455 ]
  store i32 %450, ptr %449, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror(i32 noundef %464, ptr noundef nonnull @.str.4) #9
  %466 = load i32, ptr %463, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef nonnull @.str.4) #9
  %468 = load i32, ptr %449, align 4, !tbaa !5
  %469 = call ptr @strerror(i32 noundef %468) #9
  %470 = load i32, ptr %449, align 4, !tbaa !5
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %461, ptr noundef nonnull %.str.5.sink299, i32 noundef %462, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %465, ptr noundef %467, ptr noundef %469, i32 noundef %470) #11
  call void @exit(i32 noundef 1) #12
  unreachable

472:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #9
  store i8 0, ptr %4, align 1, !tbaa !50
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = add nsw i32 %473, 1
  store i32 %474, ptr @test_count, align 4, !tbaa !5
  %475 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %3, ptr noundef nonnull %4) #9
  %476 = icmp eq i32 %475, -1
  br i1 %476, label %477, label %501

477:                                              ; preds = %472
  %478 = tail call ptr @__errno_location() #10
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = call i32 @s2n_print_stacktrace(ptr noundef %480) #9
  %482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %483 = trunc nuw i8 %482 to i1
  br i1 %483, label %484, label %488

484:                                              ; preds = %477
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @fileno(ptr noundef %485) #9
  %487 = call i32 @isatty(i32 noundef %486) #9
  %.not119 = icmp eq i32 %487, 0
  br i1 %.not119, label %488, label %489

488:                                              ; preds = %484, %477
  br label %489

489:                                              ; preds = %484, %488
  %.str.5.sink310 = phi ptr [ @.str.5, %488 ], [ @.str.2, %484 ]
  store i32 %479, ptr %478, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror(i32 noundef %493, ptr noundef nonnull @.str.4) #9
  %495 = load i32, ptr %492, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef nonnull @.str.4) #9
  %497 = load i32, ptr %478, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #9
  %499 = load i32, ptr %478, align 4, !tbaa !5
  %500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %490, ptr noundef nonnull %.str.5.sink310, i32 noundef %491, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %494, ptr noundef %496, ptr noundef %498, i32 noundef %499) #11
  call void @exit(i32 noundef 1) #12
  unreachable

501:                                              ; preds = %472
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %504 = load i8, ptr %4, align 1, !tbaa !50
  %505 = zext i8 %504 to i32
  %506 = getelementptr inbounds i8, ptr %3, i64 28
  %507 = load i32, ptr %506, align 4, !tbaa !51
  %508 = getelementptr inbounds i8, ptr %3, i64 24
  %509 = load i32, ptr %508, align 8, !tbaa !52
  %510 = sub i32 %507, %509
  %511 = icmp eq i32 %510, %505
  br i1 %511, label %536, label %512

512:                                              ; preds = %501
  %513 = tail call ptr @__errno_location() #10
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = call i32 @s2n_print_stacktrace(ptr noundef %515) #9
  %517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %518 = trunc nuw i8 %517 to i1
  br i1 %518, label %519, label %523

519:                                              ; preds = %512
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = call i32 @fileno(ptr noundef %520) #9
  %522 = call i32 @isatty(i32 noundef %521) #9
  %.not96 = icmp eq i32 %522, 0
  br i1 %.not96, label %523, label %524

523:                                              ; preds = %519, %512
  br label %524

524:                                              ; preds = %519, %523
  %.str.5.sink321 = phi ptr [ @.str.5, %523 ], [ @.str.2, %519 ]
  store i32 %514, ptr %513, align 4, !tbaa !5
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror(i32 noundef %528, ptr noundef nonnull @.str.4) #9
  %530 = load i32, ptr %527, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror_debug(i32 noundef %530, ptr noundef nonnull @.str.4) #9
  %532 = load i32, ptr %513, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #9
  %534 = load i32, ptr %513, align 4, !tbaa !5
  %535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %525, ptr noundef nonnull %.str.5.sink321, i32 noundef %526, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %529, ptr noundef %531, ptr noundef %533, i32 noundef %534) #11
  call void @exit(i32 noundef 1) #12
  unreachable

536:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #9
  store i8 0, ptr %5, align 1, !tbaa !50
  %537 = add nsw i32 %502, 2
  store i32 %537, ptr @test_count, align 4, !tbaa !5
  %538 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %3, ptr noundef nonnull %5) #9
  %539 = icmp eq i32 %538, -1
  br i1 %539, label %540, label %564

540:                                              ; preds = %536
  %541 = tail call ptr @__errno_location() #10
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = call i32 @s2n_print_stacktrace(ptr noundef %543) #9
  %545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %546 = trunc nuw i8 %545 to i1
  br i1 %546, label %547, label %551

547:                                              ; preds = %540
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = call i32 @fileno(ptr noundef %548) #9
  %550 = call i32 @isatty(i32 noundef %549) #9
  %.not118 = icmp eq i32 %550, 0
  br i1 %.not118, label %551, label %552

551:                                              ; preds = %547, %540
  br label %552

552:                                              ; preds = %547, %551
  %.str.5.sink332 = phi ptr [ @.str.5, %551 ], [ @.str.2, %547 ]
  store i32 %542, ptr %541, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror(i32 noundef %556, ptr noundef nonnull @.str.4) #9
  %558 = load i32, ptr %555, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror_debug(i32 noundef %558, ptr noundef nonnull @.str.4) #9
  %560 = load i32, ptr %541, align 4, !tbaa !5
  %561 = call ptr @strerror(i32 noundef %560) #9
  %562 = load i32, ptr %541, align 4, !tbaa !5
  %563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef nonnull %.str.5.sink332, i32 noundef %554, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %557, ptr noundef %559, ptr noundef %561, i32 noundef %562) #11
  call void @exit(i32 noundef 1) #12
  unreachable

564:                                              ; preds = %536
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = add nsw i32 %565, 1
  store i32 %566, ptr @test_count, align 4, !tbaa !5
  %567 = load i8, ptr %5, align 1, !tbaa !50
  %568 = icmp eq i8 %567, 0
  br i1 %568, label %593, label %569

569:                                              ; preds = %564
  %570 = tail call ptr @__errno_location() #10
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @s2n_print_stacktrace(ptr noundef %572) #9
  %574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %575 = trunc nuw i8 %574 to i1
  br i1 %575, label %576, label %580

576:                                              ; preds = %569
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @fileno(ptr noundef %577) #9
  %579 = call i32 @isatty(i32 noundef %578) #9
  %.not97 = icmp eq i32 %579, 0
  br i1 %.not97, label %580, label %581

580:                                              ; preds = %576, %569
  br label %581

581:                                              ; preds = %576, %580
  %.str.5.sink343 = phi ptr [ @.str.5, %580 ], [ @.str.2, %576 ]
  store i32 %571, ptr %570, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef nonnull @.str.4) #9
  %587 = load i32, ptr %584, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror_debug(i32 noundef %587, ptr noundef nonnull @.str.4) #9
  %589 = load i32, ptr %570, align 4, !tbaa !5
  %590 = call ptr @strerror(i32 noundef %589) #9
  %591 = load i32, ptr %570, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef nonnull %.str.5.sink343, i32 noundef %583, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %586, ptr noundef %588, ptr noundef %590, i32 noundef %591) #11
  call void @exit(i32 noundef 1) #12
  unreachable

593:                                              ; preds = %564
  %594 = add nsw i32 %565, 2
  store i32 %594, ptr @test_count, align 4, !tbaa !5
  %595 = load i32, ptr %506, align 4, !tbaa !51
  %596 = load i32, ptr %508, align 8, !tbaa !52
  %597 = icmp eq i32 %595, %596
  br i1 %597, label %622, label %598

598:                                              ; preds = %593
  %599 = tail call ptr @__errno_location() #10
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = call i32 @s2n_print_stacktrace(ptr noundef %601) #9
  %603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %604 = trunc nuw i8 %603 to i1
  br i1 %604, label %605, label %609

605:                                              ; preds = %598
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = call i32 @fileno(ptr noundef %606) #9
  %608 = call i32 @isatty(i32 noundef %607) #9
  %.not98 = icmp eq i32 %608, 0
  br i1 %.not98, label %609, label %610

609:                                              ; preds = %605, %598
  br label %610

610:                                              ; preds = %605, %609
  %.str.5.sink354 = phi ptr [ @.str.5, %609 ], [ @.str.2, %605 ]
  store i32 %600, ptr %599, align 4, !tbaa !5
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror(i32 noundef %614, ptr noundef nonnull @.str.4) #9
  %616 = load i32, ptr %613, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror_debug(i32 noundef %616, ptr noundef nonnull @.str.4) #9
  %618 = load i32, ptr %599, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #9
  %620 = load i32, ptr %599, align 4, !tbaa !5
  %621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %611, ptr noundef nonnull %.str.5.sink354, i32 noundef %612, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %615, ptr noundef %617, ptr noundef %619, i32 noundef %620) #11
  call void @exit(i32 noundef 1) #12
  unreachable

622:                                              ; preds = %593
  %623 = add nsw i32 %565, 3
  store i32 %623, ptr @test_count, align 4, !tbaa !5
  %624 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #9
  %625 = icmp eq i32 %624, -1
  br i1 %625, label %626, label %650

626:                                              ; preds = %622
  %627 = tail call ptr @__errno_location() #10
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = call i32 @s2n_print_stacktrace(ptr noundef %629) #9
  %631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %632 = trunc nuw i8 %631 to i1
  br i1 %632, label %633, label %637

633:                                              ; preds = %626
  %634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %635 = call i32 @fileno(ptr noundef %634) #9
  %636 = call i32 @isatty(i32 noundef %635) #9
  %.not117 = icmp eq i32 %636, 0
  br i1 %.not117, label %637, label %638

637:                                              ; preds = %633, %626
  br label %638

638:                                              ; preds = %633, %637
  %.str.5.sink365 = phi ptr [ @.str.5, %637 ], [ @.str.2, %633 ]
  store i32 %628, ptr %627, align 4, !tbaa !5
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %642 = load i32, ptr %641, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror(i32 noundef %642, ptr noundef nonnull @.str.4) #9
  %644 = load i32, ptr %641, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef nonnull @.str.4) #9
  %646 = load i32, ptr %627, align 4, !tbaa !5
  %647 = call ptr @strerror(i32 noundef %646) #9
  %648 = load i32, ptr %627, align 4, !tbaa !5
  %649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %639, ptr noundef nonnull %.str.5.sink365, i32 noundef %640, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %643, ptr noundef %645, ptr noundef %647, i32 noundef %648) #11
  call void @exit(i32 noundef 1) #12
  unreachable

650:                                              ; preds = %622
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = call i32 @s2n_connection_free(ptr noundef nonnull %358) #9
  %654 = icmp eq i32 %653, -1
  br i1 %654, label %655, label %679

655:                                              ; preds = %650
  %656 = tail call ptr @__errno_location() #10
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = call i32 @s2n_print_stacktrace(ptr noundef %658) #9
  %660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %661 = trunc nuw i8 %660 to i1
  br i1 %661, label %662, label %666

662:                                              ; preds = %655
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = call i32 @fileno(ptr noundef %663) #9
  %665 = call i32 @isatty(i32 noundef %664) #9
  %.not116 = icmp eq i32 %665, 0
  br i1 %.not116, label %666, label %667

666:                                              ; preds = %662, %655
  br label %667

667:                                              ; preds = %662, %666
  %.str.5.sink376 = phi ptr [ @.str.5, %666 ], [ @.str.2, %662 ]
  store i32 %657, ptr %656, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef nonnull @.str.4) #9
  %673 = load i32, ptr %670, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef nonnull @.str.4) #9
  %675 = load i32, ptr %656, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #9
  %677 = load i32, ptr %656, align 4, !tbaa !5
  %678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef nonnull %.str.5.sink376, i32 noundef %669, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %672, ptr noundef %674, ptr noundef %676, i32 noundef %677) #11
  call void @exit(i32 noundef 1) #12
  unreachable

679:                                              ; preds = %650
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #9
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %683 = icmp eq ptr %682, null
  br i1 %683, label %684, label %708

684:                                              ; preds = %679
  %685 = tail call ptr @__errno_location() #10
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = call i32 @s2n_print_stacktrace(ptr noundef %687) #9
  %689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %690 = trunc nuw i8 %689 to i1
  br i1 %690, label %691, label %695

691:                                              ; preds = %684
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = call i32 @fileno(ptr noundef %692) #9
  %694 = call i32 @isatty(i32 noundef %693) #9
  %.not115 = icmp eq i32 %694, 0
  br i1 %.not115, label %695, label %696

695:                                              ; preds = %691, %684
  br label %696

696:                                              ; preds = %691, %695
  %.str.5.sink387 = phi ptr [ @.str.5, %695 ], [ @.str.2, %691 ]
  store i32 %686, ptr %685, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror(i32 noundef %700, ptr noundef nonnull @.str.4) #9
  %702 = load i32, ptr %699, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror_debug(i32 noundef %702, ptr noundef nonnull @.str.4) #9
  %704 = load i32, ptr %685, align 4, !tbaa !5
  %705 = call ptr @strerror(i32 noundef %704) #9
  %706 = load i32, ptr %685, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %697, ptr noundef nonnull %.str.5.sink387, i32 noundef %698, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %701, ptr noundef %703, ptr noundef %705, i32 noundef %706) #11
  call void @exit(i32 noundef 1) #12
  unreachable

708:                                              ; preds = %679
  %709 = load i32, ptr @test_count, align 4, !tbaa !5
  %710 = add nsw i32 %709, 1
  store i32 %710, ptr @test_count, align 4, !tbaa !5
  %711 = call i32 @s2n_connection_set_config(ptr noundef nonnull %682, ptr noundef nonnull %125) #9
  %712 = icmp eq i32 %711, -1
  br i1 %712, label %713, label %737

713:                                              ; preds = %708
  %714 = tail call ptr @__errno_location() #10
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = call i32 @s2n_print_stacktrace(ptr noundef %716) #9
  %718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %719 = trunc nuw i8 %718 to i1
  br i1 %719, label %720, label %724

720:                                              ; preds = %713
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = call i32 @fileno(ptr noundef %721) #9
  %723 = call i32 @isatty(i32 noundef %722) #9
  %.not114 = icmp eq i32 %723, 0
  br i1 %.not114, label %724, label %725

724:                                              ; preds = %720, %713
  br label %725

725:                                              ; preds = %720, %724
  %.str.5.sink398 = phi ptr [ @.str.5, %724 ], [ @.str.2, %720 ]
  store i32 %715, ptr %714, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %729 = load i32, ptr %728, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror(i32 noundef %729, ptr noundef nonnull @.str.4) #9
  %731 = load i32, ptr %728, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef nonnull @.str.4) #9
  %733 = load i32, ptr %714, align 4, !tbaa !5
  %734 = call ptr @strerror(i32 noundef %733) #9
  %735 = load i32, ptr %714, align 4, !tbaa !5
  %736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %726, ptr noundef nonnull %.str.5.sink398, i32 noundef %727, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %730, ptr noundef %732, ptr noundef %734, i32 noundef %735) #11
  call void @exit(i32 noundef 1) #12
  unreachable

737:                                              ; preds = %708
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = add nsw i32 %738, 1
  store i32 %739, ptr @test_count, align 4, !tbaa !5
  %740 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #9
  %741 = icmp eq i32 %740, -1
  br i1 %741, label %742, label %766

742:                                              ; preds = %737
  %743 = tail call ptr @__errno_location() #10
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @s2n_print_stacktrace(ptr noundef %745) #9
  %747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %748 = trunc nuw i8 %747 to i1
  br i1 %748, label %749, label %753

749:                                              ; preds = %742
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = call i32 @fileno(ptr noundef %750) #9
  %752 = call i32 @isatty(i32 noundef %751) #9
  %.not113 = icmp eq i32 %752, 0
  br i1 %.not113, label %753, label %754

753:                                              ; preds = %749, %742
  br label %754

754:                                              ; preds = %749, %753
  %.str.5.sink409 = phi ptr [ @.str.5, %753 ], [ @.str.2, %749 ]
  store i32 %744, ptr %743, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef nonnull @.str.4) #9
  %760 = load i32, ptr %757, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror_debug(i32 noundef %760, ptr noundef nonnull @.str.4) #9
  %762 = load i32, ptr %743, align 4, !tbaa !5
  %763 = call ptr @strerror(i32 noundef %762) #9
  %764 = load i32, ptr %743, align 4, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef nonnull %.str.5.sink409, i32 noundef %756, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %759, ptr noundef %761, ptr noundef %763, i32 noundef %764) #11
  call void @exit(i32 noundef 1) #12
  unreachable

766:                                              ; preds = %737
  %767 = load i32, ptr @test_count, align 4, !tbaa !5
  %768 = add nsw i32 %767, 1
  store i32 %768, ptr @test_count, align 4, !tbaa !5
  %769 = call i32 %445(ptr noundef nonnull %682, ptr noundef nonnull %6) #9
  %770 = icmp eq i32 %769, -1
  br i1 %770, label %771, label %795

771:                                              ; preds = %766
  %772 = tail call ptr @__errno_location() #10
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @s2n_print_stacktrace(ptr noundef %774) #9
  %776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %777 = trunc nuw i8 %776 to i1
  br i1 %777, label %778, label %782

778:                                              ; preds = %771
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @fileno(ptr noundef %779) #9
  %781 = call i32 @isatty(i32 noundef %780) #9
  %.not112 = icmp eq i32 %781, 0
  br i1 %.not112, label %782, label %783

782:                                              ; preds = %778, %771
  br label %783

783:                                              ; preds = %778, %782
  %.str.5.sink420 = phi ptr [ @.str.5, %782 ], [ @.str.2, %778 ]
  store i32 %773, ptr %772, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror(i32 noundef %787, ptr noundef nonnull @.str.4) #9
  %789 = load i32, ptr %786, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror_debug(i32 noundef %789, ptr noundef nonnull @.str.4) #9
  %791 = load i32, ptr %772, align 4, !tbaa !5
  %792 = call ptr @strerror(i32 noundef %791) #9
  %793 = load i32, ptr %772, align 4, !tbaa !5
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %784, ptr noundef nonnull %.str.5.sink420, i32 noundef %785, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %788, ptr noundef %790, ptr noundef %792, i32 noundef %793) #11
  call void @exit(i32 noundef 1) #12
  unreachable

795:                                              ; preds = %766
  %796 = load i32, ptr @test_count, align 4, !tbaa !5
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr @test_count, align 4, !tbaa !5
  %798 = load i32, ptr %682, align 8
  %799 = and i32 %798, 16
  %.not99 = icmp eq i32 %799, 0
  br i1 %.not99, label %824, label %800

800:                                              ; preds = %795
  %801 = tail call ptr @__errno_location() #10
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = call i32 @s2n_print_stacktrace(ptr noundef %803) #9
  %805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %806 = trunc nuw i8 %805 to i1
  br i1 %806, label %807, label %811

807:                                              ; preds = %800
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @fileno(ptr noundef %808) #9
  %810 = call i32 @isatty(i32 noundef %809) #9
  %.not111 = icmp eq i32 %810, 0
  br i1 %.not111, label %811, label %812

811:                                              ; preds = %807, %800
  br label %812

812:                                              ; preds = %807, %811
  %.str.5.sink431 = phi ptr [ @.str.5, %811 ], [ @.str.2, %807 ]
  store i32 %802, ptr %801, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = load i32, ptr @test_count, align 4, !tbaa !5
  %815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror(i32 noundef %816, ptr noundef nonnull @.str.4) #9
  %818 = load i32, ptr %815, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef nonnull @.str.4) #9
  %820 = load i32, ptr %801, align 4, !tbaa !5
  %821 = call ptr @strerror(i32 noundef %820) #9
  %822 = load i32, ptr %801, align 4, !tbaa !5
  %823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %813, ptr noundef nonnull %.str.5.sink431, i32 noundef %814, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %817, ptr noundef %819, ptr noundef %821, i32 noundef %822) #11
  call void @exit(i32 noundef 1) #12
  unreachable

824:                                              ; preds = %795
  %825 = add nsw i32 %796, 2
  store i32 %825, ptr @test_count, align 4, !tbaa !5
  %826 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_ec_point_format_extension, i64 16), align 8, !tbaa !53
  %827 = call i32 %826(ptr noundef nonnull %682, ptr noundef nonnull %6) #9
  %828 = icmp eq i32 %827, -1
  br i1 %828, label %829, label %853

829:                                              ; preds = %824
  %830 = tail call ptr @__errno_location() #10
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @s2n_print_stacktrace(ptr noundef %832) #9
  %834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %835 = trunc nuw i8 %834 to i1
  br i1 %835, label %836, label %840

836:                                              ; preds = %829
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = call i32 @fileno(ptr noundef %837) #9
  %839 = call i32 @isatty(i32 noundef %838) #9
  %.not110 = icmp eq i32 %839, 0
  br i1 %.not110, label %840, label %841

840:                                              ; preds = %836, %829
  br label %841

841:                                              ; preds = %836, %840
  %.str.5.sink442 = phi ptr [ @.str.5, %840 ], [ @.str.2, %836 ]
  store i32 %831, ptr %830, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror(i32 noundef %845, ptr noundef nonnull @.str.4) #9
  %847 = load i32, ptr %844, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror_debug(i32 noundef %847, ptr noundef nonnull @.str.4) #9
  %849 = load i32, ptr %830, align 4, !tbaa !5
  %850 = call ptr @strerror(i32 noundef %849) #9
  %851 = load i32, ptr %830, align 4, !tbaa !5
  %852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef nonnull %.str.5.sink442, i32 noundef %843, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %846, ptr noundef %848, ptr noundef %850, i32 noundef %851) #11
  call void @exit(i32 noundef 1) #12
  unreachable

853:                                              ; preds = %824
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr @test_count, align 4, !tbaa !5
  %856 = load i32, ptr %682, align 8
  %857 = and i32 %856, 16
  %.not100 = icmp eq i32 %857, 0
  br i1 %.not100, label %858, label %882

858:                                              ; preds = %853
  %859 = tail call ptr @__errno_location() #10
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = call i32 @s2n_print_stacktrace(ptr noundef %861) #9
  %863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %864 = trunc nuw i8 %863 to i1
  br i1 %864, label %865, label %869

865:                                              ; preds = %858
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = call i32 @fileno(ptr noundef %866) #9
  %868 = call i32 @isatty(i32 noundef %867) #9
  %.not101 = icmp eq i32 %868, 0
  br i1 %.not101, label %869, label %870

869:                                              ; preds = %865, %858
  br label %870

870:                                              ; preds = %865, %869
  %.str.5.sink453 = phi ptr [ @.str.5, %869 ], [ @.str.2, %865 ]
  store i32 %860, ptr %859, align 4, !tbaa !5
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = load i32, ptr @test_count, align 4, !tbaa !5
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror(i32 noundef %874, ptr noundef nonnull @.str.4) #9
  %876 = load i32, ptr %873, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror_debug(i32 noundef %876, ptr noundef nonnull @.str.4) #9
  %878 = load i32, ptr %859, align 4, !tbaa !5
  %879 = call ptr @strerror(i32 noundef %878) #9
  %880 = load i32, ptr %859, align 4, !tbaa !5
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %871, ptr noundef nonnull %.str.5.sink453, i32 noundef %872, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %875, ptr noundef %877, ptr noundef %879, i32 noundef %880) #11
  call void @exit(i32 noundef 1) #12
  unreachable

882:                                              ; preds = %853
  %883 = add nsw i32 %854, 2
  store i32 %883, ptr @test_count, align 4, !tbaa !5
  %884 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #9
  %885 = icmp eq i32 %884, -1
  br i1 %885, label %886, label %910

886:                                              ; preds = %882
  %887 = tail call ptr @__errno_location() #10
  %888 = load i32, ptr %887, align 4, !tbaa !5
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = call i32 @s2n_print_stacktrace(ptr noundef %889) #9
  %891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %892 = trunc nuw i8 %891 to i1
  br i1 %892, label %893, label %897

893:                                              ; preds = %886
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = call i32 @fileno(ptr noundef %894) #9
  %896 = call i32 @isatty(i32 noundef %895) #9
  %.not109 = icmp eq i32 %896, 0
  br i1 %.not109, label %897, label %898

897:                                              ; preds = %893, %886
  br label %898

898:                                              ; preds = %893, %897
  %.str.5.sink464 = phi ptr [ @.str.5, %897 ], [ @.str.2, %893 ]
  store i32 %888, ptr %887, align 4, !tbaa !5
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror(i32 noundef %902, ptr noundef nonnull @.str.4) #9
  %904 = load i32, ptr %901, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror_debug(i32 noundef %904, ptr noundef nonnull @.str.4) #9
  %906 = load i32, ptr %887, align 4, !tbaa !5
  %907 = call ptr @strerror(i32 noundef %906) #9
  %908 = load i32, ptr %887, align 4, !tbaa !5
  %909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %899, ptr noundef nonnull %.str.5.sink464, i32 noundef %900, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %903, ptr noundef %905, ptr noundef %907, i32 noundef %908) #11
  call void @exit(i32 noundef 1) #12
  unreachable

910:                                              ; preds = %882
  %911 = load i32, ptr @test_count, align 4, !tbaa !5
  %912 = add nsw i32 %911, 1
  store i32 %912, ptr @test_count, align 4, !tbaa !5
  %913 = call i32 @s2n_connection_free(ptr noundef nonnull %682) #9
  %914 = icmp eq i32 %913, -1
  br i1 %914, label %915, label %939

915:                                              ; preds = %910
  %916 = tail call ptr @__errno_location() #10
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @s2n_print_stacktrace(ptr noundef %918) #9
  %920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %921 = trunc nuw i8 %920 to i1
  br i1 %921, label %922, label %926

922:                                              ; preds = %915
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = call i32 @fileno(ptr noundef %923) #9
  %925 = call i32 @isatty(i32 noundef %924) #9
  %.not108 = icmp eq i32 %925, 0
  br i1 %.not108, label %926, label %927

926:                                              ; preds = %922, %915
  br label %927

927:                                              ; preds = %922, %926
  %.str.5.sink475 = phi ptr [ @.str.5, %926 ], [ @.str.2, %922 ]
  store i32 %917, ptr %916, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call ptr @s2n_strerror(i32 noundef %931, ptr noundef nonnull @.str.4) #9
  %933 = load i32, ptr %930, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror_debug(i32 noundef %933, ptr noundef nonnull @.str.4) #9
  %935 = load i32, ptr %916, align 4, !tbaa !5
  %936 = call ptr @strerror(i32 noundef %935) #9
  %937 = load i32, ptr %916, align 4, !tbaa !5
  %938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %928, ptr noundef nonnull %.str.5.sink475, i32 noundef %929, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %932, ptr noundef %934, ptr noundef %936, i32 noundef %937) #11
  call void @exit(i32 noundef 1) #12
  unreachable

939:                                              ; preds = %910
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = add nsw i32 %940, 1
  store i32 %941, ptr @test_count, align 4, !tbaa !5
  %942 = call i32 @s2n_config_free(ptr noundef nonnull %125) #9
  %943 = icmp eq i32 %942, -1
  br i1 %943, label %944, label %968

944:                                              ; preds = %939
  %945 = tail call ptr @__errno_location() #10
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = call i32 @s2n_print_stacktrace(ptr noundef %947) #9
  %949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %950 = trunc nuw i8 %949 to i1
  br i1 %950, label %951, label %955

951:                                              ; preds = %944
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = call i32 @fileno(ptr noundef %952) #9
  %954 = call i32 @isatty(i32 noundef %953) #9
  %.not107 = icmp eq i32 %954, 0
  br i1 %.not107, label %955, label %956

955:                                              ; preds = %951, %944
  br label %956

956:                                              ; preds = %951, %955
  %.str.5.sink486 = phi ptr [ @.str.5, %955 ], [ @.str.2, %951 ]
  store i32 %946, ptr %945, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef nonnull @.str.4) #9
  %962 = load i32, ptr %959, align 4, !tbaa !5
  %963 = call ptr @s2n_strerror_debug(i32 noundef %962, ptr noundef nonnull @.str.4) #9
  %964 = load i32, ptr %945, align 4, !tbaa !5
  %965 = call ptr @strerror(i32 noundef %964) #9
  %966 = load i32, ptr %945, align 4, !tbaa !5
  %967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %957, ptr noundef nonnull %.str.5.sink486, i32 noundef %958, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %961, ptr noundef %963, ptr noundef %965, i32 noundef %966) #11
  call void @exit(i32 noundef 1) #12
  unreachable

968:                                              ; preds = %939
  %969 = call i32 @s2n_cleanup() #9
  %970 = icmp eq i32 %969, -1
  br i1 %970, label %971, label %995

971:                                              ; preds = %968
  %972 = tail call ptr @__errno_location() #10
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = call i32 @s2n_print_stacktrace(ptr noundef %974) #9
  %976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %977 = trunc nuw i8 %976 to i1
  br i1 %977, label %978, label %982

978:                                              ; preds = %971
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = call i32 @fileno(ptr noundef %979) #9
  %981 = call i32 @isatty(i32 noundef %980) #9
  %.not106 = icmp eq i32 %981, 0
  br i1 %.not106, label %982, label %983

982:                                              ; preds = %978, %971
  br label %983

983:                                              ; preds = %978, %982
  %.str.5.sink497 = phi ptr [ @.str.5, %982 ], [ @.str.2, %978 ]
  store i32 %973, ptr %972, align 4, !tbaa !5
  %984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %985 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %987, ptr noundef nonnull @.str.4) #9
  %989 = load i32, ptr %986, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror_debug(i32 noundef %989, ptr noundef nonnull @.str.4) #9
  %991 = load i32, ptr %972, align 4, !tbaa !5
  %992 = call ptr @strerror(i32 noundef %991) #9
  %993 = load i32, ptr %972, align 4, !tbaa !5
  %994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %984, ptr noundef nonnull %.str.5.sink497, i32 noundef %985, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %988, ptr noundef %990, ptr noundef %992, i32 noundef %993) #11
  call void @exit(i32 noundef 1) #12
  unreachable

995:                                              ; preds = %968
  %996 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %997 = icmp eq i32 %996, -1
  br i1 %997, label %998, label %1022

998:                                              ; preds = %995
  %999 = tail call ptr @__errno_location() #10
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = call i32 @s2n_print_stacktrace(ptr noundef %1001) #9
  %1003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1004 = trunc nuw i8 %1003 to i1
  br i1 %1004, label %1005, label %1009

1005:                                             ; preds = %998
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = call i32 @fileno(ptr noundef %1006) #9
  %1008 = call i32 @isatty(i32 noundef %1007) #9
  %.not105 = icmp eq i32 %1008, 0
  br i1 %.not105, label %1009, label %1010

1009:                                             ; preds = %1005, %998
  br label %1010

1010:                                             ; preds = %1005, %1009
  %.str.5.sink508 = phi ptr [ @.str.5, %1009 ], [ @.str.2, %1005 ]
  store i32 %1000, ptr %999, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror(i32 noundef %1014, ptr noundef nonnull @.str.4) #9
  %1016 = load i32, ptr %1013, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror_debug(i32 noundef %1016, ptr noundef nonnull @.str.4) #9
  %1018 = load i32, ptr %999, align 4, !tbaa !5
  %1019 = call ptr @strerror(i32 noundef %1018) #9
  %1020 = load i32, ptr %999, align 4, !tbaa !5
  %1021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1011, ptr noundef nonnull %.str.5.sink508, i32 noundef %1012, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %1015, ptr noundef %1017, ptr noundef %1019, i32 noundef %1020) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1022:                                             ; preds = %995
  %1023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1024 = trunc nuw i8 %1023 to i1
  br i1 %1024, label %1025, label %1036

1025:                                             ; preds = %1022
  %1026 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1027 = call i32 @fileno(ptr noundef %1026) #9
  %1028 = call i32 @isatty(i32 noundef %1027) #9
  %.not102 = icmp eq i32 %1028, 0
  br i1 %.not102, label %1036, label %1029

1029:                                             ; preds = %1025
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not104 = icmp eq i32 %1030, 0
  %1031 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not104, label %1034, label %1032

1032:                                             ; preds = %1029
  %1033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef nonnull @.str.31, i32 noundef %1030) #9
  br label %1043

1034:                                             ; preds = %1029
  %1035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef nonnull @.str.32) #9
  br label %1043

1036:                                             ; preds = %1025, %1022
  %1037 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not103 = icmp eq i32 %1037, 0
  %1038 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not103, label %1041, label %1039

1039:                                             ; preds = %1036
  %1040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1038, ptr noundef nonnull @.str.33, i32 noundef %1037) #9
  br label %1043

1041:                                             ; preds = %1036
  %1042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1038, ptr noundef nonnull @.str.34) #9
  br label %1043

1043:                                             ; preds = %1039, %1041, %1032, %1034
  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 ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_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_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr 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 = !{!19, !10, i64 232}
!19 = !{!"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, !20, i64 160, !21, i64 168, !21, 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, !22, i64 240, !10, i64 632, !10, i64 640, !23, i64 648, !29, i64 1144, !32, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !28, i64 2792, !6, i64 2816, !28, i64 2824, !28, i64 2848, !28, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !28, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !28, i64 4032, !28, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !28, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!20 = !{!"s2n_timer", !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!23 = !{!"s2n_kex_parameters", !24, i64 0, !25, i64 8, !7, i64 24, !25, i64 56, !26, i64 72, !26, i64 184, !7, i64 296, !27, i64 360, !28, i64 448, !28, i64 472}
!24 = !{!"s2n_dh_params", !10, i64 0}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!"s2n_kem_group_params", !10, i64 0, !27, i64 8, !25, i64 96}
!27 = !{!"s2n_kem_params", !10, i64 0, !28, i64 8, !28, i64 32, !28, i64 56, !12, i64 80}
!28 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!29 = !{!"s2n_handshake_parameters", !30, i64 0, !30, i64 48, !28, i64 96, !6, i64 120, !31, 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}
!30 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!31 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!32 = !{!"s2n_psk_parameters", !6, i64 0, !33, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !28, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"s2n_stuffer", !28, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, 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, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !28, i64 0, !39, i64 24, !28, i64 728, !28, i64 752, !28, 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}
!39 = !{!"", !7, i64 0, !28, i64 672, !17, i64 696}
!40 = !{!"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, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !28, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!45, !10, i64 0}
!45 = !{!"s2n_crypto_parameters", !10, i64 0, !46, i64 8, !46, i64 16, !47, i64 24, !47, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!46 = !{!"s2n_session_key", !10, i64 0}
!47 = !{!"s2n_hmac_state", !6, i64 0, !17, i64 4, !6, i64 8, !17, i64 12, !7, i64 14, !48, i64 16, !48, i64 72, !48, i64 128, !48, i64 184, !7, i64 240, !7, i64 368}
!48 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !21, i64 16, !7, i64 24}
!49 = !{!16, !10, i64 8}
!50 = !{!7, !7, i64 0}
!51 = !{!34, !6, i64 28}
!52 = !{!34, !6, i64 24}
!53 = !{!16, !10, i64 16}


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