; LLVM IR from aws/s2n-tls :: tests/unit (s2n_nst_early_data_indication_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
@s2n_nst_early_data_indication_extension = external constant %struct.s2n_extension_type, align 8
@.str.8 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %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 ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %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 i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca %struct.s2n_stuffer, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = 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 %57

57:                                               ; preds = %2
  br label %58

58:                                               ; preds = %57
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %59 = load ptr, ptr @stdout, align 8, !tbaa !9
  %60 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef @.str, ptr noundef @.str.1) #8
  %61 = load ptr, ptr @stdout, align 8, !tbaa !9
  %62 = call i32 @fflush(ptr noundef %61)
  br label %63

63:                                               ; preds = %58
  %64 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %117

66:                                               ; preds = %63
  br label %67

67:                                               ; preds = %66
  br label %68

68:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  %69 = call ptr @__errno_location() #9
  %70 = load i32, ptr %69, align 4, !tbaa !5
  store i32 %70, ptr %6, align 4, !tbaa !5
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = call i32 @s2n_print_stacktrace(ptr noundef %71)
  %73 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %74 = trunc i8 %73 to i1
  br i1 %74, label %75, label %97

75:                                               ; preds = %68
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = call i32 @fileno(ptr noundef %76) #8
  %78 = call i32 @isatty(i32 noundef %77) #8
  %79 = icmp ne i32 %78, 0
  br i1 %79, label %80, label %97

80:                                               ; preds = %75
  %81 = load i32, ptr %6, align 4, !tbaa !5
  %82 = call ptr @__errno_location() #9
  store i32 %81, ptr %82, align 4, !tbaa !5
  %83 = load ptr, ptr @stderr, align 8, !tbaa !9
  %84 = load i32, ptr @test_count, align 4, !tbaa !5
  %85 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %86 = load i32, ptr %85, align 4, !tbaa !5
  %87 = call ptr @s2n_strerror(i32 noundef %86, ptr noundef @.str.4)
  %88 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %90 = call ptr @s2n_strerror_debug(i32 noundef %89, ptr noundef @.str.4)
  %91 = call ptr @__errno_location() #9
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %93 = call ptr @strerror(i32 noundef %92) #8
  %94 = call ptr @__errno_location() #9
  %95 = load i32, ptr %94, align 4, !tbaa !5
  %96 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %83, ptr noundef @.str.2, i32 noundef %84, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 22, ptr noundef %87, ptr noundef %90, ptr noundef %93, i32 noundef %95) #8
  br label %114

97:                                               ; preds = %75, %68
  %98 = load i32, ptr %6, align 4, !tbaa !5
  %99 = call ptr @__errno_location() #9
  store i32 %98, ptr %99, align 4, !tbaa !5
  %100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %101 = load i32, ptr @test_count, align 4, !tbaa !5
  %102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = call ptr @s2n_strerror(i32 noundef %103, ptr noundef @.str.4)
  %105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %106 = load i32, ptr %105, align 4, !tbaa !5
  %107 = call ptr @s2n_strerror_debug(i32 noundef %106, ptr noundef @.str.4)
  %108 = call ptr @__errno_location() #9
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %110 = call ptr @strerror(i32 noundef %109) #8
  %111 = call ptr @__errno_location() #9
  %112 = load i32, ptr %111, align 4, !tbaa !5
  %113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %100, ptr noundef @.str.5, i32 noundef %101, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 22, ptr noundef %104, ptr noundef %107, ptr noundef %110, i32 noundef %112) #8
  br label %114

114:                                              ; preds = %97, %80
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %115

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

116:                                              ; No predecessors!
  br label %117

117:                                              ; preds = %116, %63
  br label %118

118:                                              ; preds = %117
  br label %119

119:                                              ; preds = %118
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = call i32 @s2n_enable_atexit()
  %123 = icmp eq i32 %122, -1
  br i1 %123, label %124, label %175

124:                                              ; preds = %119
  br label %125

125:                                              ; preds = %124
  br label %126

126:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  %127 = call ptr @__errno_location() #9
  %128 = load i32, ptr %127, align 4, !tbaa !5
  store i32 %128, ptr %7, align 4, !tbaa !5
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = call i32 @s2n_print_stacktrace(ptr noundef %129)
  %131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %132 = trunc i8 %131 to i1
  br i1 %132, label %133, label %155

133:                                              ; preds = %126
  %134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %135 = call i32 @fileno(ptr noundef %134) #8
  %136 = call i32 @isatty(i32 noundef %135) #8
  %137 = icmp ne i32 %136, 0
  br i1 %137, label %138, label %155

138:                                              ; preds = %133
  %139 = load i32, ptr %7, align 4, !tbaa !5
  %140 = call ptr @__errno_location() #9
  store i32 %139, ptr %140, align 4, !tbaa !5
  %141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %142 = load i32, ptr @test_count, align 4, !tbaa !5
  %143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = call ptr @s2n_strerror(i32 noundef %144, ptr noundef @.str.4)
  %146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %147 = load i32, ptr %146, align 4, !tbaa !5
  %148 = call ptr @s2n_strerror_debug(i32 noundef %147, ptr noundef @.str.4)
  %149 = call ptr @__errno_location() #9
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = call ptr @strerror(i32 noundef %150) #8
  %152 = call ptr @__errno_location() #9
  %153 = load i32, ptr %152, align 4, !tbaa !5
  %154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %141, ptr noundef @.str.2, i32 noundef %142, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 22, ptr noundef %145, ptr noundef %148, ptr noundef %151, i32 noundef %153) #8
  br label %172

155:                                              ; preds = %133, %126
  %156 = load i32, ptr %7, align 4, !tbaa !5
  %157 = call ptr @__errno_location() #9
  store i32 %156, ptr %157, align 4, !tbaa !5
  %158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %159 = load i32, ptr @test_count, align 4, !tbaa !5
  %160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = call ptr @s2n_strerror(i32 noundef %161, ptr noundef @.str.4)
  %163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %164 = load i32, ptr %163, align 4, !tbaa !5
  %165 = call ptr @s2n_strerror_debug(i32 noundef %164, ptr noundef @.str.4)
  %166 = call ptr @__errno_location() #9
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call ptr @strerror(i32 noundef %167) #8
  %169 = call ptr @__errno_location() #9
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %158, ptr noundef @.str.5, i32 noundef %159, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 22, ptr noundef %162, ptr noundef %165, ptr noundef %168, i32 noundef %170) #8
  br label %172

172:                                              ; preds = %155, %138
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %173

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

174:                                              ; No predecessors!
  br label %175

175:                                              ; preds = %174, %119
  br label %176

176:                                              ; preds = %175
  br label %177

177:                                              ; preds = %176
  br label %178

178:                                              ; preds = %177
  %179 = call i32 @s2n_init()
  %180 = icmp eq i32 %179, -1
  br i1 %180, label %181, label %232

181:                                              ; preds = %178
  br label %182

182:                                              ; preds = %181
  br label %183

183:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %184 = call ptr @__errno_location() #9
  %185 = load i32, ptr %184, align 4, !tbaa !5
  store i32 %185, ptr %8, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = call i32 @s2n_print_stacktrace(ptr noundef %186)
  %188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %189 = trunc i8 %188 to i1
  br i1 %189, label %190, label %212

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

195:                                              ; preds = %190
  %196 = load i32, ptr %8, align 4, !tbaa !5
  %197 = call ptr @__errno_location() #9
  store i32 %196, ptr %197, align 4, !tbaa !5
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = load i32, ptr @test_count, align 4, !tbaa !5
  %200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = call ptr @s2n_strerror(i32 noundef %201, ptr noundef @.str.4)
  %203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = call ptr @s2n_strerror_debug(i32 noundef %204, ptr noundef @.str.4)
  %206 = call ptr @__errno_location() #9
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = call ptr @strerror(i32 noundef %207) #8
  %209 = call ptr @__errno_location() #9
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %198, ptr noundef @.str.2, i32 noundef %199, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 22, ptr noundef %202, ptr noundef %205, ptr noundef %208, i32 noundef %210) #8
  br label %229

212:                                              ; preds = %190, %183
  %213 = load i32, ptr %8, align 4, !tbaa !5
  %214 = call ptr @__errno_location() #9
  store i32 %213, ptr %214, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = load i32, ptr @test_count, align 4, !tbaa !5
  %217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror(i32 noundef %218, ptr noundef @.str.4)
  %220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = call ptr @s2n_strerror_debug(i32 noundef %221, ptr noundef @.str.4)
  %223 = call ptr @__errno_location() #9
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = call ptr @strerror(i32 noundef %224) #8
  %226 = call ptr @__errno_location() #9
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %215, ptr noundef @.str.5, i32 noundef %216, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 22, ptr noundef %219, ptr noundef %222, ptr noundef %225, i32 noundef %227) #8
  br label %229

229:                                              ; preds = %212, %195
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %230

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

231:                                              ; No predecessors!
  br label %232

232:                                              ; preds = %231, %178
  br label %233

233:                                              ; preds = %232
  br label %234

234:                                              ; preds = %233
  br label %235

235:                                              ; preds = %234
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %239 = call zeroext i1 %238(ptr noundef null)
  br i1 %239, label %240, label %291

240:                                              ; preds = %235
  br label %241

241:                                              ; preds = %240
  br label %242

242:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  %243 = call ptr @__errno_location() #9
  %244 = load i32, ptr %243, align 4, !tbaa !5
  store i32 %244, ptr %9, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = call i32 @s2n_print_stacktrace(ptr noundef %245)
  %247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %248 = trunc i8 %247 to i1
  br i1 %248, label %249, label %271

249:                                              ; preds = %242
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = call i32 @fileno(ptr noundef %250) #8
  %252 = call i32 @isatty(i32 noundef %251) #8
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %254, label %271

254:                                              ; preds = %249
  %255 = load i32, ptr %9, align 4, !tbaa !5
  %256 = call ptr @__errno_location() #9
  store i32 %255, ptr %256, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = load i32, ptr @test_count, align 4, !tbaa !5
  %259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call ptr @s2n_strerror(i32 noundef %260, ptr noundef @.str.4)
  %262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror_debug(i32 noundef %263, ptr noundef @.str.4)
  %265 = call ptr @__errno_location() #9
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call ptr @strerror(i32 noundef %266) #8
  %268 = call ptr @__errno_location() #9
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %257, ptr noundef @.str.2, i32 noundef %258, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 27, ptr noundef %261, ptr noundef %264, ptr noundef %267, i32 noundef %269) #8
  br label %288

271:                                              ; preds = %249, %242
  %272 = load i32, ptr %9, align 4, !tbaa !5
  %273 = call ptr @__errno_location() #9
  store i32 %272, ptr %273, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror(i32 noundef %277, ptr noundef @.str.4)
  %279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = call ptr @s2n_strerror_debug(i32 noundef %280, ptr noundef @.str.4)
  %282 = call ptr @__errno_location() #9
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call ptr @strerror(i32 noundef %283) #8
  %285 = call ptr @__errno_location() #9
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %274, ptr noundef @.str.5, i32 noundef %275, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 27, ptr noundef %278, ptr noundef %281, ptr noundef %284, i32 noundef %286) #8
  br label %288

288:                                              ; preds = %271, %254
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %289

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

290:                                              ; No predecessors!
  br label %291

291:                                              ; preds = %290, %235
  br label %292

292:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  %293 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %293, ptr %10, align 8, !tbaa !9
  br label %294

294:                                              ; preds = %292
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = add nsw i32 %295, 1
  store i32 %296, ptr @test_count, align 4, !tbaa !5
  %297 = load ptr, ptr %10, align 8, !tbaa !9
  %298 = icmp eq ptr %297, null
  br i1 %298, label %299, label %352

299:                                              ; preds = %294
  br label %300

300:                                              ; preds = %299
  br label %301

301:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  %302 = call ptr @__errno_location() #9
  %303 = load i32, ptr %302, align 4, !tbaa !5
  store i32 %303, ptr %11, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @s2n_print_stacktrace(ptr noundef %304)
  %306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %307 = trunc i8 %306 to i1
  br i1 %307, label %308, label %330

308:                                              ; preds = %301
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = call i32 @fileno(ptr noundef %309) #8
  %311 = call i32 @isatty(i32 noundef %310) #8
  %312 = icmp ne i32 %311, 0
  br i1 %312, label %313, label %330

313:                                              ; preds = %308
  %314 = load i32, ptr %11, align 4, !tbaa !5
  %315 = call ptr @__errno_location() #9
  store i32 %314, ptr %315, align 4, !tbaa !5
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror(i32 noundef %319, ptr noundef @.str.4)
  %321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = call ptr @s2n_strerror_debug(i32 noundef %322, ptr noundef @.str.4)
  %324 = call ptr @__errno_location() #9
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @strerror(i32 noundef %325) #8
  %327 = call ptr @__errno_location() #9
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %316, ptr noundef @.str.2, i32 noundef %317, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 30, ptr noundef %320, ptr noundef %323, ptr noundef %326, i32 noundef %328) #8
  br label %347

330:                                              ; preds = %308, %301
  %331 = load i32, ptr %11, align 4, !tbaa !5
  %332 = call ptr @__errno_location() #9
  store i32 %331, ptr %332, align 4, !tbaa !5
  %333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %334 = load i32, ptr @test_count, align 4, !tbaa !5
  %335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %336 = load i32, ptr %335, align 4, !tbaa !5
  %337 = call ptr @s2n_strerror(i32 noundef %336, ptr noundef @.str.4)
  %338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %339 = load i32, ptr %338, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror_debug(i32 noundef %339, ptr noundef @.str.4)
  %341 = call ptr @__errno_location() #9
  %342 = load i32, ptr %341, align 4, !tbaa !5
  %343 = call ptr @strerror(i32 noundef %342) #8
  %344 = call ptr @__errno_location() #9
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %333, ptr noundef @.str.5, i32 noundef %334, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 30, ptr noundef %337, ptr noundef %340, ptr noundef %343, i32 noundef %345) #8
  br label %347

347:                                              ; preds = %330, %313
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  br label %348

348:                                              ; preds = %347
  br label %349

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

350:                                              ; No predecessors!
  br label %351

351:                                              ; preds = %350
  br label %352

352:                                              ; preds = %351, %294
  br label %353

353:                                              ; preds = %352
  br label %354

354:                                              ; preds = %353
  br label %355

355:                                              ; preds = %354
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = add nsw i32 %356, 1
  store i32 %357, ptr @test_count, align 4, !tbaa !5
  %358 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %359 = load ptr, ptr %10, align 8, !tbaa !9
  %360 = call zeroext i1 %358(ptr noundef %359)
  br i1 %360, label %361, label %414

361:                                              ; preds = %355
  br label %362

362:                                              ; preds = %361
  br label %363

363:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %364 = call ptr @__errno_location() #9
  %365 = load i32, ptr %364, align 4, !tbaa !5
  store i32 %365, ptr %12, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @s2n_print_stacktrace(ptr noundef %366)
  %368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %369 = trunc i8 %368 to i1
  br i1 %369, label %370, label %392

370:                                              ; preds = %363
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @fileno(ptr noundef %371) #8
  %373 = call i32 @isatty(i32 noundef %372) #8
  %374 = icmp ne i32 %373, 0
  br i1 %374, label %375, label %392

375:                                              ; preds = %370
  %376 = load i32, ptr %12, align 4, !tbaa !5
  %377 = call ptr @__errno_location() #9
  store i32 %376, ptr %377, align 4, !tbaa !5
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = call ptr @s2n_strerror(i32 noundef %381, ptr noundef @.str.4)
  %383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @s2n_strerror_debug(i32 noundef %384, ptr noundef @.str.4)
  %386 = call ptr @__errno_location() #9
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call ptr @strerror(i32 noundef %387) #8
  %389 = call ptr @__errno_location() #9
  %390 = load i32, ptr %389, align 4, !tbaa !5
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %378, ptr noundef @.str.2, i32 noundef %379, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 33, ptr noundef %382, ptr noundef %385, ptr noundef %388, i32 noundef %390) #8
  br label %409

392:                                              ; preds = %370, %363
  %393 = load i32, ptr %12, align 4, !tbaa !5
  %394 = call ptr @__errno_location() #9
  store i32 %393, ptr %394, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %398 = load i32, ptr %397, align 4, !tbaa !5
  %399 = call ptr @s2n_strerror(i32 noundef %398, ptr noundef @.str.4)
  %400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = call ptr @s2n_strerror_debug(i32 noundef %401, ptr noundef @.str.4)
  %403 = call ptr @__errno_location() #9
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = call ptr @strerror(i32 noundef %404) #8
  %406 = call ptr @__errno_location() #9
  %407 = load i32, ptr %406, align 4, !tbaa !5
  %408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %395, ptr noundef @.str.5, i32 noundef %396, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 33, ptr noundef %399, ptr noundef %402, ptr noundef %405, i32 noundef %407) #8
  br label %409

409:                                              ; preds = %392, %375
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %410

410:                                              ; preds = %409
  br label %411

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

412:                                              ; No predecessors!
  br label %413

413:                                              ; preds = %412
  br label %414

414:                                              ; preds = %413, %355
  br label %415

415:                                              ; preds = %414
  br label %416

416:                                              ; preds = %415
  br label %417

417:                                              ; preds = %416
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = add nsw i32 %418, 1
  store i32 %419, ptr @test_count, align 4, !tbaa !5
  %420 = load ptr, ptr %10, align 8, !tbaa !9
  %421 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef %420, i32 noundef 0)
  %422 = icmp eq i32 %421, -1
  br i1 %422, label %423, label %476

423:                                              ; preds = %417
  br label %424

424:                                              ; preds = %423
  br label %425

425:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %426 = call ptr @__errno_location() #9
  %427 = load i32, ptr %426, align 4, !tbaa !5
  store i32 %427, ptr %13, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = call i32 @s2n_print_stacktrace(ptr noundef %428)
  %430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %431 = trunc i8 %430 to i1
  br i1 %431, label %432, label %454

432:                                              ; preds = %425
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = call i32 @fileno(ptr noundef %433) #8
  %435 = call i32 @isatty(i32 noundef %434) #8
  %436 = icmp ne i32 %435, 0
  br i1 %436, label %437, label %454

437:                                              ; preds = %432
  %438 = load i32, ptr %13, align 4, !tbaa !5
  %439 = call ptr @__errno_location() #9
  store i32 %438, ptr %439, align 4, !tbaa !5
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = load i32, ptr @test_count, align 4, !tbaa !5
  %442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror(i32 noundef %443, ptr noundef @.str.4)
  %445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror_debug(i32 noundef %446, ptr noundef @.str.4)
  %448 = call ptr @__errno_location() #9
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @strerror(i32 noundef %449) #8
  %451 = call ptr @__errno_location() #9
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %440, ptr noundef @.str.2, i32 noundef %441, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 36, ptr noundef %444, ptr noundef %447, ptr noundef %450, i32 noundef %452) #8
  br label %471

454:                                              ; preds = %432, %425
  %455 = load i32, ptr %13, align 4, !tbaa !5
  %456 = call ptr @__errno_location() #9
  store i32 %455, ptr %456, align 4, !tbaa !5
  %457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror(i32 noundef %460, ptr noundef @.str.4)
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror_debug(i32 noundef %463, ptr noundef @.str.4)
  %465 = call ptr @__errno_location() #9
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @strerror(i32 noundef %466) #8
  %468 = call ptr @__errno_location() #9
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %457, ptr noundef @.str.5, i32 noundef %458, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 36, ptr noundef %461, ptr noundef %464, ptr noundef %467, i32 noundef %469) #8
  br label %471

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

472:                                              ; preds = %471
  br label %473

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

474:                                              ; No predecessors!
  br label %475

475:                                              ; preds = %474
  br label %476

476:                                              ; preds = %475, %417
  br label %477

477:                                              ; preds = %476
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %483 = load ptr, ptr %10, align 8, !tbaa !9
  %484 = call zeroext i1 %482(ptr noundef %483)
  br i1 %484, label %485, label %538

485:                                              ; preds = %479
  br label %486

486:                                              ; preds = %485
  br label %487

487:                                              ; preds = %486
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %488 = call ptr @__errno_location() #9
  %489 = load i32, ptr %488, align 4, !tbaa !5
  store i32 %489, ptr %14, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = call i32 @s2n_print_stacktrace(ptr noundef %490)
  %492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %493 = trunc i8 %492 to i1
  br i1 %493, label %494, label %516

494:                                              ; preds = %487
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = call i32 @fileno(ptr noundef %495) #8
  %497 = call i32 @isatty(i32 noundef %496) #8
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %499, label %516

499:                                              ; preds = %494
  %500 = load i32, ptr %14, align 4, !tbaa !5
  %501 = call ptr @__errno_location() #9
  store i32 %500, ptr %501, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror(i32 noundef %505, ptr noundef @.str.4)
  %507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef @.str.4)
  %510 = call ptr @__errno_location() #9
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call ptr @strerror(i32 noundef %511) #8
  %513 = call ptr @__errno_location() #9
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %502, ptr noundef @.str.2, i32 noundef %503, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 37, ptr noundef %506, ptr noundef %509, ptr noundef %512, i32 noundef %514) #8
  br label %533

516:                                              ; preds = %494, %487
  %517 = load i32, ptr %14, align 4, !tbaa !5
  %518 = call ptr @__errno_location() #9
  store i32 %517, ptr %518, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror(i32 noundef %522, ptr noundef @.str.4)
  %524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef @.str.4)
  %527 = call ptr @__errno_location() #9
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = call ptr @strerror(i32 noundef %528) #8
  %530 = call ptr @__errno_location() #9
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %519, ptr noundef @.str.5, i32 noundef %520, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 37, ptr noundef %523, ptr noundef %526, ptr noundef %529, i32 noundef %531) #8
  br label %533

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

534:                                              ; preds = %533
  br label %535

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

536:                                              ; No predecessors!
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537, %479
  br label %539

539:                                              ; preds = %538
  br label %540

540:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  store i32 13, ptr %15, align 4, !tbaa !5
  br label %541

541:                                              ; preds = %540
  %542 = load i32, ptr @test_count, align 4, !tbaa !5
  %543 = add nsw i32 %542, 1
  store i32 %543, ptr @test_count, align 4, !tbaa !5
  %544 = load ptr, ptr %10, align 8, !tbaa !9
  %545 = load i32, ptr %15, align 4, !tbaa !5
  %546 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef %544, i32 noundef %545)
  %547 = icmp eq i32 %546, -1
  br i1 %547, label %548, label %601

548:                                              ; preds = %541
  br label %549

549:                                              ; preds = %548
  br label %550

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

557:                                              ; preds = %550
  %558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %559 = call i32 @fileno(ptr noundef %558) #8
  %560 = call i32 @isatty(i32 noundef %559) #8
  %561 = icmp ne i32 %560, 0
  br i1 %561, label %562, label %579

562:                                              ; preds = %557
  %563 = load i32, ptr %16, align 4, !tbaa !5
  %564 = call ptr @__errno_location() #9
  store i32 %563, ptr %564, align 4, !tbaa !5
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = load i32, ptr @test_count, align 4, !tbaa !5
  %567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = call ptr @s2n_strerror(i32 noundef %568, ptr noundef @.str.4)
  %570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = call ptr @s2n_strerror_debug(i32 noundef %571, ptr noundef @.str.4)
  %573 = call ptr @__errno_location() #9
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call ptr @strerror(i32 noundef %574) #8
  %576 = call ptr @__errno_location() #9
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %565, ptr noundef @.str.2, i32 noundef %566, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 41, ptr noundef %569, ptr noundef %572, ptr noundef %575, i32 noundef %577) #8
  br label %596

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

596:                                              ; preds = %579, %562
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %597

597:                                              ; preds = %596
  br label %598

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

599:                                              ; No predecessors!
  br label %600

600:                                              ; preds = %599
  br label %601

601:                                              ; preds = %600, %541
  br label %602

602:                                              ; preds = %601
  br label %603

603:                                              ; preds = %602
  br label %604

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

610:                                              ; preds = %604
  br label %611

611:                                              ; preds = %610
  br label %612

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

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

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

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

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

659:                                              ; preds = %658
  br label %660

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

661:                                              ; No predecessors!
  br label %662

662:                                              ; preds = %661
  br label %663

663:                                              ; preds = %662, %604
  br label %664

664:                                              ; preds = %663
  br label %665

665:                                              ; preds = %664
  br label %666

666:                                              ; preds = %665
  %667 = load i32, ptr @test_count, align 4, !tbaa !5
  %668 = add nsw i32 %667, 1
  store i32 %668, ptr @test_count, align 4, !tbaa !5
  %669 = load ptr, ptr %10, align 8, !tbaa !9
  %670 = call i32 @s2n_connection_free(ptr noundef %669)
  %671 = icmp eq i32 %670, -1
  br i1 %671, label %672, label %725

672:                                              ; preds = %666
  br label %673

673:                                              ; preds = %672
  br label %674

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

681:                                              ; preds = %674
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = call i32 @fileno(ptr noundef %682) #8
  %684 = call i32 @isatty(i32 noundef %683) #8
  %685 = icmp ne i32 %684, 0
  br i1 %685, label %686, label %703

686:                                              ; preds = %681
  %687 = load i32, ptr %18, align 4, !tbaa !5
  %688 = call ptr @__errno_location() #9
  store i32 %687, ptr %688, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef @.str.4)
  %694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef @.str.4)
  %697 = call ptr @__errno_location() #9
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #8
  %700 = call ptr @__errno_location() #9
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef @.str.2, i32 noundef %690, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 44, ptr noundef %693, ptr noundef %696, ptr noundef %699, i32 noundef %701) #8
  br label %720

703:                                              ; preds = %681, %674
  %704 = load i32, ptr %18, align 4, !tbaa !5
  %705 = call ptr @__errno_location() #9
  store i32 %704, ptr %705, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef @.str.4)
  %711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror_debug(i32 noundef %712, ptr noundef @.str.4)
  %714 = call ptr @__errno_location() #9
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call ptr @strerror(i32 noundef %715) #8
  %717 = call ptr @__errno_location() #9
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef @.str.5, i32 noundef %707, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 44, ptr noundef %710, ptr noundef %713, ptr noundef %716, i32 noundef %718) #8
  br label %720

720:                                              ; preds = %703, %686
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %721

721:                                              ; preds = %720
  br label %722

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

723:                                              ; No predecessors!
  br label %724

724:                                              ; preds = %723
  br label %725

725:                                              ; preds = %724, %666
  br label %726

726:                                              ; preds = %725
  br label %727

727:                                              ; preds = %726
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %728 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %728, ptr %19, align 8, !tbaa !9
  br label %729

729:                                              ; preds = %727
  %730 = load i32, ptr @test_count, align 4, !tbaa !5
  %731 = add nsw i32 %730, 1
  store i32 %731, ptr @test_count, align 4, !tbaa !5
  %732 = load ptr, ptr %19, align 8, !tbaa !9
  %733 = icmp eq ptr %732, null
  br i1 %733, label %734, label %787

734:                                              ; preds = %729
  br label %735

735:                                              ; preds = %734
  br label %736

736:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  %737 = call ptr @__errno_location() #9
  %738 = load i32, ptr %737, align 4, !tbaa !5
  store i32 %738, ptr %20, align 4, !tbaa !5
  %739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %740 = call i32 @s2n_print_stacktrace(ptr noundef %739)
  %741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %742 = trunc i8 %741 to i1
  br i1 %742, label %743, label %765

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

748:                                              ; preds = %743
  %749 = load i32, ptr %20, align 4, !tbaa !5
  %750 = call ptr @__errno_location() #9
  store i32 %749, ptr %750, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror(i32 noundef %754, ptr noundef @.str.4)
  %756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef @.str.4)
  %759 = call ptr @__errno_location() #9
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @strerror(i32 noundef %760) #8
  %762 = call ptr @__errno_location() #9
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %751, ptr noundef @.str.2, i32 noundef %752, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 50, ptr noundef %755, ptr noundef %758, ptr noundef %761, i32 noundef %763) #8
  br label %782

765:                                              ; preds = %743, %736
  %766 = load i32, ptr %20, align 4, !tbaa !5
  %767 = call ptr @__errno_location() #9
  store i32 %766, ptr %767, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef @.str.4)
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror_debug(i32 noundef %774, ptr noundef @.str.4)
  %776 = call ptr @__errno_location() #9
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #8
  %779 = call ptr @__errno_location() #9
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef @.str.5, i32 noundef %769, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 50, ptr noundef %772, ptr noundef %775, ptr noundef %778, i32 noundef %780) #8
  br label %782

782:                                              ; preds = %765, %748
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %783

783:                                              ; preds = %782
  br label %784

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

785:                                              ; No predecessors!
  br label %786

786:                                              ; preds = %785
  br label %787

787:                                              ; preds = %786, %729
  br label %788

788:                                              ; preds = %787
  br label %789

789:                                              ; preds = %788
  %790 = load ptr, ptr %19, align 8, !tbaa !9
  %791 = getelementptr inbounds %struct.s2n_connection, ptr %790, i32 0, i32 23
  store i8 34, ptr %791, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 40, ptr %21) #8
  call void @llvm.memset.p0.i64(ptr align 8 %21, i8 0, i64 40, i1 false)
  br label %792

792:                                              ; preds = %789
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %794 = add nsw i32 %793, 1
  store i32 %794, ptr @test_count, align 4, !tbaa !5
  %795 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %21, i32 noundef 0)
  %796 = icmp eq i32 %795, -1
  br i1 %796, label %797, label %850

797:                                              ; preds = %792
  br label %798

798:                                              ; preds = %797
  br label %799

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

806:                                              ; preds = %799
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = call i32 @fileno(ptr noundef %807) #8
  %809 = call i32 @isatty(i32 noundef %808) #8
  %810 = icmp ne i32 %809, 0
  br i1 %810, label %811, label %828

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

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

845:                                              ; preds = %828, %811
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %846

846:                                              ; preds = %845
  br label %847

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

848:                                              ; No predecessors!
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849, %792
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  store i32 13, ptr %23, align 4, !tbaa !5
  br label %853

853:                                              ; preds = %852
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr @test_count, align 4, !tbaa !5
  %856 = load ptr, ptr %19, align 8, !tbaa !9
  %857 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef %856, i32 noundef 13)
  %858 = icmp eq i32 %857, -1
  br i1 %858, label %859, label %912

859:                                              ; preds = %853
  br label %860

860:                                              ; preds = %859
  br label %861

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

868:                                              ; preds = %861
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = call i32 @fileno(ptr noundef %869) #8
  %871 = call i32 @isatty(i32 noundef %870) #8
  %872 = icmp ne i32 %871, 0
  br i1 %872, label %873, label %890

873:                                              ; preds = %868
  %874 = load i32, ptr %24, align 4, !tbaa !5
  %875 = call ptr @__errno_location() #9
  store i32 %874, ptr %875, align 4, !tbaa !5
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = call ptr @s2n_strerror(i32 noundef %879, ptr noundef @.str.4)
  %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_debug(i32 noundef %882, ptr noundef @.str.4)
  %884 = call ptr @__errno_location() #9
  %885 = load i32, ptr %884, align 4, !tbaa !5
  %886 = call ptr @strerror(i32 noundef %885) #8
  %887 = call ptr @__errno_location() #9
  %888 = load i32, ptr %887, align 4, !tbaa !5
  %889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %876, ptr noundef @.str.2, i32 noundef %877, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %880, ptr noundef %883, ptr noundef %886, i32 noundef %888) #8
  br label %907

890:                                              ; preds = %868, %861
  %891 = load i32, ptr %24, align 4, !tbaa !5
  %892 = call ptr @__errno_location() #9
  store i32 %891, ptr %892, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef @.str.4)
  %898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror_debug(i32 noundef %899, ptr noundef @.str.4)
  %901 = call ptr @__errno_location() #9
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @strerror(i32 noundef %902) #8
  %904 = call ptr @__errno_location() #9
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %893, ptr noundef @.str.5, i32 noundef %894, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %897, ptr noundef %900, ptr noundef %903, i32 noundef %905) #8
  br label %907

907:                                              ; preds = %890, %873
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %908

908:                                              ; preds = %907
  br label %909

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

910:                                              ; No predecessors!
  br label %911

911:                                              ; preds = %910
  br label %912

912:                                              ; preds = %911, %853
  br label %913

913:                                              ; preds = %912
  br label %914

914:                                              ; preds = %913
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr @test_count, align 4, !tbaa !5
  %920 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 3), align 8, !tbaa !44
  %921 = load ptr, ptr %19, align 8, !tbaa !9
  %922 = call i32 %920(ptr noundef %921, ptr noundef null)
  %923 = icmp eq i32 %922, -1
  br i1 %923, label %977, label %924

924:                                              ; preds = %917
  br label %925

925:                                              ; preds = %924
  br label %926

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

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

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

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

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

973:                                              ; preds = %972
  br label %974

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

975:                                              ; No predecessors!
  br label %976

976:                                              ; preds = %975
  br label %977

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

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = icmp eq i32 %984, 402653193
  br i1 %985, label %1039, label %986

986:                                              ; preds = %980
  br label %987

987:                                              ; preds = %986
  br label %988

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

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

1000:                                             ; preds = %995
  %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.2, i32 noundef %1004, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1007, ptr noundef %1010, ptr noundef %1013, i32 noundef %1015) #8
  br label %1034

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

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

1035:                                             ; preds = %1034
  br label %1036

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

1037:                                             ; No predecessors!
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

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

1040:                                             ; preds = %1039
  br label %1041

1041:                                             ; preds = %1040
  br label %1042

1042:                                             ; preds = %1041
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror_debug(i32 noundef %1046, ptr noundef @.str.4)
  %1048 = icmp eq ptr %1047, null
  br i1 %1048, label %1049, label %1102

1049:                                             ; preds = %1042
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

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

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

1063:                                             ; preds = %1058
  %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.2, i32 noundef %1067, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1070, ptr noundef %1073, ptr noundef %1076, i32 noundef %1078) #8
  br label %1097

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

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

1098:                                             ; preds = %1097
  br label %1099

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

1100:                                             ; No predecessors!
  br label %1101

1101:                                             ; preds = %1100
  br label %1102

1102:                                             ; preds = %1101, %1042
  br label %1103

1103:                                             ; preds = %1102
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

1105:                                             ; preds = %1104
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  %1108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1108, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1109 = call ptr @__errno_location() #9
  store i32 0, ptr %1109, align 4, !tbaa !5
  br label %1110

1110:                                             ; preds = %1107
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

1114:                                             ; preds = %1113
  br label %1115

1115:                                             ; preds = %1114
  br label %1116

1116:                                             ; preds = %1115
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 3), align 8, !tbaa !44
  %1120 = call i32 %1119(ptr noundef null, ptr noundef %21)
  %1121 = icmp eq i32 %1120, -1
  br i1 %1121, label %1175, label %1122

1122:                                             ; preds = %1116
  br label %1123

1123:                                             ; preds = %1122
  br label %1124

1124:                                             ; preds = %1123
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1125 = call ptr @__errno_location() #9
  %1126 = load i32, ptr %1125, align 4, !tbaa !5
  store i32 %1126, ptr %28, align 4, !tbaa !5
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = call i32 @s2n_print_stacktrace(ptr noundef %1127)
  %1129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1130 = trunc i8 %1129 to i1
  br i1 %1130, label %1131, label %1153

1131:                                             ; preds = %1124
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = call i32 @fileno(ptr noundef %1132) #8
  %1134 = call i32 @isatty(i32 noundef %1133) #8
  %1135 = icmp ne i32 %1134, 0
  br i1 %1135, label %1136, label %1153

1136:                                             ; preds = %1131
  %1137 = load i32, ptr %28, align 4, !tbaa !5
  %1138 = call ptr @__errno_location() #9
  store i32 %1137, ptr %1138, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror(i32 noundef %1142, ptr noundef @.str.4)
  %1144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = call ptr @s2n_strerror_debug(i32 noundef %1145, ptr noundef @.str.4)
  %1147 = call ptr @__errno_location() #9
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @strerror(i32 noundef %1148) #8
  %1150 = call ptr @__errno_location() #9
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1139, ptr noundef @.str.2, i32 noundef %1140, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1143, ptr noundef %1146, ptr noundef %1149, i32 noundef %1151) #8
  br label %1170

1153:                                             ; preds = %1131, %1124
  %1154 = load i32, ptr %28, align 4, !tbaa !5
  %1155 = call ptr @__errno_location() #9
  store i32 %1154, ptr %1155, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1159 = load i32, ptr %1158, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror(i32 noundef %1159, ptr noundef @.str.4)
  %1161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror_debug(i32 noundef %1162, ptr noundef @.str.4)
  %1164 = call ptr @__errno_location() #9
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @strerror(i32 noundef %1165) #8
  %1167 = call ptr @__errno_location() #9
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1156, ptr noundef @.str.5, i32 noundef %1157, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1160, ptr noundef %1163, ptr noundef %1166, i32 noundef %1168) #8
  br label %1170

1170:                                             ; preds = %1153, %1136
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1171

1171:                                             ; preds = %1170
  br label %1172

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

1173:                                             ; No predecessors!
  br label %1174

1174:                                             ; preds = %1173
  br label %1175

1175:                                             ; preds = %1174, %1116
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177
  %1179 = load i32, ptr @test_count, align 4, !tbaa !5
  %1180 = add nsw i32 %1179, 1
  store i32 %1180, ptr @test_count, align 4, !tbaa !5
  %1181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = icmp eq i32 %1182, 402653193
  br i1 %1183, label %1237, label %1184

1184:                                             ; preds = %1178
  br label %1185

1185:                                             ; preds = %1184
  br label %1186

1186:                                             ; preds = %1185
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %1187 = call ptr @__errno_location() #9
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  store i32 %1188, ptr %29, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @s2n_print_stacktrace(ptr noundef %1189)
  %1191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1192 = trunc i8 %1191 to i1
  br i1 %1192, label %1193, label %1215

1193:                                             ; preds = %1186
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = call i32 @fileno(ptr noundef %1194) #8
  %1196 = call i32 @isatty(i32 noundef %1195) #8
  %1197 = icmp ne i32 %1196, 0
  br i1 %1197, label %1198, label %1215

1198:                                             ; preds = %1193
  %1199 = load i32, ptr %29, align 4, !tbaa !5
  %1200 = call ptr @__errno_location() #9
  store i32 %1199, ptr %1200, align 4, !tbaa !5
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = load i32, ptr @test_count, align 4, !tbaa !5
  %1203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call ptr @s2n_strerror(i32 noundef %1204, ptr noundef @.str.4)
  %1206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = call ptr @s2n_strerror_debug(i32 noundef %1207, ptr noundef @.str.4)
  %1209 = call ptr @__errno_location() #9
  %1210 = load i32, ptr %1209, align 4, !tbaa !5
  %1211 = call ptr @strerror(i32 noundef %1210) #8
  %1212 = call ptr @__errno_location() #9
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1201, ptr noundef @.str.2, i32 noundef %1202, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1205, ptr noundef %1208, ptr noundef %1211, i32 noundef %1213) #8
  br label %1232

1215:                                             ; preds = %1193, %1186
  %1216 = load i32, ptr %29, align 4, !tbaa !5
  %1217 = call ptr @__errno_location() #9
  store i32 %1216, ptr %1217, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror(i32 noundef %1221, ptr noundef @.str.4)
  %1223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = call ptr @s2n_strerror_debug(i32 noundef %1224, ptr noundef @.str.4)
  %1226 = call ptr @__errno_location() #9
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = call ptr @strerror(i32 noundef %1227) #8
  %1229 = call ptr @__errno_location() #9
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef @.str.5, i32 noundef %1219, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1222, ptr noundef %1225, ptr noundef %1228, i32 noundef %1230) #8
  br label %1232

1232:                                             ; preds = %1215, %1198
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1233

1233:                                             ; preds = %1232
  br label %1234

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

1235:                                             ; No predecessors!
  br label %1236

1236:                                             ; preds = %1235
  br label %1237

1237:                                             ; preds = %1236, %1178
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238
  br label %1240

1240:                                             ; preds = %1239
  %1241 = load i32, ptr @test_count, align 4, !tbaa !5
  %1242 = add nsw i32 %1241, 1
  store i32 %1242, ptr @test_count, align 4, !tbaa !5
  %1243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call ptr @s2n_strerror_debug(i32 noundef %1244, ptr noundef @.str.4)
  %1246 = icmp eq ptr %1245, null
  br i1 %1246, label %1247, label %1300

1247:                                             ; preds = %1240
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %1250 = call ptr @__errno_location() #9
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  store i32 %1251, ptr %30, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @s2n_print_stacktrace(ptr noundef %1252)
  %1254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1255 = trunc i8 %1254 to i1
  br i1 %1255, label %1256, label %1278

1256:                                             ; preds = %1249
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @fileno(ptr noundef %1257) #8
  %1259 = call i32 @isatty(i32 noundef %1258) #8
  %1260 = icmp ne i32 %1259, 0
  br i1 %1260, label %1261, label %1278

1261:                                             ; preds = %1256
  %1262 = load i32, ptr %30, align 4, !tbaa !5
  %1263 = call ptr @__errno_location() #9
  store i32 %1262, ptr %1263, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %1266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror(i32 noundef %1267, ptr noundef @.str.4)
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef @.str.4)
  %1272 = call ptr @__errno_location() #9
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @strerror(i32 noundef %1273) #8
  %1275 = call ptr @__errno_location() #9
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1264, ptr noundef @.str.2, i32 noundef %1265, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1268, ptr noundef %1271, ptr noundef %1274, i32 noundef %1276) #8
  br label %1295

1278:                                             ; preds = %1256, %1249
  %1279 = load i32, ptr %30, align 4, !tbaa !5
  %1280 = call ptr @__errno_location() #9
  store i32 %1279, ptr %1280, align 4, !tbaa !5
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = load i32, ptr @test_count, align 4, !tbaa !5
  %1283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @s2n_strerror(i32 noundef %1284, ptr noundef @.str.4)
  %1286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror_debug(i32 noundef %1287, ptr noundef @.str.4)
  %1289 = call ptr @__errno_location() #9
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = call ptr @strerror(i32 noundef %1290) #8
  %1292 = call ptr @__errno_location() #9
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1281, ptr noundef @.str.5, i32 noundef %1282, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1285, ptr noundef %1288, ptr noundef %1291, i32 noundef %1293) #8
  br label %1295

1295:                                             ; preds = %1278, %1261
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

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

1298:                                             ; No predecessors!
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

1300:                                             ; preds = %1299, %1240
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  %1306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1306, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1307 = call ptr @__errno_location() #9
  store i32 0, ptr %1307, align 4, !tbaa !5
  br label %1308

1308:                                             ; preds = %1305
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %1312

1312:                                             ; preds = %1311
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = add nsw i32 %1313, 1
  store i32 %1314, ptr @test_count, align 4, !tbaa !5
  %1315 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 3), align 8, !tbaa !44
  %1316 = load ptr, ptr %19, align 8, !tbaa !9
  %1317 = call i32 %1315(ptr noundef %1316, ptr noundef %21)
  %1318 = icmp eq i32 %1317, -1
  br i1 %1318, label %1319, label %1372

1319:                                             ; preds = %1312
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %1322 = call ptr @__errno_location() #9
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  store i32 %1323, ptr %32, align 4, !tbaa !5
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = call i32 @s2n_print_stacktrace(ptr noundef %1324)
  %1326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1327 = trunc i8 %1326 to i1
  br i1 %1327, label %1328, label %1350

1328:                                             ; preds = %1321
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = call i32 @fileno(ptr noundef %1329) #8
  %1331 = call i32 @isatty(i32 noundef %1330) #8
  %1332 = icmp ne i32 %1331, 0
  br i1 %1332, label %1333, label %1350

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

1350:                                             ; preds = %1328, %1321
  %1351 = load i32, ptr %32, align 4, !tbaa !5
  %1352 = call ptr @__errno_location() #9
  store i32 %1351, ptr %1352, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror(i32 noundef %1356, ptr noundef @.str.4)
  %1358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror_debug(i32 noundef %1359, ptr noundef @.str.4)
  %1361 = call ptr @__errno_location() #9
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @strerror(i32 noundef %1362) #8
  %1364 = call ptr @__errno_location() #9
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1353, ptr noundef @.str.5, i32 noundef %1354, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1357, ptr noundef %1360, ptr noundef %1363, i32 noundef %1365) #8
  br label %1367

1367:                                             ; preds = %1350, %1333
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %1368

1368:                                             ; preds = %1367
  br label %1369

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

1370:                                             ; No predecessors!
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

1372:                                             ; preds = %1371, %1312
  br label %1373

1373:                                             ; preds = %1372
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr @test_count, align 4, !tbaa !5
  %1378 = call i32 @s2n_stuffer_read_uint32(ptr noundef %21, ptr noundef %31)
  %1379 = icmp eq i32 %1378, -1
  br i1 %1379, label %1380, label %1433

1380:                                             ; preds = %1375
  br label %1381

1381:                                             ; preds = %1380
  br label %1382

1382:                                             ; preds = %1381
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1383 = call ptr @__errno_location() #9
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  store i32 %1384, ptr %33, align 4, !tbaa !5
  %1385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1386 = call i32 @s2n_print_stacktrace(ptr noundef %1385)
  %1387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1388 = trunc i8 %1387 to i1
  br i1 %1388, label %1389, label %1411

1389:                                             ; preds = %1382
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = call i32 @fileno(ptr noundef %1390) #8
  %1392 = call i32 @isatty(i32 noundef %1391) #8
  %1393 = icmp ne i32 %1392, 0
  br i1 %1393, label %1394, label %1411

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

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

1428:                                             ; preds = %1411, %1394
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1429

1429:                                             ; preds = %1428
  br label %1430

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

1431:                                             ; No predecessors!
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

1433:                                             ; preds = %1432, %1375
  br label %1434

1434:                                             ; preds = %1433
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

1436:                                             ; preds = %1435
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = add nsw i32 %1437, 1
  store i32 %1438, ptr @test_count, align 4, !tbaa !5
  %1439 = load i32, ptr %31, align 4, !tbaa !5
  %1440 = icmp eq i32 13, %1439
  br i1 %1440, label %1494, label %1441

1441:                                             ; preds = %1436
  br label %1442

1442:                                             ; preds = %1441
  br label %1443

1443:                                             ; preds = %1442
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %1444 = call ptr @__errno_location() #9
  %1445 = load i32, ptr %1444, align 4, !tbaa !5
  store i32 %1445, ptr %34, align 4, !tbaa !5
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = call i32 @s2n_print_stacktrace(ptr noundef %1446)
  %1448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1449 = trunc i8 %1448 to i1
  br i1 %1449, label %1450, label %1472

1450:                                             ; preds = %1443
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = call i32 @fileno(ptr noundef %1451) #8
  %1453 = call i32 @isatty(i32 noundef %1452) #8
  %1454 = icmp ne i32 %1453, 0
  br i1 %1454, label %1455, label %1472

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

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

1489:                                             ; preds = %1472, %1455
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

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

1492:                                             ; No predecessors!
  br label %1493

1493:                                             ; preds = %1492
  br label %1494

1494:                                             ; preds = %1493, %1436
  br label %1495

1495:                                             ; preds = %1494
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

1497:                                             ; preds = %1496
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = add nsw i32 %1498, 1
  store i32 %1499, ptr @test_count, align 4, !tbaa !5
  %1500 = call i32 @s2n_stuffer_free(ptr noundef %21)
  %1501 = icmp eq i32 %1500, -1
  br i1 %1501, label %1502, label %1555

1502:                                             ; preds = %1497
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1505 = call ptr @__errno_location() #9
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  store i32 %1506, ptr %35, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = call i32 @s2n_print_stacktrace(ptr noundef %1507)
  %1509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1510 = trunc i8 %1509 to i1
  br i1 %1510, label %1511, label %1533

1511:                                             ; preds = %1504
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = call i32 @fileno(ptr noundef %1512) #8
  %1514 = call i32 @isatty(i32 noundef %1513) #8
  %1515 = icmp ne i32 %1514, 0
  br i1 %1515, label %1516, label %1533

1516:                                             ; preds = %1511
  %1517 = load i32, ptr %35, align 4, !tbaa !5
  %1518 = call ptr @__errno_location() #9
  store i32 %1517, ptr %1518, align 4, !tbaa !5
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror(i32 noundef %1522, ptr noundef @.str.4)
  %1524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror_debug(i32 noundef %1525, ptr noundef @.str.4)
  %1527 = call ptr @__errno_location() #9
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call ptr @strerror(i32 noundef %1528) #8
  %1530 = call ptr @__errno_location() #9
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1519, ptr noundef @.str.2, i32 noundef %1520, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1523, ptr noundef %1526, ptr noundef %1529, i32 noundef %1531) #8
  br label %1550

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

1550:                                             ; preds = %1533, %1516
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

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

1553:                                             ; No predecessors!
  br label %1554

1554:                                             ; preds = %1553
  br label %1555

1555:                                             ; preds = %1554, %1497
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

1558:                                             ; preds = %1557
  %1559 = load i32, ptr @test_count, align 4, !tbaa !5
  %1560 = add nsw i32 %1559, 1
  store i32 %1560, ptr @test_count, align 4, !tbaa !5
  %1561 = load ptr, ptr %19, align 8, !tbaa !9
  %1562 = call i32 @s2n_connection_free(ptr noundef %1561)
  %1563 = icmp eq i32 %1562, -1
  br i1 %1563, label %1564, label %1617

1564:                                             ; preds = %1558
  br label %1565

1565:                                             ; preds = %1564
  br label %1566

1566:                                             ; preds = %1565
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1567 = call ptr @__errno_location() #9
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  store i32 %1568, ptr %36, align 4, !tbaa !5
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = call i32 @s2n_print_stacktrace(ptr noundef %1569)
  %1571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1572 = trunc i8 %1571 to i1
  br i1 %1572, label %1573, label %1595

1573:                                             ; preds = %1566
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = call i32 @fileno(ptr noundef %1574) #8
  %1576 = call i32 @isatty(i32 noundef %1575) #8
  %1577 = icmp ne i32 %1576, 0
  br i1 %1577, label %1578, label %1595

1578:                                             ; preds = %1573
  %1579 = load i32, ptr %36, align 4, !tbaa !5
  %1580 = call ptr @__errno_location() #9
  store i32 %1579, ptr %1580, align 4, !tbaa !5
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror(i32 noundef %1584, ptr noundef @.str.4)
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef @.str.4)
  %1589 = call ptr @__errno_location() #9
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @strerror(i32 noundef %1590) #8
  %1592 = call ptr @__errno_location() #9
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1581, ptr noundef @.str.2, i32 noundef %1582, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1585, ptr noundef %1588, ptr noundef %1591, i32 noundef %1593) #8
  br label %1612

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

1612:                                             ; preds = %1595, %1578
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1613

1613:                                             ; preds = %1612
  br label %1614

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

1615:                                             ; No predecessors!
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

1617:                                             ; preds = %1616, %1558
  br label %1618

1618:                                             ; preds = %1617
  br label %1619

1619:                                             ; preds = %1618
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  %1620 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1620, ptr %37, align 8, !tbaa !9
  br label %1621

1621:                                             ; preds = %1619
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = add nsw i32 %1622, 1
  store i32 %1623, ptr @test_count, align 4, !tbaa !5
  %1624 = load ptr, ptr %37, align 8, !tbaa !9
  %1625 = icmp eq ptr %1624, null
  br i1 %1625, label %1626, label %1679

1626:                                             ; preds = %1621
  br label %1627

1627:                                             ; preds = %1626
  br label %1628

1628:                                             ; preds = %1627
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1629 = call ptr @__errno_location() #9
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  store i32 %1630, ptr %38, align 4, !tbaa !5
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = call i32 @s2n_print_stacktrace(ptr noundef %1631)
  %1633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1634 = trunc i8 %1633 to i1
  br i1 %1634, label %1635, label %1657

1635:                                             ; preds = %1628
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = call i32 @fileno(ptr noundef %1636) #8
  %1638 = call i32 @isatty(i32 noundef %1637) #8
  %1639 = icmp ne i32 %1638, 0
  br i1 %1639, label %1640, label %1657

1640:                                             ; preds = %1635
  %1641 = load i32, ptr %38, align 4, !tbaa !5
  %1642 = call ptr @__errno_location() #9
  store i32 %1641, ptr %1642, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = load i32, ptr @test_count, align 4, !tbaa !5
  %1645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call ptr @s2n_strerror(i32 noundef %1646, ptr noundef @.str.4)
  %1648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror_debug(i32 noundef %1649, ptr noundef @.str.4)
  %1651 = call ptr @__errno_location() #9
  %1652 = load i32, ptr %1651, align 4, !tbaa !5
  %1653 = call ptr @strerror(i32 noundef %1652) #8
  %1654 = call ptr @__errno_location() #9
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1643, ptr noundef @.str.2, i32 noundef %1644, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1647, ptr noundef %1650, ptr noundef %1653, i32 noundef %1655) #8
  br label %1674

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

1674:                                             ; preds = %1657, %1640
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1675

1675:                                             ; preds = %1674
  br label %1676

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

1677:                                             ; No predecessors!
  br label %1678

1678:                                             ; preds = %1677
  br label %1679

1679:                                             ; preds = %1678, %1621
  br label %1680

1680:                                             ; preds = %1679
  br label %1681

1681:                                             ; preds = %1680
  %1682 = load ptr, ptr %37, align 8, !tbaa !9
  %1683 = getelementptr inbounds %struct.s2n_connection, ptr %1682, i32 0, i32 23
  store i8 34, ptr %1683, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 40, ptr %39) #8
  call void @llvm.memset.p0.i64(ptr align 8 %39, i8 0, i64 40, i1 false)
  br label %1684

1684:                                             ; preds = %1681
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = add nsw i32 %1685, 1
  store i32 %1686, ptr @test_count, align 4, !tbaa !5
  %1687 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %39, i32 noundef 0)
  %1688 = icmp eq i32 %1687, -1
  br i1 %1688, label %1689, label %1742

1689:                                             ; preds = %1684
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1692 = call ptr @__errno_location() #9
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  store i32 %1693, ptr %40, align 4, !tbaa !5
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = call i32 @s2n_print_stacktrace(ptr noundef %1694)
  %1696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1697 = trunc i8 %1696 to i1
  br i1 %1697, label %1698, label %1720

1698:                                             ; preds = %1691
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = call i32 @fileno(ptr noundef %1699) #8
  %1701 = call i32 @isatty(i32 noundef %1700) #8
  %1702 = icmp ne i32 %1701, 0
  br i1 %1702, label %1703, label %1720

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

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

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

1738:                                             ; preds = %1737
  br label %1739

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

1740:                                             ; No predecessors!
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741, %1684
  br label %1743

1743:                                             ; preds = %1742
  br label %1744

1744:                                             ; preds = %1743
  br label %1745

1745:                                             ; preds = %1744
  br label %1746

1746:                                             ; preds = %1745
  br label %1747

1747:                                             ; preds = %1746
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = add nsw i32 %1748, 1
  store i32 %1749, ptr @test_count, align 4, !tbaa !5
  %1750 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 4), align 8, !tbaa !45
  %1751 = load ptr, ptr %37, align 8, !tbaa !9
  %1752 = call i32 %1750(ptr noundef %1751, ptr noundef null)
  %1753 = icmp eq i32 %1752, -1
  br i1 %1753, label %1807, label %1754

1754:                                             ; preds = %1747
  br label %1755

1755:                                             ; preds = %1754
  br label %1756

1756:                                             ; preds = %1755
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %1757 = call ptr @__errno_location() #9
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  store i32 %1758, ptr %41, align 4, !tbaa !5
  %1759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1760 = call i32 @s2n_print_stacktrace(ptr noundef %1759)
  %1761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1762 = trunc i8 %1761 to i1
  br i1 %1762, label %1763, label %1785

1763:                                             ; preds = %1756
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1765 = call i32 @fileno(ptr noundef %1764) #8
  %1766 = call i32 @isatty(i32 noundef %1765) #8
  %1767 = icmp ne i32 %1766, 0
  br i1 %1767, label %1768, label %1785

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

1785:                                             ; preds = %1763, %1756
  %1786 = load i32, ptr %41, align 4, !tbaa !5
  %1787 = call ptr @__errno_location() #9
  store i32 %1786, ptr %1787, align 4, !tbaa !5
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = load i32, ptr @test_count, align 4, !tbaa !5
  %1790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1791 = load i32, ptr %1790, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror(i32 noundef %1791, ptr noundef @.str.4)
  %1793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1794 = load i32, ptr %1793, align 4, !tbaa !5
  %1795 = call ptr @s2n_strerror_debug(i32 noundef %1794, ptr noundef @.str.4)
  %1796 = call ptr @__errno_location() #9
  %1797 = load i32, ptr %1796, align 4, !tbaa !5
  %1798 = call ptr @strerror(i32 noundef %1797) #8
  %1799 = call ptr @__errno_location() #9
  %1800 = load i32, ptr %1799, align 4, !tbaa !5
  %1801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1788, ptr noundef @.str.5, i32 noundef %1789, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1792, ptr noundef %1795, ptr noundef %1798, i32 noundef %1800) #8
  br label %1802

1802:                                             ; preds = %1785, %1768
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1803

1803:                                             ; preds = %1802
  br label %1804

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

1805:                                             ; No predecessors!
  br label %1806

1806:                                             ; preds = %1805
  br label %1807

1807:                                             ; preds = %1806, %1747
  br label %1808

1808:                                             ; preds = %1807
  br label %1809

1809:                                             ; preds = %1808
  br label %1810

1810:                                             ; preds = %1809
  %1811 = load i32, ptr @test_count, align 4, !tbaa !5
  %1812 = add nsw i32 %1811, 1
  store i32 %1812, ptr @test_count, align 4, !tbaa !5
  %1813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = icmp eq i32 %1814, 402653193
  br i1 %1815, label %1869, label %1816

1816:                                             ; preds = %1810
  br label %1817

1817:                                             ; preds = %1816
  br label %1818

1818:                                             ; preds = %1817
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %1819 = call ptr @__errno_location() #9
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  store i32 %1820, ptr %42, align 4, !tbaa !5
  %1821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1822 = call i32 @s2n_print_stacktrace(ptr noundef %1821)
  %1823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1824 = trunc i8 %1823 to i1
  br i1 %1824, label %1825, label %1847

1825:                                             ; preds = %1818
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = call i32 @fileno(ptr noundef %1826) #8
  %1828 = call i32 @isatty(i32 noundef %1827) #8
  %1829 = icmp ne i32 %1828, 0
  br i1 %1829, label %1830, label %1847

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

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

1864:                                             ; preds = %1847, %1830
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

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

1867:                                             ; No predecessors!
  br label %1868

1868:                                             ; preds = %1867
  br label %1869

1869:                                             ; preds = %1868, %1810
  br label %1870

1870:                                             ; preds = %1869
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

1872:                                             ; preds = %1871
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = add nsw i32 %1873, 1
  store i32 %1874, ptr @test_count, align 4, !tbaa !5
  %1875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror_debug(i32 noundef %1876, ptr noundef @.str.4)
  %1878 = icmp eq ptr %1877, null
  br i1 %1878, label %1879, label %1932

1879:                                             ; preds = %1872
  br label %1880

1880:                                             ; preds = %1879
  br label %1881

1881:                                             ; preds = %1880
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %1882 = call ptr @__errno_location() #9
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  store i32 %1883, ptr %43, align 4, !tbaa !5
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = call i32 @s2n_print_stacktrace(ptr noundef %1884)
  %1886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1887 = trunc i8 %1886 to i1
  br i1 %1887, label %1888, label %1910

1888:                                             ; preds = %1881
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = call i32 @fileno(ptr noundef %1889) #8
  %1891 = call i32 @isatty(i32 noundef %1890) #8
  %1892 = icmp ne i32 %1891, 0
  br i1 %1892, label %1893, label %1910

1893:                                             ; preds = %1888
  %1894 = load i32, ptr %43, align 4, !tbaa !5
  %1895 = call ptr @__errno_location() #9
  store i32 %1894, ptr %1895, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror(i32 noundef %1899, ptr noundef @.str.4)
  %1901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror_debug(i32 noundef %1902, ptr noundef @.str.4)
  %1904 = call ptr @__errno_location() #9
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @strerror(i32 noundef %1905) #8
  %1907 = call ptr @__errno_location() #9
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1896, ptr noundef @.str.2, i32 noundef %1897, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1900, ptr noundef %1903, ptr noundef %1906, i32 noundef %1908) #8
  br label %1927

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

1927:                                             ; preds = %1910, %1893
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %1928

1928:                                             ; preds = %1927
  br label %1929

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

1930:                                             ; No predecessors!
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931, %1872
  br label %1933

1933:                                             ; preds = %1932
  br label %1934

1934:                                             ; preds = %1933
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

1936:                                             ; preds = %1935
  br label %1937

1937:                                             ; preds = %1936
  %1938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1938, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1939 = call ptr @__errno_location() #9
  store i32 0, ptr %1939, align 4, !tbaa !5
  br label %1940

1940:                                             ; preds = %1937
  br label %1941

1941:                                             ; preds = %1940
  br label %1942

1942:                                             ; preds = %1941
  br label %1943

1943:                                             ; preds = %1942
  br label %1944

1944:                                             ; preds = %1943
  br label %1945

1945:                                             ; preds = %1944
  br label %1946

1946:                                             ; preds = %1945
  %1947 = load i32, ptr @test_count, align 4, !tbaa !5
  %1948 = add nsw i32 %1947, 1
  store i32 %1948, ptr @test_count, align 4, !tbaa !5
  %1949 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 4), align 8, !tbaa !45
  %1950 = call i32 %1949(ptr noundef null, ptr noundef %39)
  %1951 = icmp eq i32 %1950, -1
  br i1 %1951, label %2005, label %1952

1952:                                             ; preds = %1946
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

1954:                                             ; preds = %1953
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %1955 = call ptr @__errno_location() #9
  %1956 = load i32, ptr %1955, align 4, !tbaa !5
  store i32 %1956, ptr %44, align 4, !tbaa !5
  %1957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1958 = call i32 @s2n_print_stacktrace(ptr noundef %1957)
  %1959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1960 = trunc i8 %1959 to i1
  br i1 %1960, label %1961, label %1983

1961:                                             ; preds = %1954
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = call i32 @fileno(ptr noundef %1962) #8
  %1964 = call i32 @isatty(i32 noundef %1963) #8
  %1965 = icmp ne i32 %1964, 0
  br i1 %1965, label %1966, label %1983

1966:                                             ; preds = %1961
  %1967 = load i32, ptr %44, align 4, !tbaa !5
  %1968 = call ptr @__errno_location() #9
  store i32 %1967, ptr %1968, align 4, !tbaa !5
  %1969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1970 = load i32, ptr @test_count, align 4, !tbaa !5
  %1971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror(i32 noundef %1972, ptr noundef @.str.4)
  %1974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1975 = load i32, ptr %1974, align 4, !tbaa !5
  %1976 = call ptr @s2n_strerror_debug(i32 noundef %1975, ptr noundef @.str.4)
  %1977 = call ptr @__errno_location() #9
  %1978 = load i32, ptr %1977, align 4, !tbaa !5
  %1979 = call ptr @strerror(i32 noundef %1978) #8
  %1980 = call ptr @__errno_location() #9
  %1981 = load i32, ptr %1980, align 4, !tbaa !5
  %1982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1969, ptr noundef @.str.2, i32 noundef %1970, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1973, ptr noundef %1976, ptr noundef %1979, i32 noundef %1981) #8
  br label %2000

1983:                                             ; preds = %1961, %1954
  %1984 = load i32, ptr %44, align 4, !tbaa !5
  %1985 = call ptr @__errno_location() #9
  store i32 %1984, ptr %1985, align 4, !tbaa !5
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = load i32, ptr @test_count, align 4, !tbaa !5
  %1988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror(i32 noundef %1989, ptr noundef @.str.4)
  %1991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  %1993 = call ptr @s2n_strerror_debug(i32 noundef %1992, ptr noundef @.str.4)
  %1994 = call ptr @__errno_location() #9
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  %1996 = call ptr @strerror(i32 noundef %1995) #8
  %1997 = call ptr @__errno_location() #9
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1986, ptr noundef @.str.5, i32 noundef %1987, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1990, ptr noundef %1993, ptr noundef %1996, i32 noundef %1998) #8
  br label %2000

2000:                                             ; preds = %1983, %1966
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

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

2003:                                             ; No predecessors!
  br label %2004

2004:                                             ; preds = %2003
  br label %2005

2005:                                             ; preds = %2004, %1946
  br label %2006

2006:                                             ; preds = %2005
  br label %2007

2007:                                             ; preds = %2006
  br label %2008

2008:                                             ; preds = %2007
  %2009 = load i32, ptr @test_count, align 4, !tbaa !5
  %2010 = add nsw i32 %2009, 1
  store i32 %2010, ptr @test_count, align 4, !tbaa !5
  %2011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = icmp eq i32 %2012, 402653193
  br i1 %2013, label %2067, label %2014

2014:                                             ; preds = %2008
  br label %2015

2015:                                             ; preds = %2014
  br label %2016

2016:                                             ; preds = %2015
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %2017 = call ptr @__errno_location() #9
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  store i32 %2018, ptr %45, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = call i32 @s2n_print_stacktrace(ptr noundef %2019)
  %2021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2022 = trunc i8 %2021 to i1
  br i1 %2022, label %2023, label %2045

2023:                                             ; preds = %2016
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @fileno(ptr noundef %2024) #8
  %2026 = call i32 @isatty(i32 noundef %2025) #8
  %2027 = icmp ne i32 %2026, 0
  br i1 %2027, label %2028, label %2045

2028:                                             ; preds = %2023
  %2029 = load i32, ptr %45, align 4, !tbaa !5
  %2030 = call ptr @__errno_location() #9
  store i32 %2029, ptr %2030, align 4, !tbaa !5
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = load i32, ptr @test_count, align 4, !tbaa !5
  %2033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror(i32 noundef %2034, ptr noundef @.str.4)
  %2036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = call ptr @s2n_strerror_debug(i32 noundef %2037, ptr noundef @.str.4)
  %2039 = call ptr @__errno_location() #9
  %2040 = load i32, ptr %2039, align 4, !tbaa !5
  %2041 = call ptr @strerror(i32 noundef %2040) #8
  %2042 = call ptr @__errno_location() #9
  %2043 = load i32, ptr %2042, align 4, !tbaa !5
  %2044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2031, ptr noundef @.str.2, i32 noundef %2032, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 83, ptr noundef %2035, ptr noundef %2038, ptr noundef %2041, i32 noundef %2043) #8
  br label %2062

2045:                                             ; preds = %2023, %2016
  %2046 = load i32, ptr %45, align 4, !tbaa !5
  %2047 = call ptr @__errno_location() #9
  store i32 %2046, ptr %2047, align 4, !tbaa !5
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror(i32 noundef %2051, ptr noundef @.str.4)
  %2053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  %2055 = call ptr @s2n_strerror_debug(i32 noundef %2054, ptr noundef @.str.4)
  %2056 = call ptr @__errno_location() #9
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  %2058 = call ptr @strerror(i32 noundef %2057) #8
  %2059 = call ptr @__errno_location() #9
  %2060 = load i32, ptr %2059, align 4, !tbaa !5
  %2061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2048, ptr noundef @.str.5, i32 noundef %2049, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 83, ptr noundef %2052, ptr noundef %2055, ptr noundef %2058, i32 noundef %2060) #8
  br label %2062

2062:                                             ; preds = %2045, %2028
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

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

2065:                                             ; No predecessors!
  br label %2066

2066:                                             ; preds = %2065
  br label %2067

2067:                                             ; preds = %2066, %2008
  br label %2068

2068:                                             ; preds = %2067
  br label %2069

2069:                                             ; preds = %2068
  br label %2070

2070:                                             ; preds = %2069
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = add nsw i32 %2071, 1
  store i32 %2072, ptr @test_count, align 4, !tbaa !5
  %2073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = call ptr @s2n_strerror_debug(i32 noundef %2074, ptr noundef @.str.4)
  %2076 = icmp eq ptr %2075, null
  br i1 %2076, label %2077, label %2130

2077:                                             ; preds = %2070
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

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

2086:                                             ; preds = %2079
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = call i32 @fileno(ptr noundef %2087) #8
  %2089 = call i32 @isatty(i32 noundef %2088) #8
  %2090 = icmp ne i32 %2089, 0
  br i1 %2090, label %2091, label %2108

2091:                                             ; preds = %2086
  %2092 = load i32, ptr %46, align 4, !tbaa !5
  %2093 = call ptr @__errno_location() #9
  store i32 %2092, ptr %2093, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = load i32, ptr @test_count, align 4, !tbaa !5
  %2096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2097 = load i32, ptr %2096, align 4, !tbaa !5
  %2098 = call ptr @s2n_strerror(i32 noundef %2097, ptr noundef @.str.4)
  %2099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2100 = load i32, ptr %2099, align 4, !tbaa !5
  %2101 = call ptr @s2n_strerror_debug(i32 noundef %2100, ptr noundef @.str.4)
  %2102 = call ptr @__errno_location() #9
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @strerror(i32 noundef %2103) #8
  %2105 = call ptr @__errno_location() #9
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2094, ptr noundef @.str.2, i32 noundef %2095, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 83, ptr noundef %2098, ptr noundef %2101, ptr noundef %2104, i32 noundef %2106) #8
  br label %2125

2108:                                             ; preds = %2086, %2079
  %2109 = load i32, ptr %46, align 4, !tbaa !5
  %2110 = call ptr @__errno_location() #9
  store i32 %2109, ptr %2110, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = load i32, ptr @test_count, align 4, !tbaa !5
  %2113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = call ptr @s2n_strerror(i32 noundef %2114, ptr noundef @.str.4)
  %2116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror_debug(i32 noundef %2117, ptr noundef @.str.4)
  %2119 = call ptr @__errno_location() #9
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call ptr @strerror(i32 noundef %2120) #8
  %2122 = call ptr @__errno_location() #9
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2111, ptr noundef @.str.5, i32 noundef %2112, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 83, ptr noundef %2115, ptr noundef %2118, ptr noundef %2121, i32 noundef %2123) #8
  br label %2125

2125:                                             ; preds = %2108, %2091
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %2126

2126:                                             ; preds = %2125
  br label %2127

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

2128:                                             ; No predecessors!
  br label %2129

2129:                                             ; preds = %2128
  br label %2130

2130:                                             ; preds = %2129, %2070
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131
  br label %2133

2133:                                             ; preds = %2132
  br label %2134

2134:                                             ; preds = %2133
  br label %2135

2135:                                             ; preds = %2134
  %2136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2136, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2137 = call ptr @__errno_location() #9
  store i32 0, ptr %2137, align 4, !tbaa !5
  br label %2138

2138:                                             ; preds = %2135
  br label %2139

2139:                                             ; preds = %2138
  br label %2140

2140:                                             ; preds = %2139
  br label %2141

2141:                                             ; preds = %2140
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  store i32 13, ptr %47, align 4, !tbaa !5
  br label %2142

2142:                                             ; preds = %2141
  %2143 = load i32, ptr @test_count, align 4, !tbaa !5
  %2144 = add nsw i32 %2143, 1
  store i32 %2144, ptr @test_count, align 4, !tbaa !5
  %2145 = load ptr, ptr %37, align 8, !tbaa !9
  %2146 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef %2145, i32 noundef 13)
  %2147 = icmp eq i32 %2146, -1
  br i1 %2147, label %2148, label %2201

2148:                                             ; preds = %2142
  br label %2149

2149:                                             ; preds = %2148
  br label %2150

2150:                                             ; preds = %2149
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %2151 = call ptr @__errno_location() #9
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  store i32 %2152, ptr %48, align 4, !tbaa !5
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = call i32 @s2n_print_stacktrace(ptr noundef %2153)
  %2155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2156 = trunc i8 %2155 to i1
  br i1 %2156, label %2157, label %2179

2157:                                             ; preds = %2150
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = call i32 @fileno(ptr noundef %2158) #8
  %2160 = call i32 @isatty(i32 noundef %2159) #8
  %2161 = icmp ne i32 %2160, 0
  br i1 %2161, label %2162, label %2179

2162:                                             ; preds = %2157
  %2163 = load i32, ptr %48, align 4, !tbaa !5
  %2164 = call ptr @__errno_location() #9
  store i32 %2163, ptr %2164, align 4, !tbaa !5
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = load i32, ptr @test_count, align 4, !tbaa !5
  %2167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call ptr @s2n_strerror(i32 noundef %2168, ptr noundef @.str.4)
  %2170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror_debug(i32 noundef %2171, ptr noundef @.str.4)
  %2173 = call ptr @__errno_location() #9
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call ptr @strerror(i32 noundef %2174) #8
  %2176 = call ptr @__errno_location() #9
  %2177 = load i32, ptr %2176, align 4, !tbaa !5
  %2178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2165, ptr noundef @.str.2, i32 noundef %2166, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 86, ptr noundef %2169, ptr noundef %2172, ptr noundef %2175, i32 noundef %2177) #8
  br label %2196

2179:                                             ; preds = %2157, %2150
  %2180 = load i32, ptr %48, align 4, !tbaa !5
  %2181 = call ptr @__errno_location() #9
  store i32 %2180, ptr %2181, align 4, !tbaa !5
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = load i32, ptr @test_count, align 4, !tbaa !5
  %2184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror(i32 noundef %2185, ptr noundef @.str.4)
  %2187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call ptr @s2n_strerror_debug(i32 noundef %2188, ptr noundef @.str.4)
  %2190 = call ptr @__errno_location() #9
  %2191 = load i32, ptr %2190, align 4, !tbaa !5
  %2192 = call ptr @strerror(i32 noundef %2191) #8
  %2193 = call ptr @__errno_location() #9
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2182, ptr noundef @.str.5, i32 noundef %2183, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 86, ptr noundef %2186, ptr noundef %2189, ptr noundef %2192, i32 noundef %2194) #8
  br label %2196

2196:                                             ; preds = %2179, %2162
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %2197

2197:                                             ; preds = %2196
  br label %2198

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

2199:                                             ; No predecessors!
  br label %2200

2200:                                             ; preds = %2199
  br label %2201

2201:                                             ; preds = %2200, %2142
  br label %2202

2202:                                             ; preds = %2201
  br label %2203

2203:                                             ; preds = %2202
  br label %2204

2204:                                             ; preds = %2203
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %2206 = add nsw i32 %2205, 1
  store i32 %2206, ptr @test_count, align 4, !tbaa !5
  %2207 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 3), align 8, !tbaa !44
  %2208 = load ptr, ptr %37, align 8, !tbaa !9
  %2209 = call i32 %2207(ptr noundef %2208, ptr noundef %39)
  %2210 = icmp eq i32 %2209, -1
  br i1 %2210, label %2211, label %2264

2211:                                             ; preds = %2204
  br label %2212

2212:                                             ; preds = %2211
  br label %2213

2213:                                             ; preds = %2212
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  %2214 = call ptr @__errno_location() #9
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  store i32 %2215, ptr %49, align 4, !tbaa !5
  %2216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2217 = call i32 @s2n_print_stacktrace(ptr noundef %2216)
  %2218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2219 = trunc i8 %2218 to i1
  br i1 %2219, label %2220, label %2242

2220:                                             ; preds = %2213
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = call i32 @fileno(ptr noundef %2221) #8
  %2223 = call i32 @isatty(i32 noundef %2222) #8
  %2224 = icmp ne i32 %2223, 0
  br i1 %2224, label %2225, label %2242

2225:                                             ; preds = %2220
  %2226 = load i32, ptr %49, align 4, !tbaa !5
  %2227 = call ptr @__errno_location() #9
  store i32 %2226, ptr %2227, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call ptr @s2n_strerror(i32 noundef %2231, ptr noundef @.str.4)
  %2233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror_debug(i32 noundef %2234, ptr noundef @.str.4)
  %2236 = call ptr @__errno_location() #9
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @strerror(i32 noundef %2237) #8
  %2239 = call ptr @__errno_location() #9
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2228, ptr noundef @.str.2, i32 noundef %2229, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 87, ptr noundef %2232, ptr noundef %2235, ptr noundef %2238, i32 noundef %2240) #8
  br label %2259

2242:                                             ; preds = %2220, %2213
  %2243 = load i32, ptr %49, align 4, !tbaa !5
  %2244 = call ptr @__errno_location() #9
  store i32 %2243, ptr %2244, align 4, !tbaa !5
  %2245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2246 = load i32, ptr @test_count, align 4, !tbaa !5
  %2247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = call ptr @s2n_strerror(i32 noundef %2248, ptr noundef @.str.4)
  %2250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  %2252 = call ptr @s2n_strerror_debug(i32 noundef %2251, ptr noundef @.str.4)
  %2253 = call ptr @__errno_location() #9
  %2254 = load i32, ptr %2253, align 4, !tbaa !5
  %2255 = call ptr @strerror(i32 noundef %2254) #8
  %2256 = call ptr @__errno_location() #9
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  %2258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2245, ptr noundef @.str.5, i32 noundef %2246, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 87, ptr noundef %2249, ptr noundef %2252, ptr noundef %2255, i32 noundef %2257) #8
  br label %2259

2259:                                             ; preds = %2242, %2225
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

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

2262:                                             ; No predecessors!
  br label %2263

2263:                                             ; preds = %2262
  br label %2264

2264:                                             ; preds = %2263, %2204
  br label %2265

2265:                                             ; preds = %2264
  br label %2266

2266:                                             ; preds = %2265
  br label %2267

2267:                                             ; preds = %2266
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = add nsw i32 %2268, 1
  store i32 %2269, ptr @test_count, align 4, !tbaa !5
  %2270 = load ptr, ptr %37, align 8, !tbaa !9
  %2271 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef %2270, i32 noundef 0)
  %2272 = icmp eq i32 %2271, -1
  br i1 %2272, label %2273, label %2326

2273:                                             ; preds = %2267
  br label %2274

2274:                                             ; preds = %2273
  br label %2275

2275:                                             ; preds = %2274
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %2276 = call ptr @__errno_location() #9
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  store i32 %2277, ptr %50, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = call i32 @s2n_print_stacktrace(ptr noundef %2278)
  %2280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2281 = trunc i8 %2280 to i1
  br i1 %2281, label %2282, label %2304

2282:                                             ; preds = %2275
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = call i32 @fileno(ptr noundef %2283) #8
  %2285 = call i32 @isatty(i32 noundef %2284) #8
  %2286 = icmp ne i32 %2285, 0
  br i1 %2286, label %2287, label %2304

2287:                                             ; preds = %2282
  %2288 = load i32, ptr %50, align 4, !tbaa !5
  %2289 = call ptr @__errno_location() #9
  store i32 %2288, ptr %2289, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror(i32 noundef %2293, ptr noundef @.str.4)
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror_debug(i32 noundef %2296, ptr noundef @.str.4)
  %2298 = call ptr @__errno_location() #9
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call ptr @strerror(i32 noundef %2299) #8
  %2301 = call ptr @__errno_location() #9
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef @.str.2, i32 noundef %2291, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 89, ptr noundef %2294, ptr noundef %2297, ptr noundef %2300, i32 noundef %2302) #8
  br label %2321

2304:                                             ; preds = %2282, %2275
  %2305 = load i32, ptr %50, align 4, !tbaa !5
  %2306 = call ptr @__errno_location() #9
  store i32 %2305, ptr %2306, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = load i32, ptr @test_count, align 4, !tbaa !5
  %2309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2310 = load i32, ptr %2309, align 4, !tbaa !5
  %2311 = call ptr @s2n_strerror(i32 noundef %2310, ptr noundef @.str.4)
  %2312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  %2314 = call ptr @s2n_strerror_debug(i32 noundef %2313, ptr noundef @.str.4)
  %2315 = call ptr @__errno_location() #9
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = call ptr @strerror(i32 noundef %2316) #8
  %2318 = call ptr @__errno_location() #9
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2307, ptr noundef @.str.5, i32 noundef %2308, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 89, ptr noundef %2311, ptr noundef %2314, ptr noundef %2317, i32 noundef %2319) #8
  br label %2321

2321:                                             ; preds = %2304, %2287
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %2322

2322:                                             ; preds = %2321
  br label %2323

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

2324:                                             ; No predecessors!
  br label %2325

2325:                                             ; preds = %2324
  br label %2326

2326:                                             ; preds = %2325, %2267
  br label %2327

2327:                                             ; preds = %2326
  br label %2328

2328:                                             ; preds = %2327
  br label %2329

2329:                                             ; preds = %2328
  %2330 = load i32, ptr @test_count, align 4, !tbaa !5
  %2331 = add nsw i32 %2330, 1
  store i32 %2331, ptr @test_count, align 4, !tbaa !5
  %2332 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_nst_early_data_indication_extension, i32 0, i32 4), align 8, !tbaa !45
  %2333 = load ptr, ptr %37, align 8, !tbaa !9
  %2334 = call i32 %2332(ptr noundef %2333, ptr noundef %39)
  %2335 = icmp eq i32 %2334, -1
  br i1 %2335, label %2336, label %2389

2336:                                             ; preds = %2329
  br label %2337

2337:                                             ; preds = %2336
  br label %2338

2338:                                             ; preds = %2337
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %2339 = call ptr @__errno_location() #9
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  store i32 %2340, ptr %51, align 4, !tbaa !5
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = call i32 @s2n_print_stacktrace(ptr noundef %2341)
  %2343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2344 = trunc i8 %2343 to i1
  br i1 %2344, label %2345, label %2367

2345:                                             ; preds = %2338
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = call i32 @fileno(ptr noundef %2346) #8
  %2348 = call i32 @isatty(i32 noundef %2347) #8
  %2349 = icmp ne i32 %2348, 0
  br i1 %2349, label %2350, label %2367

2350:                                             ; preds = %2345
  %2351 = load i32, ptr %51, align 4, !tbaa !5
  %2352 = call ptr @__errno_location() #9
  store i32 %2351, ptr %2352, align 4, !tbaa !5
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = load i32, ptr @test_count, align 4, !tbaa !5
  %2355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror(i32 noundef %2356, ptr noundef @.str.4)
  %2358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror_debug(i32 noundef %2359, ptr noundef @.str.4)
  %2361 = call ptr @__errno_location() #9
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call ptr @strerror(i32 noundef %2362) #8
  %2364 = call ptr @__errno_location() #9
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2353, ptr noundef @.str.2, i32 noundef %2354, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2357, ptr noundef %2360, ptr noundef %2363, i32 noundef %2365) #8
  br label %2384

2367:                                             ; preds = %2345, %2338
  %2368 = load i32, ptr %51, align 4, !tbaa !5
  %2369 = call ptr @__errno_location() #9
  store i32 %2368, ptr %2369, align 4, !tbaa !5
  %2370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2371 = load i32, ptr @test_count, align 4, !tbaa !5
  %2372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2373 = load i32, ptr %2372, align 4, !tbaa !5
  %2374 = call ptr @s2n_strerror(i32 noundef %2373, ptr noundef @.str.4)
  %2375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @s2n_strerror_debug(i32 noundef %2376, ptr noundef @.str.4)
  %2378 = call ptr @__errno_location() #9
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  %2380 = call ptr @strerror(i32 noundef %2379) #8
  %2381 = call ptr @__errno_location() #9
  %2382 = load i32, ptr %2381, align 4, !tbaa !5
  %2383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2370, ptr noundef @.str.5, i32 noundef %2371, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2374, ptr noundef %2377, ptr noundef %2380, i32 noundef %2382) #8
  br label %2384

2384:                                             ; preds = %2367, %2350
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %2385

2385:                                             ; preds = %2384
  br label %2386

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

2387:                                             ; No predecessors!
  br label %2388

2388:                                             ; preds = %2387
  br label %2389

2389:                                             ; preds = %2388, %2329
  br label %2390

2390:                                             ; preds = %2389
  br label %2391

2391:                                             ; preds = %2390
  br label %2392

2392:                                             ; preds = %2391
  %2393 = load i32, ptr @test_count, align 4, !tbaa !5
  %2394 = add nsw i32 %2393, 1
  store i32 %2394, ptr @test_count, align 4, !tbaa !5
  %2395 = load ptr, ptr %37, align 8, !tbaa !9
  %2396 = getelementptr inbounds %struct.s2n_connection, ptr %2395, i32 0, i32 90
  %2397 = load i32, ptr %2396, align 4, !tbaa !46
  %2398 = icmp eq i32 %2397, 13
  br i1 %2398, label %2452, label %2399

2399:                                             ; preds = %2392
  br label %2400

2400:                                             ; preds = %2399
  br label %2401

2401:                                             ; preds = %2400
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  %2402 = call ptr @__errno_location() #9
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  store i32 %2403, ptr %52, align 4, !tbaa !5
  %2404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2405 = call i32 @s2n_print_stacktrace(ptr noundef %2404)
  %2406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2407 = trunc i8 %2406 to i1
  br i1 %2407, label %2408, label %2430

2408:                                             ; preds = %2401
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = call i32 @fileno(ptr noundef %2409) #8
  %2411 = call i32 @isatty(i32 noundef %2410) #8
  %2412 = icmp ne i32 %2411, 0
  br i1 %2412, label %2413, label %2430

2413:                                             ; preds = %2408
  %2414 = load i32, ptr %52, align 4, !tbaa !5
  %2415 = call ptr @__errno_location() #9
  store i32 %2414, ptr %2415, align 4, !tbaa !5
  %2416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2417 = load i32, ptr @test_count, align 4, !tbaa !5
  %2418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror(i32 noundef %2419, ptr noundef @.str.4)
  %2421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror_debug(i32 noundef %2422, ptr noundef @.str.4)
  %2424 = call ptr @__errno_location() #9
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call ptr @strerror(i32 noundef %2425) #8
  %2427 = call ptr @__errno_location() #9
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2416, ptr noundef @.str.2, i32 noundef %2417, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2420, ptr noundef %2423, ptr noundef %2426, i32 noundef %2428) #8
  br label %2447

2430:                                             ; preds = %2408, %2401
  %2431 = load i32, ptr %52, align 4, !tbaa !5
  %2432 = call ptr @__errno_location() #9
  store i32 %2431, ptr %2432, align 4, !tbaa !5
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror(i32 noundef %2436, ptr noundef @.str.4)
  %2438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call ptr @s2n_strerror_debug(i32 noundef %2439, ptr noundef @.str.4)
  %2441 = call ptr @__errno_location() #9
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call ptr @strerror(i32 noundef %2442) #8
  %2444 = call ptr @__errno_location() #9
  %2445 = load i32, ptr %2444, align 4, !tbaa !5
  %2446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2433, ptr noundef @.str.5, i32 noundef %2434, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2437, ptr noundef %2440, ptr noundef %2443, i32 noundef %2445) #8
  br label %2447

2447:                                             ; preds = %2430, %2413
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

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

2450:                                             ; No predecessors!
  br label %2451

2451:                                             ; preds = %2450
  br label %2452

2452:                                             ; preds = %2451, %2392
  br label %2453

2453:                                             ; preds = %2452
  br label %2454

2454:                                             ; preds = %2453
  br label %2455

2455:                                             ; preds = %2454
  %2456 = load i32, ptr @test_count, align 4, !tbaa !5
  %2457 = add nsw i32 %2456, 1
  store i32 %2457, ptr @test_count, align 4, !tbaa !5
  %2458 = call i32 @s2n_stuffer_free(ptr noundef %39)
  %2459 = icmp eq i32 %2458, -1
  br i1 %2459, label %2460, label %2513

2460:                                             ; preds = %2455
  br label %2461

2461:                                             ; preds = %2460
  br label %2462

2462:                                             ; preds = %2461
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  %2463 = call ptr @__errno_location() #9
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  store i32 %2464, ptr %53, align 4, !tbaa !5
  %2465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2466 = call i32 @s2n_print_stacktrace(ptr noundef %2465)
  %2467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2468 = trunc i8 %2467 to i1
  br i1 %2468, label %2469, label %2491

2469:                                             ; preds = %2462
  %2470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2471 = call i32 @fileno(ptr noundef %2470) #8
  %2472 = call i32 @isatty(i32 noundef %2471) #8
  %2473 = icmp ne i32 %2472, 0
  br i1 %2473, label %2474, label %2491

2474:                                             ; preds = %2469
  %2475 = load i32, ptr %53, align 4, !tbaa !5
  %2476 = call ptr @__errno_location() #9
  store i32 %2475, ptr %2476, align 4, !tbaa !5
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = load i32, ptr @test_count, align 4, !tbaa !5
  %2479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror(i32 noundef %2480, ptr noundef @.str.4)
  %2482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call ptr @s2n_strerror_debug(i32 noundef %2483, ptr noundef @.str.4)
  %2485 = call ptr @__errno_location() #9
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call ptr @strerror(i32 noundef %2486) #8
  %2488 = call ptr @__errno_location() #9
  %2489 = load i32, ptr %2488, align 4, !tbaa !5
  %2490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2477, ptr noundef @.str.2, i32 noundef %2478, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 93, ptr noundef %2481, ptr noundef %2484, ptr noundef %2487, i32 noundef %2489) #8
  br label %2508

2491:                                             ; preds = %2469, %2462
  %2492 = load i32, ptr %53, align 4, !tbaa !5
  %2493 = call ptr @__errno_location() #9
  store i32 %2492, ptr %2493, align 4, !tbaa !5
  %2494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2495 = load i32, ptr @test_count, align 4, !tbaa !5
  %2496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call ptr @s2n_strerror(i32 noundef %2497, ptr noundef @.str.4)
  %2499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2500 = load i32, ptr %2499, align 4, !tbaa !5
  %2501 = call ptr @s2n_strerror_debug(i32 noundef %2500, ptr noundef @.str.4)
  %2502 = call ptr @__errno_location() #9
  %2503 = load i32, ptr %2502, align 4, !tbaa !5
  %2504 = call ptr @strerror(i32 noundef %2503) #8
  %2505 = call ptr @__errno_location() #9
  %2506 = load i32, ptr %2505, align 4, !tbaa !5
  %2507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2494, ptr noundef @.str.5, i32 noundef %2495, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 93, ptr noundef %2498, ptr noundef %2501, ptr noundef %2504, i32 noundef %2506) #8
  br label %2508

2508:                                             ; preds = %2491, %2474
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %2509

2509:                                             ; preds = %2508
  br label %2510

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

2511:                                             ; No predecessors!
  br label %2512

2512:                                             ; preds = %2511
  br label %2513

2513:                                             ; preds = %2512, %2455
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  %2517 = load i32, ptr @test_count, align 4, !tbaa !5
  %2518 = add nsw i32 %2517, 1
  store i32 %2518, ptr @test_count, align 4, !tbaa !5
  %2519 = load ptr, ptr %37, align 8, !tbaa !9
  %2520 = call i32 @s2n_connection_free(ptr noundef %2519)
  %2521 = icmp eq i32 %2520, -1
  br i1 %2521, label %2522, label %2575

2522:                                             ; preds = %2516
  br label %2523

2523:                                             ; preds = %2522
  br label %2524

2524:                                             ; preds = %2523
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  %2525 = call ptr @__errno_location() #9
  %2526 = load i32, ptr %2525, align 4, !tbaa !5
  store i32 %2526, ptr %54, align 4, !tbaa !5
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = call i32 @s2n_print_stacktrace(ptr noundef %2527)
  %2529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2530 = trunc i8 %2529 to i1
  br i1 %2530, label %2531, label %2553

2531:                                             ; preds = %2524
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = call i32 @fileno(ptr noundef %2532) #8
  %2534 = call i32 @isatty(i32 noundef %2533) #8
  %2535 = icmp ne i32 %2534, 0
  br i1 %2535, label %2536, label %2553

2536:                                             ; preds = %2531
  %2537 = load i32, ptr %54, align 4, !tbaa !5
  %2538 = call ptr @__errno_location() #9
  store i32 %2537, ptr %2538, align 4, !tbaa !5
  %2539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2540 = load i32, ptr @test_count, align 4, !tbaa !5
  %2541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @s2n_strerror(i32 noundef %2542, ptr noundef @.str.4)
  %2544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror_debug(i32 noundef %2545, ptr noundef @.str.4)
  %2547 = call ptr @__errno_location() #9
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @strerror(i32 noundef %2548) #8
  %2550 = call ptr @__errno_location() #9
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  %2552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2539, ptr noundef @.str.2, i32 noundef %2540, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 94, ptr noundef %2543, ptr noundef %2546, ptr noundef %2549, i32 noundef %2551) #8
  br label %2570

2553:                                             ; preds = %2531, %2524
  %2554 = load i32, ptr %54, align 4, !tbaa !5
  %2555 = call ptr @__errno_location() #9
  store i32 %2554, ptr %2555, align 4, !tbaa !5
  %2556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2557 = load i32, ptr @test_count, align 4, !tbaa !5
  %2558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror(i32 noundef %2559, ptr noundef @.str.4)
  %2561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror_debug(i32 noundef %2562, ptr noundef @.str.4)
  %2564 = call ptr @__errno_location() #9
  %2565 = load i32, ptr %2564, align 4, !tbaa !5
  %2566 = call ptr @strerror(i32 noundef %2565) #8
  %2567 = call ptr @__errno_location() #9
  %2568 = load i32, ptr %2567, align 4, !tbaa !5
  %2569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2556, ptr noundef @.str.5, i32 noundef %2557, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 94, ptr noundef %2560, ptr noundef %2563, ptr noundef %2566, i32 noundef %2568) #8
  br label %2570

2570:                                             ; preds = %2553, %2536
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

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

2573:                                             ; No predecessors!
  br label %2574

2574:                                             ; preds = %2573
  br label %2575

2575:                                             ; preds = %2574, %2516
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578
  %2580 = call i32 @s2n_cleanup()
  %2581 = icmp eq i32 %2580, -1
  br i1 %2581, label %2582, label %2633

2582:                                             ; preds = %2579
  br label %2583

2583:                                             ; preds = %2582
  br label %2584

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

2591:                                             ; preds = %2584
  %2592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2593 = call i32 @fileno(ptr noundef %2592) #8
  %2594 = call i32 @isatty(i32 noundef %2593) #8
  %2595 = icmp ne i32 %2594, 0
  br i1 %2595, label %2596, label %2613

2596:                                             ; preds = %2591
  %2597 = load i32, ptr %55, align 4, !tbaa !5
  %2598 = call ptr @__errno_location() #9
  store i32 %2597, ptr %2598, align 4, !tbaa !5
  %2599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2600 = load i32, ptr @test_count, align 4, !tbaa !5
  %2601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror(i32 noundef %2602, ptr noundef @.str.4)
  %2604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call ptr @s2n_strerror_debug(i32 noundef %2605, ptr noundef @.str.4)
  %2607 = call ptr @__errno_location() #9
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call ptr @strerror(i32 noundef %2608) #8
  %2610 = call ptr @__errno_location() #9
  %2611 = load i32, ptr %2610, align 4, !tbaa !5
  %2612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2599, ptr noundef @.str.2, i32 noundef %2600, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2603, ptr noundef %2606, ptr noundef %2609, i32 noundef %2611) #8
  br label %2630

2613:                                             ; preds = %2591, %2584
  %2614 = load i32, ptr %55, align 4, !tbaa !5
  %2615 = call ptr @__errno_location() #9
  store i32 %2614, ptr %2615, align 4, !tbaa !5
  %2616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2617 = load i32, ptr @test_count, align 4, !tbaa !5
  %2618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call ptr @s2n_strerror(i32 noundef %2619, ptr noundef @.str.4)
  %2621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2622 = load i32, ptr %2621, align 4, !tbaa !5
  %2623 = call ptr @s2n_strerror_debug(i32 noundef %2622, ptr noundef @.str.4)
  %2624 = call ptr @__errno_location() #9
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call ptr @strerror(i32 noundef %2625) #8
  %2627 = call ptr @__errno_location() #9
  %2628 = load i32, ptr %2627, align 4, !tbaa !5
  %2629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2616, ptr noundef @.str.5, i32 noundef %2617, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2620, ptr noundef %2623, ptr noundef %2626, i32 noundef %2628) #8
  br label %2630

2630:                                             ; preds = %2613, %2596
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %2631

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

2632:                                             ; No predecessors!
  br label %2633

2633:                                             ; preds = %2632, %2579
  br label %2634

2634:                                             ; preds = %2633
  br label %2635

2635:                                             ; preds = %2634
  br label %2636

2636:                                             ; preds = %2635
  %2637 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2638 = icmp eq i32 %2637, -1
  br i1 %2638, label %2639, label %2690

2639:                                             ; preds = %2636
  br label %2640

2640:                                             ; preds = %2639
  br label %2641

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

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

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

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

2687:                                             ; preds = %2670, %2653
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %2688

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

2689:                                             ; No predecessors!
  br label %2690

2690:                                             ; preds = %2689, %2636
  br label %2691

2691:                                             ; preds = %2690
  %2692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2693 = trunc i8 %2692 to i1
  br i1 %2693, label %2694, label %2710

2694:                                             ; preds = %2691
  %2695 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2696 = call i32 @fileno(ptr noundef %2695) #8
  %2697 = call i32 @isatty(i32 noundef %2696) #8
  %2698 = icmp ne i32 %2697, 0
  br i1 %2698, label %2699, label %2710

2699:                                             ; preds = %2694
  %2700 = load i32, ptr @test_count, align 4, !tbaa !5
  %2701 = icmp ne i32 %2700, 0
  br i1 %2701, label %2702, label %2706

2702:                                             ; preds = %2699
  %2703 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2704 = load i32, ptr @test_count, align 4, !tbaa !5
  %2705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2703, ptr noundef @.str.34, i32 noundef %2704) #8
  br label %2709

2706:                                             ; preds = %2699
  %2707 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2707, ptr noundef @.str.35) #8
  br label %2709

2709:                                             ; preds = %2706, %2702
  br label %2721

2710:                                             ; preds = %2694, %2691
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = icmp ne i32 %2711, 0
  br i1 %2712, label %2713, label %2717

2713:                                             ; preds = %2710
  %2714 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2715 = load i32, ptr @test_count, align 4, !tbaa !5
  %2716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2714, ptr noundef @.str.36, i32 noundef %2715) #8
  br label %2720

2717:                                             ; preds = %2710
  %2718 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2718, ptr noundef @.str.37) #8
  br label %2720

2720:                                             ; preds = %2717, %2713
  br label %2721

2721:                                             ; preds = %2720, %2709
  store i32 0, ptr %3, align 4
  br label %2723

2722:                                             ; No predecessors!
  br label %2723

2723:                                             ; preds = %2722, %2721
  %2724 = load i32, ptr %3, align 4
  ret i32 %2724
}

; 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 ptr @s2n_connection_new(i32 noundef) #2

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

declare i32 @s2n_connection_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 void @s2n_debug_info_reset() #2

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


; 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
@s2n_nst_early_data_indication_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.8 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

23:                                               ; preds = %19, %12
  br label %24

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

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

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

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

52:                                               ; preds = %48, %41
  br label %53

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

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

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

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

79:                                               ; preds = %75, %68
  br label %80

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

92:                                               ; preds = %65
  %93 = load i32, ptr @test_count, align 4, !tbaa !5
  %94 = add nsw i32 %93, 1
  store i32 %94, ptr @test_count, align 4, !tbaa !5
  %95 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_nst_early_data_indication_extension, i64 24), align 8, !tbaa !15
  %96 = tail call zeroext i1 %95(ptr noundef null) #9
  br i1 %96, label %97, label %121

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

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

108:                                              ; preds = %104, %97
  br label %109

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

121:                                              ; preds = %92
  %122 = tail call ptr @s2n_connection_new(i32 noundef 0) #9
  %123 = load i32, ptr @test_count, align 4, !tbaa !5
  %124 = add nsw i32 %123, 1
  store i32 %124, ptr @test_count, align 4, !tbaa !5
  %125 = icmp eq ptr %122, null
  br i1 %125, label %126, label %150

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

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

137:                                              ; preds = %133, %126
  br label %138

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

150:                                              ; preds = %121
  %151 = add nsw i32 %123, 2
  store i32 %151, ptr @test_count, align 4, !tbaa !5
  %152 = tail call zeroext i1 %95(ptr noundef nonnull %122) #9
  br i1 %152, label %153, label %177

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

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

164:                                              ; preds = %160, %153
  br label %165

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

177:                                              ; preds = %150
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = tail call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef nonnull %122, i32 noundef 0) #9
  %181 = icmp eq i32 %180, -1
  br i1 %181, label %182, label %206

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

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

193:                                              ; preds = %189, %182
  br label %194

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

206:                                              ; preds = %177
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = tail call zeroext i1 %95(ptr noundef nonnull %122) #9
  br i1 %209, label %210, label %234

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

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

221:                                              ; preds = %217, %210
  br label %222

222:                                              ; preds = %217, %221
  %.str.5.sink231 = phi ptr [ @.str.5, %221 ], [ @.str.2, %217 ]
  store i32 %212, ptr %211, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = tail call ptr @s2n_strerror(i32 noundef %226, ptr noundef nonnull @.str.4) #9
  %228 = load i32, ptr %225, align 4, !tbaa !5
  %229 = tail call ptr @s2n_strerror_debug(i32 noundef %228, ptr noundef nonnull @.str.4) #9
  %230 = load i32, ptr %211, align 4, !tbaa !5
  %231 = tail call ptr @strerror(i32 noundef %230) #9
  %232 = load i32, ptr %211, align 4, !tbaa !5
  %233 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef nonnull %.str.5.sink231, i32 noundef %224, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %227, ptr noundef %229, ptr noundef %231, i32 noundef %232) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

234:                                              ; preds = %206
  %235 = load i32, ptr @test_count, align 4, !tbaa !5
  %236 = add nsw i32 %235, 1
  store i32 %236, ptr @test_count, align 4, !tbaa !5
  %237 = tail call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef nonnull %122, i32 noundef 13) #9
  %238 = icmp eq i32 %237, -1
  br i1 %238, label %239, label %263

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

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

250:                                              ; preds = %246, %239
  br label %251

251:                                              ; preds = %246, %250
  %.str.5.sink242 = phi ptr [ @.str.5, %250 ], [ @.str.2, %246 ]
  store i32 %241, ptr %240, align 4, !tbaa !5
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = load i32, ptr @test_count, align 4, !tbaa !5
  %254 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = tail call ptr @s2n_strerror(i32 noundef %255, ptr noundef nonnull @.str.4) #9
  %257 = load i32, ptr %254, align 4, !tbaa !5
  %258 = tail call ptr @s2n_strerror_debug(i32 noundef %257, ptr noundef nonnull @.str.4) #9
  %259 = load i32, ptr %240, align 4, !tbaa !5
  %260 = tail call ptr @strerror(i32 noundef %259) #9
  %261 = load i32, ptr %240, align 4, !tbaa !5
  %262 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %252, ptr noundef nonnull %.str.5.sink242, i32 noundef %253, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %256, ptr noundef %258, ptr noundef %260, i32 noundef %261) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

263:                                              ; preds = %234
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = add nsw i32 %264, 1
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = tail call zeroext i1 %95(ptr noundef nonnull %122) #9
  br i1 %266, label %291, label %267

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

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

278:                                              ; preds = %274, %267
  br label %279

279:                                              ; preds = %274, %278
  %.str.5.sink253 = phi ptr [ @.str.5, %278 ], [ @.str.2, %274 ]
  store i32 %269, ptr %268, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = tail call ptr @s2n_strerror(i32 noundef %283, ptr noundef nonnull @.str.4) #9
  %285 = load i32, ptr %282, align 4, !tbaa !5
  %286 = tail call ptr @s2n_strerror_debug(i32 noundef %285, ptr noundef nonnull @.str.4) #9
  %287 = load i32, ptr %268, align 4, !tbaa !5
  %288 = tail call ptr @strerror(i32 noundef %287) #9
  %289 = load i32, ptr %268, align 4, !tbaa !5
  %290 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef nonnull %.str.5.sink253, i32 noundef %281, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %284, ptr noundef %286, ptr noundef %288, i32 noundef %289) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

291:                                              ; preds = %263
  %292 = load i32, ptr @test_count, align 4, !tbaa !5
  %293 = add nsw i32 %292, 1
  store i32 %293, ptr @test_count, align 4, !tbaa !5
  %294 = tail call i32 @s2n_connection_free(ptr noundef nonnull %122) #9
  %295 = icmp eq i32 %294, -1
  br i1 %295, label %296, label %320

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

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

307:                                              ; preds = %303, %296
  br label %308

308:                                              ; preds = %303, %307
  %.str.5.sink264 = phi ptr [ @.str.5, %307 ], [ @.str.2, %303 ]
  store i32 %298, ptr %297, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = tail call ptr @s2n_strerror(i32 noundef %312, ptr noundef nonnull @.str.4) #9
  %314 = load i32, ptr %311, align 4, !tbaa !5
  %315 = tail call ptr @s2n_strerror_debug(i32 noundef %314, ptr noundef nonnull @.str.4) #9
  %316 = load i32, ptr %297, align 4, !tbaa !5
  %317 = tail call ptr @strerror(i32 noundef %316) #9
  %318 = load i32, ptr %297, align 4, !tbaa !5
  %319 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef nonnull %.str.5.sink264, i32 noundef %310, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %313, ptr noundef %315, ptr noundef %317, i32 noundef %318) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

320:                                              ; preds = %291
  %321 = tail call ptr @s2n_connection_new(i32 noundef 0) #9
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = add nsw i32 %322, 1
  store i32 %323, ptr @test_count, align 4, !tbaa !5
  %324 = icmp eq ptr %321, null
  br i1 %324, label %325, label %349

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

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

336:                                              ; preds = %332, %325
  br label %337

337:                                              ; preds = %332, %336
  %.str.5.sink275 = phi ptr [ @.str.5, %336 ], [ @.str.2, %332 ]
  store i32 %327, ptr %326, align 4, !tbaa !5
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = load i32, ptr @test_count, align 4, !tbaa !5
  %340 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = tail call ptr @s2n_strerror(i32 noundef %341, ptr noundef nonnull @.str.4) #9
  %343 = load i32, ptr %340, align 4, !tbaa !5
  %344 = tail call ptr @s2n_strerror_debug(i32 noundef %343, ptr noundef nonnull @.str.4) #9
  %345 = load i32, ptr %326, align 4, !tbaa !5
  %346 = tail call ptr @strerror(i32 noundef %345) #9
  %347 = load i32, ptr %326, align 4, !tbaa !5
  %348 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %338, ptr noundef nonnull %.str.5.sink275, i32 noundef %339, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %342, ptr noundef %344, ptr noundef %346, i32 noundef %347) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

349:                                              ; preds = %320
  %350 = getelementptr inbounds i8, ptr %321, i64 220
  store i8 34, ptr %350, align 4, !tbaa !18
  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)
  %351 = add nsw i32 %322, 2
  store i32 %351, ptr @test_count, align 4, !tbaa !5
  %352 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %3, i32 noundef 0) #9
  %353 = icmp eq i32 %352, -1
  br i1 %353, label %354, label %378

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

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

365:                                              ; preds = %361, %354
  br label %366

366:                                              ; preds = %361, %365
  %.str.5.sink286 = phi ptr [ @.str.5, %365 ], [ @.str.2, %361 ]
  store i32 %356, ptr %355, 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 nonnull @.str.4) #9
  %372 = load i32, ptr %369, align 4, !tbaa !5
  %373 = call ptr @s2n_strerror_debug(i32 noundef %372, ptr noundef nonnull @.str.4) #9
  %374 = load i32, ptr %355, align 4, !tbaa !5
  %375 = call ptr @strerror(i32 noundef %374) #9
  %376 = load i32, ptr %355, align 4, !tbaa !5
  %377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %367, ptr noundef nonnull %.str.5.sink286, i32 noundef %368, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %371, ptr noundef %373, ptr noundef %375, i32 noundef %376) #11
  call void @exit(i32 noundef 1) #12
  unreachable

378:                                              ; preds = %349
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr @test_count, align 4, !tbaa !5
  %381 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef nonnull %321, i32 noundef 13) #9
  %382 = icmp eq i32 %381, -1
  br i1 %382, label %383, label %407

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

390:                                              ; preds = %383
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = call i32 @fileno(ptr noundef %391) #9
  %393 = call i32 @isatty(i32 noundef %392) #9
  %.not142 = icmp eq i32 %393, 0
  br i1 %.not142, label %394, label %395

394:                                              ; preds = %390, %383
  br label %395

395:                                              ; preds = %390, %394
  %.str.5.sink297 = phi ptr [ @.str.5, %394 ], [ @.str.2, %390 ]
  store i32 %385, ptr %384, align 4, !tbaa !5
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror(i32 noundef %399, ptr noundef nonnull @.str.4) #9
  %401 = load i32, ptr %398, align 4, !tbaa !5
  %402 = call ptr @s2n_strerror_debug(i32 noundef %401, ptr noundef nonnull @.str.4) #9
  %403 = load i32, ptr %384, align 4, !tbaa !5
  %404 = call ptr @strerror(i32 noundef %403) #9
  %405 = load i32, ptr %384, align 4, !tbaa !5
  %406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %396, ptr noundef nonnull %.str.5.sink297, i32 noundef %397, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %400, ptr noundef %402, ptr noundef %404, i32 noundef %405) #11
  call void @exit(i32 noundef 1) #12
  unreachable

407:                                              ; preds = %378
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr @test_count, align 4, !tbaa !5
  %410 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_nst_early_data_indication_extension, i64 8), align 8, !tbaa !44
  %411 = call i32 %410(ptr noundef nonnull %321, ptr noundef null) #9
  %412 = icmp eq i32 %411, -1
  br i1 %412, label %437, label %413

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

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

424:                                              ; preds = %420, %413
  br label %425

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

437:                                              ; preds = %407
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = add nsw i32 %438, 1
  store i32 %439, ptr @test_count, align 4, !tbaa !5
  %440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %441 = load i32, ptr %440, align 4, !tbaa !5
  %442 = icmp eq i32 %441, 402653193
  br i1 %442, label %466, label %443

443:                                              ; preds = %437
  %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
  %.not112 = icmp eq i32 %453, 0
  br i1 %.not112, label %454, label %455

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

455:                                              ; preds = %450, %454
  %.str.5.sink319 = 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 = load i32, ptr %440, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror(i32 noundef %458, ptr noundef nonnull @.str.4) #9
  %460 = load i32, ptr %440, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror_debug(i32 noundef %460, ptr noundef nonnull @.str.4) #9
  %462 = load i32, ptr %444, align 4, !tbaa !5
  %463 = call ptr @strerror(i32 noundef %462) #9
  %464 = load i32, ptr %444, align 4, !tbaa !5
  %465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %456, ptr noundef nonnull %.str.5.sink319, i32 noundef %457, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %459, ptr noundef %461, ptr noundef %463, i32 noundef %464) #11
  call void @exit(i32 noundef 1) #12
  unreachable

466:                                              ; preds = %437
  %467 = add nsw i32 %438, 2
  store i32 %467, ptr @test_count, align 4, !tbaa !5
  %468 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #9
  %469 = icmp eq ptr %468, null
  br i1 %469, label %470, label %493

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

477:                                              ; preds = %470
  %478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %479 = call i32 @fileno(ptr noundef %478) #9
  %480 = call i32 @isatty(i32 noundef %479) #9
  %.not141 = icmp eq i32 %480, 0
  br i1 %.not141, label %481, label %482

481:                                              ; preds = %477, %470
  br label %482

482:                                              ; preds = %477, %481
  %.str.5.sink328 = phi ptr [ @.str.5, %481 ], [ @.str.2, %477 ]
  store i32 %472, ptr %471, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = load i32, ptr %440, align 4, !tbaa !5
  %486 = call ptr @s2n_strerror(i32 noundef %485, ptr noundef nonnull @.str.4) #9
  %487 = load i32, ptr %440, align 4, !tbaa !5
  %488 = call ptr @s2n_strerror_debug(i32 noundef %487, ptr noundef nonnull @.str.4) #9
  %489 = load i32, ptr %471, align 4, !tbaa !5
  %490 = call ptr @strerror(i32 noundef %489) #9
  %491 = load i32, ptr %471, align 4, !tbaa !5
  %492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %483, ptr noundef nonnull %.str.5.sink328, i32 noundef %484, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %486, ptr noundef %488, ptr noundef %490, i32 noundef %491) #11
  call void @exit(i32 noundef 1) #12
  unreachable

493:                                              ; preds = %466
  store i32 0, ptr %440, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %494 = tail call ptr @__errno_location() #10
  store i32 0, ptr %494, align 4, !tbaa !5
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = add nsw i32 %495, 1
  store i32 %496, ptr @test_count, align 4, !tbaa !5
  %497 = call i32 %410(ptr noundef null, ptr noundef nonnull %3) #9
  %498 = icmp eq i32 %497, -1
  br i1 %498, label %521, label %499

499:                                              ; preds = %493
  %500 = load i32, ptr %494, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @s2n_print_stacktrace(ptr noundef %501) #9
  %503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %504 = trunc nuw i8 %503 to i1
  br i1 %504, label %505, label %509

505:                                              ; preds = %499
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @fileno(ptr noundef %506) #9
  %508 = call i32 @isatty(i32 noundef %507) #9
  %.not113 = icmp eq i32 %508, 0
  br i1 %.not113, label %509, label %510

509:                                              ; preds = %505, %499
  br label %510

510:                                              ; preds = %505, %509
  %.str.5.sink337 = phi ptr [ @.str.5, %509 ], [ @.str.2, %505 ]
  store i32 %500, ptr %494, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = load i32, ptr %440, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror(i32 noundef %513, ptr noundef nonnull @.str.4) #9
  %515 = load i32, ptr %440, align 4, !tbaa !5
  %516 = call ptr @s2n_strerror_debug(i32 noundef %515, ptr noundef nonnull @.str.4) #9
  %517 = load i32, ptr %494, align 4, !tbaa !5
  %518 = call ptr @strerror(i32 noundef %517) #9
  %519 = load i32, ptr %494, align 4, !tbaa !5
  %520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %511, ptr noundef nonnull %.str.5.sink337, i32 noundef %512, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %514, ptr noundef %516, ptr noundef %518, i32 noundef %519) #11
  call void @exit(i32 noundef 1) #12
  unreachable

521:                                              ; preds = %493
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr @test_count, align 4, !tbaa !5
  %524 = load i32, ptr %440, align 4, !tbaa !5
  %525 = icmp eq i32 %524, 402653193
  br i1 %525, label %548, label %526

526:                                              ; preds = %521
  %527 = load i32, ptr %494, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = call i32 @s2n_print_stacktrace(ptr noundef %528) #9
  %530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %531 = trunc nuw i8 %530 to i1
  br i1 %531, label %532, label %536

532:                                              ; preds = %526
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = call i32 @fileno(ptr noundef %533) #9
  %535 = call i32 @isatty(i32 noundef %534) #9
  %.not114 = icmp eq i32 %535, 0
  br i1 %.not114, label %536, label %537

536:                                              ; preds = %532, %526
  br label %537

537:                                              ; preds = %532, %536
  %.str.5.sink346 = phi ptr [ @.str.5, %536 ], [ @.str.2, %532 ]
  store i32 %527, ptr %494, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = load i32, ptr %440, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror(i32 noundef %540, ptr noundef nonnull @.str.4) #9
  %542 = load i32, ptr %440, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror_debug(i32 noundef %542, ptr noundef nonnull @.str.4) #9
  %544 = load i32, ptr %494, align 4, !tbaa !5
  %545 = call ptr @strerror(i32 noundef %544) #9
  %546 = load i32, ptr %494, align 4, !tbaa !5
  %547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %538, ptr noundef nonnull %.str.5.sink346, i32 noundef %539, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %541, ptr noundef %543, ptr noundef %545, i32 noundef %546) #11
  call void @exit(i32 noundef 1) #12
  unreachable

548:                                              ; preds = %521
  %549 = add nsw i32 %522, 2
  store i32 %549, ptr @test_count, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #9
  %551 = icmp eq ptr %550, null
  br i1 %551, label %552, label %574

552:                                              ; preds = %548
  %553 = load i32, ptr %494, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = call i32 @s2n_print_stacktrace(ptr noundef %554) #9
  %556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %557 = trunc nuw i8 %556 to i1
  br i1 %557, label %558, label %562

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

562:                                              ; preds = %558, %552
  br label %563

563:                                              ; preds = %558, %562
  %.str.5.sink355 = phi ptr [ @.str.5, %562 ], [ @.str.2, %558 ]
  store i32 %553, ptr %494, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = load i32, ptr %440, align 4, !tbaa !5
  %567 = call ptr @s2n_strerror(i32 noundef %566, ptr noundef nonnull @.str.4) #9
  %568 = load i32, ptr %440, align 4, !tbaa !5
  %569 = call ptr @s2n_strerror_debug(i32 noundef %568, ptr noundef nonnull @.str.4) #9
  %570 = load i32, ptr %494, align 4, !tbaa !5
  %571 = call ptr @strerror(i32 noundef %570) #9
  %572 = load i32, ptr %494, align 4, !tbaa !5
  %573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %564, ptr noundef nonnull %.str.5.sink355, i32 noundef %565, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %567, ptr noundef %569, ptr noundef %571, i32 noundef %572) #11
  call void @exit(i32 noundef 1) #12
  unreachable

574:                                              ; preds = %548
  store i32 0, ptr %440, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %494, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #9
  store i32 0, ptr %4, align 4, !tbaa !5
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = add nsw i32 %575, 1
  store i32 %576, ptr @test_count, align 4, !tbaa !5
  %577 = call i32 %410(ptr noundef nonnull %321, ptr noundef nonnull %3) #9
  %578 = icmp eq i32 %577, -1
  br i1 %578, label %579, label %601

579:                                              ; preds = %574
  %580 = load i32, ptr %494, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @s2n_print_stacktrace(ptr noundef %581) #9
  %583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %584 = trunc nuw i8 %583 to i1
  br i1 %584, label %585, label %589

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

589:                                              ; preds = %585, %579
  br label %590

590:                                              ; preds = %585, %589
  %.str.5.sink364 = phi ptr [ @.str.5, %589 ], [ @.str.2, %585 ]
  store i32 %580, ptr %494, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = load i32, ptr %440, align 4, !tbaa !5
  %594 = call ptr @s2n_strerror(i32 noundef %593, ptr noundef nonnull @.str.4) #9
  %595 = load i32, ptr %440, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror_debug(i32 noundef %595, ptr noundef nonnull @.str.4) #9
  %597 = load i32, ptr %494, align 4, !tbaa !5
  %598 = call ptr @strerror(i32 noundef %597) #9
  %599 = load i32, ptr %494, align 4, !tbaa !5
  %600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %591, ptr noundef nonnull %.str.5.sink364, i32 noundef %592, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %594, ptr noundef %596, ptr noundef %598, i32 noundef %599) #11
  call void @exit(i32 noundef 1) #12
  unreachable

601:                                              ; preds = %574
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr @test_count, align 4, !tbaa !5
  %604 = call i32 @s2n_stuffer_read_uint32(ptr noundef nonnull %3, ptr noundef nonnull %4) #9
  %605 = icmp eq i32 %604, -1
  br i1 %605, label %606, label %628

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

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

616:                                              ; preds = %612, %606
  br label %617

617:                                              ; preds = %612, %616
  %.str.5.sink373 = phi ptr [ @.str.5, %616 ], [ @.str.2, %612 ]
  store i32 %607, ptr %494, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = load i32, ptr @test_count, align 4, !tbaa !5
  %620 = load i32, ptr %440, align 4, !tbaa !5
  %621 = call ptr @s2n_strerror(i32 noundef %620, ptr noundef nonnull @.str.4) #9
  %622 = load i32, ptr %440, align 4, !tbaa !5
  %623 = call ptr @s2n_strerror_debug(i32 noundef %622, ptr noundef nonnull @.str.4) #9
  %624 = load i32, ptr %494, align 4, !tbaa !5
  %625 = call ptr @strerror(i32 noundef %624) #9
  %626 = load i32, ptr %494, align 4, !tbaa !5
  %627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %618, ptr noundef nonnull %.str.5.sink373, i32 noundef %619, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %621, ptr noundef %623, ptr noundef %625, i32 noundef %626) #11
  call void @exit(i32 noundef 1) #12
  unreachable

628:                                              ; preds = %601
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = add nsw i32 %629, 1
  store i32 %630, ptr @test_count, align 4, !tbaa !5
  %631 = load i32, ptr %4, align 4, !tbaa !5
  %632 = icmp eq i32 %631, 13
  br i1 %632, label %655, label %633

633:                                              ; preds = %628
  %634 = load i32, ptr %494, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = call i32 @s2n_print_stacktrace(ptr noundef %635) #9
  %637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %638 = trunc nuw i8 %637 to i1
  br i1 %638, label %639, label %643

639:                                              ; preds = %633
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = call i32 @fileno(ptr noundef %640) #9
  %642 = call i32 @isatty(i32 noundef %641) #9
  %.not115 = icmp eq i32 %642, 0
  br i1 %.not115, label %643, label %644

643:                                              ; preds = %639, %633
  br label %644

644:                                              ; preds = %639, %643
  %.str.5.sink382 = phi ptr [ @.str.5, %643 ], [ @.str.2, %639 ]
  store i32 %634, ptr %494, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = load i32, ptr %440, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror(i32 noundef %647, ptr noundef nonnull @.str.4) #9
  %649 = load i32, ptr %440, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror_debug(i32 noundef %649, ptr noundef nonnull @.str.4) #9
  %651 = load i32, ptr %494, align 4, !tbaa !5
  %652 = call ptr @strerror(i32 noundef %651) #9
  %653 = load i32, ptr %494, align 4, !tbaa !5
  %654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %645, ptr noundef nonnull %.str.5.sink382, i32 noundef %646, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %648, ptr noundef %650, ptr noundef %652, i32 noundef %653) #11
  call void @exit(i32 noundef 1) #12
  unreachable

655:                                              ; preds = %628
  %656 = add nsw i32 %629, 2
  store i32 %656, ptr @test_count, align 4, !tbaa !5
  %657 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #9
  %658 = icmp eq i32 %657, -1
  br i1 %658, label %659, label %681

659:                                              ; preds = %655
  %660 = load i32, ptr %494, align 4, !tbaa !5
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = call i32 @s2n_print_stacktrace(ptr noundef %661) #9
  %663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %664 = trunc nuw i8 %663 to i1
  br i1 %664, label %665, label %669

665:                                              ; preds = %659
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = call i32 @fileno(ptr noundef %666) #9
  %668 = call i32 @isatty(i32 noundef %667) #9
  %.not137 = icmp eq i32 %668, 0
  br i1 %.not137, label %669, label %670

669:                                              ; preds = %665, %659
  br label %670

670:                                              ; preds = %665, %669
  %.str.5.sink391 = phi ptr [ @.str.5, %669 ], [ @.str.2, %665 ]
  store i32 %660, ptr %494, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = load i32, ptr %440, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror(i32 noundef %673, ptr noundef nonnull @.str.4) #9
  %675 = load i32, ptr %440, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror_debug(i32 noundef %675, ptr noundef nonnull @.str.4) #9
  %677 = load i32, ptr %494, align 4, !tbaa !5
  %678 = call ptr @strerror(i32 noundef %677) #9
  %679 = load i32, ptr %494, align 4, !tbaa !5
  %680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %671, ptr noundef nonnull %.str.5.sink391, i32 noundef %672, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %674, ptr noundef %676, ptr noundef %678, i32 noundef %679) #11
  call void @exit(i32 noundef 1) #12
  unreachable

681:                                              ; preds = %655
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = add nsw i32 %682, 1
  store i32 %683, ptr @test_count, align 4, !tbaa !5
  %684 = call i32 @s2n_connection_free(ptr noundef nonnull %321) #9
  %685 = icmp eq i32 %684, -1
  br i1 %685, label %686, label %708

686:                                              ; preds = %681
  %687 = load i32, ptr %494, align 4, !tbaa !5
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = call i32 @s2n_print_stacktrace(ptr noundef %688) #9
  %690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %691 = trunc nuw i8 %690 to i1
  br i1 %691, label %692, label %696

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

696:                                              ; preds = %692, %686
  br label %697

697:                                              ; preds = %692, %696
  %.str.5.sink400 = phi ptr [ @.str.5, %696 ], [ @.str.2, %692 ]
  store i32 %687, ptr %494, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %700 = load i32, ptr %440, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror(i32 noundef %700, ptr noundef nonnull @.str.4) #9
  %702 = load i32, ptr %440, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror_debug(i32 noundef %702, ptr noundef nonnull @.str.4) #9
  %704 = load i32, ptr %494, align 4, !tbaa !5
  %705 = call ptr @strerror(i32 noundef %704) #9
  %706 = load i32, ptr %494, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %698, ptr noundef nonnull %.str.5.sink400, i32 noundef %699, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %701, ptr noundef %703, ptr noundef %705, i32 noundef %706) #11
  call void @exit(i32 noundef 1) #12
  unreachable

708:                                              ; preds = %681
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #9
  %709 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr @test_count, align 4, !tbaa !5
  %712 = icmp eq ptr %709, null
  br i1 %712, label %713, label %735

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

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

723:                                              ; preds = %719, %713
  br label %724

724:                                              ; preds = %719, %723
  %.str.5.sink409 = phi ptr [ @.str.5, %723 ], [ @.str.2, %719 ]
  store i32 %714, ptr %494, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = load i32, ptr %440, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef nonnull @.str.4) #9
  %729 = load i32, ptr %440, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror_debug(i32 noundef %729, ptr noundef nonnull @.str.4) #9
  %731 = load i32, ptr %494, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #9
  %733 = load i32, ptr %494, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef nonnull %.str.5.sink409, i32 noundef %726, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %728, ptr noundef %730, ptr noundef %732, i32 noundef %733) #11
  call void @exit(i32 noundef 1) #12
  unreachable

735:                                              ; preds = %708
  %736 = getelementptr inbounds i8, ptr %709, i64 220
  store i8 34, ptr %736, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %5, i8 0, i64 40, i1 false)
  %737 = add nsw i32 %710, 2
  store i32 %737, ptr @test_count, align 4, !tbaa !5
  %738 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #9
  %739 = icmp eq i32 %738, -1
  br i1 %739, label %740, label %762

740:                                              ; preds = %735
  %741 = load i32, ptr %494, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @s2n_print_stacktrace(ptr noundef %742) #9
  %744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %745 = trunc nuw i8 %744 to i1
  br i1 %745, label %746, label %750

746:                                              ; preds = %740
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = call i32 @fileno(ptr noundef %747) #9
  %749 = call i32 @isatty(i32 noundef %748) #9
  %.not134 = icmp eq i32 %749, 0
  br i1 %.not134, label %750, label %751

750:                                              ; preds = %746, %740
  br label %751

751:                                              ; preds = %746, %750
  %.str.5.sink418 = phi ptr [ @.str.5, %750 ], [ @.str.2, %746 ]
  store i32 %741, ptr %494, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = load i32, ptr %440, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror(i32 noundef %754, ptr noundef nonnull @.str.4) #9
  %756 = load i32, ptr %440, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef nonnull @.str.4) #9
  %758 = load i32, ptr %494, align 4, !tbaa !5
  %759 = call ptr @strerror(i32 noundef %758) #9
  %760 = load i32, ptr %494, align 4, !tbaa !5
  %761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %752, ptr noundef nonnull %.str.5.sink418, i32 noundef %753, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %755, ptr noundef %757, ptr noundef %759, i32 noundef %760) #11
  call void @exit(i32 noundef 1) #12
  unreachable

762:                                              ; preds = %735
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr @test_count, align 4, !tbaa !5
  %765 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_nst_early_data_indication_extension, i64 16), align 8, !tbaa !45
  %766 = call i32 %765(ptr noundef nonnull %709, ptr noundef null) #9
  %767 = icmp eq i32 %766, -1
  br i1 %767, label %790, label %768

768:                                              ; preds = %762
  %769 = load i32, ptr %494, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 @s2n_print_stacktrace(ptr noundef %770) #9
  %772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %774, label %778

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

778:                                              ; preds = %774, %768
  br label %779

779:                                              ; preds = %774, %778
  %.str.5.sink427 = phi ptr [ @.str.5, %778 ], [ @.str.2, %774 ]
  store i32 %769, ptr %494, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = load i32, ptr %440, align 4, !tbaa !5
  %783 = call ptr @s2n_strerror(i32 noundef %782, ptr noundef nonnull @.str.4) #9
  %784 = load i32, ptr %440, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef nonnull @.str.4) #9
  %786 = load i32, ptr %494, align 4, !tbaa !5
  %787 = call ptr @strerror(i32 noundef %786) #9
  %788 = load i32, ptr %494, align 4, !tbaa !5
  %789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef nonnull %.str.5.sink427, i32 noundef %781, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %783, ptr noundef %785, ptr noundef %787, i32 noundef %788) #11
  call void @exit(i32 noundef 1) #12
  unreachable

790:                                              ; preds = %762
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = add nsw i32 %791, 1
  store i32 %792, ptr @test_count, align 4, !tbaa !5
  %793 = load i32, ptr %440, align 4, !tbaa !5
  %794 = icmp eq i32 %793, 402653193
  br i1 %794, label %817, label %795

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

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

805:                                              ; preds = %801, %795
  br label %806

806:                                              ; preds = %801, %805
  %.str.5.sink436 = phi ptr [ @.str.5, %805 ], [ @.str.2, %801 ]
  store i32 %796, ptr %494, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = load i32, ptr %440, align 4, !tbaa !5
  %810 = call ptr @s2n_strerror(i32 noundef %809, ptr noundef nonnull @.str.4) #9
  %811 = load i32, ptr %440, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror_debug(i32 noundef %811, ptr noundef nonnull @.str.4) #9
  %813 = load i32, ptr %494, align 4, !tbaa !5
  %814 = call ptr @strerror(i32 noundef %813) #9
  %815 = load i32, ptr %494, align 4, !tbaa !5
  %816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %807, ptr noundef nonnull %.str.5.sink436, i32 noundef %808, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %810, ptr noundef %812, ptr noundef %814, i32 noundef %815) #11
  call void @exit(i32 noundef 1) #12
  unreachable

817:                                              ; preds = %790
  %818 = add nsw i32 %791, 2
  store i32 %818, ptr @test_count, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #9
  %820 = icmp eq ptr %819, null
  br i1 %820, label %821, label %843

821:                                              ; preds = %817
  %822 = load i32, ptr %494, align 4, !tbaa !5
  %823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %824 = call i32 @s2n_print_stacktrace(ptr noundef %823) #9
  %825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %826 = trunc nuw i8 %825 to i1
  br i1 %826, label %827, label %831

827:                                              ; preds = %821
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @fileno(ptr noundef %828) #9
  %830 = call i32 @isatty(i32 noundef %829) #9
  %.not133 = icmp eq i32 %830, 0
  br i1 %.not133, label %831, label %832

831:                                              ; preds = %827, %821
  br label %832

832:                                              ; preds = %827, %831
  %.str.5.sink445 = phi ptr [ @.str.5, %831 ], [ @.str.2, %827 ]
  store i32 %822, ptr %494, align 4, !tbaa !5
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = load i32, ptr @test_count, align 4, !tbaa !5
  %835 = load i32, ptr %440, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror(i32 noundef %835, ptr noundef nonnull @.str.4) #9
  %837 = load i32, ptr %440, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror_debug(i32 noundef %837, ptr noundef nonnull @.str.4) #9
  %839 = load i32, ptr %494, align 4, !tbaa !5
  %840 = call ptr @strerror(i32 noundef %839) #9
  %841 = load i32, ptr %494, align 4, !tbaa !5
  %842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %833, ptr noundef nonnull %.str.5.sink445, i32 noundef %834, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %836, ptr noundef %838, ptr noundef %840, i32 noundef %841) #11
  call void @exit(i32 noundef 1) #12
  unreachable

843:                                              ; preds = %817
  store i32 0, ptr %440, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %494, align 4, !tbaa !5
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = add nsw i32 %844, 1
  store i32 %845, ptr @test_count, align 4, !tbaa !5
  %846 = call i32 %765(ptr noundef null, ptr noundef nonnull %5) #9
  %847 = icmp eq i32 %846, -1
  br i1 %847, label %870, label %848

848:                                              ; preds = %843
  %849 = load i32, ptr %494, align 4, !tbaa !5
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = call i32 @s2n_print_stacktrace(ptr noundef %850) #9
  %852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %853 = trunc nuw i8 %852 to i1
  br i1 %853, label %854, label %858

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

858:                                              ; preds = %854, %848
  br label %859

859:                                              ; preds = %854, %858
  %.str.5.sink454 = phi ptr [ @.str.5, %858 ], [ @.str.2, %854 ]
  store i32 %849, ptr %494, align 4, !tbaa !5
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = load i32, ptr %440, align 4, !tbaa !5
  %863 = call ptr @s2n_strerror(i32 noundef %862, ptr noundef nonnull @.str.4) #9
  %864 = load i32, ptr %440, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror_debug(i32 noundef %864, ptr noundef nonnull @.str.4) #9
  %866 = load i32, ptr %494, align 4, !tbaa !5
  %867 = call ptr @strerror(i32 noundef %866) #9
  %868 = load i32, ptr %494, align 4, !tbaa !5
  %869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %860, ptr noundef nonnull %.str.5.sink454, i32 noundef %861, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %863, ptr noundef %865, ptr noundef %867, i32 noundef %868) #11
  call void @exit(i32 noundef 1) #12
  unreachable

870:                                              ; preds = %843
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = add nsw i32 %871, 1
  store i32 %872, ptr @test_count, align 4, !tbaa !5
  %873 = load i32, ptr %440, align 4, !tbaa !5
  %874 = icmp eq i32 %873, 402653193
  br i1 %874, label %897, label %875

875:                                              ; preds = %870
  %876 = load i32, ptr %494, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @s2n_print_stacktrace(ptr noundef %877) #9
  %879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %880 = trunc nuw i8 %879 to i1
  br i1 %880, label %881, label %885

881:                                              ; preds = %875
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @fileno(ptr noundef %882) #9
  %884 = call i32 @isatty(i32 noundef %883) #9
  %.not119 = icmp eq i32 %884, 0
  br i1 %.not119, label %885, label %886

885:                                              ; preds = %881, %875
  br label %886

886:                                              ; preds = %881, %885
  %.str.5.sink463 = phi ptr [ @.str.5, %885 ], [ @.str.2, %881 ]
  store i32 %876, ptr %494, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = load i32, ptr %440, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror(i32 noundef %889, ptr noundef nonnull @.str.4) #9
  %891 = load i32, ptr %440, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror_debug(i32 noundef %891, ptr noundef nonnull @.str.4) #9
  %893 = load i32, ptr %494, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #9
  %895 = load i32, ptr %494, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %887, ptr noundef nonnull %.str.5.sink463, i32 noundef %888, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %890, ptr noundef %892, ptr noundef %894, i32 noundef %895) #11
  call void @exit(i32 noundef 1) #12
  unreachable

897:                                              ; preds = %870
  %898 = add nsw i32 %871, 2
  store i32 %898, ptr @test_count, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #9
  %900 = icmp eq ptr %899, null
  br i1 %900, label %901, label %923

901:                                              ; preds = %897
  %902 = load i32, ptr %494, align 4, !tbaa !5
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @s2n_print_stacktrace(ptr noundef %903) #9
  %905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %906 = trunc nuw i8 %905 to i1
  br i1 %906, label %907, label %911

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

911:                                              ; preds = %907, %901
  br label %912

912:                                              ; preds = %907, %911
  %.str.5.sink472 = phi ptr [ @.str.5, %911 ], [ @.str.2, %907 ]
  store i32 %902, ptr %494, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = load i32, ptr %440, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror(i32 noundef %915, ptr noundef nonnull @.str.4) #9
  %917 = load i32, ptr %440, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror_debug(i32 noundef %917, ptr noundef nonnull @.str.4) #9
  %919 = load i32, ptr %494, align 4, !tbaa !5
  %920 = call ptr @strerror(i32 noundef %919) #9
  %921 = load i32, ptr %494, align 4, !tbaa !5
  %922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef nonnull %.str.5.sink472, i32 noundef %914, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %916, ptr noundef %918, ptr noundef %920, i32 noundef %921) #11
  call void @exit(i32 noundef 1) #12
  unreachable

923:                                              ; preds = %897
  store i32 0, ptr %440, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %494, align 4, !tbaa !5
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr @test_count, align 4, !tbaa !5
  %926 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef nonnull %709, i32 noundef 13) #9
  %927 = icmp eq i32 %926, -1
  br i1 %927, label %928, label %950

928:                                              ; preds = %923
  %929 = load i32, ptr %494, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = call i32 @s2n_print_stacktrace(ptr noundef %930) #9
  %932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %933 = trunc nuw i8 %932 to i1
  br i1 %933, label %934, label %938

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

938:                                              ; preds = %934, %928
  br label %939

939:                                              ; preds = %934, %938
  %.str.5.sink481 = phi ptr [ @.str.5, %938 ], [ @.str.2, %934 ]
  store i32 %929, ptr %494, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = load i32, ptr %440, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef nonnull @.str.4) #9
  %944 = load i32, ptr %440, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef nonnull @.str.4) #9
  %946 = load i32, ptr %494, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #9
  %948 = load i32, ptr %494, align 4, !tbaa !5
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef nonnull %.str.5.sink481, i32 noundef %941, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %943, ptr noundef %945, ptr noundef %947, i32 noundef %948) #11
  call void @exit(i32 noundef 1) #12
  unreachable

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

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

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

965:                                              ; preds = %961, %955
  br label %966

966:                                              ; preds = %961, %965
  %.str.5.sink490 = phi ptr [ @.str.5, %965 ], [ @.str.2, %961 ]
  store i32 %956, ptr %494, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = load i32, ptr %440, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror(i32 noundef %969, ptr noundef nonnull @.str.4) #9
  %971 = load i32, ptr %440, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef nonnull @.str.4) #9
  %973 = load i32, ptr %494, align 4, !tbaa !5
  %974 = call ptr @strerror(i32 noundef %973) #9
  %975 = load i32, ptr %494, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef nonnull %.str.5.sink490, i32 noundef %968, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %970, ptr noundef %972, ptr noundef %974, i32 noundef %975) #11
  call void @exit(i32 noundef 1) #12
  unreachable

977:                                              ; preds = %950
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %980 = call i32 @s2n_connection_set_server_max_early_data_size(ptr noundef nonnull %709, i32 noundef 0) #9
  %981 = icmp eq i32 %980, -1
  br i1 %981, label %982, label %1004

982:                                              ; preds = %977
  %983 = load i32, ptr %494, align 4, !tbaa !5
  %984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %985 = call i32 @s2n_print_stacktrace(ptr noundef %984) #9
  %986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %987 = trunc nuw i8 %986 to i1
  br i1 %987, label %988, label %992

988:                                              ; preds = %982
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = call i32 @fileno(ptr noundef %989) #9
  %991 = call i32 @isatty(i32 noundef %990) #9
  %.not129 = icmp eq i32 %991, 0
  br i1 %.not129, label %992, label %993

992:                                              ; preds = %988, %982
  br label %993

993:                                              ; preds = %988, %992
  %.str.5.sink499 = phi ptr [ @.str.5, %992 ], [ @.str.2, %988 ]
  store i32 %983, ptr %494, align 4, !tbaa !5
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = load i32, ptr %440, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror(i32 noundef %996, ptr noundef nonnull @.str.4) #9
  %998 = load i32, ptr %440, align 4, !tbaa !5
  %999 = call ptr @s2n_strerror_debug(i32 noundef %998, ptr noundef nonnull @.str.4) #9
  %1000 = load i32, ptr %494, align 4, !tbaa !5
  %1001 = call ptr @strerror(i32 noundef %1000) #9
  %1002 = load i32, ptr %494, align 4, !tbaa !5
  %1003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %994, ptr noundef nonnull %.str.5.sink499, i32 noundef %995, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %997, ptr noundef %999, ptr noundef %1001, i32 noundef %1002) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1004:                                             ; preds = %977
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = add nsw i32 %1005, 1
  store i32 %1006, ptr @test_count, align 4, !tbaa !5
  %1007 = call i32 %765(ptr noundef nonnull %709, ptr noundef nonnull %5) #9
  %1008 = icmp eq i32 %1007, -1
  br i1 %1008, label %1009, label %1031

1009:                                             ; preds = %1004
  %1010 = load i32, ptr %494, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @s2n_print_stacktrace(ptr noundef %1011) #9
  %1013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1014 = trunc nuw i8 %1013 to i1
  br i1 %1014, label %1015, label %1019

1015:                                             ; preds = %1009
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @fileno(ptr noundef %1016) #9
  %1018 = call i32 @isatty(i32 noundef %1017) #9
  %.not128 = icmp eq i32 %1018, 0
  br i1 %.not128, label %1019, label %1020

1019:                                             ; preds = %1015, %1009
  br label %1020

1020:                                             ; preds = %1015, %1019
  %.str.5.sink508 = phi ptr [ @.str.5, %1019 ], [ @.str.2, %1015 ]
  store i32 %1010, ptr %494, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = load i32, ptr %440, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror(i32 noundef %1023, ptr noundef nonnull @.str.4) #9
  %1025 = load i32, ptr %440, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror_debug(i32 noundef %1025, ptr noundef nonnull @.str.4) #9
  %1027 = load i32, ptr %494, align 4, !tbaa !5
  %1028 = call ptr @strerror(i32 noundef %1027) #9
  %1029 = load i32, ptr %494, align 4, !tbaa !5
  %1030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef nonnull %.str.5.sink508, i32 noundef %1022, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %1024, ptr noundef %1026, ptr noundef %1028, i32 noundef %1029) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1031:                                             ; preds = %1004
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = add nsw i32 %1032, 1
  store i32 %1033, ptr @test_count, align 4, !tbaa !5
  %1034 = getelementptr inbounds i8, ptr %709, i64 4092
  %1035 = load i32, ptr %1034, align 4, !tbaa !46
  %1036 = icmp eq i32 %1035, 13
  br i1 %1036, label %1059, label %1037

1037:                                             ; preds = %1031
  %1038 = load i32, ptr %494, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = call i32 @s2n_print_stacktrace(ptr noundef %1039) #9
  %1041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1042 = trunc nuw i8 %1041 to i1
  br i1 %1042, label %1043, label %1047

1043:                                             ; preds = %1037
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @fileno(ptr noundef %1044) #9
  %1046 = call i32 @isatty(i32 noundef %1045) #9
  %.not120 = icmp eq i32 %1046, 0
  br i1 %.not120, label %1047, label %1048

1047:                                             ; preds = %1043, %1037
  br label %1048

1048:                                             ; preds = %1043, %1047
  %.str.5.sink517 = phi ptr [ @.str.5, %1047 ], [ @.str.2, %1043 ]
  store i32 %1038, ptr %494, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = load i32, ptr %440, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror(i32 noundef %1051, ptr noundef nonnull @.str.4) #9
  %1053 = load i32, ptr %440, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef nonnull @.str.4) #9
  %1055 = load i32, ptr %494, align 4, !tbaa !5
  %1056 = call ptr @strerror(i32 noundef %1055) #9
  %1057 = load i32, ptr %494, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef nonnull %.str.5.sink517, i32 noundef %1050, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %1052, ptr noundef %1054, ptr noundef %1056, i32 noundef %1057) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1059:                                             ; preds = %1031
  %1060 = add nsw i32 %1032, 2
  store i32 %1060, ptr @test_count, align 4, !tbaa !5
  %1061 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #9
  %1062 = icmp eq i32 %1061, -1
  br i1 %1062, label %1063, label %1085

1063:                                             ; preds = %1059
  %1064 = load i32, ptr %494, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = call i32 @s2n_print_stacktrace(ptr noundef %1065) #9
  %1067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1068 = trunc nuw i8 %1067 to i1
  br i1 %1068, label %1069, label %1073

1069:                                             ; preds = %1063
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @fileno(ptr noundef %1070) #9
  %1072 = call i32 @isatty(i32 noundef %1071) #9
  %.not127 = icmp eq i32 %1072, 0
  br i1 %.not127, label %1073, label %1074

1073:                                             ; preds = %1069, %1063
  br label %1074

1074:                                             ; preds = %1069, %1073
  %.str.5.sink526 = phi ptr [ @.str.5, %1073 ], [ @.str.2, %1069 ]
  store i32 %1064, ptr %494, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = load i32, ptr %440, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef nonnull @.str.4) #9
  %1079 = load i32, ptr %440, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef nonnull @.str.4) #9
  %1081 = load i32, ptr %494, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #9
  %1083 = load i32, ptr %494, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef nonnull %.str.5.sink526, i32 noundef %1076, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %1078, ptr noundef %1080, ptr noundef %1082, i32 noundef %1083) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1085:                                             ; preds = %1059
  %1086 = load i32, ptr @test_count, align 4, !tbaa !5
  %1087 = add nsw i32 %1086, 1
  store i32 %1087, ptr @test_count, align 4, !tbaa !5
  %1088 = call i32 @s2n_connection_free(ptr noundef nonnull %709) #9
  %1089 = icmp eq i32 %1088, -1
  br i1 %1089, label %1090, label %1112

1090:                                             ; preds = %1085
  %1091 = load i32, ptr %494, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @s2n_print_stacktrace(ptr noundef %1092) #9
  %1094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1095 = trunc nuw i8 %1094 to i1
  br i1 %1095, label %1096, label %1100

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

1100:                                             ; preds = %1096, %1090
  br label %1101

1101:                                             ; preds = %1096, %1100
  %.str.5.sink535 = phi ptr [ @.str.5, %1100 ], [ @.str.2, %1096 ]
  store i32 %1091, ptr %494, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = load i32, ptr %440, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.4) #9
  %1106 = load i32, ptr %440, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.4) #9
  %1108 = load i32, ptr %494, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #9
  %1110 = load i32, ptr %494, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef nonnull %.str.5.sink535, i32 noundef %1103, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1112:                                             ; preds = %1085
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #9
  %1113 = call i32 @s2n_cleanup() #9
  %1114 = icmp eq i32 %1113, -1
  br i1 %1114, label %1115, label %1137

1115:                                             ; preds = %1112
  %1116 = load i32, ptr %494, align 4, !tbaa !5
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = call i32 @s2n_print_stacktrace(ptr noundef %1117) #9
  %1119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1120 = trunc nuw i8 %1119 to i1
  br i1 %1120, label %1121, label %1125

1121:                                             ; preds = %1115
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = call i32 @fileno(ptr noundef %1122) #9
  %1124 = call i32 @isatty(i32 noundef %1123) #9
  %.not125 = icmp eq i32 %1124, 0
  br i1 %.not125, label %1125, label %1126

1125:                                             ; preds = %1121, %1115
  br label %1126

1126:                                             ; preds = %1121, %1125
  %.str.5.sink544 = phi ptr [ @.str.5, %1125 ], [ @.str.2, %1121 ]
  store i32 %1116, ptr %494, align 4, !tbaa !5
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = load i32, ptr @test_count, align 4, !tbaa !5
  %1129 = load i32, ptr %440, align 4, !tbaa !5
  %1130 = call ptr @s2n_strerror(i32 noundef %1129, ptr noundef nonnull @.str.4) #9
  %1131 = load i32, ptr %440, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror_debug(i32 noundef %1131, ptr noundef nonnull @.str.4) #9
  %1133 = load i32, ptr %494, align 4, !tbaa !5
  %1134 = call ptr @strerror(i32 noundef %1133) #9
  %1135 = load i32, ptr %494, align 4, !tbaa !5
  %1136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1127, ptr noundef nonnull %.str.5.sink544, i32 noundef %1128, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %1130, ptr noundef %1132, ptr noundef %1134, i32 noundef %1135) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1137:                                             ; preds = %1112
  %1138 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %1139 = icmp eq i32 %1138, -1
  br i1 %1139, label %1140, label %1162

1140:                                             ; preds = %1137
  %1141 = load i32, ptr %494, align 4, !tbaa !5
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = call i32 @s2n_print_stacktrace(ptr noundef %1142) #9
  %1144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1145 = trunc nuw i8 %1144 to i1
  br i1 %1145, label %1146, label %1150

1146:                                             ; preds = %1140
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @fileno(ptr noundef %1147) #9
  %1149 = call i32 @isatty(i32 noundef %1148) #9
  %.not124 = icmp eq i32 %1149, 0
  br i1 %.not124, label %1150, label %1151

1150:                                             ; preds = %1146, %1140
  br label %1151

1151:                                             ; preds = %1146, %1150
  %.str.5.sink553 = phi ptr [ @.str.5, %1150 ], [ @.str.2, %1146 ]
  store i32 %1141, ptr %494, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = load i32, ptr %440, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror(i32 noundef %1154, ptr noundef nonnull @.str.4) #9
  %1156 = load i32, ptr %440, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror_debug(i32 noundef %1156, ptr noundef nonnull @.str.4) #9
  %1158 = load i32, ptr %494, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #9
  %1160 = load i32, ptr %494, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1152, ptr noundef nonnull %.str.5.sink553, i32 noundef %1153, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %1155, ptr noundef %1157, ptr noundef %1159, i32 noundef %1160) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1162:                                             ; preds = %1137
  %1163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1164 = trunc nuw i8 %1163 to i1
  br i1 %1164, label %1165, label %1176

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

1169:                                             ; preds = %1165
  %1170 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not123 = icmp eq i32 %1170, 0
  %1171 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not123, label %1174, label %1172

1172:                                             ; preds = %1169
  %1173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef nonnull @.str.34, i32 noundef %1170) #9
  br label %1183

1174:                                             ; preds = %1169
  %1175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef nonnull @.str.35) #9
  br label %1183

1176:                                             ; preds = %1165, %1162
  %1177 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not122 = icmp eq i32 %1177, 0
  %1178 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not122, label %1181, label %1179

1179:                                             ; preds = %1176
  %1180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1178, ptr noundef nonnull @.str.36, i32 noundef %1177) #9
  br label %1183

1181:                                             ; preds = %1176
  %1182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1178, ptr noundef nonnull @.str.37) #9
  br label %1183

1183:                                             ; preds = %1179, %1181, %1172, %1174
  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 ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_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 void @s2n_debug_info_reset() local_unnamed_addr #2

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


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