; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_sct_list_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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [93 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
@.str.11 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_client_sct_list_extension = external constant %struct.s2n_extension_type, align 8
@.str.12 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.29 = 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 ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_stuffer, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %struct.s2n_stuffer, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = 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 %48

48:                                               ; preds = %2
  br label %49

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

54:                                               ; preds = %49
  %55 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %56 = icmp eq i32 %55, -1
  br i1 %56, label %57, label %108

57:                                               ; preds = %54
  br label %58

58:                                               ; preds = %57
  br label %59

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

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

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

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

105:                                              ; preds = %88, %71
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %106

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

107:                                              ; No predecessors!
  br label %108

108:                                              ; preds = %107, %54
  br label %109

109:                                              ; preds = %108
  br label %110

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

115:                                              ; preds = %110
  br label %116

116:                                              ; preds = %115
  br label %117

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

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

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

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

163:                                              ; preds = %146, %129
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %164

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

165:                                              ; No predecessors!
  br label %166

166:                                              ; preds = %165, %110
  br label %167

167:                                              ; preds = %166
  br label %168

168:                                              ; preds = %167
  br label %169

169:                                              ; preds = %168
  %170 = call i32 @s2n_init()
  %171 = icmp eq i32 %170, -1
  br i1 %171, label %172, label %223

172:                                              ; preds = %169
  br label %173

173:                                              ; preds = %172
  br label %174

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

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

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

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

220:                                              ; preds = %203, %186
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %221

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

222:                                              ; No predecessors!
  br label %223

223:                                              ; preds = %222, %169
  br label %224

224:                                              ; preds = %223
  br label %225

225:                                              ; preds = %224
  br label %226

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

231:                                              ; preds = %226
  br label %232

232:                                              ; preds = %231
  br label %233

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

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

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

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

279:                                              ; preds = %262, %245
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %280

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

281:                                              ; No predecessors!
  br label %282

282:                                              ; preds = %281, %226
  br label %283

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

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

289:                                              ; preds = %284
  br label %290

290:                                              ; preds = %289
  br label %291

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

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

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

320:                                              ; preds = %298, %291
  %321 = load i32, ptr %11, align 4, !tbaa !5
  %322 = call ptr @__errno_location() #9
  store i32 %321, ptr %322, align 4, !tbaa !5
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = load i32, ptr @test_count, align 4, !tbaa !5
  %325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = call ptr @s2n_strerror(i32 noundef %326, ptr noundef @.str.4)
  %328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %329 = load i32, ptr %328, align 4, !tbaa !5
  %330 = call ptr @s2n_strerror_debug(i32 noundef %329, ptr noundef @.str.4)
  %331 = call ptr @__errno_location() #9
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = call ptr @strerror(i32 noundef %332) #8
  %334 = call ptr @__errno_location() #9
  %335 = load i32, ptr %334, align 4, !tbaa !5
  %336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %323, ptr noundef @.str.5, i32 noundef %324, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 27, ptr noundef %327, ptr noundef %330, ptr noundef %333, i32 noundef %335) #8
  br label %337

337:                                              ; preds = %320, %303
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  br label %338

338:                                              ; preds = %337
  br label %339

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

340:                                              ; No predecessors!
  br label %341

341:                                              ; preds = %340
  br label %342

342:                                              ; preds = %341, %284
  br label %343

343:                                              ; preds = %342
  br label %344

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

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

350:                                              ; preds = %345
  br label %351

351:                                              ; preds = %350
  br label %352

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

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

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

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

398:                                              ; preds = %381, %364
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %399

399:                                              ; preds = %398
  br label %400

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

401:                                              ; No predecessors!
  br label %402

402:                                              ; preds = %401
  br label %403

403:                                              ; preds = %402, %345
  br label %404

404:                                              ; preds = %403
  br label %405

405:                                              ; preds = %404
  br label %406

406:                                              ; preds = %405
  %407 = load i32, ptr @test_count, align 4, !tbaa !5
  %408 = add nsw i32 %407, 1
  store i32 %408, ptr @test_count, align 4, !tbaa !5
  %409 = load ptr, ptr %12, align 8, !tbaa !9
  %410 = load ptr, ptr %10, align 8, !tbaa !9
  %411 = call i32 @s2n_connection_set_config(ptr noundef %409, ptr noundef %410)
  %412 = icmp eq i32 %411, -1
  br i1 %412, label %413, label %466

413:                                              ; preds = %406
  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 31, 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 31, 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, %406
  br label %467

467:                                              ; preds = %466
  br label %468

468:                                              ; preds = %467
  br label %469

469:                                              ; preds = %468
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr @test_count, align 4, !tbaa !5
  %472 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_sct_list_extension, i32 0, i32 5), align 8, !tbaa !15
  %473 = load ptr, ptr %12, align 8, !tbaa !9
  %474 = call zeroext i1 %472(ptr noundef %473)
  br i1 %474, label %475, label %528

475:                                              ; preds = %469
  br label %476

476:                                              ; preds = %475
  br label %477

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

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

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

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

523:                                              ; preds = %506, %489
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %524

524:                                              ; preds = %523
  br label %525

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

526:                                              ; No predecessors!
  br label %527

527:                                              ; preds = %526
  br label %528

528:                                              ; preds = %527, %469
  br label %529

529:                                              ; preds = %528
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr @test_count, align 4, !tbaa !5
  %534 = load ptr, ptr %10, align 8, !tbaa !9
  %535 = call i32 @s2n_config_set_ct_support_level(ptr noundef %534, i32 noundef 1)
  %536 = icmp eq i32 %535, -1
  br i1 %536, label %537, label %590

537:                                              ; preds = %531
  br label %538

538:                                              ; preds = %537
  br label %539

539:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %540 = call ptr @__errno_location() #9
  %541 = load i32, ptr %540, align 4, !tbaa !5
  store i32 %541, ptr %16, align 4, !tbaa !5
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = call i32 @s2n_print_stacktrace(ptr noundef %542)
  %544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %545 = trunc i8 %544 to i1
  br i1 %545, label %546, label %568

546:                                              ; preds = %539
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = call i32 @fileno(ptr noundef %547) #8
  %549 = call i32 @isatty(i32 noundef %548) #8
  %550 = icmp ne i32 %549, 0
  br i1 %550, label %551, label %568

551:                                              ; preds = %546
  %552 = load i32, ptr %16, align 4, !tbaa !5
  %553 = call ptr @__errno_location() #9
  store i32 %552, ptr %553, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror(i32 noundef %557, ptr noundef @.str.4)
  %559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror_debug(i32 noundef %560, ptr noundef @.str.4)
  %562 = call ptr @__errno_location() #9
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = call ptr @strerror(i32 noundef %563) #8
  %565 = call ptr @__errno_location() #9
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %554, ptr noundef @.str.2, i32 noundef %555, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 37, ptr noundef %558, ptr noundef %561, ptr noundef %564, i32 noundef %566) #8
  br label %585

568:                                              ; preds = %546, %539
  %569 = load i32, ptr %16, align 4, !tbaa !5
  %570 = call ptr @__errno_location() #9
  store i32 %569, ptr %570, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = load i32, ptr @test_count, align 4, !tbaa !5
  %573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror(i32 noundef %574, ptr noundef @.str.4)
  %576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror_debug(i32 noundef %577, ptr noundef @.str.4)
  %579 = call ptr @__errno_location() #9
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @strerror(i32 noundef %580) #8
  %582 = call ptr @__errno_location() #9
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %571, ptr noundef @.str.5, i32 noundef %572, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 37, ptr noundef %575, ptr noundef %578, ptr noundef %581, i32 noundef %583) #8
  br label %585

585:                                              ; preds = %568, %551
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %586

586:                                              ; preds = %585
  br label %587

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

588:                                              ; No predecessors!
  br label %589

589:                                              ; preds = %588
  br label %590

590:                                              ; preds = %589, %531
  br label %591

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591
  br label %593

593:                                              ; preds = %592
  %594 = load i32, ptr @test_count, align 4, !tbaa !5
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr @test_count, align 4, !tbaa !5
  %596 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_sct_list_extension, i32 0, i32 5), align 8, !tbaa !15
  %597 = load ptr, ptr %12, align 8, !tbaa !9
  %598 = call zeroext i1 %596(ptr noundef %597)
  br i1 %598, label %652, label %599

599:                                              ; preds = %593
  br label %600

600:                                              ; preds = %599
  br label %601

601:                                              ; preds = %600
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %602 = call ptr @__errno_location() #9
  %603 = load i32, ptr %602, align 4, !tbaa !5
  store i32 %603, ptr %17, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = call i32 @s2n_print_stacktrace(ptr noundef %604)
  %606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %607 = trunc i8 %606 to i1
  br i1 %607, label %608, label %630

608:                                              ; preds = %601
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = call i32 @fileno(ptr noundef %609) #8
  %611 = call i32 @isatty(i32 noundef %610) #8
  %612 = icmp ne i32 %611, 0
  br i1 %612, label %613, label %630

613:                                              ; preds = %608
  %614 = load i32, ptr %17, align 4, !tbaa !5
  %615 = call ptr @__errno_location() #9
  store i32 %614, ptr %615, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = load i32, ptr @test_count, align 4, !tbaa !5
  %618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call ptr @s2n_strerror(i32 noundef %619, ptr noundef @.str.4)
  %621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call ptr @s2n_strerror_debug(i32 noundef %622, ptr noundef @.str.4)
  %624 = call ptr @__errno_location() #9
  %625 = load i32, ptr %624, align 4, !tbaa !5
  %626 = call ptr @strerror(i32 noundef %625) #8
  %627 = call ptr @__errno_location() #9
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %616, ptr noundef @.str.2, i32 noundef %617, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 38, ptr noundef %620, ptr noundef %623, ptr noundef %626, i32 noundef %628) #8
  br label %647

630:                                              ; preds = %608, %601
  %631 = load i32, ptr %17, align 4, !tbaa !5
  %632 = call ptr @__errno_location() #9
  store i32 %631, ptr %632, align 4, !tbaa !5
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = load i32, ptr @test_count, align 4, !tbaa !5
  %635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror(i32 noundef %636, ptr noundef @.str.4)
  %638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %639 = load i32, ptr %638, align 4, !tbaa !5
  %640 = call ptr @s2n_strerror_debug(i32 noundef %639, ptr noundef @.str.4)
  %641 = call ptr @__errno_location() #9
  %642 = load i32, ptr %641, align 4, !tbaa !5
  %643 = call ptr @strerror(i32 noundef %642) #8
  %644 = call ptr @__errno_location() #9
  %645 = load i32, ptr %644, align 4, !tbaa !5
  %646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %633, ptr noundef @.str.5, i32 noundef %634, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 38, ptr noundef %637, ptr noundef %640, ptr noundef %643, i32 noundef %645) #8
  br label %647

647:                                              ; preds = %630, %613
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %648

648:                                              ; preds = %647
  br label %649

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

650:                                              ; No predecessors!
  br label %651

651:                                              ; preds = %650
  br label %652

652:                                              ; preds = %651, %593
  br label %653

653:                                              ; preds = %652
  br label %654

654:                                              ; preds = %653
  br label %655

655:                                              ; preds = %654
  %656 = load i32, ptr @test_count, align 4, !tbaa !5
  %657 = add nsw i32 %656, 1
  store i32 %657, ptr @test_count, align 4, !tbaa !5
  %658 = load ptr, ptr %12, align 8, !tbaa !9
  %659 = call i32 @s2n_connection_free(ptr noundef %658)
  %660 = icmp eq i32 %659, -1
  br i1 %660, label %661, label %714

661:                                              ; preds = %655
  br label %662

662:                                              ; preds = %661
  br label %663

663:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %664 = call ptr @__errno_location() #9
  %665 = load i32, ptr %664, align 4, !tbaa !5
  store i32 %665, ptr %18, align 4, !tbaa !5
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = call i32 @s2n_print_stacktrace(ptr noundef %666)
  %668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %669 = trunc i8 %668 to i1
  br i1 %669, label %670, label %692

670:                                              ; preds = %663
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = call i32 @fileno(ptr noundef %671) #8
  %673 = call i32 @isatty(i32 noundef %672) #8
  %674 = icmp ne i32 %673, 0
  br i1 %674, label %675, label %692

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

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

709:                                              ; preds = %692, %675
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %710

710:                                              ; preds = %709
  br label %711

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

712:                                              ; No predecessors!
  br label %713

713:                                              ; preds = %712
  br label %714

714:                                              ; preds = %713, %655
  br label %715

715:                                              ; preds = %714
  br label %716

716:                                              ; preds = %715
  br label %717

717:                                              ; preds = %716
  %718 = load i32, ptr @test_count, align 4, !tbaa !5
  %719 = add nsw i32 %718, 1
  store i32 %719, ptr @test_count, align 4, !tbaa !5
  %720 = load ptr, ptr %10, align 8, !tbaa !9
  %721 = call i32 @s2n_config_free(ptr noundef %720)
  %722 = icmp eq i32 %721, -1
  br i1 %722, label %723, label %776

723:                                              ; preds = %717
  br label %724

724:                                              ; preds = %723
  br label %725

725:                                              ; preds = %724
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %726 = call ptr @__errno_location() #9
  %727 = load i32, ptr %726, align 4, !tbaa !5
  store i32 %727, ptr %19, align 4, !tbaa !5
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @s2n_print_stacktrace(ptr noundef %728)
  %730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %731 = trunc i8 %730 to i1
  br i1 %731, label %732, label %754

732:                                              ; preds = %725
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = call i32 @fileno(ptr noundef %733) #8
  %735 = call i32 @isatty(i32 noundef %734) #8
  %736 = icmp ne i32 %735, 0
  br i1 %736, label %737, label %754

737:                                              ; preds = %732
  %738 = load i32, ptr %19, align 4, !tbaa !5
  %739 = call ptr @__errno_location() #9
  store i32 %738, ptr %739, align 4, !tbaa !5
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = call ptr @s2n_strerror(i32 noundef %743, ptr noundef @.str.4)
  %745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call ptr @s2n_strerror_debug(i32 noundef %746, ptr noundef @.str.4)
  %748 = call ptr @__errno_location() #9
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = call ptr @strerror(i32 noundef %749) #8
  %751 = call ptr @__errno_location() #9
  %752 = load i32, ptr %751, align 4, !tbaa !5
  %753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %740, ptr noundef @.str.2, i32 noundef %741, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 41, ptr noundef %744, ptr noundef %747, ptr noundef %750, i32 noundef %752) #8
  br label %771

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

771:                                              ; preds = %754, %737
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %772

772:                                              ; preds = %771
  br label %773

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

774:                                              ; No predecessors!
  br label %775

775:                                              ; preds = %774
  br label %776

776:                                              ; preds = %775, %717
  br label %777

777:                                              ; preds = %776
  br label %778

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

779:                                              ; preds = %778
  %780 = load i32, ptr @test_count, align 4, !tbaa !5
  %781 = add nsw i32 %780, 1
  store i32 %781, ptr @test_count, align 4, !tbaa !5
  %782 = call ptr @s2n_config_new()
  store ptr %782, ptr %20, align 8, !tbaa !9
  %783 = icmp eq ptr %782, null
  br i1 %783, label %784, label %837

784:                                              ; preds = %779
  br label %785

785:                                              ; preds = %784
  br label %786

786:                                              ; preds = %785
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %787 = call ptr @__errno_location() #9
  %788 = load i32, ptr %787, align 4, !tbaa !5
  store i32 %788, ptr %21, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = call i32 @s2n_print_stacktrace(ptr noundef %789)
  %791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %792 = trunc i8 %791 to i1
  br i1 %792, label %793, label %815

793:                                              ; preds = %786
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = call i32 @fileno(ptr noundef %794) #8
  %796 = call i32 @isatty(i32 noundef %795) #8
  %797 = icmp ne i32 %796, 0
  br i1 %797, label %798, label %815

798:                                              ; preds = %793
  %799 = load i32, ptr %21, align 4, !tbaa !5
  %800 = call ptr @__errno_location() #9
  store i32 %799, ptr %800, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef @.str.4)
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror_debug(i32 noundef %807, ptr noundef @.str.4)
  %809 = call ptr @__errno_location() #9
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @strerror(i32 noundef %810) #8
  %812 = call ptr @__errno_location() #9
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef @.str.2, i32 noundef %802, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 47, ptr noundef %805, ptr noundef %808, ptr noundef %811, i32 noundef %813) #8
  br label %832

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

832:                                              ; preds = %815, %798
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %833

833:                                              ; preds = %832
  br label %834

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

835:                                              ; No predecessors!
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836, %779
  br label %838

838:                                              ; preds = %837
  br label %839

839:                                              ; preds = %838
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  store ptr null, ptr %22, align 8, !tbaa !9
  br label %840

840:                                              ; preds = %839
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %842 = add nsw i32 %841, 1
  store i32 %842, ptr @test_count, align 4, !tbaa !5
  %843 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %843, ptr %22, align 8, !tbaa !9
  %844 = icmp eq ptr %843, null
  br i1 %844, label %845, label %898

845:                                              ; preds = %840
  br label %846

846:                                              ; preds = %845
  br label %847

847:                                              ; preds = %846
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %848 = call ptr @__errno_location() #9
  %849 = load i32, ptr %848, align 4, !tbaa !5
  store i32 %849, ptr %23, align 4, !tbaa !5
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = call i32 @s2n_print_stacktrace(ptr noundef %850)
  %852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %853 = trunc i8 %852 to i1
  br i1 %853, label %854, label %876

854:                                              ; preds = %847
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = call i32 @fileno(ptr noundef %855) #8
  %857 = call i32 @isatty(i32 noundef %856) #8
  %858 = icmp ne i32 %857, 0
  br i1 %858, label %859, label %876

859:                                              ; preds = %854
  %860 = load i32, ptr %23, align 4, !tbaa !5
  %861 = call ptr @__errno_location() #9
  store i32 %860, ptr %861, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call ptr @s2n_strerror(i32 noundef %865, ptr noundef @.str.4)
  %867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror_debug(i32 noundef %868, ptr noundef @.str.4)
  %870 = call ptr @__errno_location() #9
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @strerror(i32 noundef %871) #8
  %873 = call ptr @__errno_location() #9
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %862, ptr noundef @.str.2, i32 noundef %863, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 50, ptr noundef %866, ptr noundef %869, ptr noundef %872, i32 noundef %874) #8
  br label %893

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

893:                                              ; preds = %876, %859
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %894

894:                                              ; preds = %893
  br label %895

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

896:                                              ; No predecessors!
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897, %840
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  br label %901

901:                                              ; preds = %900
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = add nsw i32 %902, 1
  store i32 %903, ptr @test_count, align 4, !tbaa !5
  %904 = load ptr, ptr %22, align 8, !tbaa !9
  %905 = load ptr, ptr %20, align 8, !tbaa !9
  %906 = call i32 @s2n_connection_set_config(ptr noundef %904, ptr noundef %905)
  %907 = icmp eq i32 %906, -1
  br i1 %907, label %908, label %961

908:                                              ; preds = %901
  br label %909

909:                                              ; preds = %908
  br label %910

910:                                              ; preds = %909
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %911 = call ptr @__errno_location() #9
  %912 = load i32, ptr %911, align 4, !tbaa !5
  store i32 %912, ptr %24, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @s2n_print_stacktrace(ptr noundef %913)
  %915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %916 = trunc i8 %915 to i1
  br i1 %916, label %917, label %939

917:                                              ; preds = %910
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @fileno(ptr noundef %918) #8
  %920 = call i32 @isatty(i32 noundef %919) #8
  %921 = icmp ne i32 %920, 0
  br i1 %921, label %922, label %939

922:                                              ; preds = %917
  %923 = load i32, ptr %24, align 4, !tbaa !5
  %924 = call ptr @__errno_location() #9
  store i32 %923, ptr %924, align 4, !tbaa !5
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = load i32, ptr @test_count, align 4, !tbaa !5
  %927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror(i32 noundef %928, ptr noundef @.str.4)
  %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_debug(i32 noundef %931, ptr noundef @.str.4)
  %933 = call ptr @__errno_location() #9
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call ptr @strerror(i32 noundef %934) #8
  %936 = call ptr @__errno_location() #9
  %937 = load i32, ptr %936, align 4, !tbaa !5
  %938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %925, ptr noundef @.str.2, i32 noundef %926, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 51, ptr noundef %929, ptr noundef %932, ptr noundef %935, i32 noundef %937) #8
  br label %956

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

956:                                              ; preds = %939, %922
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %957

957:                                              ; preds = %956
  br label %958

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

959:                                              ; No predecessors!
  br label %960

960:                                              ; preds = %959
  br label %961

961:                                              ; preds = %960, %901
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962
  call void @llvm.lifetime.start.p0(i64 40, ptr %25) #8
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 40, i1 false)
  br label %964

964:                                              ; preds = %963
  %965 = load i32, ptr @test_count, align 4, !tbaa !5
  %966 = add nsw i32 %965, 1
  store i32 %966, ptr @test_count, align 4, !tbaa !5
  %967 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %25, i32 noundef 0)
  %968 = icmp eq i32 %967, -1
  br i1 %968, label %969, label %1022

969:                                              ; preds = %964
  br label %970

970:                                              ; preds = %969
  br label %971

971:                                              ; preds = %970
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %972 = call ptr @__errno_location() #9
  %973 = load i32, ptr %972, align 4, !tbaa !5
  store i32 %973, ptr %26, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = call i32 @s2n_print_stacktrace(ptr noundef %974)
  %976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %977 = trunc i8 %976 to i1
  br i1 %977, label %978, label %1000

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

983:                                              ; preds = %978
  %984 = load i32, ptr %26, align 4, !tbaa !5
  %985 = call ptr @__errno_location() #9
  store i32 %984, ptr %985, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = load i32, ptr @test_count, align 4, !tbaa !5
  %988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror(i32 noundef %989, ptr noundef @.str.4)
  %991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror_debug(i32 noundef %992, ptr noundef @.str.4)
  %994 = call ptr @__errno_location() #9
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @strerror(i32 noundef %995) #8
  %997 = call ptr @__errno_location() #9
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %986, ptr noundef @.str.2, i32 noundef %987, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 54, ptr noundef %990, ptr noundef %993, ptr noundef %996, i32 noundef %998) #8
  br label %1017

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

1017:                                             ; preds = %1000, %983
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

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

1020:                                             ; No predecessors!
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021, %964
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = add nsw i32 %1026, 1
  store i32 %1027, ptr @test_count, align 4, !tbaa !5
  %1028 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_sct_list_extension, i32 0, i32 3), align 8, !tbaa !18
  %1029 = load ptr, ptr %22, align 8, !tbaa !9
  %1030 = call i32 %1028(ptr noundef %1029, ptr noundef %25)
  %1031 = icmp eq i32 %1030, -1
  br i1 %1031, label %1032, label %1085

1032:                                             ; preds = %1025
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

1034:                                             ; preds = %1033
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %1035 = call ptr @__errno_location() #9
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  store i32 %1036, ptr %27, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = call i32 @s2n_print_stacktrace(ptr noundef %1037)
  %1039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1040 = trunc i8 %1039 to i1
  br i1 %1040, label %1041, label %1063

1041:                                             ; preds = %1034
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = call i32 @fileno(ptr noundef %1042) #8
  %1044 = call i32 @isatty(i32 noundef %1043) #8
  %1045 = icmp ne i32 %1044, 0
  br i1 %1045, label %1046, label %1063

1046:                                             ; preds = %1041
  %1047 = load i32, ptr %27, align 4, !tbaa !5
  %1048 = call ptr @__errno_location() #9
  store i32 %1047, ptr %1048, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef @.str.4)
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef @.str.4)
  %1057 = call ptr @__errno_location() #9
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @strerror(i32 noundef %1058) #8
  %1060 = call ptr @__errno_location() #9
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef @.str.2, i32 noundef %1050, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 56, ptr noundef %1053, ptr noundef %1056, ptr noundef %1059, i32 noundef %1061) #8
  br label %1080

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

1080:                                             ; preds = %1063, %1046
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

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

1083:                                             ; No predecessors!
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

1085:                                             ; preds = %1084, %1025
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = getelementptr inbounds %struct.s2n_stuffer, ptr %25, i32 0, i32 2
  %1092 = load i32, ptr %1091, align 4, !tbaa !19
  %1093 = getelementptr inbounds %struct.s2n_stuffer, ptr %25, i32 0, i32 1
  %1094 = load i32, ptr %1093, align 8, !tbaa !22
  %1095 = sub i32 %1092, %1094
  %1096 = icmp eq i32 %1095, 0
  br i1 %1096, label %1150, label %1097

1097:                                             ; preds = %1088
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

1099:                                             ; preds = %1098
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1100 = call ptr @__errno_location() #9
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  store i32 %1101, ptr %28, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = call i32 @s2n_print_stacktrace(ptr noundef %1102)
  %1104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1105 = trunc i8 %1104 to i1
  br i1 %1105, label %1106, label %1128

1106:                                             ; preds = %1099
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = call i32 @fileno(ptr noundef %1107) #8
  %1109 = call i32 @isatty(i32 noundef %1108) #8
  %1110 = icmp ne i32 %1109, 0
  br i1 %1110, label %1111, label %1128

1111:                                             ; preds = %1106
  %1112 = load i32, ptr %28, align 4, !tbaa !5
  %1113 = call ptr @__errno_location() #9
  store i32 %1112, ptr %1113, align 4, !tbaa !5
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror(i32 noundef %1117, ptr noundef @.str.4)
  %1119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1120 = load i32, ptr %1119, align 4, !tbaa !5
  %1121 = call ptr @s2n_strerror_debug(i32 noundef %1120, ptr noundef @.str.4)
  %1122 = call ptr @__errno_location() #9
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = call ptr @strerror(i32 noundef %1123) #8
  %1125 = call ptr @__errno_location() #9
  %1126 = load i32, ptr %1125, align 4, !tbaa !5
  %1127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1114, ptr noundef @.str.2, i32 noundef %1115, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1118, ptr noundef %1121, ptr noundef %1124, i32 noundef %1126) #8
  br label %1145

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

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

1146:                                             ; preds = %1145
  br label %1147

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

1148:                                             ; No predecessors!
  br label %1149

1149:                                             ; preds = %1148
  br label %1150

1150:                                             ; preds = %1149, %1088
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  br label %1153

1153:                                             ; preds = %1152
  %1154 = load i32, ptr @test_count, align 4, !tbaa !5
  %1155 = add nsw i32 %1154, 1
  store i32 %1155, ptr @test_count, align 4, !tbaa !5
  %1156 = call i32 @s2n_stuffer_free(ptr noundef %25)
  %1157 = icmp eq i32 %1156, -1
  br i1 %1157, label %1158, label %1211

1158:                                             ; preds = %1153
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %1161 = call ptr @__errno_location() #9
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  store i32 %1162, ptr %29, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = call i32 @s2n_print_stacktrace(ptr noundef %1163)
  %1165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1166 = trunc i8 %1165 to i1
  br i1 %1166, label %1167, label %1189

1167:                                             ; preds = %1160
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = call i32 @fileno(ptr noundef %1168) #8
  %1170 = call i32 @isatty(i32 noundef %1169) #8
  %1171 = icmp ne i32 %1170, 0
  br i1 %1171, label %1172, label %1189

1172:                                             ; preds = %1167
  %1173 = load i32, ptr %29, align 4, !tbaa !5
  %1174 = call ptr @__errno_location() #9
  store i32 %1173, ptr %1174, align 4, !tbaa !5
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = load i32, ptr @test_count, align 4, !tbaa !5
  %1177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = call ptr @s2n_strerror(i32 noundef %1178, ptr noundef @.str.4)
  %1180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror_debug(i32 noundef %1181, ptr noundef @.str.4)
  %1183 = call ptr @__errno_location() #9
  %1184 = load i32, ptr %1183, align 4, !tbaa !5
  %1185 = call ptr @strerror(i32 noundef %1184) #8
  %1186 = call ptr @__errno_location() #9
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1175, ptr noundef @.str.2, i32 noundef %1176, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1179, ptr noundef %1182, ptr noundef %1185, i32 noundef %1187) #8
  br label %1206

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

1206:                                             ; preds = %1189, %1172
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

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

1209:                                             ; No predecessors!
  br label %1210

1210:                                             ; preds = %1209
  br label %1211

1211:                                             ; preds = %1210, %1153
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212
  br label %1214

1214:                                             ; preds = %1213
  %1215 = load i32, ptr @test_count, align 4, !tbaa !5
  %1216 = add nsw i32 %1215, 1
  store i32 %1216, ptr @test_count, align 4, !tbaa !5
  %1217 = load ptr, ptr %22, align 8, !tbaa !9
  %1218 = call i32 @s2n_connection_free(ptr noundef %1217)
  %1219 = icmp eq i32 %1218, -1
  br i1 %1219, label %1220, label %1273

1220:                                             ; preds = %1214
  br label %1221

1221:                                             ; preds = %1220
  br label %1222

1222:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %1223 = call ptr @__errno_location() #9
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  store i32 %1224, ptr %30, align 4, !tbaa !5
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @s2n_print_stacktrace(ptr noundef %1225)
  %1227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1228 = trunc i8 %1227 to i1
  br i1 %1228, label %1229, label %1251

1229:                                             ; preds = %1222
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = call i32 @fileno(ptr noundef %1230) #8
  %1232 = call i32 @isatty(i32 noundef %1231) #8
  %1233 = icmp ne i32 %1232, 0
  br i1 %1233, label %1234, label %1251

1234:                                             ; preds = %1229
  %1235 = load i32, ptr %30, align 4, !tbaa !5
  %1236 = call ptr @__errno_location() #9
  store i32 %1235, ptr %1236, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror(i32 noundef %1240, ptr noundef @.str.4)
  %1242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef @.str.4)
  %1245 = call ptr @__errno_location() #9
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call ptr @strerror(i32 noundef %1246) #8
  %1248 = call ptr @__errno_location() #9
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1237, ptr noundef @.str.2, i32 noundef %1238, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1241, ptr noundef %1244, ptr noundef %1247, i32 noundef %1249) #8
  br label %1268

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

1268:                                             ; preds = %1251, %1234
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

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

1271:                                             ; No predecessors!
  br label %1272

1272:                                             ; preds = %1271
  br label %1273

1273:                                             ; preds = %1272, %1214
  br label %1274

1274:                                             ; preds = %1273
  br label %1275

1275:                                             ; preds = %1274
  br label %1276

1276:                                             ; preds = %1275
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr @test_count, align 4, !tbaa !5
  %1279 = load ptr, ptr %20, align 8, !tbaa !9
  %1280 = call i32 @s2n_config_free(ptr noundef %1279)
  %1281 = icmp eq i32 %1280, -1
  br i1 %1281, label %1282, label %1335

1282:                                             ; preds = %1276
  br label %1283

1283:                                             ; preds = %1282
  br label %1284

1284:                                             ; preds = %1283
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %1285 = call ptr @__errno_location() #9
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  store i32 %1286, ptr %31, align 4, !tbaa !5
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @s2n_print_stacktrace(ptr noundef %1287)
  %1289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1290 = trunc i8 %1289 to i1
  br i1 %1290, label %1291, label %1313

1291:                                             ; preds = %1284
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = call i32 @fileno(ptr noundef %1292) #8
  %1294 = call i32 @isatty(i32 noundef %1293) #8
  %1295 = icmp ne i32 %1294, 0
  br i1 %1295, label %1296, label %1313

1296:                                             ; preds = %1291
  %1297 = load i32, ptr %31, align 4, !tbaa !5
  %1298 = call ptr @__errno_location() #9
  store i32 %1297, ptr %1298, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = load i32, ptr @test_count, align 4, !tbaa !5
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @s2n_strerror_debug(i32 noundef %1305, ptr noundef @.str.4)
  %1307 = call ptr @__errno_location() #9
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #8
  %1310 = call ptr @__errno_location() #9
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1299, ptr noundef @.str.2, i32 noundef %1300, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1303, ptr noundef %1306, ptr noundef %1309, i32 noundef %1311) #8
  br label %1330

1313:                                             ; preds = %1291, %1284
  %1314 = load i32, ptr %31, align 4, !tbaa !5
  %1315 = call ptr @__errno_location() #9
  store i32 %1314, ptr %1315, align 4, !tbaa !5
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = load i32, ptr @test_count, align 4, !tbaa !5
  %1318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror(i32 noundef %1319, ptr noundef @.str.4)
  %1321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror_debug(i32 noundef %1322, ptr noundef @.str.4)
  %1324 = call ptr @__errno_location() #9
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @strerror(i32 noundef %1325) #8
  %1327 = call ptr @__errno_location() #9
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1316, ptr noundef @.str.5, i32 noundef %1317, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1320, ptr noundef %1323, ptr noundef %1326, i32 noundef %1328) #8
  br label %1330

1330:                                             ; preds = %1313, %1296
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

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

1333:                                             ; No predecessors!
  br label %1334

1334:                                             ; preds = %1333
  br label %1335

1335:                                             ; preds = %1334, %1276
  br label %1336

1336:                                             ; preds = %1335
  br label %1337

1337:                                             ; preds = %1336
  call void @llvm.lifetime.end.p0(i64 40, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  store ptr null, ptr %32, align 8, !tbaa !9
  br label %1338

1338:                                             ; preds = %1337
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = add nsw i32 %1339, 1
  store i32 %1340, ptr @test_count, align 4, !tbaa !5
  %1341 = call ptr @s2n_config_new()
  store ptr %1341, ptr %32, align 8, !tbaa !9
  %1342 = icmp eq ptr %1341, null
  br i1 %1342, label %1343, label %1396

1343:                                             ; preds = %1338
  br label %1344

1344:                                             ; preds = %1343
  br label %1345

1345:                                             ; preds = %1344
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1346 = call ptr @__errno_location() #9
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  store i32 %1347, ptr %33, align 4, !tbaa !5
  %1348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1349 = call i32 @s2n_print_stacktrace(ptr noundef %1348)
  %1350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1351 = trunc i8 %1350 to i1
  br i1 %1351, label %1352, label %1374

1352:                                             ; preds = %1345
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = call i32 @fileno(ptr noundef %1353) #8
  %1355 = call i32 @isatty(i32 noundef %1354) #8
  %1356 = icmp ne i32 %1355, 0
  br i1 %1356, label %1357, label %1374

1357:                                             ; preds = %1352
  %1358 = load i32, ptr %33, align 4, !tbaa !5
  %1359 = call ptr @__errno_location() #9
  store i32 %1358, ptr %1359, align 4, !tbaa !5
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = load i32, ptr @test_count, align 4, !tbaa !5
  %1362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror(i32 noundef %1363, ptr noundef @.str.4)
  %1365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror_debug(i32 noundef %1366, ptr noundef @.str.4)
  %1368 = call ptr @__errno_location() #9
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call ptr @strerror(i32 noundef %1369) #8
  %1371 = call ptr @__errno_location() #9
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1360, ptr noundef @.str.2, i32 noundef %1361, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1364, ptr noundef %1367, ptr noundef %1370, i32 noundef %1372) #8
  br label %1391

1374:                                             ; preds = %1352, %1345
  %1375 = load i32, ptr %33, align 4, !tbaa !5
  %1376 = call ptr @__errno_location() #9
  store i32 %1375, ptr %1376, align 4, !tbaa !5
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = load i32, ptr @test_count, align 4, !tbaa !5
  %1379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1380 = load i32, ptr %1379, align 4, !tbaa !5
  %1381 = call ptr @s2n_strerror(i32 noundef %1380, ptr noundef @.str.4)
  %1382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror_debug(i32 noundef %1383, ptr noundef @.str.4)
  %1385 = call ptr @__errno_location() #9
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @strerror(i32 noundef %1386) #8
  %1388 = call ptr @__errno_location() #9
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1377, ptr noundef @.str.5, i32 noundef %1378, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1381, ptr noundef %1384, ptr noundef %1387, i32 noundef %1389) #8
  br label %1391

1391:                                             ; preds = %1374, %1357
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

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

1394:                                             ; No predecessors!
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395, %1338
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

1398:                                             ; preds = %1397
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  store ptr null, ptr %34, align 8, !tbaa !9
  br label %1399

1399:                                             ; preds = %1398
  %1400 = load i32, ptr @test_count, align 4, !tbaa !5
  %1401 = add nsw i32 %1400, 1
  store i32 %1401, ptr @test_count, align 4, !tbaa !5
  %1402 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1402, ptr %34, align 8, !tbaa !9
  %1403 = icmp eq ptr %1402, null
  br i1 %1403, label %1404, label %1457

1404:                                             ; preds = %1399
  br label %1405

1405:                                             ; preds = %1404
  br label %1406

1406:                                             ; preds = %1405
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1407 = call ptr @__errno_location() #9
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  store i32 %1408, ptr %35, align 4, !tbaa !5
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = call i32 @s2n_print_stacktrace(ptr noundef %1409)
  %1411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1412 = trunc i8 %1411 to i1
  br i1 %1412, label %1413, label %1435

1413:                                             ; preds = %1406
  %1414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1415 = call i32 @fileno(ptr noundef %1414) #8
  %1416 = call i32 @isatty(i32 noundef %1415) #8
  %1417 = icmp ne i32 %1416, 0
  br i1 %1417, label %1418, label %1435

1418:                                             ; preds = %1413
  %1419 = load i32, ptr %35, align 4, !tbaa !5
  %1420 = call ptr @__errno_location() #9
  store i32 %1419, ptr %1420, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef @.str.4)
  %1429 = call ptr @__errno_location() #9
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @strerror(i32 noundef %1430) #8
  %1432 = call ptr @__errno_location() #9
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1421, ptr noundef @.str.2, i32 noundef %1422, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1425, ptr noundef %1428, ptr noundef %1431, i32 noundef %1433) #8
  br label %1452

1435:                                             ; preds = %1413, %1406
  %1436 = load i32, ptr %35, align 4, !tbaa !5
  %1437 = call ptr @__errno_location() #9
  store i32 %1436, ptr %1437, align 4, !tbaa !5
  %1438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1439 = load i32, ptr @test_count, align 4, !tbaa !5
  %1440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror(i32 noundef %1441, ptr noundef @.str.4)
  %1443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror_debug(i32 noundef %1444, ptr noundef @.str.4)
  %1446 = call ptr @__errno_location() #9
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @strerror(i32 noundef %1447) #8
  %1449 = call ptr @__errno_location() #9
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1438, ptr noundef @.str.5, i32 noundef %1439, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1442, ptr noundef %1445, ptr noundef %1448, i32 noundef %1450) #8
  br label %1452

1452:                                             ; preds = %1435, %1418
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

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

1455:                                             ; No predecessors!
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456, %1399
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = add nsw i32 %1461, 1
  store i32 %1462, ptr @test_count, align 4, !tbaa !5
  %1463 = load ptr, ptr %34, align 8, !tbaa !9
  %1464 = load ptr, ptr %32, align 8, !tbaa !9
  %1465 = call i32 @s2n_connection_set_config(ptr noundef %1463, ptr noundef %1464)
  %1466 = icmp eq i32 %1465, -1
  br i1 %1466, label %1467, label %1520

1467:                                             ; preds = %1460
  br label %1468

1468:                                             ; preds = %1467
  br label %1469

1469:                                             ; preds = %1468
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1470 = call ptr @__errno_location() #9
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  store i32 %1471, ptr %36, align 4, !tbaa !5
  %1472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1473 = call i32 @s2n_print_stacktrace(ptr noundef %1472)
  %1474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1475 = trunc i8 %1474 to i1
  br i1 %1475, label %1476, label %1498

1476:                                             ; preds = %1469
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @fileno(ptr noundef %1477) #8
  %1479 = call i32 @isatty(i32 noundef %1478) #8
  %1480 = icmp ne i32 %1479, 0
  br i1 %1480, label %1481, label %1498

1481:                                             ; preds = %1476
  %1482 = load i32, ptr %36, align 4, !tbaa !5
  %1483 = call ptr @__errno_location() #9
  store i32 %1482, ptr %1483, align 4, !tbaa !5
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = load i32, ptr @test_count, align 4, !tbaa !5
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror(i32 noundef %1487, ptr noundef @.str.4)
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef @.str.4)
  %1492 = call ptr @__errno_location() #9
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @strerror(i32 noundef %1493) #8
  %1495 = call ptr @__errno_location() #9
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1484, ptr noundef @.str.2, i32 noundef %1485, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1488, ptr noundef %1491, ptr noundef %1494, i32 noundef %1496) #8
  br label %1515

1498:                                             ; preds = %1476, %1469
  %1499 = load i32, ptr %36, align 4, !tbaa !5
  %1500 = call ptr @__errno_location() #9
  store i32 %1499, ptr %1500, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  %1505 = call ptr @s2n_strerror(i32 noundef %1504, ptr noundef @.str.4)
  %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_debug(i32 noundef %1507, ptr noundef @.str.4)
  %1509 = call ptr @__errno_location() #9
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @strerror(i32 noundef %1510) #8
  %1512 = call ptr @__errno_location() #9
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1501, ptr noundef @.str.5, i32 noundef %1502, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1505, ptr noundef %1508, ptr noundef %1511, i32 noundef %1513) #8
  br label %1515

1515:                                             ; preds = %1498, %1481
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

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

1518:                                             ; No predecessors!
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

1520:                                             ; preds = %1519, %1460
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

1522:                                             ; preds = %1521
  call void @llvm.lifetime.start.p0(i64 40, ptr %37) #8
  call void @llvm.memset.p0.i64(ptr align 8 %37, i8 0, i64 40, i1 false)
  br label %1523

1523:                                             ; preds = %1522
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = add nsw i32 %1524, 1
  store i32 %1525, ptr @test_count, align 4, !tbaa !5
  %1526 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %37, i32 noundef 0)
  %1527 = icmp eq i32 %1526, -1
  br i1 %1527, label %1528, label %1581

1528:                                             ; preds = %1523
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

1530:                                             ; preds = %1529
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1531 = call ptr @__errno_location() #9
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  store i32 %1532, ptr %38, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = call i32 @s2n_print_stacktrace(ptr noundef %1533)
  %1535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1536 = trunc i8 %1535 to i1
  br i1 %1536, label %1537, label %1559

1537:                                             ; preds = %1530
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = call i32 @fileno(ptr noundef %1538) #8
  %1540 = call i32 @isatty(i32 noundef %1539) #8
  %1541 = icmp ne i32 %1540, 0
  br i1 %1541, label %1542, label %1559

1542:                                             ; preds = %1537
  %1543 = load i32, ptr %38, align 4, !tbaa !5
  %1544 = call ptr @__errno_location() #9
  store i32 %1543, ptr %1544, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror(i32 noundef %1548, ptr noundef @.str.4)
  %1550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror_debug(i32 noundef %1551, ptr noundef @.str.4)
  %1553 = call ptr @__errno_location() #9
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call ptr @strerror(i32 noundef %1554) #8
  %1556 = call ptr @__errno_location() #9
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1545, ptr noundef @.str.2, i32 noundef %1546, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1549, ptr noundef %1552, ptr noundef %1555, i32 noundef %1557) #8
  br label %1576

1559:                                             ; preds = %1537, %1530
  %1560 = load i32, ptr %38, align 4, !tbaa !5
  %1561 = call ptr @__errno_location() #9
  store i32 %1560, ptr %1561, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = load i32, ptr @test_count, align 4, !tbaa !5
  %1564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror(i32 noundef %1565, ptr noundef @.str.4)
  %1567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror_debug(i32 noundef %1568, ptr noundef @.str.4)
  %1570 = call ptr @__errno_location() #9
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call ptr @strerror(i32 noundef %1571) #8
  %1573 = call ptr @__errno_location() #9
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  %1575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1562, ptr noundef @.str.5, i32 noundef %1563, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1566, ptr noundef %1569, ptr noundef %1572, i32 noundef %1574) #8
  br label %1576

1576:                                             ; preds = %1559, %1542
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1577

1577:                                             ; preds = %1576
  br label %1578

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

1579:                                             ; No predecessors!
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580, %1523
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1583
  %1585 = load i32, ptr @test_count, align 4, !tbaa !5
  %1586 = add nsw i32 %1585, 1
  store i32 %1586, ptr @test_count, align 4, !tbaa !5
  %1587 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_sct_list_extension, i32 0, i32 3), align 8, !tbaa !18
  %1588 = load ptr, ptr %34, align 8, !tbaa !9
  %1589 = call i32 %1587(ptr noundef %1588, ptr noundef %37)
  %1590 = icmp eq i32 %1589, -1
  br i1 %1590, label %1591, label %1644

1591:                                             ; preds = %1584
  br label %1592

1592:                                             ; preds = %1591
  br label %1593

1593:                                             ; preds = %1592
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1594 = call ptr @__errno_location() #9
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  store i32 %1595, ptr %39, align 4, !tbaa !5
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = call i32 @s2n_print_stacktrace(ptr noundef %1596)
  %1598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1599 = trunc i8 %1598 to i1
  br i1 %1599, label %1600, label %1622

1600:                                             ; preds = %1593
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = call i32 @fileno(ptr noundef %1601) #8
  %1603 = call i32 @isatty(i32 noundef %1602) #8
  %1604 = icmp ne i32 %1603, 0
  br i1 %1604, label %1605, label %1622

1605:                                             ; preds = %1600
  %1606 = load i32, ptr %39, align 4, !tbaa !5
  %1607 = call ptr @__errno_location() #9
  store i32 %1606, ptr %1607, align 4, !tbaa !5
  %1608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = call ptr @s2n_strerror(i32 noundef %1611, ptr noundef @.str.4)
  %1613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror_debug(i32 noundef %1614, ptr noundef @.str.4)
  %1616 = call ptr @__errno_location() #9
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @strerror(i32 noundef %1617) #8
  %1619 = call ptr @__errno_location() #9
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1608, ptr noundef @.str.2, i32 noundef %1609, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1612, ptr noundef %1615, ptr noundef %1618, i32 noundef %1620) #8
  br label %1639

1622:                                             ; preds = %1600, %1593
  %1623 = load i32, ptr %39, align 4, !tbaa !5
  %1624 = call ptr @__errno_location() #9
  store i32 %1623, ptr %1624, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror(i32 noundef %1628, ptr noundef @.str.4)
  %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_debug(i32 noundef %1631, ptr noundef @.str.4)
  %1633 = call ptr @__errno_location() #9
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @strerror(i32 noundef %1634) #8
  %1636 = call ptr @__errno_location() #9
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef @.str.5, i32 noundef %1626, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1629, ptr noundef %1632, ptr noundef %1635, i32 noundef %1637) #8
  br label %1639

1639:                                             ; preds = %1622, %1605
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1640

1640:                                             ; preds = %1639
  br label %1641

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

1642:                                             ; No predecessors!
  br label %1643

1643:                                             ; preds = %1642
  br label %1644

1644:                                             ; preds = %1643, %1584
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

1647:                                             ; preds = %1646
  %1648 = load i32, ptr @test_count, align 4, !tbaa !5
  %1649 = add nsw i32 %1648, 1
  store i32 %1649, ptr @test_count, align 4, !tbaa !5
  %1650 = load ptr, ptr %34, align 8, !tbaa !9
  %1651 = getelementptr inbounds %struct.s2n_connection, ptr %1650, i32 0, i32 67
  %1652 = load i32, ptr %1651, align 8, !tbaa !23
  %1653 = icmp eq i32 %1652, 1
  br i1 %1653, label %1654, label %1707

1654:                                             ; preds = %1647
  br label %1655

1655:                                             ; preds = %1654
  br label %1656

1656:                                             ; preds = %1655
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1657 = call ptr @__errno_location() #9
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  store i32 %1658, ptr %40, align 4, !tbaa !5
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = call i32 @s2n_print_stacktrace(ptr noundef %1659)
  %1661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1662 = trunc i8 %1661 to i1
  br i1 %1662, label %1663, label %1685

1663:                                             ; preds = %1656
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = call i32 @fileno(ptr noundef %1664) #8
  %1666 = call i32 @isatty(i32 noundef %1665) #8
  %1667 = icmp ne i32 %1666, 0
  br i1 %1667, label %1668, label %1685

1668:                                             ; preds = %1663
  %1669 = load i32, ptr %40, align 4, !tbaa !5
  %1670 = call ptr @__errno_location() #9
  store i32 %1669, ptr %1670, align 4, !tbaa !5
  %1671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1672 = load i32, ptr @test_count, align 4, !tbaa !5
  %1673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call ptr @s2n_strerror(i32 noundef %1674, ptr noundef @.str.4)
  %1676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror_debug(i32 noundef %1677, ptr noundef @.str.4)
  %1679 = call ptr @__errno_location() #9
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  %1681 = call ptr @strerror(i32 noundef %1680) #8
  %1682 = call ptr @__errno_location() #9
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1671, ptr noundef @.str.2, i32 noundef %1672, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1675, ptr noundef %1678, ptr noundef %1681, i32 noundef %1683) #8
  br label %1702

1685:                                             ; preds = %1663, %1656
  %1686 = load i32, ptr %40, align 4, !tbaa !5
  %1687 = call ptr @__errno_location() #9
  store i32 %1686, ptr %1687, align 4, !tbaa !5
  %1688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1689 = load i32, ptr @test_count, align 4, !tbaa !5
  %1690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call ptr @s2n_strerror(i32 noundef %1691, ptr noundef @.str.4)
  %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_debug(i32 noundef %1694, ptr noundef @.str.4)
  %1696 = call ptr @__errno_location() #9
  %1697 = load i32, ptr %1696, align 4, !tbaa !5
  %1698 = call ptr @strerror(i32 noundef %1697) #8
  %1699 = call ptr @__errno_location() #9
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1688, ptr noundef @.str.5, i32 noundef %1689, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1692, ptr noundef %1695, ptr noundef %1698, i32 noundef %1700) #8
  br label %1702

1702:                                             ; preds = %1685, %1668
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1703

1703:                                             ; preds = %1702
  br label %1704

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

1705:                                             ; No predecessors!
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

1707:                                             ; preds = %1706, %1647
  br label %1708

1708:                                             ; preds = %1707
  br label %1709

1709:                                             ; preds = %1708
  br label %1710

1710:                                             ; preds = %1709
  %1711 = load i32, ptr @test_count, align 4, !tbaa !5
  %1712 = add nsw i32 %1711, 1
  store i32 %1712, ptr @test_count, align 4, !tbaa !5
  %1713 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_sct_list_extension, i32 0, i32 4), align 8, !tbaa !47
  %1714 = load ptr, ptr %34, align 8, !tbaa !9
  %1715 = call i32 %1713(ptr noundef %1714, ptr noundef %37)
  %1716 = icmp eq i32 %1715, -1
  br i1 %1716, label %1717, label %1770

1717:                                             ; preds = %1710
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

1719:                                             ; preds = %1718
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %1720 = call ptr @__errno_location() #9
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  store i32 %1721, ptr %41, align 4, !tbaa !5
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @s2n_print_stacktrace(ptr noundef %1722)
  %1724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1725 = trunc i8 %1724 to i1
  br i1 %1725, label %1726, label %1748

1726:                                             ; preds = %1719
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = call i32 @fileno(ptr noundef %1727) #8
  %1729 = call i32 @isatty(i32 noundef %1728) #8
  %1730 = icmp ne i32 %1729, 0
  br i1 %1730, label %1731, label %1748

1731:                                             ; preds = %1726
  %1732 = load i32, ptr %41, align 4, !tbaa !5
  %1733 = call ptr @__errno_location() #9
  store i32 %1732, ptr %1733, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror(i32 noundef %1737, ptr noundef @.str.4)
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef %1740, ptr noundef @.str.4)
  %1742 = call ptr @__errno_location() #9
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @strerror(i32 noundef %1743) #8
  %1745 = call ptr @__errno_location() #9
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1734, ptr noundef @.str.2, i32 noundef %1735, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1738, ptr noundef %1741, ptr noundef %1744, i32 noundef %1746) #8
  br label %1765

1748:                                             ; preds = %1726, %1719
  %1749 = load i32, ptr %41, align 4, !tbaa !5
  %1750 = call ptr @__errno_location() #9
  store i32 %1749, ptr %1750, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = load i32, ptr @test_count, align 4, !tbaa !5
  %1753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1754 = load i32, ptr %1753, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror(i32 noundef %1754, ptr noundef @.str.4)
  %1756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror_debug(i32 noundef %1757, ptr noundef @.str.4)
  %1759 = call ptr @__errno_location() #9
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call ptr @strerror(i32 noundef %1760) #8
  %1762 = call ptr @__errno_location() #9
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1751, ptr noundef @.str.5, i32 noundef %1752, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1755, ptr noundef %1758, ptr noundef %1761, i32 noundef %1763) #8
  br label %1765

1765:                                             ; preds = %1748, %1731
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1766

1766:                                             ; preds = %1765
  br label %1767

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

1768:                                             ; No predecessors!
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

1770:                                             ; preds = %1769, %1710
  br label %1771

1771:                                             ; preds = %1770
  br label %1772

1772:                                             ; preds = %1771
  br label %1773

1773:                                             ; preds = %1772
  %1774 = load i32, ptr @test_count, align 4, !tbaa !5
  %1775 = add nsw i32 %1774, 1
  store i32 %1775, ptr @test_count, align 4, !tbaa !5
  %1776 = load ptr, ptr %34, align 8, !tbaa !9
  %1777 = getelementptr inbounds %struct.s2n_connection, ptr %1776, i32 0, i32 67
  %1778 = load i32, ptr %1777, align 8, !tbaa !23
  %1779 = icmp eq i32 %1778, 1
  br i1 %1779, label %1833, label %1780

1780:                                             ; preds = %1773
  br label %1781

1781:                                             ; preds = %1780
  br label %1782

1782:                                             ; preds = %1781
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %1783 = call ptr @__errno_location() #9
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  store i32 %1784, ptr %42, align 4, !tbaa !5
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @s2n_print_stacktrace(ptr noundef %1785)
  %1787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1788 = trunc i8 %1787 to i1
  br i1 %1788, label %1789, label %1811

1789:                                             ; preds = %1782
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = call i32 @fileno(ptr noundef %1790) #8
  %1792 = call i32 @isatty(i32 noundef %1791) #8
  %1793 = icmp ne i32 %1792, 0
  br i1 %1793, label %1794, label %1811

1794:                                             ; preds = %1789
  %1795 = load i32, ptr %42, align 4, !tbaa !5
  %1796 = call ptr @__errno_location() #9
  store i32 %1795, ptr %1796, align 4, !tbaa !5
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = load i32, ptr @test_count, align 4, !tbaa !5
  %1799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1800 = load i32, ptr %1799, align 4, !tbaa !5
  %1801 = call ptr @s2n_strerror(i32 noundef %1800, ptr noundef @.str.4)
  %1802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = call ptr @s2n_strerror_debug(i32 noundef %1803, ptr noundef @.str.4)
  %1805 = call ptr @__errno_location() #9
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call ptr @strerror(i32 noundef %1806) #8
  %1808 = call ptr @__errno_location() #9
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1797, ptr noundef @.str.2, i32 noundef %1798, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1801, ptr noundef %1804, ptr noundef %1807, i32 noundef %1809) #8
  br label %1828

1811:                                             ; preds = %1789, %1782
  %1812 = load i32, ptr %42, align 4, !tbaa !5
  %1813 = call ptr @__errno_location() #9
  store i32 %1812, ptr %1813, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef @.str.4)
  %1819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef @.str.4)
  %1822 = call ptr @__errno_location() #9
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call ptr @strerror(i32 noundef %1823) #8
  %1825 = call ptr @__errno_location() #9
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef @.str.5, i32 noundef %1815, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1818, ptr noundef %1821, ptr noundef %1824, i32 noundef %1826) #8
  br label %1828

1828:                                             ; preds = %1811, %1794
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %1829

1829:                                             ; preds = %1828
  br label %1830

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

1831:                                             ; No predecessors!
  br label %1832

1832:                                             ; preds = %1831
  br label %1833

1833:                                             ; preds = %1832, %1773
  br label %1834

1834:                                             ; preds = %1833
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

1836:                                             ; preds = %1835
  %1837 = load i32, ptr @test_count, align 4, !tbaa !5
  %1838 = add nsw i32 %1837, 1
  store i32 %1838, ptr @test_count, align 4, !tbaa !5
  %1839 = call i32 @s2n_stuffer_free(ptr noundef %37)
  %1840 = icmp eq i32 %1839, -1
  br i1 %1840, label %1841, label %1894

1841:                                             ; preds = %1836
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %1844 = call ptr @__errno_location() #9
  %1845 = load i32, ptr %1844, align 4, !tbaa !5
  store i32 %1845, ptr %43, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = call i32 @s2n_print_stacktrace(ptr noundef %1846)
  %1848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1849 = trunc i8 %1848 to i1
  br i1 %1849, label %1850, label %1872

1850:                                             ; preds = %1843
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = call i32 @fileno(ptr noundef %1851) #8
  %1853 = call i32 @isatty(i32 noundef %1852) #8
  %1854 = icmp ne i32 %1853, 0
  br i1 %1854, label %1855, label %1872

1855:                                             ; preds = %1850
  %1856 = load i32, ptr %43, align 4, !tbaa !5
  %1857 = call ptr @__errno_location() #9
  store i32 %1856, ptr %1857, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef @.str.4)
  %1863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror_debug(i32 noundef %1864, ptr noundef @.str.4)
  %1866 = call ptr @__errno_location() #9
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @strerror(i32 noundef %1867) #8
  %1869 = call ptr @__errno_location() #9
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef @.str.2, i32 noundef %1859, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1862, ptr noundef %1865, ptr noundef %1868, i32 noundef %1870) #8
  br label %1889

1872:                                             ; preds = %1850, %1843
  %1873 = load i32, ptr %43, align 4, !tbaa !5
  %1874 = call ptr @__errno_location() #9
  store i32 %1873, ptr %1874, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror(i32 noundef %1878, ptr noundef @.str.4)
  %1880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror_debug(i32 noundef %1881, ptr noundef @.str.4)
  %1883 = call ptr @__errno_location() #9
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = call ptr @strerror(i32 noundef %1884) #8
  %1886 = call ptr @__errno_location() #9
  %1887 = load i32, ptr %1886, align 4, !tbaa !5
  %1888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1875, ptr noundef @.str.5, i32 noundef %1876, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1879, ptr noundef %1882, ptr noundef %1885, i32 noundef %1887) #8
  br label %1889

1889:                                             ; preds = %1872, %1855
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %1890

1890:                                             ; preds = %1889
  br label %1891

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

1892:                                             ; No predecessors!
  br label %1893

1893:                                             ; preds = %1892
  br label %1894

1894:                                             ; preds = %1893, %1836
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

1896:                                             ; preds = %1895
  br label %1897

1897:                                             ; preds = %1896
  %1898 = load i32, ptr @test_count, align 4, !tbaa !5
  %1899 = add nsw i32 %1898, 1
  store i32 %1899, ptr @test_count, align 4, !tbaa !5
  %1900 = load ptr, ptr %34, align 8, !tbaa !9
  %1901 = call i32 @s2n_connection_free(ptr noundef %1900)
  %1902 = icmp eq i32 %1901, -1
  br i1 %1902, label %1903, label %1956

1903:                                             ; preds = %1897
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

1905:                                             ; preds = %1904
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %1906 = call ptr @__errno_location() #9
  %1907 = load i32, ptr %1906, align 4, !tbaa !5
  store i32 %1907, ptr %44, align 4, !tbaa !5
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = call i32 @s2n_print_stacktrace(ptr noundef %1908)
  %1910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1911 = trunc i8 %1910 to i1
  br i1 %1911, label %1912, label %1934

1912:                                             ; preds = %1905
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = call i32 @fileno(ptr noundef %1913) #8
  %1915 = call i32 @isatty(i32 noundef %1914) #8
  %1916 = icmp ne i32 %1915, 0
  br i1 %1916, label %1917, label %1934

1917:                                             ; preds = %1912
  %1918 = load i32, ptr %44, align 4, !tbaa !5
  %1919 = call ptr @__errno_location() #9
  store i32 %1918, ptr %1919, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = load i32, ptr @test_count, align 4, !tbaa !5
  %1922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call ptr @s2n_strerror(i32 noundef %1923, ptr noundef @.str.4)
  %1925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = call ptr @s2n_strerror_debug(i32 noundef %1926, ptr noundef @.str.4)
  %1928 = call ptr @__errno_location() #9
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  %1930 = call ptr @strerror(i32 noundef %1929) #8
  %1931 = call ptr @__errno_location() #9
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  %1933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1920, ptr noundef @.str.2, i32 noundef %1921, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1924, ptr noundef %1927, ptr noundef %1930, i32 noundef %1932) #8
  br label %1951

1934:                                             ; preds = %1912, %1905
  %1935 = load i32, ptr %44, align 4, !tbaa !5
  %1936 = call ptr @__errno_location() #9
  store i32 %1935, ptr %1936, align 4, !tbaa !5
  %1937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1938 = load i32, ptr @test_count, align 4, !tbaa !5
  %1939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call ptr @s2n_strerror(i32 noundef %1940, ptr noundef @.str.4)
  %1942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call ptr @s2n_strerror_debug(i32 noundef %1943, ptr noundef @.str.4)
  %1945 = call ptr @__errno_location() #9
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  %1947 = call ptr @strerror(i32 noundef %1946) #8
  %1948 = call ptr @__errno_location() #9
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1937, ptr noundef @.str.5, i32 noundef %1938, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1941, ptr noundef %1944, ptr noundef %1947, i32 noundef %1949) #8
  br label %1951

1951:                                             ; preds = %1934, %1917
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %1952

1952:                                             ; preds = %1951
  br label %1953

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

1954:                                             ; No predecessors!
  br label %1955

1955:                                             ; preds = %1954
  br label %1956

1956:                                             ; preds = %1955, %1897
  br label %1957

1957:                                             ; preds = %1956
  br label %1958

1958:                                             ; preds = %1957
  br label %1959

1959:                                             ; preds = %1958
  %1960 = load i32, ptr @test_count, align 4, !tbaa !5
  %1961 = add nsw i32 %1960, 1
  store i32 %1961, ptr @test_count, align 4, !tbaa !5
  %1962 = load ptr, ptr %32, align 8, !tbaa !9
  %1963 = call i32 @s2n_config_free(ptr noundef %1962)
  %1964 = icmp eq i32 %1963, -1
  br i1 %1964, label %1965, label %2018

1965:                                             ; preds = %1959
  br label %1966

1966:                                             ; preds = %1965
  br label %1967

1967:                                             ; preds = %1966
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %1968 = call ptr @__errno_location() #9
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  store i32 %1969, ptr %45, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = call i32 @s2n_print_stacktrace(ptr noundef %1970)
  %1972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1973 = trunc i8 %1972 to i1
  br i1 %1973, label %1974, label %1996

1974:                                             ; preds = %1967
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = call i32 @fileno(ptr noundef %1975) #8
  %1977 = call i32 @isatty(i32 noundef %1976) #8
  %1978 = icmp ne i32 %1977, 0
  br i1 %1978, label %1979, label %1996

1979:                                             ; preds = %1974
  %1980 = load i32, ptr %45, align 4, !tbaa !5
  %1981 = call ptr @__errno_location() #9
  store i32 %1980, ptr %1981, align 4, !tbaa !5
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror(i32 noundef %1985, ptr noundef @.str.4)
  %1987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call ptr @s2n_strerror_debug(i32 noundef %1988, ptr noundef @.str.4)
  %1990 = call ptr @__errno_location() #9
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call ptr @strerror(i32 noundef %1991) #8
  %1993 = call ptr @__errno_location() #9
  %1994 = load i32, ptr %1993, align 4, !tbaa !5
  %1995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1982, ptr noundef @.str.2, i32 noundef %1983, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1986, ptr noundef %1989, ptr noundef %1992, i32 noundef %1994) #8
  br label %2013

1996:                                             ; preds = %1974, %1967
  %1997 = load i32, ptr %45, align 4, !tbaa !5
  %1998 = call ptr @__errno_location() #9
  store i32 %1997, ptr %1998, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror(i32 noundef %2002, ptr noundef @.str.4)
  %2004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror_debug(i32 noundef %2005, ptr noundef @.str.4)
  %2007 = call ptr @__errno_location() #9
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @strerror(i32 noundef %2008) #8
  %2010 = call ptr @__errno_location() #9
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef @.str.5, i32 noundef %2000, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 84, ptr noundef %2003, ptr noundef %2006, ptr noundef %2009, i32 noundef %2011) #8
  br label %2013

2013:                                             ; preds = %1996, %1979
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %2014

2014:                                             ; preds = %2013
  br label %2015

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

2016:                                             ; No predecessors!
  br label %2017

2017:                                             ; preds = %2016
  br label %2018

2018:                                             ; preds = %2017, %1959
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

2020:                                             ; preds = %2019
  call void @llvm.lifetime.end.p0(i64 40, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %2021

2021:                                             ; preds = %2020
  br label %2022

2022:                                             ; preds = %2021
  %2023 = call i32 @s2n_cleanup()
  %2024 = icmp eq i32 %2023, -1
  br i1 %2024, label %2025, label %2076

2025:                                             ; preds = %2022
  br label %2026

2026:                                             ; preds = %2025
  br label %2027

2027:                                             ; preds = %2026
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  %2028 = call ptr @__errno_location() #9
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  store i32 %2029, ptr %46, align 4, !tbaa !5
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = call i32 @s2n_print_stacktrace(ptr noundef %2030)
  %2032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2033 = trunc i8 %2032 to i1
  br i1 %2033, label %2034, label %2056

2034:                                             ; preds = %2027
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = call i32 @fileno(ptr noundef %2035) #8
  %2037 = call i32 @isatty(i32 noundef %2036) #8
  %2038 = icmp ne i32 %2037, 0
  br i1 %2038, label %2039, label %2056

2039:                                             ; preds = %2034
  %2040 = load i32, ptr %46, align 4, !tbaa !5
  %2041 = call ptr @__errno_location() #9
  store i32 %2040, ptr %2041, align 4, !tbaa !5
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror(i32 noundef %2045, ptr noundef @.str.4)
  %2047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call ptr @s2n_strerror_debug(i32 noundef %2048, ptr noundef @.str.4)
  %2050 = call ptr @__errno_location() #9
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call ptr @strerror(i32 noundef %2051) #8
  %2053 = call ptr @__errno_location() #9
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  %2055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2042, ptr noundef @.str.2, i32 noundef %2043, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 87, ptr noundef %2046, ptr noundef %2049, ptr noundef %2052, i32 noundef %2054) #8
  br label %2073

2056:                                             ; preds = %2034, %2027
  %2057 = load i32, ptr %46, align 4, !tbaa !5
  %2058 = call ptr @__errno_location() #9
  store i32 %2057, ptr %2058, align 4, !tbaa !5
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = load i32, ptr @test_count, align 4, !tbaa !5
  %2061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror(i32 noundef %2062, ptr noundef @.str.4)
  %2064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call ptr @s2n_strerror_debug(i32 noundef %2065, ptr noundef @.str.4)
  %2067 = call ptr @__errno_location() #9
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = call ptr @strerror(i32 noundef %2068) #8
  %2070 = call ptr @__errno_location() #9
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2059, ptr noundef @.str.5, i32 noundef %2060, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 87, ptr noundef %2063, ptr noundef %2066, ptr noundef %2069, i32 noundef %2071) #8
  br label %2073

2073:                                             ; preds = %2056, %2039
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %2074

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

2075:                                             ; No predecessors!
  br label %2076

2076:                                             ; preds = %2075, %2022
  br label %2077

2077:                                             ; preds = %2076
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

2079:                                             ; preds = %2078
  %2080 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2081 = icmp eq i32 %2080, -1
  br i1 %2081, label %2082, label %2133

2082:                                             ; preds = %2079
  br label %2083

2083:                                             ; preds = %2082
  br label %2084

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

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

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

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

2130:                                             ; preds = %2113, %2096
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %2131

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

2132:                                             ; No predecessors!
  br label %2133

2133:                                             ; preds = %2132, %2079
  br label %2134

2134:                                             ; preds = %2133
  %2135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2136 = trunc i8 %2135 to i1
  br i1 %2136, label %2137, label %2153

2137:                                             ; preds = %2134
  %2138 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2139 = call i32 @fileno(ptr noundef %2138) #8
  %2140 = call i32 @isatty(i32 noundef %2139) #8
  %2141 = icmp ne i32 %2140, 0
  br i1 %2141, label %2142, label %2153

2142:                                             ; preds = %2137
  %2143 = load i32, ptr @test_count, align 4, !tbaa !5
  %2144 = icmp ne i32 %2143, 0
  br i1 %2144, label %2145, label %2149

2145:                                             ; preds = %2142
  %2146 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2147 = load i32, ptr @test_count, align 4, !tbaa !5
  %2148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2146, ptr noundef @.str.26, i32 noundef %2147) #8
  br label %2152

2149:                                             ; preds = %2142
  %2150 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2150, ptr noundef @.str.27) #8
  br label %2152

2152:                                             ; preds = %2149, %2145
  br label %2164

2153:                                             ; preds = %2137, %2134
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = icmp ne i32 %2154, 0
  br i1 %2155, label %2156, label %2160

2156:                                             ; preds = %2153
  %2157 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2158 = load i32, ptr @test_count, align 4, !tbaa !5
  %2159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2157, ptr noundef @.str.28, i32 noundef %2158) #8
  br label %2163

2160:                                             ; preds = %2153
  %2161 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2161, ptr noundef @.str.29) #8
  br label %2163

2163:                                             ; preds = %2160, %2156
  br label %2164

2164:                                             ; preds = %2163, %2152
  store i32 0, ptr %3, align 4
  br label %2166

2165:                                             ; No predecessors!
  br label %2166

2166:                                             ; preds = %2165, %2164
  %2167 = load i32, ptr %3, align 4
  ret i32 %2167
}

; 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_set_config(ptr noundef, ptr noundef) #2

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

declare i32 @s2n_connection_free(ptr noundef) #2

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


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

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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [93 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
@.str.11 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_client_sct_list_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.12 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.29 = 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 %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %5 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %7 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8 = tail call i32 @fflush(ptr noundef %7)
  %9 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %10 = icmp eq i32 %9, -1
  br i1 %10, label %11, label %35

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

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

22:                                               ; preds = %18, %11
  br label %23

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

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

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

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

51:                                               ; preds = %47, %40
  br label %52

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

64:                                               ; preds = %35
  %65 = tail call i32 @s2n_init() #9
  %66 = icmp eq i32 %65, -1
  br i1 %66, label %67, label %91

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

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

78:                                               ; preds = %74, %67
  br label %79

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

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

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

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

107:                                              ; preds = %103, %96
  br label %108

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

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

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

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

136:                                              ; preds = %132, %125
  br label %137

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

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

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

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

165:                                              ; preds = %161, %154
  br label %166

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

178:                                              ; preds = %149
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = add nsw i32 %179, 1
  store i32 %180, ptr @test_count, align 4, !tbaa !5
  %181 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %152, ptr noundef nonnull %123) #9
  %182 = icmp eq i32 %181, -1
  br i1 %182, label %183, label %207

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

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

194:                                              ; preds = %190, %183
  br label %195

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

207:                                              ; preds = %178
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = add nsw i32 %208, 1
  store i32 %209, ptr @test_count, align 4, !tbaa !5
  %210 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_sct_list_extension, i64 24), align 8, !tbaa !15
  %211 = tail call zeroext i1 %210(ptr noundef nonnull %152) #9
  br i1 %211, label %212, label %236

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

219:                                              ; preds = %212
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = tail call i32 @fileno(ptr noundef %220) #9
  %222 = tail call i32 @isatty(i32 noundef %221) #9
  %.not123 = icmp eq i32 %222, 0
  br i1 %.not123, label %223, label %224

223:                                              ; preds = %219, %212
  br label %224

224:                                              ; preds = %219, %223
  %.str.5.sink207 = phi ptr [ @.str.5, %223 ], [ @.str.2, %219 ]
  store i32 %214, ptr %213, align 4, !tbaa !5
  %225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %226 = load i32, ptr @test_count, align 4, !tbaa !5
  %227 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = tail call ptr @s2n_strerror(i32 noundef %228, ptr noundef nonnull @.str.4) #9
  %230 = load i32, ptr %227, align 4, !tbaa !5
  %231 = tail call ptr @s2n_strerror_debug(i32 noundef %230, ptr noundef nonnull @.str.4) #9
  %232 = load i32, ptr %213, align 4, !tbaa !5
  %233 = tail call ptr @strerror(i32 noundef %232) #9
  %234 = load i32, ptr %213, align 4, !tbaa !5
  %235 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %225, ptr noundef nonnull %.str.5.sink207, i32 noundef %226, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 34, ptr noundef %229, ptr noundef %231, ptr noundef %233, i32 noundef %234) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

236:                                              ; preds = %207
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = add nsw i32 %237, 1
  store i32 %238, ptr @test_count, align 4, !tbaa !5
  %239 = tail call i32 @s2n_config_set_ct_support_level(ptr noundef nonnull %123, i32 noundef 1) #9
  %240 = icmp eq i32 %239, -1
  br i1 %240, label %241, label %265

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

248:                                              ; preds = %241
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = tail call i32 @fileno(ptr noundef %249) #9
  %251 = tail call i32 @isatty(i32 noundef %250) #9
  %.not122 = icmp eq i32 %251, 0
  br i1 %.not122, label %252, label %253

252:                                              ; preds = %248, %241
  br label %253

253:                                              ; preds = %248, %252
  %.str.5.sink218 = phi ptr [ @.str.5, %252 ], [ @.str.2, %248 ]
  store i32 %243, ptr %242, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = tail call ptr @s2n_strerror(i32 noundef %257, ptr noundef nonnull @.str.4) #9
  %259 = load i32, ptr %256, align 4, !tbaa !5
  %260 = tail call ptr @s2n_strerror_debug(i32 noundef %259, ptr noundef nonnull @.str.4) #9
  %261 = load i32, ptr %242, align 4, !tbaa !5
  %262 = tail call ptr @strerror(i32 noundef %261) #9
  %263 = load i32, ptr %242, align 4, !tbaa !5
  %264 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef nonnull %.str.5.sink218, i32 noundef %255, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %258, ptr noundef %260, ptr noundef %262, i32 noundef %263) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

265:                                              ; preds = %236
  %266 = load i32, ptr @test_count, align 4, !tbaa !5
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr @test_count, align 4, !tbaa !5
  %268 = tail call zeroext i1 %210(ptr noundef nonnull %152) #9
  br i1 %268, label %293, label %269

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

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

280:                                              ; preds = %276, %269
  br label %281

281:                                              ; preds = %276, %280
  %.str.5.sink229 = phi ptr [ @.str.5, %280 ], [ @.str.2, %276 ]
  store i32 %271, ptr %270, align 4, !tbaa !5
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = load i32, ptr @test_count, align 4, !tbaa !5
  %284 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = tail call ptr @s2n_strerror(i32 noundef %285, ptr noundef nonnull @.str.4) #9
  %287 = load i32, ptr %284, align 4, !tbaa !5
  %288 = tail call ptr @s2n_strerror_debug(i32 noundef %287, ptr noundef nonnull @.str.4) #9
  %289 = load i32, ptr %270, align 4, !tbaa !5
  %290 = tail call ptr @strerror(i32 noundef %289) #9
  %291 = load i32, ptr %270, align 4, !tbaa !5
  %292 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %282, ptr noundef nonnull %.str.5.sink229, i32 noundef %283, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %286, ptr noundef %288, ptr noundef %290, i32 noundef %291) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

293:                                              ; preds = %265
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = add nsw i32 %294, 1
  store i32 %295, ptr @test_count, align 4, !tbaa !5
  %296 = tail call i32 @s2n_connection_free(ptr noundef nonnull %152) #9
  %297 = icmp eq i32 %296, -1
  br i1 %297, label %298, label %322

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

305:                                              ; preds = %298
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = tail call i32 @fileno(ptr noundef %306) #9
  %308 = tail call i32 @isatty(i32 noundef %307) #9
  %.not121 = icmp eq i32 %308, 0
  br i1 %.not121, label %309, label %310

309:                                              ; preds = %305, %298
  br label %310

310:                                              ; preds = %305, %309
  %.str.5.sink240 = phi ptr [ @.str.5, %309 ], [ @.str.2, %305 ]
  store i32 %300, ptr %299, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = tail call ptr @s2n_strerror(i32 noundef %314, ptr noundef nonnull @.str.4) #9
  %316 = load i32, ptr %313, align 4, !tbaa !5
  %317 = tail call ptr @s2n_strerror_debug(i32 noundef %316, ptr noundef nonnull @.str.4) #9
  %318 = load i32, ptr %299, align 4, !tbaa !5
  %319 = tail call ptr @strerror(i32 noundef %318) #9
  %320 = load i32, ptr %299, align 4, !tbaa !5
  %321 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %311, ptr noundef nonnull %.str.5.sink240, i32 noundef %312, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %315, ptr noundef %317, ptr noundef %319, i32 noundef %320) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

322:                                              ; preds = %293
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr @test_count, align 4, !tbaa !5
  %325 = tail call i32 @s2n_config_free(ptr noundef nonnull %123) #9
  %326 = icmp eq i32 %325, -1
  br i1 %326, label %327, label %351

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

334:                                              ; preds = %327
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = tail call i32 @fileno(ptr noundef %335) #9
  %337 = tail call i32 @isatty(i32 noundef %336) #9
  %.not120 = icmp eq i32 %337, 0
  br i1 %.not120, label %338, label %339

338:                                              ; preds = %334, %327
  br label %339

339:                                              ; preds = %334, %338
  %.str.5.sink251 = phi ptr [ @.str.5, %338 ], [ @.str.2, %334 ]
  store i32 %329, ptr %328, align 4, !tbaa !5
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = tail call ptr @s2n_strerror(i32 noundef %343, ptr noundef nonnull @.str.4) #9
  %345 = load i32, ptr %342, align 4, !tbaa !5
  %346 = tail call ptr @s2n_strerror_debug(i32 noundef %345, ptr noundef nonnull @.str.4) #9
  %347 = load i32, ptr %328, align 4, !tbaa !5
  %348 = tail call ptr @strerror(i32 noundef %347) #9
  %349 = load i32, ptr %328, align 4, !tbaa !5
  %350 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %340, ptr noundef nonnull %.str.5.sink251, i32 noundef %341, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %344, ptr noundef %346, ptr noundef %348, i32 noundef %349) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

351:                                              ; preds = %322
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr @test_count, align 4, !tbaa !5
  %354 = tail call ptr @s2n_config_new() #9
  %355 = icmp eq ptr %354, null
  br i1 %355, label %356, label %380

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

363:                                              ; preds = %356
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = tail call i32 @fileno(ptr noundef %364) #9
  %366 = tail call i32 @isatty(i32 noundef %365) #9
  %.not119 = icmp eq i32 %366, 0
  br i1 %.not119, label %367, label %368

367:                                              ; preds = %363, %356
  br label %368

368:                                              ; preds = %363, %367
  %.str.5.sink262 = phi ptr [ @.str.5, %367 ], [ @.str.2, %363 ]
  store i32 %358, ptr %357, align 4, !tbaa !5
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = tail call ptr @s2n_strerror(i32 noundef %372, ptr noundef nonnull @.str.4) #9
  %374 = load i32, ptr %371, align 4, !tbaa !5
  %375 = tail call ptr @s2n_strerror_debug(i32 noundef %374, ptr noundef nonnull @.str.4) #9
  %376 = load i32, ptr %357, align 4, !tbaa !5
  %377 = tail call ptr @strerror(i32 noundef %376) #9
  %378 = load i32, ptr %357, align 4, !tbaa !5
  %379 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %369, ptr noundef nonnull %.str.5.sink262, i32 noundef %370, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %373, ptr noundef %375, ptr noundef %377, i32 noundef %378) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

380:                                              ; preds = %351
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = add nsw i32 %381, 1
  store i32 %382, ptr @test_count, align 4, !tbaa !5
  %383 = tail call ptr @s2n_connection_new(i32 noundef 1) #9
  %384 = icmp eq ptr %383, null
  br i1 %384, label %385, label %409

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

392:                                              ; preds = %385
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = tail call i32 @fileno(ptr noundef %393) #9
  %395 = tail call i32 @isatty(i32 noundef %394) #9
  %.not118 = icmp eq i32 %395, 0
  br i1 %.not118, label %396, label %397

396:                                              ; preds = %392, %385
  br label %397

397:                                              ; preds = %392, %396
  %.str.5.sink273 = phi ptr [ @.str.5, %396 ], [ @.str.2, %392 ]
  store i32 %387, ptr %386, align 4, !tbaa !5
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = tail call ptr @s2n_strerror(i32 noundef %401, ptr noundef nonnull @.str.4) #9
  %403 = load i32, ptr %400, align 4, !tbaa !5
  %404 = tail call ptr @s2n_strerror_debug(i32 noundef %403, ptr noundef nonnull @.str.4) #9
  %405 = load i32, ptr %386, align 4, !tbaa !5
  %406 = tail call ptr @strerror(i32 noundef %405) #9
  %407 = load i32, ptr %386, align 4, !tbaa !5
  %408 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %398, ptr noundef nonnull %.str.5.sink273, i32 noundef %399, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %402, ptr noundef %404, ptr noundef %406, i32 noundef %407) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

409:                                              ; preds = %380
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %411 = add nsw i32 %410, 1
  store i32 %411, ptr @test_count, align 4, !tbaa !5
  %412 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %383, ptr noundef nonnull %354) #9
  %413 = icmp eq i32 %412, -1
  br i1 %413, label %414, label %438

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

421:                                              ; preds = %414
  %422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %423 = tail call i32 @fileno(ptr noundef %422) #9
  %424 = tail call i32 @isatty(i32 noundef %423) #9
  %.not117 = icmp eq i32 %424, 0
  br i1 %.not117, label %425, label %426

425:                                              ; preds = %421, %414
  br label %426

426:                                              ; preds = %421, %425
  %.str.5.sink284 = phi ptr [ @.str.5, %425 ], [ @.str.2, %421 ]
  store i32 %416, ptr %415, align 4, !tbaa !5
  %427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = tail call ptr @s2n_strerror(i32 noundef %430, ptr noundef nonnull @.str.4) #9
  %432 = load i32, ptr %429, align 4, !tbaa !5
  %433 = tail call ptr @s2n_strerror_debug(i32 noundef %432, ptr noundef nonnull @.str.4) #9
  %434 = load i32, ptr %415, align 4, !tbaa !5
  %435 = tail call ptr @strerror(i32 noundef %434) #9
  %436 = load i32, ptr %415, align 4, !tbaa !5
  %437 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %427, ptr noundef nonnull %.str.5.sink284, i32 noundef %428, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %431, ptr noundef %433, ptr noundef %435, i32 noundef %436) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

438:                                              ; preds = %409
  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)
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %3, i32 noundef 0) #9
  %442 = icmp eq i32 %441, -1
  br i1 %442, label %443, label %467

443:                                              ; preds = %438
  %444 = tail call ptr @__errno_location() #10
  %445 = load i32, ptr %444, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = call i32 @s2n_print_stacktrace(ptr noundef %446) #9
  %448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %449 = trunc nuw i8 %448 to i1
  br i1 %449, label %450, label %454

450:                                              ; preds = %443
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @fileno(ptr noundef %451) #9
  %453 = call i32 @isatty(i32 noundef %452) #9
  %.not116 = icmp eq i32 %453, 0
  br i1 %.not116, label %454, label %455

454:                                              ; preds = %450, %443
  br label %455

455:                                              ; preds = %450, %454
  %.str.5.sink295 = phi ptr [ @.str.5, %454 ], [ @.str.2, %450 ]
  store i32 %445, ptr %444, align 4, !tbaa !5
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = call ptr @s2n_strerror(i32 noundef %459, ptr noundef nonnull @.str.4) #9
  %461 = load i32, ptr %458, align 4, !tbaa !5
  %462 = call ptr @s2n_strerror_debug(i32 noundef %461, ptr noundef nonnull @.str.4) #9
  %463 = load i32, ptr %444, align 4, !tbaa !5
  %464 = call ptr @strerror(i32 noundef %463) #9
  %465 = load i32, ptr %444, align 4, !tbaa !5
  %466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %456, ptr noundef nonnull %.str.5.sink295, i32 noundef %457, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %460, ptr noundef %462, ptr noundef %464, i32 noundef %465) #11
  call void @exit(i32 noundef 1) #12
  unreachable

467:                                              ; preds = %438
  %468 = load i32, ptr @test_count, align 4, !tbaa !5
  %469 = add nsw i32 %468, 1
  store i32 %469, ptr @test_count, align 4, !tbaa !5
  %470 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_sct_list_extension, i64 8), align 8, !tbaa !18
  %471 = call i32 %470(ptr noundef nonnull %383, ptr noundef nonnull %3) #9
  %472 = icmp eq i32 %471, -1
  br i1 %472, label %473, label %497

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

480:                                              ; preds = %473
  %481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %482 = call i32 @fileno(ptr noundef %481) #9
  %483 = call i32 @isatty(i32 noundef %482) #9
  %.not115 = icmp eq i32 %483, 0
  br i1 %.not115, label %484, label %485

484:                                              ; preds = %480, %473
  br label %485

485:                                              ; preds = %480, %484
  %.str.5.sink306 = phi ptr [ @.str.5, %484 ], [ @.str.2, %480 ]
  store i32 %475, ptr %474, align 4, !tbaa !5
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = load i32, ptr @test_count, align 4, !tbaa !5
  %488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call ptr @s2n_strerror(i32 noundef %489, ptr noundef nonnull @.str.4) #9
  %491 = load i32, ptr %488, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror_debug(i32 noundef %491, ptr noundef nonnull @.str.4) #9
  %493 = load i32, ptr %474, align 4, !tbaa !5
  %494 = call ptr @strerror(i32 noundef %493) #9
  %495 = load i32, ptr %474, align 4, !tbaa !5
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %486, ptr noundef nonnull %.str.5.sink306, i32 noundef %487, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %490, ptr noundef %492, ptr noundef %494, i32 noundef %495) #11
  call void @exit(i32 noundef 1) #12
  unreachable

497:                                              ; preds = %467
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = add nsw i32 %498, 1
  store i32 %499, ptr @test_count, align 4, !tbaa !5
  %500 = getelementptr inbounds i8, ptr %3, i64 28
  %501 = load i32, ptr %500, align 4, !tbaa !19
  %502 = getelementptr inbounds i8, ptr %3, i64 24
  %503 = load i32, ptr %502, align 8, !tbaa !22
  %504 = icmp eq i32 %501, %503
  br i1 %504, label %529, label %505

505:                                              ; preds = %497
  %506 = tail call ptr @__errno_location() #10
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @s2n_print_stacktrace(ptr noundef %508) #9
  %510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %511 = trunc nuw i8 %510 to i1
  br i1 %511, label %512, label %516

512:                                              ; preds = %505
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @fileno(ptr noundef %513) #9
  %515 = call i32 @isatty(i32 noundef %514) #9
  %.not95 = icmp eq i32 %515, 0
  br i1 %.not95, label %516, label %517

516:                                              ; preds = %512, %505
  br label %517

517:                                              ; preds = %512, %516
  %.str.5.sink317 = phi ptr [ @.str.5, %516 ], [ @.str.2, %512 ]
  store i32 %507, ptr %506, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror(i32 noundef %521, ptr noundef nonnull @.str.4) #9
  %523 = load i32, ptr %520, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror_debug(i32 noundef %523, ptr noundef nonnull @.str.4) #9
  %525 = load i32, ptr %506, align 4, !tbaa !5
  %526 = call ptr @strerror(i32 noundef %525) #9
  %527 = load i32, ptr %506, align 4, !tbaa !5
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef nonnull %.str.5.sink317, i32 noundef %519, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %522, ptr noundef %524, ptr noundef %526, i32 noundef %527) #11
  call void @exit(i32 noundef 1) #12
  unreachable

529:                                              ; preds = %497
  %530 = add nsw i32 %498, 2
  store i32 %530, ptr @test_count, align 4, !tbaa !5
  %531 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #9
  %532 = icmp eq i32 %531, -1
  br i1 %532, label %533, label %557

533:                                              ; preds = %529
  %534 = tail call ptr @__errno_location() #10
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = call i32 @s2n_print_stacktrace(ptr noundef %536) #9
  %538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %539 = trunc nuw i8 %538 to i1
  br i1 %539, label %540, label %544

540:                                              ; preds = %533
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = call i32 @fileno(ptr noundef %541) #9
  %543 = call i32 @isatty(i32 noundef %542) #9
  %.not114 = icmp eq i32 %543, 0
  br i1 %.not114, label %544, label %545

544:                                              ; preds = %540, %533
  br label %545

545:                                              ; preds = %540, %544
  %.str.5.sink328 = phi ptr [ @.str.5, %544 ], [ @.str.2, %540 ]
  store i32 %535, ptr %534, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror(i32 noundef %549, ptr noundef nonnull @.str.4) #9
  %551 = load i32, ptr %548, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror_debug(i32 noundef %551, ptr noundef nonnull @.str.4) #9
  %553 = load i32, ptr %534, align 4, !tbaa !5
  %554 = call ptr @strerror(i32 noundef %553) #9
  %555 = load i32, ptr %534, align 4, !tbaa !5
  %556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef nonnull %.str.5.sink328, i32 noundef %547, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %550, ptr noundef %552, ptr noundef %554, i32 noundef %555) #11
  call void @exit(i32 noundef 1) #12
  unreachable

557:                                              ; preds = %529
  %558 = load i32, ptr @test_count, align 4, !tbaa !5
  %559 = add nsw i32 %558, 1
  store i32 %559, ptr @test_count, align 4, !tbaa !5
  %560 = call i32 @s2n_connection_free(ptr noundef nonnull %383) #9
  %561 = icmp eq i32 %560, -1
  br i1 %561, label %562, label %586

562:                                              ; preds = %557
  %563 = tail call ptr @__errno_location() #10
  %564 = load i32, ptr %563, align 4, !tbaa !5
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = call i32 @s2n_print_stacktrace(ptr noundef %565) #9
  %567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %568 = trunc nuw i8 %567 to i1
  br i1 %568, label %569, label %573

569:                                              ; preds = %562
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @fileno(ptr noundef %570) #9
  %572 = call i32 @isatty(i32 noundef %571) #9
  %.not113 = icmp eq i32 %572, 0
  br i1 %.not113, label %573, label %574

573:                                              ; preds = %569, %562
  br label %574

574:                                              ; preds = %569, %573
  %.str.5.sink339 = phi ptr [ @.str.5, %573 ], [ @.str.2, %569 ]
  store i32 %564, ptr %563, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = load i32, ptr @test_count, align 4, !tbaa !5
  %577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = call ptr @s2n_strerror(i32 noundef %578, ptr noundef nonnull @.str.4) #9
  %580 = load i32, ptr %577, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror_debug(i32 noundef %580, ptr noundef nonnull @.str.4) #9
  %582 = load i32, ptr %563, align 4, !tbaa !5
  %583 = call ptr @strerror(i32 noundef %582) #9
  %584 = load i32, ptr %563, align 4, !tbaa !5
  %585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %575, ptr noundef nonnull %.str.5.sink339, i32 noundef %576, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %579, ptr noundef %581, ptr noundef %583, i32 noundef %584) #11
  call void @exit(i32 noundef 1) #12
  unreachable

586:                                              ; preds = %557
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = add nsw i32 %587, 1
  store i32 %588, ptr @test_count, align 4, !tbaa !5
  %589 = call i32 @s2n_config_free(ptr noundef nonnull %354) #9
  %590 = icmp eq i32 %589, -1
  br i1 %590, label %591, label %615

591:                                              ; preds = %586
  %592 = tail call ptr @__errno_location() #10
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @s2n_print_stacktrace(ptr noundef %594) #9
  %596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %597 = trunc nuw i8 %596 to i1
  br i1 %597, label %598, label %602

598:                                              ; preds = %591
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = call i32 @fileno(ptr noundef %599) #9
  %601 = call i32 @isatty(i32 noundef %600) #9
  %.not112 = icmp eq i32 %601, 0
  br i1 %.not112, label %602, label %603

602:                                              ; preds = %598, %591
  br label %603

603:                                              ; preds = %598, %602
  %.str.5.sink350 = phi ptr [ @.str.5, %602 ], [ @.str.2, %598 ]
  store i32 %593, ptr %592, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = load i32, ptr @test_count, align 4, !tbaa !5
  %606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror(i32 noundef %607, ptr noundef nonnull @.str.4) #9
  %609 = load i32, ptr %606, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror_debug(i32 noundef %609, ptr noundef nonnull @.str.4) #9
  %611 = load i32, ptr %592, align 4, !tbaa !5
  %612 = call ptr @strerror(i32 noundef %611) #9
  %613 = load i32, ptr %592, align 4, !tbaa !5
  %614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %604, ptr noundef nonnull %.str.5.sink350, i32 noundef %605, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %608, ptr noundef %610, ptr noundef %612, i32 noundef %613) #11
  call void @exit(i32 noundef 1) #12
  unreachable

615:                                              ; preds = %586
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #9
  %616 = load i32, ptr @test_count, align 4, !tbaa !5
  %617 = add nsw i32 %616, 1
  store i32 %617, ptr @test_count, align 4, !tbaa !5
  %618 = call ptr @s2n_config_new() #9
  %619 = icmp eq ptr %618, null
  br i1 %619, label %620, label %644

620:                                              ; preds = %615
  %621 = tail call ptr @__errno_location() #10
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @s2n_print_stacktrace(ptr noundef %623) #9
  %625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %626 = trunc nuw i8 %625 to i1
  br i1 %626, label %627, label %631

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @fileno(ptr noundef %628) #9
  %630 = call i32 @isatty(i32 noundef %629) #9
  %.not111 = icmp eq i32 %630, 0
  br i1 %.not111, label %631, label %632

631:                                              ; preds = %627, %620
  br label %632

632:                                              ; preds = %627, %631
  %.str.5.sink361 = phi ptr [ @.str.5, %631 ], [ @.str.2, %627 ]
  store i32 %622, ptr %621, align 4, !tbaa !5
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = load i32, ptr @test_count, align 4, !tbaa !5
  %635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror(i32 noundef %636, ptr noundef nonnull @.str.4) #9
  %638 = load i32, ptr %635, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef nonnull @.str.4) #9
  %640 = load i32, ptr %621, align 4, !tbaa !5
  %641 = call ptr @strerror(i32 noundef %640) #9
  %642 = load i32, ptr %621, align 4, !tbaa !5
  %643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %633, ptr noundef nonnull %.str.5.sink361, i32 noundef %634, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %637, ptr noundef %639, ptr noundef %641, i32 noundef %642) #11
  call void @exit(i32 noundef 1) #12
  unreachable

644:                                              ; preds = %615
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = add nsw i32 %645, 1
  store i32 %646, ptr @test_count, align 4, !tbaa !5
  %647 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %648 = icmp eq ptr %647, null
  br i1 %648, label %649, label %673

649:                                              ; preds = %644
  %650 = tail call ptr @__errno_location() #10
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @s2n_print_stacktrace(ptr noundef %652) #9
  %654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %655 = trunc nuw i8 %654 to i1
  br i1 %655, label %656, label %660

656:                                              ; preds = %649
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = call i32 @fileno(ptr noundef %657) #9
  %659 = call i32 @isatty(i32 noundef %658) #9
  %.not110 = icmp eq i32 %659, 0
  br i1 %.not110, label %660, label %661

660:                                              ; preds = %656, %649
  br label %661

661:                                              ; preds = %656, %660
  %.str.5.sink372 = phi ptr [ @.str.5, %660 ], [ @.str.2, %656 ]
  store i32 %651, ptr %650, align 4, !tbaa !5
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = load i32, ptr @test_count, align 4, !tbaa !5
  %664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %665 = load i32, ptr %664, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror(i32 noundef %665, ptr noundef nonnull @.str.4) #9
  %667 = load i32, ptr %664, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror_debug(i32 noundef %667, ptr noundef nonnull @.str.4) #9
  %669 = load i32, ptr %650, align 4, !tbaa !5
  %670 = call ptr @strerror(i32 noundef %669) #9
  %671 = load i32, ptr %650, align 4, !tbaa !5
  %672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %662, ptr noundef nonnull %.str.5.sink372, i32 noundef %663, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %666, ptr noundef %668, ptr noundef %670, i32 noundef %671) #11
  call void @exit(i32 noundef 1) #12
  unreachable

673:                                              ; preds = %644
  %674 = load i32, ptr @test_count, align 4, !tbaa !5
  %675 = add nsw i32 %674, 1
  store i32 %675, ptr @test_count, align 4, !tbaa !5
  %676 = call i32 @s2n_connection_set_config(ptr noundef nonnull %647, ptr noundef nonnull %618) #9
  %677 = icmp eq i32 %676, -1
  br i1 %677, label %678, label %702

678:                                              ; preds = %673
  %679 = tail call ptr @__errno_location() #10
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = call i32 @s2n_print_stacktrace(ptr noundef %681) #9
  %683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %684 = trunc nuw i8 %683 to i1
  br i1 %684, label %685, label %689

685:                                              ; preds = %678
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = call i32 @fileno(ptr noundef %686) #9
  %688 = call i32 @isatty(i32 noundef %687) #9
  %.not109 = icmp eq i32 %688, 0
  br i1 %.not109, label %689, label %690

689:                                              ; preds = %685, %678
  br label %690

690:                                              ; preds = %685, %689
  %.str.5.sink383 = phi ptr [ @.str.5, %689 ], [ @.str.2, %685 ]
  store i32 %680, ptr %679, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror(i32 noundef %694, ptr noundef nonnull @.str.4) #9
  %696 = load i32, ptr %693, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror_debug(i32 noundef %696, ptr noundef nonnull @.str.4) #9
  %698 = load i32, ptr %679, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #9
  %700 = load i32, ptr %679, align 4, !tbaa !5
  %701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %691, ptr noundef nonnull %.str.5.sink383, i32 noundef %692, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %695, ptr noundef %697, ptr noundef %699, i32 noundef %700) #11
  call void @exit(i32 noundef 1) #12
  unreachable

702:                                              ; preds = %673
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %4, i8 0, i64 40, i1 false)
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr @test_count, align 4, !tbaa !5
  %705 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %4, i32 noundef 0) #9
  %706 = icmp eq i32 %705, -1
  br i1 %706, label %707, label %731

707:                                              ; preds = %702
  %708 = tail call ptr @__errno_location() #10
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = call i32 @s2n_print_stacktrace(ptr noundef %710) #9
  %712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %713 = trunc nuw i8 %712 to i1
  br i1 %713, label %714, label %718

714:                                              ; preds = %707
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = call i32 @fileno(ptr noundef %715) #9
  %717 = call i32 @isatty(i32 noundef %716) #9
  %.not108 = icmp eq i32 %717, 0
  br i1 %.not108, label %718, label %719

718:                                              ; preds = %714, %707
  br label %719

719:                                              ; preds = %714, %718
  %.str.5.sink394 = phi ptr [ @.str.5, %718 ], [ @.str.2, %714 ]
  store i32 %709, ptr %708, align 4, !tbaa !5
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = load i32, ptr @test_count, align 4, !tbaa !5
  %722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror(i32 noundef %723, ptr noundef nonnull @.str.4) #9
  %725 = load i32, ptr %722, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror_debug(i32 noundef %725, ptr noundef nonnull @.str.4) #9
  %727 = load i32, ptr %708, align 4, !tbaa !5
  %728 = call ptr @strerror(i32 noundef %727) #9
  %729 = load i32, ptr %708, align 4, !tbaa !5
  %730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %720, ptr noundef nonnull %.str.5.sink394, i32 noundef %721, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %724, ptr noundef %726, ptr noundef %728, i32 noundef %729) #11
  call void @exit(i32 noundef 1) #12
  unreachable

731:                                              ; preds = %702
  %732 = load i32, ptr @test_count, align 4, !tbaa !5
  %733 = add nsw i32 %732, 1
  store i32 %733, ptr @test_count, align 4, !tbaa !5
  %734 = call i32 %470(ptr noundef nonnull %647, ptr noundef nonnull %4) #9
  %735 = icmp eq i32 %734, -1
  br i1 %735, label %736, label %760

736:                                              ; preds = %731
  %737 = tail call ptr @__errno_location() #10
  %738 = load i32, ptr %737, align 4, !tbaa !5
  %739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %740 = call i32 @s2n_print_stacktrace(ptr noundef %739) #9
  %741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %742 = trunc nuw i8 %741 to i1
  br i1 %742, label %743, label %747

743:                                              ; preds = %736
  %744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %745 = call i32 @fileno(ptr noundef %744) #9
  %746 = call i32 @isatty(i32 noundef %745) #9
  %.not107 = icmp eq i32 %746, 0
  br i1 %.not107, label %747, label %748

747:                                              ; preds = %743, %736
  br label %748

748:                                              ; preds = %743, %747
  %.str.5.sink405 = phi ptr [ @.str.5, %747 ], [ @.str.2, %743 ]
  store i32 %738, ptr %737, align 4, !tbaa !5
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %752 = load i32, ptr %751, align 4, !tbaa !5
  %753 = call ptr @s2n_strerror(i32 noundef %752, ptr noundef nonnull @.str.4) #9
  %754 = load i32, ptr %751, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror_debug(i32 noundef %754, ptr noundef nonnull @.str.4) #9
  %756 = load i32, ptr %737, align 4, !tbaa !5
  %757 = call ptr @strerror(i32 noundef %756) #9
  %758 = load i32, ptr %737, align 4, !tbaa !5
  %759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %749, ptr noundef nonnull %.str.5.sink405, i32 noundef %750, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %753, ptr noundef %755, ptr noundef %757, i32 noundef %758) #11
  call void @exit(i32 noundef 1) #12
  unreachable

760:                                              ; preds = %731
  %761 = load i32, ptr @test_count, align 4, !tbaa !5
  %762 = add nsw i32 %761, 1
  store i32 %762, ptr @test_count, align 4, !tbaa !5
  %763 = getelementptr inbounds i8, ptr %647, i64 2816
  %764 = load i32, ptr %763, align 8, !tbaa !23
  %765 = icmp eq i32 %764, 1
  br i1 %765, label %766, label %790

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

773:                                              ; preds = %766
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @fileno(ptr noundef %774) #9
  %776 = call i32 @isatty(i32 noundef %775) #9
  %.not106 = icmp eq i32 %776, 0
  br i1 %.not106, label %777, label %778

777:                                              ; preds = %773, %766
  br label %778

778:                                              ; preds = %773, %777
  %.str.5.sink416 = phi ptr [ @.str.5, %777 ], [ @.str.2, %773 ]
  store i32 %768, ptr %767, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = load i32, ptr @test_count, align 4, !tbaa !5
  %781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %782 = load i32, ptr %781, align 4, !tbaa !5
  %783 = call ptr @s2n_strerror(i32 noundef %782, ptr noundef nonnull @.str.4) #9
  %784 = load i32, ptr %781, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef nonnull @.str.4) #9
  %786 = load i32, ptr %767, align 4, !tbaa !5
  %787 = call ptr @strerror(i32 noundef %786) #9
  %788 = load i32, ptr %767, align 4, !tbaa !5
  %789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %779, ptr noundef nonnull %.str.5.sink416, i32 noundef %780, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %783, ptr noundef %785, ptr noundef %787, i32 noundef %788) #11
  call void @exit(i32 noundef 1) #12
  unreachable

790:                                              ; preds = %760
  %791 = add nsw i32 %761, 2
  store i32 %791, ptr @test_count, align 4, !tbaa !5
  %792 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_sct_list_extension, i64 16), align 8, !tbaa !47
  %793 = call i32 %792(ptr noundef nonnull %647, ptr noundef nonnull %4) #9
  %794 = icmp eq i32 %793, -1
  br i1 %794, label %795, label %819

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

802:                                              ; preds = %795
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = call i32 @fileno(ptr noundef %803) #9
  %805 = call i32 @isatty(i32 noundef %804) #9
  %.not105 = icmp eq i32 %805, 0
  br i1 %.not105, label %806, label %807

806:                                              ; preds = %802, %795
  br label %807

807:                                              ; preds = %802, %806
  %.str.5.sink427 = phi ptr [ @.str.5, %806 ], [ @.str.2, %802 ]
  store i32 %797, ptr %796, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %811 = load i32, ptr %810, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror(i32 noundef %811, ptr noundef nonnull @.str.4) #9
  %813 = load i32, ptr %810, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror_debug(i32 noundef %813, ptr noundef nonnull @.str.4) #9
  %815 = load i32, ptr %796, align 4, !tbaa !5
  %816 = call ptr @strerror(i32 noundef %815) #9
  %817 = load i32, ptr %796, align 4, !tbaa !5
  %818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %808, ptr noundef nonnull %.str.5.sink427, i32 noundef %809, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %812, ptr noundef %814, ptr noundef %816, i32 noundef %817) #11
  call void @exit(i32 noundef 1) #12
  unreachable

819:                                              ; preds = %790
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = add nsw i32 %820, 1
  store i32 %821, ptr @test_count, align 4, !tbaa !5
  %822 = load i32, ptr %763, align 8, !tbaa !23
  %823 = icmp eq i32 %822, 1
  br i1 %823, label %848, label %824

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

831:                                              ; preds = %824
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @fileno(ptr noundef %832) #9
  %834 = call i32 @isatty(i32 noundef %833) #9
  %.not96 = icmp eq i32 %834, 0
  br i1 %.not96, label %835, label %836

835:                                              ; preds = %831, %824
  br label %836

836:                                              ; preds = %831, %835
  %.str.5.sink438 = phi ptr [ @.str.5, %835 ], [ @.str.2, %831 ]
  store i32 %826, ptr %825, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %840, ptr noundef nonnull @.str.4) #9
  %842 = load i32, ptr %839, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror_debug(i32 noundef %842, ptr noundef nonnull @.str.4) #9
  %844 = load i32, ptr %825, align 4, !tbaa !5
  %845 = call ptr @strerror(i32 noundef %844) #9
  %846 = load i32, ptr %825, align 4, !tbaa !5
  %847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef nonnull %.str.5.sink438, i32 noundef %838, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %841, ptr noundef %843, ptr noundef %845, i32 noundef %846) #11
  call void @exit(i32 noundef 1) #12
  unreachable

848:                                              ; preds = %819
  %849 = add nsw i32 %820, 2
  store i32 %849, ptr @test_count, align 4, !tbaa !5
  %850 = call i32 @s2n_stuffer_free(ptr noundef nonnull %4) #9
  %851 = icmp eq i32 %850, -1
  br i1 %851, label %852, label %876

852:                                              ; preds = %848
  %853 = tail call ptr @__errno_location() #10
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = call i32 @s2n_print_stacktrace(ptr noundef %855) #9
  %857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %858 = trunc nuw i8 %857 to i1
  br i1 %858, label %859, label %863

859:                                              ; preds = %852
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = call i32 @fileno(ptr noundef %860) #9
  %862 = call i32 @isatty(i32 noundef %861) #9
  %.not104 = icmp eq i32 %862, 0
  br i1 %.not104, label %863, label %864

863:                                              ; preds = %859, %852
  br label %864

864:                                              ; preds = %859, %863
  %.str.5.sink449 = phi ptr [ @.str.5, %863 ], [ @.str.2, %859 ]
  store i32 %854, ptr %853, align 4, !tbaa !5
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror(i32 noundef %868, ptr noundef nonnull @.str.4) #9
  %870 = load i32, ptr %867, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror_debug(i32 noundef %870, ptr noundef nonnull @.str.4) #9
  %872 = load i32, ptr %853, align 4, !tbaa !5
  %873 = call ptr @strerror(i32 noundef %872) #9
  %874 = load i32, ptr %853, align 4, !tbaa !5
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %865, ptr noundef nonnull %.str.5.sink449, i32 noundef %866, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %869, ptr noundef %871, ptr noundef %873, i32 noundef %874) #11
  call void @exit(i32 noundef 1) #12
  unreachable

876:                                              ; preds = %848
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = call i32 @s2n_connection_free(ptr noundef nonnull %647) #9
  %880 = icmp eq i32 %879, -1
  br i1 %880, label %881, label %905

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

888:                                              ; preds = %881
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = call i32 @fileno(ptr noundef %889) #9
  %891 = call i32 @isatty(i32 noundef %890) #9
  %.not103 = icmp eq i32 %891, 0
  br i1 %.not103, label %892, label %893

892:                                              ; preds = %888, %881
  br label %893

893:                                              ; preds = %888, %892
  %.str.5.sink460 = phi ptr [ @.str.5, %892 ], [ @.str.2, %888 ]
  store i32 %883, ptr %882, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = call ptr @s2n_strerror(i32 noundef %897, ptr noundef nonnull @.str.4) #9
  %899 = load i32, ptr %896, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror_debug(i32 noundef %899, ptr noundef nonnull @.str.4) #9
  %901 = load i32, ptr %882, align 4, !tbaa !5
  %902 = call ptr @strerror(i32 noundef %901) #9
  %903 = load i32, ptr %882, align 4, !tbaa !5
  %904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef nonnull %.str.5.sink460, i32 noundef %895, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %898, ptr noundef %900, ptr noundef %902, i32 noundef %903) #11
  call void @exit(i32 noundef 1) #12
  unreachable

905:                                              ; preds = %876
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = add nsw i32 %906, 1
  store i32 %907, ptr @test_count, align 4, !tbaa !5
  %908 = call i32 @s2n_config_free(ptr noundef nonnull %618) #9
  %909 = icmp eq i32 %908, -1
  br i1 %909, label %910, label %934

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

917:                                              ; preds = %910
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @fileno(ptr noundef %918) #9
  %920 = call i32 @isatty(i32 noundef %919) #9
  %.not102 = icmp eq i32 %920, 0
  br i1 %.not102, label %921, label %922

921:                                              ; preds = %917, %910
  br label %922

922:                                              ; preds = %917, %921
  %.str.5.sink471 = phi ptr [ @.str.5, %921 ], [ @.str.2, %917 ]
  store i32 %912, ptr %911, align 4, !tbaa !5
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = call ptr @s2n_strerror(i32 noundef %926, ptr noundef nonnull @.str.4) #9
  %928 = load i32, ptr %925, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror_debug(i32 noundef %928, ptr noundef nonnull @.str.4) #9
  %930 = load i32, ptr %911, align 4, !tbaa !5
  %931 = call ptr @strerror(i32 noundef %930) #9
  %932 = load i32, ptr %911, align 4, !tbaa !5
  %933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %923, ptr noundef nonnull %.str.5.sink471, i32 noundef %924, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %927, ptr noundef %929, ptr noundef %931, i32 noundef %932) #11
  call void @exit(i32 noundef 1) #12
  unreachable

934:                                              ; preds = %905
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #9
  %935 = call i32 @s2n_cleanup() #9
  %936 = icmp eq i32 %935, -1
  br i1 %936, label %937, label %961

937:                                              ; preds = %934
  %938 = tail call ptr @__errno_location() #10
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = call i32 @s2n_print_stacktrace(ptr noundef %940) #9
  %942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %943 = trunc nuw i8 %942 to i1
  br i1 %943, label %944, label %948

944:                                              ; preds = %937
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @fileno(ptr noundef %945) #9
  %947 = call i32 @isatty(i32 noundef %946) #9
  %.not101 = icmp eq i32 %947, 0
  br i1 %.not101, label %948, label %949

948:                                              ; preds = %944, %937
  br label %949

949:                                              ; preds = %944, %948
  %.str.5.sink482 = phi ptr [ @.str.5, %948 ], [ @.str.2, %944 ]
  store i32 %939, ptr %938, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call ptr @s2n_strerror(i32 noundef %953, ptr noundef nonnull @.str.4) #9
  %955 = load i32, ptr %952, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror_debug(i32 noundef %955, ptr noundef nonnull @.str.4) #9
  %957 = load i32, ptr %938, align 4, !tbaa !5
  %958 = call ptr @strerror(i32 noundef %957) #9
  %959 = load i32, ptr %938, align 4, !tbaa !5
  %960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %950, ptr noundef nonnull %.str.5.sink482, i32 noundef %951, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %954, ptr noundef %956, ptr noundef %958, i32 noundef %959) #11
  call void @exit(i32 noundef 1) #12
  unreachable

961:                                              ; preds = %934
  %962 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %963 = icmp eq i32 %962, -1
  br i1 %963, label %964, label %988

964:                                              ; preds = %961
  %965 = tail call ptr @__errno_location() #10
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = call i32 @s2n_print_stacktrace(ptr noundef %967) #9
  %969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %970 = trunc nuw i8 %969 to i1
  br i1 %970, label %971, label %975

971:                                              ; preds = %964
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = call i32 @fileno(ptr noundef %972) #9
  %974 = call i32 @isatty(i32 noundef %973) #9
  %.not100 = icmp eq i32 %974, 0
  br i1 %.not100, label %975, label %976

975:                                              ; preds = %971, %964
  br label %976

976:                                              ; preds = %971, %975
  %.str.5.sink493 = phi ptr [ @.str.5, %975 ], [ @.str.2, %971 ]
  store i32 %966, ptr %965, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror(i32 noundef %980, ptr noundef nonnull @.str.4) #9
  %982 = load i32, ptr %979, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror_debug(i32 noundef %982, ptr noundef nonnull @.str.4) #9
  %984 = load i32, ptr %965, align 4, !tbaa !5
  %985 = call ptr @strerror(i32 noundef %984) #9
  %986 = load i32, ptr %965, align 4, !tbaa !5
  %987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef nonnull %.str.5.sink493, i32 noundef %978, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %981, ptr noundef %983, ptr noundef %985, i32 noundef %986) #11
  call void @exit(i32 noundef 1) #12
  unreachable

988:                                              ; preds = %961
  %989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %991, label %1002

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

995:                                              ; preds = %991
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not99 = icmp eq i32 %996, 0
  %997 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not99, label %1000, label %998

998:                                              ; preds = %995
  %999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef nonnull @.str.26, i32 noundef %996) #9
  br label %1009

1000:                                             ; preds = %995
  %1001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef nonnull @.str.27) #9
  br label %1009

1002:                                             ; preds = %991, %988
  %1003 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not98 = icmp eq i32 %1003, 0
  %1004 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not98, label %1007, label %1005

1005:                                             ; preds = %1002
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1004, ptr noundef nonnull @.str.28, i32 noundef %1003) #9
  br label %1009

1007:                                             ; preds = %1002
  %1008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1004, ptr noundef nonnull @.str.29) #9
  br label %1009

1009:                                             ; preds = %1005, %1007, %998, %1000
  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_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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


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