; LLVM IR from aws/s2n-tls :: tests/unit (s2n_cert_validation_callback_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_cert_validation_info = type { i8, [3 x i8] }
%struct.anon = type { %struct.s2n_cert_validation_data, i32 }
%struct.s2n_cert_validation_data = type { i8, i32, ptr }
%struct.s2n_x509_trust_store = type { ptr, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_test_io_pair = type { i32, 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 [92 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [64 x i8], align 1
@__const.main.info = external hidden unnamed_addr constant %struct.s2n_cert_validation_info, align 4
@.str.12 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [36 x i8], align 1
@__const.main.info.15 = external hidden unnamed_addr constant %struct.s2n_cert_validation_info, align 4
@.str.16 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [36 x i8], align 1
@__const.main.info.18 = external hidden unnamed_addr constant %struct.s2n_cert_validation_info, align 4
@.str.19 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [59 x i8], align 1
@__const.main.info.22 = external hidden unnamed_addr constant %struct.s2n_cert_validation_info, align 4
@.str.23 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [200 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant [4 x %struct.anon], align 16
@.str.26 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [78 x i8], align 1
@__const.main.async_test_cases = external hidden unnamed_addr constant [2 x %struct.s2n_cert_validation_data], align 16
@__const.main.versions = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.92 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.111 = 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 i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %struct.s2n_cert_validation_info, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %struct.s2n_cert_validation_info, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %struct.s2n_cert_validation_info, 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 %struct.s2n_cert_validation_info, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca [4 x %struct.anon], align 16
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_x509_trust_store, align 8
  %50 = alloca [12000 x i8], align 16
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca %struct.s2n_x509_validator, align 8
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca %struct.s2n_cert_validation_data, align 8
  %59 = alloca i32, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca %struct.s2n_stuffer, align 8
  %65 = alloca %struct.s2n_result, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca i32, align 4
  %70 = alloca %struct.s2n_pkey, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_result, align 4
  %75 = alloca i32, align 4
  %76 = alloca %struct.s2n_result, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca %struct.s2n_result, align 4
  %83 = alloca i32, align 4
  %84 = alloca %struct.s2n_x509_trust_store, align 8
  %85 = alloca [12000 x i8], align 16
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca %struct.s2n_x509_validator, align 8
  %89 = alloca i32, align 4
  %90 = alloca ptr, align 8
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca %struct.s2n_cert_validation_data, align 8
  %94 = alloca i32, align 4
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca %struct.s2n_stuffer, align 8
  %99 = alloca %struct.s2n_result, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_pkey, align 8
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca %struct.s2n_result, align 4
  %109 = alloca i32, align 4
  %110 = alloca %struct.s2n_result, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca %struct.s2n_result, align 4
  %116 = alloca %struct.s2n_result, align 4
  %117 = alloca i32, align 4
  %118 = alloca ptr, align 8
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca %struct.s2n_cert_validation_data, align 8
  %124 = alloca i32, align 4
  %125 = alloca ptr, align 8
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca ptr, align 8
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca %struct.s2n_test_io_pair, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca %struct.s2n_result, align 4
  %144 = alloca %struct.s2n_result, align 4
  %145 = alloca %struct.s2n_result, align 4
  %146 = alloca i32, align 4
  %147 = alloca ptr, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca %struct.s2n_cert_validation_data, align 8
  %154 = alloca i32, align 4
  %155 = alloca ptr, align 8
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca ptr, align 8
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca ptr, align 8
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca %struct.s2n_test_io_pair, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca %struct.s2n_result, align 4
  %180 = alloca %struct.s2n_result, align 4
  %181 = alloca %struct.s2n_result, align 4
  %182 = alloca %struct.s2n_result, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca [12000 x i8], align 16
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca ptr, align 8
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca ptr, align 8
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca ptr, align 8
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca ptr, align 8
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca %struct.s2n_cert_validation_data, align 8
  %205 = alloca i32, align 4
  %206 = alloca ptr, align 8
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca %struct.s2n_test_io_pair, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca %struct.s2n_result, align 4
  %222 = alloca %struct.s2n_result, align 4
  %223 = alloca %struct.s2n_result, align 4
  %224 = alloca %struct.s2n_result, align 4
  %225 = alloca %struct.s2n_result, align 4
  %226 = alloca [2 x %struct.s2n_cert_validation_data], align 16
  %227 = alloca [2 x ptr], align 16
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca ptr, align 8
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca %struct.s2n_cert_validation_data, align 8
  %236 = alloca i32, align 4
  %237 = alloca ptr, align 8
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca ptr, align 8
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca %struct.s2n_test_io_pair, align 4
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca i32, align 4
  %254 = alloca ptr, align 8
  %255 = alloca i32, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = alloca i32, align 4
  %260 = alloca ptr, align 8
  %261 = alloca i32, align 4
  %262 = alloca i32, align 4
  %263 = alloca i32, align 4
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca %struct.s2n_result, align 4
  %270 = alloca %struct.s2n_result, align 4
  %271 = alloca %struct.s2n_result, align 4
  %272 = alloca %struct.s2n_result, align 4
  %273 = alloca i32, align 4
  %274 = alloca i32, align 4
  %275 = alloca ptr, align 8
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca i32, align 4
  %281 = alloca %struct.s2n_cert_validation_data, align 8
  %282 = alloca i32, align 4
  %283 = alloca ptr, align 8
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca i32, align 4
  %287 = alloca ptr, align 8
  %288 = alloca i32, align 4
  %289 = alloca i32, align 4
  %290 = alloca i32, align 4
  %291 = alloca i32, align 4
  %292 = alloca i32, align 4
  %293 = alloca ptr, align 8
  %294 = alloca i32, align 4
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca %struct.s2n_test_io_pair, align 4
  %298 = alloca i32, align 4
  %299 = alloca i32, align 4
  %300 = alloca i32, align 4
  %301 = alloca i32, align 4
  %302 = alloca i32, align 4
  %303 = alloca i32, align 4
  %304 = alloca i32, align 4
  %305 = alloca i32, align 4
  %306 = alloca ptr, align 8
  %307 = alloca i32, align 4
  %308 = alloca i32, align 4
  %309 = alloca i32, align 4
  %310 = alloca ptr, align 8
  %311 = alloca i32, align 4
  %312 = alloca i32, align 4
  %313 = alloca i32, align 4
  %314 = alloca i32, align 4
  %315 = alloca i32, align 4
  %316 = alloca i32, align 4
  %317 = alloca i32, align 4
  %318 = alloca i32, align 4
  %319 = alloca %struct.s2n_result, align 4
  %320 = alloca %struct.s2n_result, align 4
  %321 = alloca %struct.s2n_result, align 4
  %322 = alloca %struct.s2n_result, align 4
  %323 = alloca %struct.s2n_result, align 4
  %324 = alloca i32, align 4
  %325 = 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 %326

326:                                              ; preds = %2
  br label %327

327:                                              ; preds = %326
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %328 = load ptr, ptr @stdout, align 8, !tbaa !9
  %329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %328, ptr noundef @.str, ptr noundef @.str.1) #10
  %330 = load ptr, ptr @stdout, align 8, !tbaa !9
  %331 = call i32 @fflush(ptr noundef %330)
  br label %332

332:                                              ; preds = %327
  %333 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %334 = icmp eq i32 %333, -1
  br i1 %334, label %335, label %386

335:                                              ; preds = %332
  br label %336

336:                                              ; preds = %335
  br label %337

337:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %338 = call ptr @__errno_location() #11
  %339 = load i32, ptr %338, align 4, !tbaa !5
  store i32 %339, ptr %6, align 4, !tbaa !5
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = call i32 @s2n_print_stacktrace(ptr noundef %340)
  %342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %343 = trunc i8 %342 to i1
  br i1 %343, label %344, label %366

344:                                              ; preds = %337
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = call i32 @fileno(ptr noundef %345) #10
  %347 = call i32 @isatty(i32 noundef %346) #10
  %348 = icmp ne i32 %347, 0
  br i1 %348, label %349, label %366

349:                                              ; preds = %344
  %350 = load i32, ptr %6, align 4, !tbaa !5
  %351 = call ptr @__errno_location() #11
  store i32 %350, ptr %351, align 4, !tbaa !5
  %352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call ptr @s2n_strerror(i32 noundef %355, ptr noundef @.str.4)
  %357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @s2n_strerror_debug(i32 noundef %358, ptr noundef @.str.4)
  %360 = call ptr @__errno_location() #11
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @strerror(i32 noundef %361) #10
  %363 = call ptr @__errno_location() #11
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %352, ptr noundef @.str.2, i32 noundef %353, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 100, ptr noundef %356, ptr noundef %359, ptr noundef %362, i32 noundef %364) #10
  br label %383

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

383:                                              ; preds = %366, %349
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %384

384:                                              ; preds = %383
  call void @exit(i32 noundef 1) #12
  unreachable

385:                                              ; No predecessors!
  br label %386

386:                                              ; preds = %385, %332
  br label %387

387:                                              ; preds = %386
  br label %388

388:                                              ; preds = %387
  %389 = load i32, ptr @test_count, align 4, !tbaa !5
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr @test_count, align 4, !tbaa !5
  %391 = call i32 @s2n_enable_atexit()
  %392 = icmp eq i32 %391, -1
  br i1 %392, label %393, label %444

393:                                              ; preds = %388
  br label %394

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %396 = call ptr @__errno_location() #11
  %397 = load i32, ptr %396, align 4, !tbaa !5
  store i32 %397, ptr %7, align 4, !tbaa !5
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = call i32 @s2n_print_stacktrace(ptr noundef %398)
  %400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %401 = trunc i8 %400 to i1
  br i1 %401, label %402, label %424

402:                                              ; preds = %395
  %403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %404 = call i32 @fileno(ptr noundef %403) #10
  %405 = call i32 @isatty(i32 noundef %404) #10
  %406 = icmp ne i32 %405, 0
  br i1 %406, label %407, label %424

407:                                              ; preds = %402
  %408 = load i32, ptr %7, align 4, !tbaa !5
  %409 = call ptr @__errno_location() #11
  store i32 %408, ptr %409, align 4, !tbaa !5
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror(i32 noundef %413, ptr noundef @.str.4)
  %415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror_debug(i32 noundef %416, ptr noundef @.str.4)
  %418 = call ptr @__errno_location() #11
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @strerror(i32 noundef %419) #10
  %421 = call ptr @__errno_location() #11
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %410, ptr noundef @.str.2, i32 noundef %411, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 100, ptr noundef %414, ptr noundef %417, ptr noundef %420, i32 noundef %422) #10
  br label %441

424:                                              ; preds = %402, %395
  %425 = load i32, ptr %7, align 4, !tbaa !5
  %426 = call ptr @__errno_location() #11
  store i32 %425, ptr %426, align 4, !tbaa !5
  %427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror(i32 noundef %430, ptr noundef @.str.4)
  %432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror_debug(i32 noundef %433, ptr noundef @.str.4)
  %435 = call ptr @__errno_location() #11
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call ptr @strerror(i32 noundef %436) #10
  %438 = call ptr @__errno_location() #11
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %427, ptr noundef @.str.5, i32 noundef %428, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 100, ptr noundef %431, ptr noundef %434, ptr noundef %437, i32 noundef %439) #10
  br label %441

441:                                              ; preds = %424, %407
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %442

442:                                              ; preds = %441
  call void @exit(i32 noundef 1) #12
  unreachable

443:                                              ; No predecessors!
  br label %444

444:                                              ; preds = %443, %388
  br label %445

445:                                              ; preds = %444
  br label %446

446:                                              ; preds = %445
  br label %447

447:                                              ; preds = %446
  %448 = call i32 @s2n_init()
  %449 = icmp eq i32 %448, -1
  br i1 %449, label %450, label %501

450:                                              ; preds = %447
  br label %451

451:                                              ; preds = %450
  br label %452

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

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

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

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

498:                                              ; preds = %481, %464
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %499

499:                                              ; preds = %498
  call void @exit(i32 noundef 1) #12
  unreachable

500:                                              ; No predecessors!
  br label %501

501:                                              ; preds = %500, %447
  br label %502

502:                                              ; preds = %501
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr @test_count, align 4, !tbaa !5
  %509 = call i32 @s2n_cert_validation_accept(ptr noundef null)
  %510 = icmp eq i32 %509, -1
  br i1 %510, label %562, label %511

511:                                              ; preds = %506
  br label %512

512:                                              ; preds = %511
  br label %513

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

520:                                              ; preds = %513
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @fileno(ptr noundef %521) #10
  %523 = call i32 @isatty(i32 noundef %522) #10
  %524 = icmp ne i32 %523, 0
  br i1 %524, label %525, label %542

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

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

559:                                              ; preds = %542, %525
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %560

560:                                              ; preds = %559
  call void @exit(i32 noundef 1) #12
  unreachable

561:                                              ; No predecessors!
  br label %562

562:                                              ; preds = %561, %506
  br label %563

563:                                              ; preds = %562
  br label %564

564:                                              ; preds = %563
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = add nsw i32 %565, 1
  store i32 %566, ptr @test_count, align 4, !tbaa !5
  %567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = icmp eq i32 %568, 402653193
  br i1 %569, label %621, label %570

570:                                              ; preds = %564
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  %573 = call ptr @__errno_location() #11
  %574 = load i32, ptr %573, align 4, !tbaa !5
  store i32 %574, ptr %10, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @s2n_print_stacktrace(ptr noundef %575)
  %577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %578 = trunc i8 %577 to i1
  br i1 %578, label %579, label %601

579:                                              ; preds = %572
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = call i32 @fileno(ptr noundef %580) #10
  %582 = call i32 @isatty(i32 noundef %581) #10
  %583 = icmp ne i32 %582, 0
  br i1 %583, label %584, label %601

584:                                              ; preds = %579
  %585 = load i32, ptr %10, align 4, !tbaa !5
  %586 = call ptr @__errno_location() #11
  store i32 %585, ptr %586, align 4, !tbaa !5
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = load i32, ptr @test_count, align 4, !tbaa !5
  %589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = call ptr @s2n_strerror(i32 noundef %590, ptr noundef @.str.4)
  %592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = call ptr @s2n_strerror_debug(i32 noundef %593, ptr noundef @.str.4)
  %595 = call ptr @__errno_location() #11
  %596 = load i32, ptr %595, align 4, !tbaa !5
  %597 = call ptr @strerror(i32 noundef %596) #10
  %598 = call ptr @__errno_location() #11
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef @.str.2, i32 noundef %588, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 105, ptr noundef %591, ptr noundef %594, ptr noundef %597, i32 noundef %599) #10
  br label %618

601:                                              ; preds = %579, %572
  %602 = load i32, ptr %10, align 4, !tbaa !5
  %603 = call ptr @__errno_location() #11
  store i32 %602, ptr %603, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = load i32, ptr @test_count, align 4, !tbaa !5
  %606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror(i32 noundef %607, ptr noundef @.str.4)
  %609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror_debug(i32 noundef %610, ptr noundef @.str.4)
  %612 = call ptr @__errno_location() #11
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @strerror(i32 noundef %613) #10
  %615 = call ptr @__errno_location() #11
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %604, ptr noundef @.str.5, i32 noundef %605, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 105, ptr noundef %608, ptr noundef %611, ptr noundef %614, i32 noundef %616) #10
  br label %618

618:                                              ; preds = %601, %584
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %619

619:                                              ; preds = %618
  call void @exit(i32 noundef 1) #12
  unreachable

620:                                              ; No predecessors!
  br label %621

621:                                              ; preds = %620, %564
  br label %622

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = add nsw i32 %624, 1
  store i32 %625, ptr @test_count, align 4, !tbaa !5
  %626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror_debug(i32 noundef %627, ptr noundef @.str.4)
  %629 = icmp eq ptr %628, null
  br i1 %629, label %630, label %681

630:                                              ; preds = %623
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  %633 = call ptr @__errno_location() #11
  %634 = load i32, ptr %633, align 4, !tbaa !5
  store i32 %634, ptr %11, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = call i32 @s2n_print_stacktrace(ptr noundef %635)
  %637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %638 = trunc i8 %637 to i1
  br i1 %638, label %639, label %661

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

644:                                              ; preds = %639
  %645 = load i32, ptr %11, align 4, !tbaa !5
  %646 = call ptr @__errno_location() #11
  store i32 %645, ptr %646, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %650, ptr noundef @.str.4)
  %652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %653 = load i32, ptr %652, align 4, !tbaa !5
  %654 = call ptr @s2n_strerror_debug(i32 noundef %653, ptr noundef @.str.4)
  %655 = call ptr @__errno_location() #11
  %656 = load i32, ptr %655, align 4, !tbaa !5
  %657 = call ptr @strerror(i32 noundef %656) #10
  %658 = call ptr @__errno_location() #11
  %659 = load i32, ptr %658, align 4, !tbaa !5
  %660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %647, ptr noundef @.str.2, i32 noundef %648, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 105, ptr noundef %651, ptr noundef %654, ptr noundef %657, i32 noundef %659) #10
  br label %678

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

678:                                              ; preds = %661, %644
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %679

679:                                              ; preds = %678
  call void @exit(i32 noundef 1) #12
  unreachable

680:                                              ; No predecessors!
  br label %681

681:                                              ; preds = %680, %623
  br label %682

682:                                              ; preds = %681
  br label %683

683:                                              ; preds = %682
  br label %684

684:                                              ; preds = %683
  %685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %685, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %686 = call ptr @__errno_location() #11
  store i32 0, ptr %686, align 4, !tbaa !5
  br label %687

687:                                              ; preds = %684
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %688
  br label %690

690:                                              ; preds = %689
  br label %691

691:                                              ; preds = %690
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = add nsw i32 %692, 1
  store i32 %693, ptr @test_count, align 4, !tbaa !5
  %694 = call i32 @s2n_cert_validation_reject(ptr noundef null)
  %695 = icmp eq i32 %694, -1
  br i1 %695, label %747, label %696

696:                                              ; preds = %691
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %699 = call ptr @__errno_location() #11
  %700 = load i32, ptr %699, align 4, !tbaa !5
  store i32 %700, ptr %12, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = call i32 @s2n_print_stacktrace(ptr noundef %701)
  %703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %704 = trunc i8 %703 to i1
  br i1 %704, label %705, label %727

705:                                              ; preds = %698
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = call i32 @fileno(ptr noundef %706) #10
  %708 = call i32 @isatty(i32 noundef %707) #10
  %709 = icmp ne i32 %708, 0
  br i1 %709, label %710, label %727

710:                                              ; preds = %705
  %711 = load i32, ptr %12, align 4, !tbaa !5
  %712 = call ptr @__errno_location() #11
  store i32 %711, ptr %712, align 4, !tbaa !5
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = load i32, ptr @test_count, align 4, !tbaa !5
  %715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror(i32 noundef %716, ptr noundef @.str.4)
  %718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror_debug(i32 noundef %719, ptr noundef @.str.4)
  %721 = call ptr @__errno_location() #11
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call ptr @strerror(i32 noundef %722) #10
  %724 = call ptr @__errno_location() #11
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %713, ptr noundef @.str.2, i32 noundef %714, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 106, ptr noundef %717, ptr noundef %720, ptr noundef %723, i32 noundef %725) #10
  br label %744

727:                                              ; preds = %705, %698
  %728 = load i32, ptr %12, align 4, !tbaa !5
  %729 = call ptr @__errno_location() #11
  store i32 %728, ptr %729, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror(i32 noundef %733, ptr noundef @.str.4)
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef @.str.4)
  %738 = call ptr @__errno_location() #11
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #10
  %741 = call ptr @__errno_location() #11
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef @.str.5, i32 noundef %731, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 106, ptr noundef %734, ptr noundef %737, ptr noundef %740, i32 noundef %742) #10
  br label %744

744:                                              ; preds = %727, %710
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %745

745:                                              ; preds = %744
  call void @exit(i32 noundef 1) #12
  unreachable

746:                                              ; No predecessors!
  br label %747

747:                                              ; preds = %746, %691
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = icmp eq i32 %753, 402653193
  br i1 %754, label %806, label %755

755:                                              ; preds = %749
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %758 = call ptr @__errno_location() #11
  %759 = load i32, ptr %758, align 4, !tbaa !5
  store i32 %759, ptr %13, align 4, !tbaa !5
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = call i32 @s2n_print_stacktrace(ptr noundef %760)
  %762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %763 = trunc i8 %762 to i1
  br i1 %763, label %764, label %786

764:                                              ; preds = %757
  %765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %766 = call i32 @fileno(ptr noundef %765) #10
  %767 = call i32 @isatty(i32 noundef %766) #10
  %768 = icmp ne i32 %767, 0
  br i1 %768, label %769, label %786

769:                                              ; preds = %764
  %770 = load i32, ptr %13, align 4, !tbaa !5
  %771 = call ptr @__errno_location() #11
  store i32 %770, ptr %771, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror(i32 noundef %775, ptr noundef @.str.4)
  %777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror_debug(i32 noundef %778, ptr noundef @.str.4)
  %780 = call ptr @__errno_location() #11
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call ptr @strerror(i32 noundef %781) #10
  %783 = call ptr @__errno_location() #11
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef @.str.2, i32 noundef %773, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 106, ptr noundef %776, ptr noundef %779, ptr noundef %782, i32 noundef %784) #10
  br label %803

786:                                              ; preds = %764, %757
  %787 = load i32, ptr %13, align 4, !tbaa !5
  %788 = call ptr @__errno_location() #11
  store i32 %787, ptr %788, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror(i32 noundef %792, ptr noundef @.str.4)
  %794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror_debug(i32 noundef %795, ptr noundef @.str.4)
  %797 = call ptr @__errno_location() #11
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call ptr @strerror(i32 noundef %798) #10
  %800 = call ptr @__errno_location() #11
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef @.str.5, i32 noundef %790, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 106, ptr noundef %793, ptr noundef %796, ptr noundef %799, i32 noundef %801) #10
  br label %803

803:                                              ; preds = %786, %769
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %804

804:                                              ; preds = %803
  call void @exit(i32 noundef 1) #12
  unreachable

805:                                              ; No predecessors!
  br label %806

806:                                              ; preds = %805, %749
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr @test_count, align 4, !tbaa !5
  %811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror_debug(i32 noundef %812, ptr noundef @.str.4)
  %814 = icmp eq ptr %813, null
  br i1 %814, label %815, label %866

815:                                              ; preds = %808
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %818 = call ptr @__errno_location() #11
  %819 = load i32, ptr %818, align 4, !tbaa !5
  store i32 %819, ptr %14, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @s2n_print_stacktrace(ptr noundef %820)
  %822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %823 = trunc i8 %822 to i1
  br i1 %823, label %824, label %846

824:                                              ; preds = %817
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @fileno(ptr noundef %825) #10
  %827 = call i32 @isatty(i32 noundef %826) #10
  %828 = icmp ne i32 %827, 0
  br i1 %828, label %829, label %846

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

846:                                              ; preds = %824, %817
  %847 = load i32, ptr %14, align 4, !tbaa !5
  %848 = call ptr @__errno_location() #11
  store i32 %847, ptr %848, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror(i32 noundef %852, ptr noundef @.str.4)
  %854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror_debug(i32 noundef %855, ptr noundef @.str.4)
  %857 = call ptr @__errno_location() #11
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call ptr @strerror(i32 noundef %858) #10
  %860 = call ptr @__errno_location() #11
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %849, ptr noundef @.str.5, i32 noundef %850, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 106, ptr noundef %853, ptr noundef %856, ptr noundef %859, i32 noundef %861) #10
  br label %863

863:                                              ; preds = %846, %829
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %864

864:                                              ; preds = %863
  call void @exit(i32 noundef 1) #12
  unreachable

865:                                              ; No predecessors!
  br label %866

866:                                              ; preds = %865, %808
  br label %867

867:                                              ; preds = %866
  br label %868

868:                                              ; preds = %867
  br label %869

869:                                              ; preds = %868
  %870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %870, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %871 = call ptr @__errno_location() #11
  store i32 0, ptr %871, align 4, !tbaa !5
  br label %872

872:                                              ; preds = %869
  br label %873

873:                                              ; preds = %872
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %15, ptr align 4 @__const.main.info, i64 4, i1 false)
  br label %874

874:                                              ; preds = %873
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = add nsw i32 %875, 1
  store i32 %876, ptr @test_count, align 4, !tbaa !5
  %877 = call i32 @s2n_cert_validation_accept(ptr noundef %15)
  %878 = icmp eq i32 %877, -1
  br i1 %878, label %879, label %932

879:                                              ; preds = %874
  br label %880

880:                                              ; preds = %879
  br label %881

881:                                              ; preds = %880
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %882 = call ptr @__errno_location() #11
  %883 = load i32, ptr %882, align 4, !tbaa !5
  store i32 %883, ptr %16, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = call i32 @s2n_print_stacktrace(ptr noundef %884)
  %886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %887 = trunc i8 %886 to i1
  br i1 %887, label %888, label %910

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

893:                                              ; preds = %888
  %894 = load i32, ptr %16, align 4, !tbaa !5
  %895 = call ptr @__errno_location() #11
  store i32 %894, ptr %895, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %899, ptr noundef @.str.4)
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef @.str.4)
  %904 = call ptr @__errno_location() #11
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @strerror(i32 noundef %905) #10
  %907 = call ptr @__errno_location() #11
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %896, ptr noundef @.str.2, i32 noundef %897, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 112, ptr noundef %900, ptr noundef %903, ptr noundef %906, i32 noundef %908) #10
  br label %927

910:                                              ; preds = %888, %881
  %911 = load i32, ptr %16, align 4, !tbaa !5
  %912 = call ptr @__errno_location() #11
  store i32 %911, ptr %912, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef @.str.4)
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef @.str.4)
  %921 = call ptr @__errno_location() #11
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #10
  %924 = call ptr @__errno_location() #11
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef @.str.5, i32 noundef %914, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 112, ptr noundef %917, ptr noundef %920, ptr noundef %923, i32 noundef %925) #10
  br label %927

927:                                              ; preds = %910, %893
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %928

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928
  call void @exit(i32 noundef 1) #12
  unreachable

930:                                              ; No predecessors!
  br label %931

931:                                              ; preds = %930
  br label %932

932:                                              ; preds = %931, %874
  br label %933

933:                                              ; preds = %932
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = add nsw i32 %936, 1
  store i32 %937, ptr @test_count, align 4, !tbaa !5
  %938 = load i8, ptr %15, align 4
  %939 = and i8 %938, 1
  %940 = zext i8 %939 to i32
  %941 = icmp eq i32 %940, 1
  br i1 %941, label %995, label %942

942:                                              ; preds = %935
  br label %943

943:                                              ; preds = %942
  br label %944

944:                                              ; preds = %943
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %945 = call ptr @__errno_location() #11
  %946 = load i32, ptr %945, align 4, !tbaa !5
  store i32 %946, ptr %17, align 4, !tbaa !5
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = call i32 @s2n_print_stacktrace(ptr noundef %947)
  %949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %950 = trunc i8 %949 to i1
  br i1 %950, label %951, label %973

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

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

973:                                              ; preds = %951, %944
  %974 = load i32, ptr %17, align 4, !tbaa !5
  %975 = call ptr @__errno_location() #11
  store i32 %974, ptr %975, align 4, !tbaa !5
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = load i32, ptr @test_count, align 4, !tbaa !5
  %978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call ptr @s2n_strerror(i32 noundef %979, ptr noundef @.str.4)
  %981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror_debug(i32 noundef %982, ptr noundef @.str.4)
  %984 = call ptr @__errno_location() #11
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @strerror(i32 noundef %985) #10
  %987 = call ptr @__errno_location() #11
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %976, ptr noundef @.str.5, i32 noundef %977, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 114, ptr noundef %980, ptr noundef %983, ptr noundef %986, i32 noundef %988) #10
  br label %990

990:                                              ; preds = %973, %956
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %991

991:                                              ; preds = %990
  br label %992

992:                                              ; preds = %991
  call void @exit(i32 noundef 1) #12
  unreachable

993:                                              ; No predecessors!
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994, %935
  br label %996

996:                                              ; preds = %995
  br label %997

997:                                              ; preds = %996
  br label %998

998:                                              ; preds = %997
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = add nsw i32 %999, 1
  store i32 %1000, ptr @test_count, align 4, !tbaa !5
  %1001 = load i8, ptr %15, align 4
  %1002 = lshr i8 %1001, 1
  %1003 = and i8 %1002, 1
  %1004 = zext i8 %1003 to i32
  %1005 = icmp eq i32 %1004, 1
  br i1 %1005, label %1059, label %1006

1006:                                             ; preds = %998
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

1008:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %1009 = call ptr @__errno_location() #11
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  store i32 %1010, ptr %18, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @s2n_print_stacktrace(ptr noundef %1011)
  %1013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1014 = trunc i8 %1013 to i1
  br i1 %1014, label %1015, label %1037

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

1020:                                             ; preds = %1015
  %1021 = load i32, ptr %18, align 4, !tbaa !5
  %1022 = call ptr @__errno_location() #11
  store i32 %1021, ptr %1022, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef @.str.4)
  %1031 = call ptr @__errno_location() #11
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @strerror(i32 noundef %1032) #10
  %1034 = call ptr @__errno_location() #11
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef @.str.2, i32 noundef %1024, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1027, ptr noundef %1030, ptr noundef %1033, i32 noundef %1035) #10
  br label %1054

1037:                                             ; preds = %1015, %1008
  %1038 = load i32, ptr %18, align 4, !tbaa !5
  %1039 = call ptr @__errno_location() #11
  store i32 %1038, ptr %1039, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror(i32 noundef %1043, ptr noundef @.str.4)
  %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 = call ptr @__errno_location() #11
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @strerror(i32 noundef %1049) #10
  %1051 = call ptr @__errno_location() #11
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1040, ptr noundef @.str.5, i32 noundef %1041, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1044, ptr noundef %1047, ptr noundef %1050, i32 noundef %1052) #10
  br label %1054

1054:                                             ; preds = %1037, %1020
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055
  call void @exit(i32 noundef 1) #12
  unreachable

1057:                                             ; No predecessors!
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

1059:                                             ; preds = %1058, %998
  br label %1060

1060:                                             ; preds = %1059
  br label %1061

1061:                                             ; preds = %1060
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %19, ptr align 4 @__const.main.info.15, i64 4, i1 false)
  br label %1062

1062:                                             ; preds = %1061
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = add nsw i32 %1063, 1
  store i32 %1064, ptr @test_count, align 4, !tbaa !5
  %1065 = call i32 @s2n_cert_validation_reject(ptr noundef %19)
  %1066 = icmp eq i32 %1065, -1
  br i1 %1066, label %1067, label %1120

1067:                                             ; preds = %1062
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %1070 = call ptr @__errno_location() #11
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  store i32 %1071, ptr %20, align 4, !tbaa !5
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = call i32 @s2n_print_stacktrace(ptr noundef %1072)
  %1074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1075 = trunc i8 %1074 to i1
  br i1 %1075, label %1076, label %1098

1076:                                             ; preds = %1069
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = call i32 @fileno(ptr noundef %1077) #10
  %1079 = call i32 @isatty(i32 noundef %1078) #10
  %1080 = icmp ne i32 %1079, 0
  br i1 %1080, label %1081, label %1098

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

1098:                                             ; preds = %1076, %1069
  %1099 = load i32, ptr %20, align 4, !tbaa !5
  %1100 = call ptr @__errno_location() #11
  store i32 %1099, ptr %1100, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef @.str.4)
  %1106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror_debug(i32 noundef %1107, ptr noundef @.str.4)
  %1109 = call ptr @__errno_location() #11
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @strerror(i32 noundef %1110) #10
  %1112 = call ptr @__errno_location() #11
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1101, ptr noundef @.str.5, i32 noundef %1102, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1105, ptr noundef %1108, ptr noundef %1111, i32 noundef %1113) #10
  br label %1115

1115:                                             ; preds = %1098, %1081
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

1117:                                             ; preds = %1116
  call void @exit(i32 noundef 1) #12
  unreachable

1118:                                             ; No predecessors!
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

1120:                                             ; preds = %1119, %1062
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

1123:                                             ; preds = %1122
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = add nsw i32 %1124, 1
  store i32 %1125, ptr @test_count, align 4, !tbaa !5
  %1126 = load i8, ptr %19, align 4
  %1127 = and i8 %1126, 1
  %1128 = zext i8 %1127 to i32
  %1129 = icmp eq i32 %1128, 1
  br i1 %1129, label %1183, label %1130

1130:                                             ; preds = %1123
  br label %1131

1131:                                             ; preds = %1130
  br label %1132

1132:                                             ; preds = %1131
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %1133 = call ptr @__errno_location() #11
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  store i32 %1134, ptr %21, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = call i32 @s2n_print_stacktrace(ptr noundef %1135)
  %1137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1138 = trunc i8 %1137 to i1
  br i1 %1138, label %1139, label %1161

1139:                                             ; preds = %1132
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @fileno(ptr noundef %1140) #10
  %1142 = call i32 @isatty(i32 noundef %1141) #10
  %1143 = icmp ne i32 %1142, 0
  br i1 %1143, label %1144, label %1161

1144:                                             ; preds = %1139
  %1145 = load i32, ptr %21, align 4, !tbaa !5
  %1146 = call ptr @__errno_location() #11
  store i32 %1145, ptr %1146, align 4, !tbaa !5
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = load i32, ptr @test_count, align 4, !tbaa !5
  %1149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call ptr @s2n_strerror(i32 noundef %1150, ptr noundef @.str.4)
  %1152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror_debug(i32 noundef %1153, ptr noundef @.str.4)
  %1155 = call ptr @__errno_location() #11
  %1156 = load i32, ptr %1155, align 4, !tbaa !5
  %1157 = call ptr @strerror(i32 noundef %1156) #10
  %1158 = call ptr @__errno_location() #11
  %1159 = load i32, ptr %1158, align 4, !tbaa !5
  %1160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1147, ptr noundef @.str.2, i32 noundef %1148, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 124, ptr noundef %1151, ptr noundef %1154, ptr noundef %1157, i32 noundef %1159) #10
  br label %1178

1161:                                             ; preds = %1139, %1132
  %1162 = load i32, ptr %21, align 4, !tbaa !5
  %1163 = call ptr @__errno_location() #11
  store i32 %1162, ptr %1163, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror(i32 noundef %1167, ptr noundef @.str.4)
  %1169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror_debug(i32 noundef %1170, ptr noundef @.str.4)
  %1172 = call ptr @__errno_location() #11
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call ptr @strerror(i32 noundef %1173) #10
  %1175 = call ptr @__errno_location() #11
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef @.str.5, i32 noundef %1165, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 124, ptr noundef %1168, ptr noundef %1171, ptr noundef %1174, i32 noundef %1176) #10
  br label %1178

1178:                                             ; preds = %1161, %1144
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %1179

1179:                                             ; preds = %1178
  br label %1180

1180:                                             ; preds = %1179
  call void @exit(i32 noundef 1) #12
  unreachable

1181:                                             ; No predecessors!
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182, %1123
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

1185:                                             ; preds = %1184
  br label %1186

1186:                                             ; preds = %1185
  %1187 = load i32, ptr @test_count, align 4, !tbaa !5
  %1188 = add nsw i32 %1187, 1
  store i32 %1188, ptr @test_count, align 4, !tbaa !5
  %1189 = load i8, ptr %19, align 4
  %1190 = lshr i8 %1189, 1
  %1191 = and i8 %1190, 1
  %1192 = zext i8 %1191 to i32
  %1193 = icmp eq i32 %1192, 0
  br i1 %1193, label %1247, label %1194

1194:                                             ; preds = %1186
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %1197 = call ptr @__errno_location() #11
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  store i32 %1198, ptr %22, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = call i32 @s2n_print_stacktrace(ptr noundef %1199)
  %1201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1202 = trunc i8 %1201 to i1
  br i1 %1202, label %1203, label %1225

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #10
  %1206 = call i32 @isatty(i32 noundef %1205) #10
  %1207 = icmp ne i32 %1206, 0
  br i1 %1207, label %1208, label %1225

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

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

1242:                                             ; preds = %1225, %1208
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

1244:                                             ; preds = %1243
  call void @exit(i32 noundef 1) #12
  unreachable

1245:                                             ; No predecessors!
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246, %1186
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %23, ptr align 4 @__const.main.info.18, i64 4, i1 false)
  br label %1250

1250:                                             ; preds = %1249
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %1252 = add nsw i32 %1251, 1
  store i32 %1252, ptr @test_count, align 4, !tbaa !5
  %1253 = call i32 @s2n_cert_validation_accept(ptr noundef %23)
  %1254 = icmp eq i32 %1253, -1
  br i1 %1254, label %1255, label %1308

1255:                                             ; preds = %1250
  br label %1256

1256:                                             ; preds = %1255
  br label %1257

1257:                                             ; preds = %1256
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %1258 = call ptr @__errno_location() #11
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  store i32 %1259, ptr %24, align 4, !tbaa !5
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 @s2n_print_stacktrace(ptr noundef %1260)
  %1262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1263 = trunc i8 %1262 to i1
  br i1 %1263, label %1264, label %1286

1264:                                             ; preds = %1257
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = call i32 @fileno(ptr noundef %1265) #10
  %1267 = call i32 @isatty(i32 noundef %1266) #10
  %1268 = icmp ne i32 %1267, 0
  br i1 %1268, label %1269, label %1286

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

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

1303:                                             ; preds = %1286, %1269
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  call void @exit(i32 noundef 1) #12
  unreachable

1306:                                             ; No predecessors!
  br label %1307

1307:                                             ; preds = %1306
  br label %1308

1308:                                             ; preds = %1307, %1250
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

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

1311:                                             ; preds = %1710, %1310
  %1312 = load i32, ptr %25, align 4, !tbaa !5
  %1313 = icmp slt i32 %1312, 10
  br i1 %1313, label %1315, label %1314

1314:                                             ; preds = %1311
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %1713

1315:                                             ; preds = %1311
  br label %1316

1316:                                             ; preds = %1315
  br label %1317

1317:                                             ; preds = %1316
  br label %1318

1318:                                             ; preds = %1317
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = call i32 @s2n_cert_validation_accept(ptr noundef %23)
  %1322 = icmp eq i32 %1321, -1
  br i1 %1322, label %1376, label %1323

1323:                                             ; preds = %1318
  br label %1324

1324:                                             ; preds = %1323
  br label %1325

1325:                                             ; preds = %1324
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %1326 = call ptr @__errno_location() #11
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  store i32 %1327, ptr %26, align 4, !tbaa !5
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = call i32 @s2n_print_stacktrace(ptr noundef %1328)
  %1330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1331 = trunc i8 %1330 to i1
  br i1 %1331, label %1332, label %1354

1332:                                             ; preds = %1325
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = call i32 @fileno(ptr noundef %1333) #10
  %1335 = call i32 @isatty(i32 noundef %1334) #10
  %1336 = icmp ne i32 %1335, 0
  br i1 %1336, label %1337, label %1354

1337:                                             ; preds = %1332
  %1338 = load i32, ptr %26, align 4, !tbaa !5
  %1339 = call ptr @__errno_location() #11
  store i32 %1338, ptr %1339, align 4, !tbaa !5
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = load i32, ptr @test_count, align 4, !tbaa !5
  %1342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror(i32 noundef %1343, ptr noundef @.str.4)
  %1345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror_debug(i32 noundef %1346, ptr noundef @.str.4)
  %1348 = call ptr @__errno_location() #11
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call ptr @strerror(i32 noundef %1349) #10
  %1351 = call ptr @__errno_location() #11
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1340, ptr noundef @.str.2, i32 noundef %1341, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1344, ptr noundef %1347, ptr noundef %1350, i32 noundef %1352) #10
  br label %1371

1354:                                             ; preds = %1332, %1325
  %1355 = load i32, ptr %26, align 4, !tbaa !5
  %1356 = call ptr @__errno_location() #11
  store i32 %1355, ptr %1356, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror(i32 noundef %1360, ptr noundef @.str.4)
  %1362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror_debug(i32 noundef %1363, ptr noundef @.str.4)
  %1365 = call ptr @__errno_location() #11
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @strerror(i32 noundef %1366) #10
  %1368 = call ptr @__errno_location() #11
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1357, ptr noundef @.str.5, i32 noundef %1358, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1361, ptr noundef %1364, ptr noundef %1367, i32 noundef %1369) #10
  br label %1371

1371:                                             ; preds = %1354, %1337
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

1373:                                             ; preds = %1372
  call void @exit(i32 noundef 1) #12
  unreachable

1374:                                             ; No predecessors!
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375, %1318
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377
  br label %1379

1379:                                             ; preds = %1378
  %1380 = load i32, ptr @test_count, align 4, !tbaa !5
  %1381 = add nsw i32 %1380, 1
  store i32 %1381, ptr @test_count, align 4, !tbaa !5
  %1382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = icmp eq i32 %1383, 469762112
  br i1 %1384, label %1438, label %1385

1385:                                             ; preds = %1379
  br label %1386

1386:                                             ; preds = %1385
  br label %1387

1387:                                             ; preds = %1386
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %1388 = call ptr @__errno_location() #11
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  store i32 %1389, ptr %27, align 4, !tbaa !5
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = call i32 @s2n_print_stacktrace(ptr noundef %1390)
  %1392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1393 = trunc i8 %1392 to i1
  br i1 %1393, label %1394, label %1416

1394:                                             ; preds = %1387
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = call i32 @fileno(ptr noundef %1395) #10
  %1397 = call i32 @isatty(i32 noundef %1396) #10
  %1398 = icmp ne i32 %1397, 0
  br i1 %1398, label %1399, label %1416

1399:                                             ; preds = %1394
  %1400 = load i32, ptr %27, align 4, !tbaa !5
  %1401 = call ptr @__errno_location() #11
  store i32 %1400, ptr %1401, align 4, !tbaa !5
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = load i32, ptr @test_count, align 4, !tbaa !5
  %1404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror(i32 noundef %1405, ptr noundef @.str.4)
  %1407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror_debug(i32 noundef %1408, ptr noundef @.str.4)
  %1410 = call ptr @__errno_location() #11
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @strerror(i32 noundef %1411) #10
  %1413 = call ptr @__errno_location() #11
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1402, ptr noundef @.str.2, i32 noundef %1403, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1406, ptr noundef %1409, ptr noundef %1412, i32 noundef %1414) #10
  br label %1433

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

1433:                                             ; preds = %1416, %1399
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1434

1434:                                             ; preds = %1433
  br label %1435

1435:                                             ; preds = %1434
  call void @exit(i32 noundef 1) #12
  unreachable

1436:                                             ; No predecessors!
  br label %1437

1437:                                             ; preds = %1436
  br label %1438

1438:                                             ; preds = %1437, %1379
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

1440:                                             ; preds = %1439
  br label %1441

1441:                                             ; preds = %1440
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = add nsw i32 %1442, 1
  store i32 %1443, ptr @test_count, align 4, !tbaa !5
  %1444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1445 = load i32, ptr %1444, align 4, !tbaa !5
  %1446 = call ptr @s2n_strerror_debug(i32 noundef %1445, ptr noundef @.str.4)
  %1447 = icmp eq ptr %1446, null
  br i1 %1447, label %1448, label %1501

1448:                                             ; preds = %1441
  br label %1449

1449:                                             ; preds = %1448
  br label %1450

1450:                                             ; preds = %1449
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1451 = call ptr @__errno_location() #11
  %1452 = load i32, ptr %1451, align 4, !tbaa !5
  store i32 %1452, ptr %28, align 4, !tbaa !5
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = call i32 @s2n_print_stacktrace(ptr noundef %1453)
  %1455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1456 = trunc i8 %1455 to i1
  br i1 %1456, label %1457, label %1479

1457:                                             ; preds = %1450
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = call i32 @fileno(ptr noundef %1458) #10
  %1460 = call i32 @isatty(i32 noundef %1459) #10
  %1461 = icmp ne i32 %1460, 0
  br i1 %1461, label %1462, label %1479

1462:                                             ; preds = %1457
  %1463 = load i32, ptr %28, align 4, !tbaa !5
  %1464 = call ptr @__errno_location() #11
  store i32 %1463, ptr %1464, align 4, !tbaa !5
  %1465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror(i32 noundef %1468, ptr noundef @.str.4)
  %1470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror_debug(i32 noundef %1471, ptr noundef @.str.4)
  %1473 = call ptr @__errno_location() #11
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @strerror(i32 noundef %1474) #10
  %1476 = call ptr @__errno_location() #11
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1465, ptr noundef @.str.2, i32 noundef %1466, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1469, ptr noundef %1472, ptr noundef %1475, i32 noundef %1477) #10
  br label %1496

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

1496:                                             ; preds = %1479, %1462
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

1498:                                             ; preds = %1497
  call void @exit(i32 noundef 1) #12
  unreachable

1499:                                             ; No predecessors!
  br label %1500

1500:                                             ; preds = %1499
  br label %1501

1501:                                             ; preds = %1500, %1441
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505
  %1507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1507, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1508 = call ptr @__errno_location() #11
  store i32 0, ptr %1508, align 4, !tbaa !5
  br label %1509

1509:                                             ; preds = %1506
  br label %1510

1510:                                             ; preds = %1509
  br label %1511

1511:                                             ; preds = %1510
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

1514:                                             ; preds = %1513
  br label %1515

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

1520:                                             ; preds = %1515
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

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

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

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

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

1568:                                             ; preds = %1551, %1534
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1569

1569:                                             ; preds = %1568
  br label %1570

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

1571:                                             ; No predecessors!
  br label %1572

1572:                                             ; preds = %1571
  br label %1573

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

1574:                                             ; preds = %1573
  br label %1575

1575:                                             ; preds = %1574
  br label %1576

1576:                                             ; preds = %1575
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = add nsw i32 %1577, 1
  store i32 %1578, ptr @test_count, align 4, !tbaa !5
  %1579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = icmp eq i32 %1580, 469762112
  br i1 %1581, label %1635, label %1582

1582:                                             ; preds = %1576
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

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

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

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

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

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

1631:                                             ; preds = %1630
  br label %1632

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

1633:                                             ; No predecessors!
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

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

1636:                                             ; preds = %1635
  br label %1637

1637:                                             ; preds = %1636
  br label %1638

1638:                                             ; preds = %1637
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = add nsw i32 %1639, 1
  store i32 %1640, ptr @test_count, align 4, !tbaa !5
  %1641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef @.str.4)
  %1644 = icmp eq ptr %1643, null
  br i1 %1644, label %1645, label %1698

1645:                                             ; preds = %1638
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

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

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

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

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

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

1694:                                             ; preds = %1693
  br label %1695

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

1696:                                             ; No predecessors!
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

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

1699:                                             ; preds = %1698
  br label %1700

1700:                                             ; preds = %1699
  br label %1701

1701:                                             ; preds = %1700
  br label %1702

1702:                                             ; preds = %1701
  br label %1703

1703:                                             ; preds = %1702
  %1704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1704, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1705 = call ptr @__errno_location() #11
  store i32 0, ptr %1705, align 4, !tbaa !5
  br label %1706

1706:                                             ; preds = %1703
  br label %1707

1707:                                             ; preds = %1706
  br label %1708

1708:                                             ; preds = %1707
  br label %1709

1709:                                             ; preds = %1708
  br label %1710

1710:                                             ; preds = %1709
  %1711 = load i32, ptr %25, align 4, !tbaa !5
  %1712 = add nsw i32 %1711, 1
  store i32 %1712, ptr %25, align 4, !tbaa !5
  br label %1311, !llvm.loop !15

1713:                                             ; preds = %1314
  br label %1714

1714:                                             ; preds = %1713
  %1715 = load i32, ptr @test_count, align 4, !tbaa !5
  %1716 = add nsw i32 %1715, 1
  store i32 %1716, ptr @test_count, align 4, !tbaa !5
  %1717 = load i8, ptr %23, align 4
  %1718 = and i8 %1717, 1
  %1719 = zext i8 %1718 to i32
  %1720 = icmp eq i32 %1719, 1
  br i1 %1720, label %1774, label %1721

1721:                                             ; preds = %1714
  br label %1722

1722:                                             ; preds = %1721
  br label %1723

1723:                                             ; preds = %1722
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1724 = call ptr @__errno_location() #11
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  store i32 %1725, ptr %32, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = call i32 @s2n_print_stacktrace(ptr noundef %1726)
  %1728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1729 = trunc i8 %1728 to i1
  br i1 %1729, label %1730, label %1752

1730:                                             ; preds = %1723
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = call i32 @fileno(ptr noundef %1731) #10
  %1733 = call i32 @isatty(i32 noundef %1732) #10
  %1734 = icmp ne i32 %1733, 0
  br i1 %1734, label %1735, label %1752

1735:                                             ; preds = %1730
  %1736 = load i32, ptr %32, align 4, !tbaa !5
  %1737 = call ptr @__errno_location() #11
  store i32 %1736, ptr %1737, align 4, !tbaa !5
  %1738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1739 = load i32, ptr @test_count, align 4, !tbaa !5
  %1740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = call ptr @s2n_strerror(i32 noundef %1741, ptr noundef @.str.4)
  %1743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  %1745 = call ptr @s2n_strerror_debug(i32 noundef %1744, ptr noundef @.str.4)
  %1746 = call ptr @__errno_location() #11
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call ptr @strerror(i32 noundef %1747) #10
  %1749 = call ptr @__errno_location() #11
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1738, ptr noundef @.str.2, i32 noundef %1739, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 140, ptr noundef %1742, ptr noundef %1745, ptr noundef %1748, i32 noundef %1750) #10
  br label %1769

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

1769:                                             ; preds = %1752, %1735
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770
  call void @exit(i32 noundef 1) #12
  unreachable

1772:                                             ; No predecessors!
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773, %1714
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

1777:                                             ; preds = %1776
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %1779 = add nsw i32 %1778, 1
  store i32 %1779, ptr @test_count, align 4, !tbaa !5
  %1780 = load i8, ptr %23, align 4
  %1781 = lshr i8 %1780, 1
  %1782 = and i8 %1781, 1
  %1783 = zext i8 %1782 to i32
  %1784 = icmp eq i32 %1783, 1
  br i1 %1784, label %1838, label %1785

1785:                                             ; preds = %1777
  br label %1786

1786:                                             ; preds = %1785
  br label %1787

1787:                                             ; preds = %1786
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1788 = call ptr @__errno_location() #11
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  store i32 %1789, ptr %33, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = call i32 @s2n_print_stacktrace(ptr noundef %1790)
  %1792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1793 = trunc i8 %1792 to i1
  br i1 %1793, label %1794, label %1816

1794:                                             ; preds = %1787
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = call i32 @fileno(ptr noundef %1795) #10
  %1797 = call i32 @isatty(i32 noundef %1796) #10
  %1798 = icmp ne i32 %1797, 0
  br i1 %1798, label %1799, label %1816

1799:                                             ; preds = %1794
  %1800 = load i32, ptr %33, align 4, !tbaa !5
  %1801 = call ptr @__errno_location() #11
  store i32 %1800, ptr %1801, align 4, !tbaa !5
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = load i32, ptr @test_count, align 4, !tbaa !5
  %1804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  %1806 = call ptr @s2n_strerror(i32 noundef %1805, ptr noundef @.str.4)
  %1807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1808 = load i32, ptr %1807, align 4, !tbaa !5
  %1809 = call ptr @s2n_strerror_debug(i32 noundef %1808, ptr noundef @.str.4)
  %1810 = call ptr @__errno_location() #11
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  %1812 = call ptr @strerror(i32 noundef %1811) #10
  %1813 = call ptr @__errno_location() #11
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1802, ptr noundef @.str.2, i32 noundef %1803, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 141, ptr noundef %1806, ptr noundef %1809, ptr noundef %1812, i32 noundef %1814) #10
  br label %1833

1816:                                             ; preds = %1794, %1787
  %1817 = load i32, ptr %33, align 4, !tbaa !5
  %1818 = call ptr @__errno_location() #11
  store i32 %1817, ptr %1818, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = load i32, ptr @test_count, align 4, !tbaa !5
  %1821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror(i32 noundef %1822, ptr noundef @.str.4)
  %1824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror_debug(i32 noundef %1825, ptr noundef @.str.4)
  %1827 = call ptr @__errno_location() #11
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @strerror(i32 noundef %1828) #10
  %1830 = call ptr @__errno_location() #11
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1819, ptr noundef @.str.5, i32 noundef %1820, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 141, ptr noundef %1823, ptr noundef %1826, ptr noundef %1829, i32 noundef %1831) #10
  br label %1833

1833:                                             ; preds = %1816, %1799
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1834

1834:                                             ; preds = %1833
  br label %1835

1835:                                             ; preds = %1834
  call void @exit(i32 noundef 1) #12
  unreachable

1836:                                             ; No predecessors!
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

1838:                                             ; preds = %1837, %1777
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

1840:                                             ; preds = %1839
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %34, ptr align 4 @__const.main.info.22, i64 4, i1 false)
  br label %1841

1841:                                             ; preds = %1840
  %1842 = load i32, ptr @test_count, align 4, !tbaa !5
  %1843 = add nsw i32 %1842, 1
  store i32 %1843, ptr @test_count, align 4, !tbaa !5
  %1844 = call i32 @s2n_cert_validation_reject(ptr noundef %34)
  %1845 = icmp eq i32 %1844, -1
  br i1 %1845, label %1846, label %1899

1846:                                             ; preds = %1841
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

1848:                                             ; preds = %1847
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1849 = call ptr @__errno_location() #11
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  store i32 %1850, ptr %35, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = call i32 @s2n_print_stacktrace(ptr noundef %1851)
  %1853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1854 = trunc i8 %1853 to i1
  br i1 %1854, label %1855, label %1877

1855:                                             ; preds = %1848
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @fileno(ptr noundef %1856) #10
  %1858 = call i32 @isatty(i32 noundef %1857) #10
  %1859 = icmp ne i32 %1858, 0
  br i1 %1859, label %1860, label %1877

1860:                                             ; preds = %1855
  %1861 = load i32, ptr %35, align 4, !tbaa !5
  %1862 = call ptr @__errno_location() #11
  store i32 %1861, ptr %1862, align 4, !tbaa !5
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call ptr @s2n_strerror(i32 noundef %1866, ptr noundef @.str.4)
  %1868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror_debug(i32 noundef %1869, ptr noundef @.str.4)
  %1871 = call ptr @__errno_location() #11
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @strerror(i32 noundef %1872) #10
  %1874 = call ptr @__errno_location() #11
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1863, ptr noundef @.str.2, i32 noundef %1864, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 148, ptr noundef %1867, ptr noundef %1870, ptr noundef %1873, i32 noundef %1875) #10
  br label %1894

1877:                                             ; preds = %1855, %1848
  %1878 = load i32, ptr %35, align 4, !tbaa !5
  %1879 = call ptr @__errno_location() #11
  store i32 %1878, ptr %1879, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror(i32 noundef %1883, ptr noundef @.str.4)
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @s2n_strerror_debug(i32 noundef %1886, ptr noundef @.str.4)
  %1888 = call ptr @__errno_location() #11
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #10
  %1891 = call ptr @__errno_location() #11
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1880, ptr noundef @.str.5, i32 noundef %1881, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 148, ptr noundef %1884, ptr noundef %1887, ptr noundef %1890, i32 noundef %1892) #10
  br label %1894

1894:                                             ; preds = %1877, %1860
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

1896:                                             ; preds = %1895
  call void @exit(i32 noundef 1) #12
  unreachable

1897:                                             ; No predecessors!
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

1899:                                             ; preds = %1898, %1841
  br label %1900

1900:                                             ; preds = %1899
  br label %1901

1901:                                             ; preds = %1900
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  store i32 0, ptr %36, align 4, !tbaa !5
  br label %1902

1902:                                             ; preds = %2301, %1901
  %1903 = load i32, ptr %36, align 4, !tbaa !5
  %1904 = icmp slt i32 %1903, 10
  br i1 %1904, label %1906, label %1905

1905:                                             ; preds = %1902
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %2304

1906:                                             ; preds = %1902
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

1909:                                             ; preds = %1908
  %1910 = load i32, ptr @test_count, align 4, !tbaa !5
  %1911 = add nsw i32 %1910, 1
  store i32 %1911, ptr @test_count, align 4, !tbaa !5
  %1912 = call i32 @s2n_cert_validation_reject(ptr noundef %34)
  %1913 = icmp eq i32 %1912, -1
  br i1 %1913, label %1967, label %1914

1914:                                             ; preds = %1909
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %1917 = call ptr @__errno_location() #11
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  store i32 %1918, ptr %37, align 4, !tbaa !5
  %1919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1920 = call i32 @s2n_print_stacktrace(ptr noundef %1919)
  %1921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1922 = trunc i8 %1921 to i1
  br i1 %1922, label %1923, label %1945

1923:                                             ; preds = %1916
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = call i32 @fileno(ptr noundef %1924) #10
  %1926 = call i32 @isatty(i32 noundef %1925) #10
  %1927 = icmp ne i32 %1926, 0
  br i1 %1927, label %1928, label %1945

1928:                                             ; preds = %1923
  %1929 = load i32, ptr %37, align 4, !tbaa !5
  %1930 = call ptr @__errno_location() #11
  store i32 %1929, ptr %1930, align 4, !tbaa !5
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = load i32, ptr @test_count, align 4, !tbaa !5
  %1933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror(i32 noundef %1934, ptr noundef @.str.4)
  %1936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror_debug(i32 noundef %1937, ptr noundef @.str.4)
  %1939 = call ptr @__errno_location() #11
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call ptr @strerror(i32 noundef %1940) #10
  %1942 = call ptr @__errno_location() #11
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1931, ptr noundef @.str.2, i32 noundef %1932, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 151, ptr noundef %1935, ptr noundef %1938, ptr noundef %1941, i32 noundef %1943) #10
  br label %1962

1945:                                             ; preds = %1923, %1916
  %1946 = load i32, ptr %37, align 4, !tbaa !5
  %1947 = call ptr @__errno_location() #11
  store i32 %1946, ptr %1947, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call ptr @s2n_strerror(i32 noundef %1951, ptr noundef @.str.4)
  %1953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror_debug(i32 noundef %1954, ptr noundef @.str.4)
  %1956 = call ptr @__errno_location() #11
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @strerror(i32 noundef %1957) #10
  %1959 = call ptr @__errno_location() #11
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1948, ptr noundef @.str.5, i32 noundef %1949, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 151, ptr noundef %1952, ptr noundef %1955, ptr noundef %1958, i32 noundef %1960) #10
  br label %1962

1962:                                             ; preds = %1945, %1928
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1963

1963:                                             ; preds = %1962
  br label %1964

1964:                                             ; preds = %1963
  call void @exit(i32 noundef 1) #12
  unreachable

1965:                                             ; No predecessors!
  br label %1966

1966:                                             ; preds = %1965
  br label %1967

1967:                                             ; preds = %1966, %1909
  br label %1968

1968:                                             ; preds = %1967
  br label %1969

1969:                                             ; preds = %1968
  br label %1970

1970:                                             ; preds = %1969
  %1971 = load i32, ptr @test_count, align 4, !tbaa !5
  %1972 = add nsw i32 %1971, 1
  store i32 %1972, ptr @test_count, align 4, !tbaa !5
  %1973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = icmp eq i32 %1974, 469762112
  br i1 %1975, label %2029, label %1976

1976:                                             ; preds = %1970
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1979 = call ptr @__errno_location() #11
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  store i32 %1980, ptr %38, align 4, !tbaa !5
  %1981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1982 = call i32 @s2n_print_stacktrace(ptr noundef %1981)
  %1983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1984 = trunc i8 %1983 to i1
  br i1 %1984, label %1985, label %2007

1985:                                             ; preds = %1978
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = call i32 @fileno(ptr noundef %1986) #10
  %1988 = call i32 @isatty(i32 noundef %1987) #10
  %1989 = icmp ne i32 %1988, 0
  br i1 %1989, label %1990, label %2007

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

2007:                                             ; preds = %1985, %1978
  %2008 = load i32, ptr %38, align 4, !tbaa !5
  %2009 = call ptr @__errno_location() #11
  store i32 %2008, ptr %2009, align 4, !tbaa !5
  %2010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2011 = load i32, ptr @test_count, align 4, !tbaa !5
  %2012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2013 = load i32, ptr %2012, align 4, !tbaa !5
  %2014 = call ptr @s2n_strerror(i32 noundef %2013, ptr noundef @.str.4)
  %2015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror_debug(i32 noundef %2016, ptr noundef @.str.4)
  %2018 = call ptr @__errno_location() #11
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @strerror(i32 noundef %2019) #10
  %2021 = call ptr @__errno_location() #11
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2010, ptr noundef @.str.5, i32 noundef %2011, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2014, ptr noundef %2017, ptr noundef %2020, i32 noundef %2022) #10
  br label %2024

2024:                                             ; preds = %2007, %1990
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %2025

2025:                                             ; preds = %2024
  br label %2026

2026:                                             ; preds = %2025
  call void @exit(i32 noundef 1) #12
  unreachable

2027:                                             ; No predecessors!
  br label %2028

2028:                                             ; preds = %2027
  br label %2029

2029:                                             ; preds = %2028, %1970
  br label %2030

2030:                                             ; preds = %2029
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031
  %2033 = load i32, ptr @test_count, align 4, !tbaa !5
  %2034 = add nsw i32 %2033, 1
  store i32 %2034, ptr @test_count, align 4, !tbaa !5
  %2035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror_debug(i32 noundef %2036, ptr noundef @.str.4)
  %2038 = icmp eq ptr %2037, null
  br i1 %2038, label %2039, label %2092

2039:                                             ; preds = %2032
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %2042 = call ptr @__errno_location() #11
  %2043 = load i32, ptr %2042, align 4, !tbaa !5
  store i32 %2043, ptr %39, align 4, !tbaa !5
  %2044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2045 = call i32 @s2n_print_stacktrace(ptr noundef %2044)
  %2046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2047 = trunc i8 %2046 to i1
  br i1 %2047, label %2048, label %2070

2048:                                             ; preds = %2041
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @fileno(ptr noundef %2049) #10
  %2051 = call i32 @isatty(i32 noundef %2050) #10
  %2052 = icmp ne i32 %2051, 0
  br i1 %2052, label %2053, label %2070

2053:                                             ; preds = %2048
  %2054 = load i32, ptr %39, align 4, !tbaa !5
  %2055 = call ptr @__errno_location() #11
  store i32 %2054, ptr %2055, align 4, !tbaa !5
  %2056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2057 = load i32, ptr @test_count, align 4, !tbaa !5
  %2058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2059 = load i32, ptr %2058, align 4, !tbaa !5
  %2060 = call ptr @s2n_strerror(i32 noundef %2059, ptr noundef @.str.4)
  %2061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror_debug(i32 noundef %2062, ptr noundef @.str.4)
  %2064 = call ptr @__errno_location() #11
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call ptr @strerror(i32 noundef %2065) #10
  %2067 = call ptr @__errno_location() #11
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2056, ptr noundef @.str.2, i32 noundef %2057, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2060, ptr noundef %2063, ptr noundef %2066, i32 noundef %2068) #10
  br label %2087

2070:                                             ; preds = %2048, %2041
  %2071 = load i32, ptr %39, align 4, !tbaa !5
  %2072 = call ptr @__errno_location() #11
  store i32 %2071, ptr %2072, align 4, !tbaa !5
  %2073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2074 = load i32, ptr @test_count, align 4, !tbaa !5
  %2075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror(i32 noundef %2076, ptr noundef @.str.4)
  %2078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call ptr @s2n_strerror_debug(i32 noundef %2079, ptr noundef @.str.4)
  %2081 = call ptr @__errno_location() #11
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call ptr @strerror(i32 noundef %2082) #10
  %2084 = call ptr @__errno_location() #11
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2073, ptr noundef @.str.5, i32 noundef %2074, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2077, ptr noundef %2080, ptr noundef %2083, i32 noundef %2085) #10
  br label %2087

2087:                                             ; preds = %2070, %2053
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %2088

2088:                                             ; preds = %2087
  br label %2089

2089:                                             ; preds = %2088
  call void @exit(i32 noundef 1) #12
  unreachable

2090:                                             ; No predecessors!
  br label %2091

2091:                                             ; preds = %2090
  br label %2092

2092:                                             ; preds = %2091, %2032
  br label %2093

2093:                                             ; preds = %2092
  br label %2094

2094:                                             ; preds = %2093
  br label %2095

2095:                                             ; preds = %2094
  br label %2096

2096:                                             ; preds = %2095
  br label %2097

2097:                                             ; preds = %2096
  %2098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2098, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2099 = call ptr @__errno_location() #11
  store i32 0, ptr %2099, align 4, !tbaa !5
  br label %2100

2100:                                             ; preds = %2097
  br label %2101

2101:                                             ; preds = %2100
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = add nsw i32 %2107, 1
  store i32 %2108, ptr @test_count, align 4, !tbaa !5
  %2109 = call i32 @s2n_cert_validation_accept(ptr noundef %34)
  %2110 = icmp eq i32 %2109, -1
  br i1 %2110, label %2164, label %2111

2111:                                             ; preds = %2106
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

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

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

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

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

2159:                                             ; preds = %2142, %2125
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %2160

2160:                                             ; preds = %2159
  br label %2161

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

2162:                                             ; No predecessors!
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163, %2106
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166
  %2168 = load i32, ptr @test_count, align 4, !tbaa !5
  %2169 = add nsw i32 %2168, 1
  store i32 %2169, ptr @test_count, align 4, !tbaa !5
  %2170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = icmp eq i32 %2171, 469762112
  br i1 %2172, label %2226, label %2173

2173:                                             ; preds = %2167
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

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

2182:                                             ; preds = %2175
  %2183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2184 = call i32 @fileno(ptr noundef %2183) #10
  %2185 = call i32 @isatty(i32 noundef %2184) #10
  %2186 = icmp ne i32 %2185, 0
  br i1 %2186, label %2187, label %2204

2187:                                             ; preds = %2182
  %2188 = load i32, ptr %41, align 4, !tbaa !5
  %2189 = call ptr @__errno_location() #11
  store i32 %2188, ptr %2189, align 4, !tbaa !5
  %2190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2191 = load i32, ptr @test_count, align 4, !tbaa !5
  %2192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2193 = load i32, ptr %2192, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror(i32 noundef %2193, ptr noundef @.str.4)
  %2195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror_debug(i32 noundef %2196, ptr noundef @.str.4)
  %2198 = call ptr @__errno_location() #11
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @strerror(i32 noundef %2199) #10
  %2201 = call ptr @__errno_location() #11
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2190, ptr noundef @.str.2, i32 noundef %2191, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2194, ptr noundef %2197, ptr noundef %2200, i32 noundef %2202) #10
  br label %2221

2204:                                             ; preds = %2182, %2175
  %2205 = load i32, ptr %41, align 4, !tbaa !5
  %2206 = call ptr @__errno_location() #11
  store i32 %2205, ptr %2206, align 4, !tbaa !5
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = load i32, ptr @test_count, align 4, !tbaa !5
  %2209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror(i32 noundef %2210, ptr noundef @.str.4)
  %2212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror_debug(i32 noundef %2213, ptr noundef @.str.4)
  %2215 = call ptr @__errno_location() #11
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call ptr @strerror(i32 noundef %2216) #10
  %2218 = call ptr @__errno_location() #11
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2207, ptr noundef @.str.5, i32 noundef %2208, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2211, ptr noundef %2214, ptr noundef %2217, i32 noundef %2219) #10
  br label %2221

2221:                                             ; preds = %2204, %2187
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %2222

2222:                                             ; preds = %2221
  br label %2223

2223:                                             ; preds = %2222
  call void @exit(i32 noundef 1) #12
  unreachable

2224:                                             ; No predecessors!
  br label %2225

2225:                                             ; preds = %2224
  br label %2226

2226:                                             ; preds = %2225, %2167
  br label %2227

2227:                                             ; preds = %2226
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  %2230 = load i32, ptr @test_count, align 4, !tbaa !5
  %2231 = add nsw i32 %2230, 1
  store i32 %2231, ptr @test_count, align 4, !tbaa !5
  %2232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror_debug(i32 noundef %2233, ptr noundef @.str.4)
  %2235 = icmp eq ptr %2234, null
  br i1 %2235, label %2236, label %2289

2236:                                             ; preds = %2229
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %2239 = call ptr @__errno_location() #11
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  store i32 %2240, ptr %42, align 4, !tbaa !5
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = call i32 @s2n_print_stacktrace(ptr noundef %2241)
  %2243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2244 = trunc i8 %2243 to i1
  br i1 %2244, label %2245, label %2267

2245:                                             ; preds = %2238
  %2246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2247 = call i32 @fileno(ptr noundef %2246) #10
  %2248 = call i32 @isatty(i32 noundef %2247) #10
  %2249 = icmp ne i32 %2248, 0
  br i1 %2249, label %2250, label %2267

2250:                                             ; preds = %2245
  %2251 = load i32, ptr %42, align 4, !tbaa !5
  %2252 = call ptr @__errno_location() #11
  store i32 %2251, ptr %2252, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = load i32, ptr @test_count, align 4, !tbaa !5
  %2255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = call ptr @s2n_strerror(i32 noundef %2256, ptr noundef @.str.4)
  %2258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror_debug(i32 noundef %2259, ptr noundef @.str.4)
  %2261 = call ptr @__errno_location() #11
  %2262 = load i32, ptr %2261, align 4, !tbaa !5
  %2263 = call ptr @strerror(i32 noundef %2262) #10
  %2264 = call ptr @__errno_location() #11
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  %2266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2253, ptr noundef @.str.2, i32 noundef %2254, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2257, ptr noundef %2260, ptr noundef %2263, i32 noundef %2265) #10
  br label %2284

2267:                                             ; preds = %2245, %2238
  %2268 = load i32, ptr %42, align 4, !tbaa !5
  %2269 = call ptr @__errno_location() #11
  store i32 %2268, ptr %2269, align 4, !tbaa !5
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call ptr @s2n_strerror(i32 noundef %2273, ptr noundef @.str.4)
  %2275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2276 = load i32, ptr %2275, align 4, !tbaa !5
  %2277 = call ptr @s2n_strerror_debug(i32 noundef %2276, ptr noundef @.str.4)
  %2278 = call ptr @__errno_location() #11
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = call ptr @strerror(i32 noundef %2279) #10
  %2281 = call ptr @__errno_location() #11
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2270, ptr noundef @.str.5, i32 noundef %2271, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2274, ptr noundef %2277, ptr noundef %2280, i32 noundef %2282) #10
  br label %2284

2284:                                             ; preds = %2267, %2250
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %2285

2285:                                             ; preds = %2284
  br label %2286

2286:                                             ; preds = %2285
  call void @exit(i32 noundef 1) #12
  unreachable

2287:                                             ; No predecessors!
  br label %2288

2288:                                             ; preds = %2287
  br label %2289

2289:                                             ; preds = %2288, %2229
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

2294:                                             ; preds = %2293
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2295, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2296 = call ptr @__errno_location() #11
  store i32 0, ptr %2296, align 4, !tbaa !5
  br label %2297

2297:                                             ; preds = %2294
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  %2302 = load i32, ptr %36, align 4, !tbaa !5
  %2303 = add nsw i32 %2302, 1
  store i32 %2303, ptr %36, align 4, !tbaa !5
  br label %1902, !llvm.loop !17

2304:                                             ; preds = %1905
  br label %2305

2305:                                             ; preds = %2304
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %2307 = add nsw i32 %2306, 1
  store i32 %2307, ptr @test_count, align 4, !tbaa !5
  %2308 = load i8, ptr %34, align 4
  %2309 = and i8 %2308, 1
  %2310 = zext i8 %2309 to i32
  %2311 = icmp eq i32 %2310, 1
  br i1 %2311, label %2365, label %2312

2312:                                             ; preds = %2305
  br label %2313

2313:                                             ; preds = %2312
  br label %2314

2314:                                             ; preds = %2313
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %2315 = call ptr @__errno_location() #11
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  store i32 %2316, ptr %43, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @s2n_print_stacktrace(ptr noundef %2317)
  %2319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2320 = trunc i8 %2319 to i1
  br i1 %2320, label %2321, label %2343

2321:                                             ; preds = %2314
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @fileno(ptr noundef %2322) #10
  %2324 = call i32 @isatty(i32 noundef %2323) #10
  %2325 = icmp ne i32 %2324, 0
  br i1 %2325, label %2326, label %2343

2326:                                             ; preds = %2321
  %2327 = load i32, ptr %43, align 4, !tbaa !5
  %2328 = call ptr @__errno_location() #11
  store i32 %2327, ptr %2328, align 4, !tbaa !5
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = load i32, ptr @test_count, align 4, !tbaa !5
  %2331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call ptr @s2n_strerror(i32 noundef %2332, ptr noundef @.str.4)
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror_debug(i32 noundef %2335, ptr noundef @.str.4)
  %2337 = call ptr @__errno_location() #11
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call ptr @strerror(i32 noundef %2338) #10
  %2340 = call ptr @__errno_location() #11
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2329, ptr noundef @.str.2, i32 noundef %2330, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 156, ptr noundef %2333, ptr noundef %2336, ptr noundef %2339, i32 noundef %2341) #10
  br label %2360

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

2360:                                             ; preds = %2343, %2326
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %2361

2361:                                             ; preds = %2360
  br label %2362

2362:                                             ; preds = %2361
  call void @exit(i32 noundef 1) #12
  unreachable

2363:                                             ; No predecessors!
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364, %2305
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366
  br label %2368

2368:                                             ; preds = %2367
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = add nsw i32 %2369, 1
  store i32 %2370, ptr @test_count, align 4, !tbaa !5
  %2371 = load i8, ptr %34, align 4
  %2372 = lshr i8 %2371, 1
  %2373 = and i8 %2372, 1
  %2374 = zext i8 %2373 to i32
  %2375 = icmp eq i32 %2374, 0
  br i1 %2375, label %2429, label %2376

2376:                                             ; preds = %2368
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %2379 = call ptr @__errno_location() #11
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  store i32 %2380, ptr %44, align 4, !tbaa !5
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = call i32 @s2n_print_stacktrace(ptr noundef %2381)
  %2383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2384 = trunc i8 %2383 to i1
  br i1 %2384, label %2385, label %2407

2385:                                             ; preds = %2378
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @fileno(ptr noundef %2386) #10
  %2388 = call i32 @isatty(i32 noundef %2387) #10
  %2389 = icmp ne i32 %2388, 0
  br i1 %2389, label %2390, label %2407

2390:                                             ; preds = %2385
  %2391 = load i32, ptr %44, align 4, !tbaa !5
  %2392 = call ptr @__errno_location() #11
  store i32 %2391, ptr %2392, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror(i32 noundef %2396, ptr noundef @.str.4)
  %2398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror_debug(i32 noundef %2399, ptr noundef @.str.4)
  %2401 = call ptr @__errno_location() #11
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #10
  %2404 = call ptr @__errno_location() #11
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2393, ptr noundef @.str.2, i32 noundef %2394, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2397, ptr noundef %2400, ptr noundef %2403, i32 noundef %2405) #10
  br label %2424

2407:                                             ; preds = %2385, %2378
  %2408 = load i32, ptr %44, align 4, !tbaa !5
  %2409 = call ptr @__errno_location() #11
  store i32 %2408, ptr %2409, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = load i32, ptr @test_count, align 4, !tbaa !5
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror(i32 noundef %2413, ptr noundef @.str.4)
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror_debug(i32 noundef %2416, ptr noundef @.str.4)
  %2418 = call ptr @__errno_location() #11
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @strerror(i32 noundef %2419) #10
  %2421 = call ptr @__errno_location() #11
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2410, ptr noundef @.str.5, i32 noundef %2411, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2414, ptr noundef %2417, ptr noundef %2420, i32 noundef %2422) #10
  br label %2424

2424:                                             ; preds = %2407, %2390
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %2425

2425:                                             ; preds = %2424
  br label %2426

2426:                                             ; preds = %2425
  call void @exit(i32 noundef 1) #12
  unreachable

2427:                                             ; No predecessors!
  br label %2428

2428:                                             ; preds = %2427
  br label %2429

2429:                                             ; preds = %2428, %2368
  br label %2430

2430:                                             ; preds = %2429
  br label %2431

2431:                                             ; preds = %2430
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  store ptr null, ptr %45, align 8, !tbaa !9
  br label %2432

2432:                                             ; preds = %2431
  %2433 = load i32, ptr @test_count, align 4, !tbaa !5
  %2434 = add nsw i32 %2433, 1
  store i32 %2434, ptr @test_count, align 4, !tbaa !5
  %2435 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %45, ptr noundef @.str.23, ptr noundef @.str.24)
  %2436 = icmp eq i32 %2435, -1
  br i1 %2436, label %2437, label %2490

2437:                                             ; preds = %2432
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %2440 = call ptr @__errno_location() #11
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  store i32 %2441, ptr %46, align 4, !tbaa !5
  %2442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2443 = call i32 @s2n_print_stacktrace(ptr noundef %2442)
  %2444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2445 = trunc i8 %2444 to i1
  br i1 %2445, label %2446, label %2468

2446:                                             ; preds = %2439
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = call i32 @fileno(ptr noundef %2447) #10
  %2449 = call i32 @isatty(i32 noundef %2448) #10
  %2450 = icmp ne i32 %2449, 0
  br i1 %2450, label %2451, label %2468

2451:                                             ; preds = %2446
  %2452 = load i32, ptr %46, align 4, !tbaa !5
  %2453 = call ptr @__errno_location() #11
  store i32 %2452, ptr %2453, align 4, !tbaa !5
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = load i32, ptr @test_count, align 4, !tbaa !5
  %2456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror(i32 noundef %2457, ptr noundef @.str.4)
  %2459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @s2n_strerror_debug(i32 noundef %2460, ptr noundef @.str.4)
  %2462 = call ptr @__errno_location() #11
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @strerror(i32 noundef %2463) #10
  %2465 = call ptr @__errno_location() #11
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2454, ptr noundef @.str.2, i32 noundef %2455, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2458, ptr noundef %2461, ptr noundef %2464, i32 noundef %2466) #10
  br label %2485

2468:                                             ; preds = %2446, %2439
  %2469 = load i32, ptr %46, align 4, !tbaa !5
  %2470 = call ptr @__errno_location() #11
  store i32 %2469, ptr %2470, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = load i32, ptr @test_count, align 4, !tbaa !5
  %2473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror(i32 noundef %2474, ptr noundef @.str.4)
  %2476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror_debug(i32 noundef %2477, ptr noundef @.str.4)
  %2479 = call ptr @__errno_location() #11
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @strerror(i32 noundef %2480) #10
  %2482 = call ptr @__errno_location() #11
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2471, ptr noundef @.str.5, i32 noundef %2472, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2475, ptr noundef %2478, ptr noundef %2481, i32 noundef %2483) #10
  br label %2485

2485:                                             ; preds = %2468, %2451
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %2486

2486:                                             ; preds = %2485
  br label %2487

2487:                                             ; preds = %2486
  call void @exit(i32 noundef 1) #12
  unreachable

2488:                                             ; No predecessors!
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489, %2432
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491
  call void @llvm.lifetime.start.p0(i64 96, ptr %47) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %47, ptr align 16 @__const.main.test_cases, i64 96, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  store i32 0, ptr %48, align 4, !tbaa !5
  br label %2493

2493:                                             ; preds = %3605, %2492
  %2494 = load i32, ptr %48, align 4, !tbaa !5
  %2495 = sext i32 %2494 to i64
  %2496 = icmp ult i64 %2495, 4
  br i1 %2496, label %2498, label %2497

2497:                                             ; preds = %2493
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %3608

2498:                                             ; preds = %2493
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #10
  call void @llvm.memset.p0.i64(ptr align 8 %49, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef %49)
  call void @llvm.lifetime.start.p0(i64 12000, ptr %50) #10
  call void @llvm.memset.p0.i64(ptr align 16 %50, i8 0, i64 12000, i1 false)
  br label %2499

2499:                                             ; preds = %2498
  %2500 = load i32, ptr @test_count, align 4, !tbaa !5
  %2501 = add nsw i32 %2500, 1
  store i32 %2501, ptr @test_count, align 4, !tbaa !5
  %2502 = getelementptr inbounds [12000 x i8], ptr %50, i64 0, i64 0
  %2503 = call i32 @s2n_read_test_pem(ptr noundef @.str.23, ptr noundef %2502, i64 noundef 12000)
  %2504 = icmp eq i32 %2503, -1
  br i1 %2504, label %2505, label %2558

2505:                                             ; preds = %2499
  br label %2506

2506:                                             ; preds = %2505
  br label %2507

2507:                                             ; preds = %2506
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2508 = call ptr @__errno_location() #11
  %2509 = load i32, ptr %2508, align 4, !tbaa !5
  store i32 %2509, ptr %51, align 4, !tbaa !5
  %2510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2511 = call i32 @s2n_print_stacktrace(ptr noundef %2510)
  %2512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2513 = trunc i8 %2512 to i1
  br i1 %2513, label %2514, label %2536

2514:                                             ; preds = %2507
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = call i32 @fileno(ptr noundef %2515) #10
  %2517 = call i32 @isatty(i32 noundef %2516) #10
  %2518 = icmp ne i32 %2517, 0
  br i1 %2518, label %2519, label %2536

2519:                                             ; preds = %2514
  %2520 = load i32, ptr %51, align 4, !tbaa !5
  %2521 = call ptr @__errno_location() #11
  store i32 %2520, ptr %2521, align 4, !tbaa !5
  %2522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2523 = load i32, ptr @test_count, align 4, !tbaa !5
  %2524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror(i32 noundef %2525, ptr noundef @.str.4)
  %2527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call ptr @s2n_strerror_debug(i32 noundef %2528, ptr noundef @.str.4)
  %2530 = call ptr @__errno_location() #11
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = call ptr @strerror(i32 noundef %2531) #10
  %2533 = call ptr @__errno_location() #11
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2522, ptr noundef @.str.2, i32 noundef %2523, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 202, ptr noundef %2526, ptr noundef %2529, ptr noundef %2532, i32 noundef %2534) #10
  br label %2553

2536:                                             ; preds = %2514, %2507
  %2537 = load i32, ptr %51, align 4, !tbaa !5
  %2538 = call ptr @__errno_location() #11
  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() #11
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @strerror(i32 noundef %2548) #10
  %2550 = call ptr @__errno_location() #11
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  %2552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2539, ptr noundef @.str.5, i32 noundef %2540, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 202, ptr noundef %2543, ptr noundef %2546, ptr noundef %2549, i32 noundef %2551) #10
  br label %2553

2553:                                             ; preds = %2536, %2519
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2554

2554:                                             ; preds = %2553
  br label %2555

2555:                                             ; preds = %2554
  call void @exit(i32 noundef 1) #12
  unreachable

2556:                                             ; No predecessors!
  br label %2557

2557:                                             ; preds = %2556
  br label %2558

2558:                                             ; preds = %2557, %2499
  br label %2559

2559:                                             ; preds = %2558
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  %2562 = load i32, ptr @test_count, align 4, !tbaa !5
  %2563 = add nsw i32 %2562, 1
  store i32 %2563, ptr @test_count, align 4, !tbaa !5
  %2564 = getelementptr inbounds [12000 x i8], ptr %50, i64 0, i64 0
  %2565 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef %49, ptr noundef %2564)
  %2566 = icmp eq i32 %2565, -1
  br i1 %2566, label %2567, label %2620

2567:                                             ; preds = %2561
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2570 = call ptr @__errno_location() #11
  %2571 = load i32, ptr %2570, align 4, !tbaa !5
  store i32 %2571, ptr %52, align 4, !tbaa !5
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = call i32 @s2n_print_stacktrace(ptr noundef %2572)
  %2574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2575 = trunc i8 %2574 to i1
  br i1 %2575, label %2576, label %2598

2576:                                             ; preds = %2569
  %2577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2578 = call i32 @fileno(ptr noundef %2577) #10
  %2579 = call i32 @isatty(i32 noundef %2578) #10
  %2580 = icmp ne i32 %2579, 0
  br i1 %2580, label %2581, label %2598

2581:                                             ; preds = %2576
  %2582 = load i32, ptr %52, align 4, !tbaa !5
  %2583 = call ptr @__errno_location() #11
  store i32 %2582, ptr %2583, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror(i32 noundef %2587, ptr noundef @.str.4)
  %2589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror_debug(i32 noundef %2590, ptr noundef @.str.4)
  %2592 = call ptr @__errno_location() #11
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @strerror(i32 noundef %2593) #10
  %2595 = call ptr @__errno_location() #11
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2584, ptr noundef @.str.2, i32 noundef %2585, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 203, ptr noundef %2588, ptr noundef %2591, ptr noundef %2594, i32 noundef %2596) #10
  br label %2615

2598:                                             ; preds = %2576, %2569
  %2599 = load i32, ptr %52, align 4, !tbaa !5
  %2600 = call ptr @__errno_location() #11
  store i32 %2599, ptr %2600, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror(i32 noundef %2604, ptr noundef @.str.4)
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror_debug(i32 noundef %2607, ptr noundef @.str.4)
  %2609 = call ptr @__errno_location() #11
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @strerror(i32 noundef %2610) #10
  %2612 = call ptr @__errno_location() #11
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef @.str.5, i32 noundef %2602, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 203, ptr noundef %2605, ptr noundef %2608, ptr noundef %2611, i32 noundef %2613) #10
  br label %2615

2615:                                             ; preds = %2598, %2581
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2616

2616:                                             ; preds = %2615
  br label %2617

2617:                                             ; preds = %2616
  call void @exit(i32 noundef 1) #12
  unreachable

2618:                                             ; No predecessors!
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619, %2561
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

2622:                                             ; preds = %2621
  call void @llvm.lifetime.start.p0(i64 56, ptr %53) #10
  br label %2623

2623:                                             ; preds = %2622
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = add nsw i32 %2624, 1
  store i32 %2625, ptr @test_count, align 4, !tbaa !5
  %2626 = call i32 @s2n_x509_validator_init(ptr noundef %53, ptr noundef %49, i8 noundef zeroext 0)
  %2627 = icmp eq i32 %2626, -1
  br i1 %2627, label %2628, label %2681

2628:                                             ; preds = %2623
  br label %2629

2629:                                             ; preds = %2628
  br label %2630

2630:                                             ; preds = %2629
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2631 = call ptr @__errno_location() #11
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  store i32 %2632, ptr %54, align 4, !tbaa !5
  %2633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2634 = call i32 @s2n_print_stacktrace(ptr noundef %2633)
  %2635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2636 = trunc i8 %2635 to i1
  br i1 %2636, label %2637, label %2659

2637:                                             ; preds = %2630
  %2638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2639 = call i32 @fileno(ptr noundef %2638) #10
  %2640 = call i32 @isatty(i32 noundef %2639) #10
  %2641 = icmp ne i32 %2640, 0
  br i1 %2641, label %2642, label %2659

2642:                                             ; preds = %2637
  %2643 = load i32, ptr %54, align 4, !tbaa !5
  %2644 = call ptr @__errno_location() #11
  store i32 %2643, ptr %2644, align 4, !tbaa !5
  %2645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2646 = load i32, ptr @test_count, align 4, !tbaa !5
  %2647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  %2649 = call ptr @s2n_strerror(i32 noundef %2648, ptr noundef @.str.4)
  %2650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror_debug(i32 noundef %2651, ptr noundef @.str.4)
  %2653 = call ptr @__errno_location() #11
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @strerror(i32 noundef %2654) #10
  %2656 = call ptr @__errno_location() #11
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2645, ptr noundef @.str.2, i32 noundef %2646, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2649, ptr noundef %2652, ptr noundef %2655, i32 noundef %2657) #10
  br label %2676

2659:                                             ; preds = %2637, %2630
  %2660 = load i32, ptr %54, align 4, !tbaa !5
  %2661 = call ptr @__errno_location() #11
  store i32 %2660, ptr %2661, align 4, !tbaa !5
  %2662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2663 = load i32, ptr @test_count, align 4, !tbaa !5
  %2664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2665 = load i32, ptr %2664, align 4, !tbaa !5
  %2666 = call ptr @s2n_strerror(i32 noundef %2665, ptr noundef @.str.4)
  %2667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2668 = load i32, ptr %2667, align 4, !tbaa !5
  %2669 = call ptr @s2n_strerror_debug(i32 noundef %2668, ptr noundef @.str.4)
  %2670 = call ptr @__errno_location() #11
  %2671 = load i32, ptr %2670, align 4, !tbaa !5
  %2672 = call ptr @strerror(i32 noundef %2671) #10
  %2673 = call ptr @__errno_location() #11
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2662, ptr noundef @.str.5, i32 noundef %2663, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2666, ptr noundef %2669, ptr noundef %2672, i32 noundef %2674) #10
  br label %2676

2676:                                             ; preds = %2659, %2642
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2677

2677:                                             ; preds = %2676
  br label %2678

2678:                                             ; preds = %2677
  call void @exit(i32 noundef 1) #12
  unreachable

2679:                                             ; No predecessors!
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

2681:                                             ; preds = %2680, %2623
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

2683:                                             ; preds = %2682
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  %2684 = call ptr @s2n_config_new()
  store ptr %2684, ptr %55, align 8, !tbaa !9
  br label %2685

2685:                                             ; preds = %2683
  %2686 = load i32, ptr @test_count, align 4, !tbaa !5
  %2687 = add nsw i32 %2686, 1
  store i32 %2687, ptr @test_count, align 4, !tbaa !5
  %2688 = load ptr, ptr %55, align 8, !tbaa !9
  %2689 = icmp eq ptr %2688, null
  br i1 %2689, label %2690, label %2743

2690:                                             ; preds = %2685
  br label %2691

2691:                                             ; preds = %2690
  br label %2692

2692:                                             ; preds = %2691
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2693 = call ptr @__errno_location() #11
  %2694 = load i32, ptr %2693, align 4, !tbaa !5
  store i32 %2694, ptr %56, align 4, !tbaa !5
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = call i32 @s2n_print_stacktrace(ptr noundef %2695)
  %2697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2698 = trunc i8 %2697 to i1
  br i1 %2698, label %2699, label %2721

2699:                                             ; preds = %2692
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = call i32 @fileno(ptr noundef %2700) #10
  %2702 = call i32 @isatty(i32 noundef %2701) #10
  %2703 = icmp ne i32 %2702, 0
  br i1 %2703, label %2704, label %2721

2704:                                             ; preds = %2699
  %2705 = load i32, ptr %56, align 4, !tbaa !5
  %2706 = call ptr @__errno_location() #11
  store i32 %2705, ptr %2706, align 4, !tbaa !5
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = load i32, ptr @test_count, align 4, !tbaa !5
  %2709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = call ptr @s2n_strerror(i32 noundef %2710, ptr noundef @.str.4)
  %2712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror_debug(i32 noundef %2713, ptr noundef @.str.4)
  %2715 = call ptr @__errno_location() #11
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call ptr @strerror(i32 noundef %2716) #10
  %2718 = call ptr @__errno_location() #11
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2707, ptr noundef @.str.2, i32 noundef %2708, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 209, ptr noundef %2711, ptr noundef %2714, ptr noundef %2717, i32 noundef %2719) #10
  br label %2738

2721:                                             ; preds = %2699, %2692
  %2722 = load i32, ptr %56, align 4, !tbaa !5
  %2723 = call ptr @__errno_location() #11
  store i32 %2722, ptr %2723, align 4, !tbaa !5
  %2724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2725 = load i32, ptr @test_count, align 4, !tbaa !5
  %2726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call ptr @s2n_strerror(i32 noundef %2727, ptr noundef @.str.4)
  %2729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror_debug(i32 noundef %2730, ptr noundef @.str.4)
  %2732 = call ptr @__errno_location() #11
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #10
  %2735 = call ptr @__errno_location() #11
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2724, ptr noundef @.str.5, i32 noundef %2725, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 209, ptr noundef %2728, ptr noundef %2731, ptr noundef %2734, i32 noundef %2736) #10
  br label %2738

2738:                                             ; preds = %2721, %2704
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2739

2739:                                             ; preds = %2738
  br label %2740

2740:                                             ; preds = %2739
  call void @exit(i32 noundef 1) #12
  unreachable

2741:                                             ; No predecessors!
  br label %2742

2742:                                             ; preds = %2741
  br label %2743

2743:                                             ; preds = %2742, %2685
  br label %2744

2744:                                             ; preds = %2743
  br label %2745

2745:                                             ; preds = %2744
  br label %2746

2746:                                             ; preds = %2745
  %2747 = load i32, ptr @test_count, align 4, !tbaa !5
  %2748 = add nsw i32 %2747, 1
  store i32 %2748, ptr @test_count, align 4, !tbaa !5
  %2749 = load ptr, ptr %55, align 8, !tbaa !9
  %2750 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2749, ptr noundef @.str.30)
  %2751 = icmp eq i32 %2750, -1
  br i1 %2751, label %2752, label %2805

2752:                                             ; preds = %2746
  br label %2753

2753:                                             ; preds = %2752
  br label %2754

2754:                                             ; preds = %2753
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  %2755 = call ptr @__errno_location() #11
  %2756 = load i32, ptr %2755, align 4, !tbaa !5
  store i32 %2756, ptr %57, align 4, !tbaa !5
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @s2n_print_stacktrace(ptr noundef %2757)
  %2759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2760 = trunc i8 %2759 to i1
  br i1 %2760, label %2761, label %2783

2761:                                             ; preds = %2754
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @fileno(ptr noundef %2762) #10
  %2764 = call i32 @isatty(i32 noundef %2763) #10
  %2765 = icmp ne i32 %2764, 0
  br i1 %2765, label %2766, label %2783

2766:                                             ; preds = %2761
  %2767 = load i32, ptr %57, align 4, !tbaa !5
  %2768 = call ptr @__errno_location() #11
  store i32 %2767, ptr %2768, align 4, !tbaa !5
  %2769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2770 = load i32, ptr @test_count, align 4, !tbaa !5
  %2771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror(i32 noundef %2772, ptr noundef @.str.4)
  %2774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call ptr @s2n_strerror_debug(i32 noundef %2775, ptr noundef @.str.4)
  %2777 = call ptr @__errno_location() #11
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call ptr @strerror(i32 noundef %2778) #10
  %2780 = call ptr @__errno_location() #11
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2769, ptr noundef @.str.2, i32 noundef %2770, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 210, ptr noundef %2773, ptr noundef %2776, ptr noundef %2779, i32 noundef %2781) #10
  br label %2800

2783:                                             ; preds = %2761, %2754
  %2784 = load i32, ptr %57, align 4, !tbaa !5
  %2785 = call ptr @__errno_location() #11
  store i32 %2784, ptr %2785, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = load i32, ptr @test_count, align 4, !tbaa !5
  %2788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror(i32 noundef %2789, ptr noundef @.str.4)
  %2791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @s2n_strerror_debug(i32 noundef %2792, ptr noundef @.str.4)
  %2794 = call ptr @__errno_location() #11
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call ptr @strerror(i32 noundef %2795) #10
  %2797 = call ptr @__errno_location() #11
  %2798 = load i32, ptr %2797, align 4, !tbaa !5
  %2799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2786, ptr noundef @.str.5, i32 noundef %2787, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 210, ptr noundef %2790, ptr noundef %2793, ptr noundef %2796, i32 noundef %2798) #10
  br label %2800

2800:                                             ; preds = %2783, %2766
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

2802:                                             ; preds = %2801
  call void @exit(i32 noundef 1) #12
  unreachable

2803:                                             ; No predecessors!
  br label %2804

2804:                                             ; preds = %2803
  br label %2805

2805:                                             ; preds = %2804, %2746
  br label %2806

2806:                                             ; preds = %2805
  br label %2807

2807:                                             ; preds = %2806
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #10
  %2808 = load i32, ptr %48, align 4, !tbaa !5
  %2809 = sext i32 %2808 to i64
  %2810 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %2809
  %2811 = getelementptr inbounds %struct.anon, ptr %2810, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %58, ptr align 8 %2811, i64 16, i1 false), !tbaa.struct !18
  br label %2812

2812:                                             ; preds = %2807
  %2813 = load i32, ptr @test_count, align 4, !tbaa !5
  %2814 = add nsw i32 %2813, 1
  store i32 %2814, ptr @test_count, align 4, !tbaa !5
  %2815 = load ptr, ptr %55, align 8, !tbaa !9
  %2816 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %2815, ptr noundef @s2n_test_cert_validation_callback, ptr noundef %58)
  %2817 = icmp eq i32 %2816, -1
  br i1 %2817, label %2818, label %2871

2818:                                             ; preds = %2812
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

2820:                                             ; preds = %2819
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2821 = call ptr @__errno_location() #11
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  store i32 %2822, ptr %59, align 4, !tbaa !5
  %2823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2824 = call i32 @s2n_print_stacktrace(ptr noundef %2823)
  %2825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2826 = trunc i8 %2825 to i1
  br i1 %2826, label %2827, label %2849

2827:                                             ; preds = %2820
  %2828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2829 = call i32 @fileno(ptr noundef %2828) #10
  %2830 = call i32 @isatty(i32 noundef %2829) #10
  %2831 = icmp ne i32 %2830, 0
  br i1 %2831, label %2832, label %2849

2832:                                             ; preds = %2827
  %2833 = load i32, ptr %59, align 4, !tbaa !5
  %2834 = call ptr @__errno_location() #11
  store i32 %2833, ptr %2834, align 4, !tbaa !5
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = load i32, ptr @test_count, align 4, !tbaa !5
  %2837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call ptr @s2n_strerror(i32 noundef %2838, ptr noundef @.str.4)
  %2840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = call ptr @s2n_strerror_debug(i32 noundef %2841, ptr noundef @.str.4)
  %2843 = call ptr @__errno_location() #11
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  %2845 = call ptr @strerror(i32 noundef %2844) #10
  %2846 = call ptr @__errno_location() #11
  %2847 = load i32, ptr %2846, align 4, !tbaa !5
  %2848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2835, ptr noundef @.str.2, i32 noundef %2836, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 213, ptr noundef %2839, ptr noundef %2842, ptr noundef %2845, i32 noundef %2847) #10
  br label %2866

2849:                                             ; preds = %2827, %2820
  %2850 = load i32, ptr %59, align 4, !tbaa !5
  %2851 = call ptr @__errno_location() #11
  store i32 %2850, ptr %2851, align 4, !tbaa !5
  %2852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2853 = load i32, ptr @test_count, align 4, !tbaa !5
  %2854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  %2856 = call ptr @s2n_strerror(i32 noundef %2855, ptr noundef @.str.4)
  %2857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror_debug(i32 noundef %2858, ptr noundef @.str.4)
  %2860 = call ptr @__errno_location() #11
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = call ptr @strerror(i32 noundef %2861) #10
  %2863 = call ptr @__errno_location() #11
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2852, ptr noundef @.str.5, i32 noundef %2853, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 213, ptr noundef %2856, ptr noundef %2859, ptr noundef %2862, i32 noundef %2864) #10
  br label %2866

2866:                                             ; preds = %2849, %2832
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2867

2867:                                             ; preds = %2866
  br label %2868

2868:                                             ; preds = %2867
  call void @exit(i32 noundef 1) #12
  unreachable

2869:                                             ; No predecessors!
  br label %2870

2870:                                             ; preds = %2869
  br label %2871

2871:                                             ; preds = %2870, %2812
  br label %2872

2872:                                             ; preds = %2871
  br label %2873

2873:                                             ; preds = %2872
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %2874 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2874, ptr %60, align 8, !tbaa !9
  br label %2875

2875:                                             ; preds = %2873
  %2876 = load i32, ptr @test_count, align 4, !tbaa !5
  %2877 = add nsw i32 %2876, 1
  store i32 %2877, ptr @test_count, align 4, !tbaa !5
  %2878 = load ptr, ptr %60, align 8, !tbaa !9
  %2879 = icmp eq ptr %2878, null
  br i1 %2879, label %2880, label %2933

2880:                                             ; preds = %2875
  br label %2881

2881:                                             ; preds = %2880
  br label %2882

2882:                                             ; preds = %2881
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2883 = call ptr @__errno_location() #11
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  store i32 %2884, ptr %61, align 4, !tbaa !5
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2886 = call i32 @s2n_print_stacktrace(ptr noundef %2885)
  %2887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2888 = trunc i8 %2887 to i1
  br i1 %2888, label %2889, label %2911

2889:                                             ; preds = %2882
  %2890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2891 = call i32 @fileno(ptr noundef %2890) #10
  %2892 = call i32 @isatty(i32 noundef %2891) #10
  %2893 = icmp ne i32 %2892, 0
  br i1 %2893, label %2894, label %2911

2894:                                             ; preds = %2889
  %2895 = load i32, ptr %61, align 4, !tbaa !5
  %2896 = call ptr @__errno_location() #11
  store i32 %2895, ptr %2896, align 4, !tbaa !5
  %2897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2898 = load i32, ptr @test_count, align 4, !tbaa !5
  %2899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @s2n_strerror(i32 noundef %2900, ptr noundef @.str.4)
  %2902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @s2n_strerror_debug(i32 noundef %2903, ptr noundef @.str.4)
  %2905 = call ptr @__errno_location() #11
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @strerror(i32 noundef %2906) #10
  %2908 = call ptr @__errno_location() #11
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2897, ptr noundef @.str.2, i32 noundef %2898, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2901, ptr noundef %2904, ptr noundef %2907, i32 noundef %2909) #10
  br label %2928

2911:                                             ; preds = %2889, %2882
  %2912 = load i32, ptr %61, align 4, !tbaa !5
  %2913 = call ptr @__errno_location() #11
  store i32 %2912, ptr %2913, align 4, !tbaa !5
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = load i32, ptr @test_count, align 4, !tbaa !5
  %2916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call ptr @s2n_strerror(i32 noundef %2917, ptr noundef @.str.4)
  %2919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror_debug(i32 noundef %2920, ptr noundef @.str.4)
  %2922 = call ptr @__errno_location() #11
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call ptr @strerror(i32 noundef %2923) #10
  %2925 = call ptr @__errno_location() #11
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2914, ptr noundef @.str.5, i32 noundef %2915, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2918, ptr noundef %2921, ptr noundef %2924, i32 noundef %2926) #10
  br label %2928

2928:                                             ; preds = %2911, %2894
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2929

2929:                                             ; preds = %2928
  br label %2930

2930:                                             ; preds = %2929
  call void @exit(i32 noundef 1) #12
  unreachable

2931:                                             ; No predecessors!
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

2933:                                             ; preds = %2932, %2875
  br label %2934

2934:                                             ; preds = %2933
  br label %2935

2935:                                             ; preds = %2934
  br label %2936

2936:                                             ; preds = %2935
  %2937 = load i32, ptr @test_count, align 4, !tbaa !5
  %2938 = add nsw i32 %2937, 1
  store i32 %2938, ptr @test_count, align 4, !tbaa !5
  %2939 = load ptr, ptr %60, align 8, !tbaa !9
  %2940 = load ptr, ptr %55, align 8, !tbaa !9
  %2941 = call i32 @s2n_connection_set_config(ptr noundef %2939, ptr noundef %2940)
  %2942 = icmp eq i32 %2941, -1
  br i1 %2942, label %2943, label %2996

2943:                                             ; preds = %2936
  br label %2944

2944:                                             ; preds = %2943
  br label %2945

2945:                                             ; preds = %2944
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2946 = call ptr @__errno_location() #11
  %2947 = load i32, ptr %2946, align 4, !tbaa !5
  store i32 %2947, ptr %62, align 4, !tbaa !5
  %2948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2949 = call i32 @s2n_print_stacktrace(ptr noundef %2948)
  %2950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2951 = trunc i8 %2950 to i1
  br i1 %2951, label %2952, label %2974

2952:                                             ; preds = %2945
  %2953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2954 = call i32 @fileno(ptr noundef %2953) #10
  %2955 = call i32 @isatty(i32 noundef %2954) #10
  %2956 = icmp ne i32 %2955, 0
  br i1 %2956, label %2957, label %2974

2957:                                             ; preds = %2952
  %2958 = load i32, ptr %62, align 4, !tbaa !5
  %2959 = call ptr @__errno_location() #11
  store i32 %2958, ptr %2959, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror(i32 noundef %2963, ptr noundef @.str.4)
  %2965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror_debug(i32 noundef %2966, ptr noundef @.str.4)
  %2968 = call ptr @__errno_location() #11
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @strerror(i32 noundef %2969) #10
  %2971 = call ptr @__errno_location() #11
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2960, ptr noundef @.str.2, i32 noundef %2961, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 217, ptr noundef %2964, ptr noundef %2967, ptr noundef %2970, i32 noundef %2972) #10
  br label %2991

2974:                                             ; preds = %2952, %2945
  %2975 = load i32, ptr %62, align 4, !tbaa !5
  %2976 = call ptr @__errno_location() #11
  store i32 %2975, ptr %2976, align 4, !tbaa !5
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = load i32, ptr @test_count, align 4, !tbaa !5
  %2979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @s2n_strerror(i32 noundef %2980, ptr noundef @.str.4)
  %2982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call ptr @s2n_strerror_debug(i32 noundef %2983, ptr noundef @.str.4)
  %2985 = call ptr @__errno_location() #11
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call ptr @strerror(i32 noundef %2986) #10
  %2988 = call ptr @__errno_location() #11
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  %2990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2977, ptr noundef @.str.5, i32 noundef %2978, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 217, ptr noundef %2981, ptr noundef %2984, ptr noundef %2987, i32 noundef %2989) #10
  br label %2991

2991:                                             ; preds = %2974, %2957
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2992

2992:                                             ; preds = %2991
  br label %2993

2993:                                             ; preds = %2992
  call void @exit(i32 noundef 1) #12
  unreachable

2994:                                             ; No predecessors!
  br label %2995

2995:                                             ; preds = %2994
  br label %2996

2996:                                             ; preds = %2995, %2936
  br label %2997

2997:                                             ; preds = %2996
  br label %2998

2998:                                             ; preds = %2997
  br label %2999

2999:                                             ; preds = %2998
  %3000 = load i32, ptr @test_count, align 4, !tbaa !5
  %3001 = add nsw i32 %3000, 1
  store i32 %3001, ptr @test_count, align 4, !tbaa !5
  %3002 = load ptr, ptr %60, align 8, !tbaa !9
  %3003 = call i32 @s2n_set_server_name(ptr noundef %3002, ptr noundef @.str.35)
  %3004 = icmp eq i32 %3003, -1
  br i1 %3004, label %3005, label %3058

3005:                                             ; preds = %2999
  br label %3006

3006:                                             ; preds = %3005
  br label %3007

3007:                                             ; preds = %3006
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %3008 = call ptr @__errno_location() #11
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  store i32 %3009, ptr %63, align 4, !tbaa !5
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3011 = call i32 @s2n_print_stacktrace(ptr noundef %3010)
  %3012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3013 = trunc i8 %3012 to i1
  br i1 %3013, label %3014, label %3036

3014:                                             ; preds = %3007
  %3015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3016 = call i32 @fileno(ptr noundef %3015) #10
  %3017 = call i32 @isatty(i32 noundef %3016) #10
  %3018 = icmp ne i32 %3017, 0
  br i1 %3018, label %3019, label %3036

3019:                                             ; preds = %3014
  %3020 = load i32, ptr %63, align 4, !tbaa !5
  %3021 = call ptr @__errno_location() #11
  store i32 %3020, ptr %3021, align 4, !tbaa !5
  %3022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3023 = load i32, ptr @test_count, align 4, !tbaa !5
  %3024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @s2n_strerror(i32 noundef %3025, ptr noundef @.str.4)
  %3027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror_debug(i32 noundef %3028, ptr noundef @.str.4)
  %3030 = call ptr @__errno_location() #11
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call ptr @strerror(i32 noundef %3031) #10
  %3033 = call ptr @__errno_location() #11
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3022, ptr noundef @.str.2, i32 noundef %3023, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 218, ptr noundef %3026, ptr noundef %3029, ptr noundef %3032, i32 noundef %3034) #10
  br label %3053

3036:                                             ; preds = %3014, %3007
  %3037 = load i32, ptr %63, align 4, !tbaa !5
  %3038 = call ptr @__errno_location() #11
  store i32 %3037, ptr %3038, align 4, !tbaa !5
  %3039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3040 = load i32, ptr @test_count, align 4, !tbaa !5
  %3041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror(i32 noundef %3042, ptr noundef @.str.4)
  %3044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call ptr @s2n_strerror_debug(i32 noundef %3045, ptr noundef @.str.4)
  %3047 = call ptr @__errno_location() #11
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call ptr @strerror(i32 noundef %3048) #10
  %3050 = call ptr @__errno_location() #11
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3039, ptr noundef @.str.5, i32 noundef %3040, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 218, ptr noundef %3043, ptr noundef %3046, ptr noundef %3049, i32 noundef %3051) #10
  br label %3053

3053:                                             ; preds = %3036, %3019
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

3055:                                             ; preds = %3054
  call void @exit(i32 noundef 1) #12
  unreachable

3056:                                             ; No predecessors!
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

3058:                                             ; preds = %3057, %2999
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059
  call void @llvm.lifetime.start.p0(i64 40, ptr %64) #10
  call void @llvm.memset.p0.i64(ptr align 8 %64, i8 0, i64 40, i1 false)
  br label %3061

3061:                                             ; preds = %3060
  %3062 = load i32, ptr @test_count, align 4, !tbaa !5
  %3063 = add nsw i32 %3062, 1
  store i32 %3063, ptr @test_count, align 4, !tbaa !5
  %3064 = load ptr, ptr %60, align 8, !tbaa !9
  %3065 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %3064, ptr noundef @.str.23, ptr noundef %64)
  %3066 = getelementptr inbounds %struct.s2n_result, ptr %65, i32 0, i32 0
  store i32 %3065, ptr %3066, align 4
  %3067 = getelementptr inbounds %struct.s2n_result, ptr %65, i32 0, i32 0
  %3068 = load i32, ptr %3067, align 4
  %3069 = call zeroext i1 @s2n_result_is_ok(i32 %3068)
  br i1 %3069, label %3123, label %3070

3070:                                             ; preds = %3061
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

3072:                                             ; preds = %3071
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %3073 = call ptr @__errno_location() #11
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  store i32 %3074, ptr %66, align 4, !tbaa !5
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @s2n_print_stacktrace(ptr noundef %3075)
  %3077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3078 = trunc i8 %3077 to i1
  br i1 %3078, label %3079, label %3101

3079:                                             ; preds = %3072
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = call i32 @fileno(ptr noundef %3080) #10
  %3082 = call i32 @isatty(i32 noundef %3081) #10
  %3083 = icmp ne i32 %3082, 0
  br i1 %3083, label %3084, label %3101

3084:                                             ; preds = %3079
  %3085 = load i32, ptr %66, align 4, !tbaa !5
  %3086 = call ptr @__errno_location() #11
  store i32 %3085, ptr %3086, align 4, !tbaa !5
  %3087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3088 = load i32, ptr @test_count, align 4, !tbaa !5
  %3089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror(i32 noundef %3090, ptr noundef @.str.4)
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror_debug(i32 noundef %3093, ptr noundef @.str.4)
  %3095 = call ptr @__errno_location() #11
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @strerror(i32 noundef %3096) #10
  %3098 = call ptr @__errno_location() #11
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3087, ptr noundef @.str.2, i32 noundef %3088, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 221, ptr noundef %3091, ptr noundef %3094, ptr noundef %3097, i32 noundef %3099) #10
  br label %3118

3101:                                             ; preds = %3079, %3072
  %3102 = load i32, ptr %66, align 4, !tbaa !5
  %3103 = call ptr @__errno_location() #11
  store i32 %3102, ptr %3103, align 4, !tbaa !5
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = load i32, ptr @test_count, align 4, !tbaa !5
  %3106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror(i32 noundef %3107, ptr noundef @.str.4)
  %3109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror_debug(i32 noundef %3110, ptr noundef @.str.4)
  %3112 = call ptr @__errno_location() #11
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @strerror(i32 noundef %3113) #10
  %3115 = call ptr @__errno_location() #11
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3104, ptr noundef @.str.5, i32 noundef %3105, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 221, ptr noundef %3108, ptr noundef %3111, ptr noundef %3114, i32 noundef %3116) #10
  br label %3118

3118:                                             ; preds = %3101, %3084
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

3120:                                             ; preds = %3119
  call void @exit(i32 noundef 1) #12
  unreachable

3121:                                             ; No predecessors!
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122, %3061
  br label %3124

3124:                                             ; preds = %3123
  br label %3125

3125:                                             ; preds = %3124
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %3126 = getelementptr inbounds %struct.s2n_stuffer, ptr %64, i32 0, i32 2
  %3127 = load i32, ptr %3126, align 4, !tbaa !20
  %3128 = getelementptr inbounds %struct.s2n_stuffer, ptr %64, i32 0, i32 1
  %3129 = load i32, ptr %3128, align 8, !tbaa !23
  %3130 = sub i32 %3127, %3129
  store i32 %3130, ptr %67, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %3131 = load i32, ptr %67, align 4, !tbaa !5
  %3132 = call ptr @s2n_stuffer_raw_read(ptr noundef %64, i32 noundef %3131)
  store ptr %3132, ptr %68, align 8, !tbaa !9
  br label %3133

3133:                                             ; preds = %3125
  %3134 = load i32, ptr @test_count, align 4, !tbaa !5
  %3135 = add nsw i32 %3134, 1
  store i32 %3135, ptr @test_count, align 4, !tbaa !5
  %3136 = load ptr, ptr %68, align 8, !tbaa !9
  %3137 = icmp eq ptr %3136, null
  br i1 %3137, label %3138, label %3191

3138:                                             ; preds = %3133
  br label %3139

3139:                                             ; preds = %3138
  br label %3140

3140:                                             ; preds = %3139
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %3141 = call ptr @__errno_location() #11
  %3142 = load i32, ptr %3141, align 4, !tbaa !5
  store i32 %3142, ptr %69, align 4, !tbaa !5
  %3143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3144 = call i32 @s2n_print_stacktrace(ptr noundef %3143)
  %3145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3146 = trunc i8 %3145 to i1
  br i1 %3146, label %3147, label %3169

3147:                                             ; preds = %3140
  %3148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3149 = call i32 @fileno(ptr noundef %3148) #10
  %3150 = call i32 @isatty(i32 noundef %3149) #10
  %3151 = icmp ne i32 %3150, 0
  br i1 %3151, label %3152, label %3169

3152:                                             ; preds = %3147
  %3153 = load i32, ptr %69, align 4, !tbaa !5
  %3154 = call ptr @__errno_location() #11
  store i32 %3153, ptr %3154, align 4, !tbaa !5
  %3155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3156 = load i32, ptr @test_count, align 4, !tbaa !5
  %3157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  %3159 = call ptr @s2n_strerror(i32 noundef %3158, ptr noundef @.str.4)
  %3160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call ptr @s2n_strerror_debug(i32 noundef %3161, ptr noundef @.str.4)
  %3163 = call ptr @__errno_location() #11
  %3164 = load i32, ptr %3163, align 4, !tbaa !5
  %3165 = call ptr @strerror(i32 noundef %3164) #10
  %3166 = call ptr @__errno_location() #11
  %3167 = load i32, ptr %3166, align 4, !tbaa !5
  %3168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3155, ptr noundef @.str.2, i32 noundef %3156, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3159, ptr noundef %3162, ptr noundef %3165, i32 noundef %3167) #10
  br label %3186

3169:                                             ; preds = %3147, %3140
  %3170 = load i32, ptr %69, align 4, !tbaa !5
  %3171 = call ptr @__errno_location() #11
  store i32 %3170, ptr %3171, align 4, !tbaa !5
  %3172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3173 = load i32, ptr @test_count, align 4, !tbaa !5
  %3174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror(i32 noundef %3175, ptr noundef @.str.4)
  %3177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call ptr @s2n_strerror_debug(i32 noundef %3178, ptr noundef @.str.4)
  %3180 = call ptr @__errno_location() #11
  %3181 = load i32, ptr %3180, align 4, !tbaa !5
  %3182 = call ptr @strerror(i32 noundef %3181) #10
  %3183 = call ptr @__errno_location() #11
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3172, ptr noundef @.str.5, i32 noundef %3173, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3176, ptr noundef %3179, ptr noundef %3182, i32 noundef %3184) #10
  br label %3186

3186:                                             ; preds = %3169, %3152
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %3187

3187:                                             ; preds = %3186
  br label %3188

3188:                                             ; preds = %3187
  call void @exit(i32 noundef 1) #12
  unreachable

3189:                                             ; No predecessors!
  br label %3190

3190:                                             ; preds = %3189
  br label %3191

3191:                                             ; preds = %3190, %3133
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

3193:                                             ; preds = %3192
  call void @llvm.lifetime.start.p0(i64 48, ptr %70) #10
  call void @llvm.memset.p0.i64(ptr align 8 %70, i8 0, i64 48, i1 false)
  br label %3194

3194:                                             ; preds = %3193
  %3195 = load i32, ptr @test_count, align 4, !tbaa !5
  %3196 = add nsw i32 %3195, 1
  store i32 %3196, ptr @test_count, align 4, !tbaa !5
  %3197 = call i32 @s2n_pkey_zero_init(ptr noundef %70)
  %3198 = icmp eq i32 %3197, -1
  br i1 %3198, label %3199, label %3252

3199:                                             ; preds = %3194
  br label %3200

3200:                                             ; preds = %3199
  br label %3201

3201:                                             ; preds = %3200
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3202 = call ptr @__errno_location() #11
  %3203 = load i32, ptr %3202, align 4, !tbaa !5
  store i32 %3203, ptr %71, align 4, !tbaa !5
  %3204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3205 = call i32 @s2n_print_stacktrace(ptr noundef %3204)
  %3206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3207 = trunc i8 %3206 to i1
  br i1 %3207, label %3208, label %3230

3208:                                             ; preds = %3201
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = call i32 @fileno(ptr noundef %3209) #10
  %3211 = call i32 @isatty(i32 noundef %3210) #10
  %3212 = icmp ne i32 %3211, 0
  br i1 %3212, label %3213, label %3230

3213:                                             ; preds = %3208
  %3214 = load i32, ptr %71, align 4, !tbaa !5
  %3215 = call ptr @__errno_location() #11
  store i32 %3214, ptr %3215, align 4, !tbaa !5
  %3216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3217 = load i32, ptr @test_count, align 4, !tbaa !5
  %3218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call ptr @s2n_strerror(i32 noundef %3219, ptr noundef @.str.4)
  %3221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3222 = load i32, ptr %3221, align 4, !tbaa !5
  %3223 = call ptr @s2n_strerror_debug(i32 noundef %3222, ptr noundef @.str.4)
  %3224 = call ptr @__errno_location() #11
  %3225 = load i32, ptr %3224, align 4, !tbaa !5
  %3226 = call ptr @strerror(i32 noundef %3225) #10
  %3227 = call ptr @__errno_location() #11
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  %3229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3216, ptr noundef @.str.2, i32 noundef %3217, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 227, ptr noundef %3220, ptr noundef %3223, ptr noundef %3226, i32 noundef %3228) #10
  br label %3247

3230:                                             ; preds = %3208, %3201
  %3231 = load i32, ptr %71, align 4, !tbaa !5
  %3232 = call ptr @__errno_location() #11
  store i32 %3231, ptr %3232, align 4, !tbaa !5
  %3233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3234 = load i32, ptr @test_count, align 4, !tbaa !5
  %3235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  %3237 = call ptr @s2n_strerror(i32 noundef %3236, ptr noundef @.str.4)
  %3238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3239 = load i32, ptr %3238, align 4, !tbaa !5
  %3240 = call ptr @s2n_strerror_debug(i32 noundef %3239, ptr noundef @.str.4)
  %3241 = call ptr @__errno_location() #11
  %3242 = load i32, ptr %3241, align 4, !tbaa !5
  %3243 = call ptr @strerror(i32 noundef %3242) #10
  %3244 = call ptr @__errno_location() #11
  %3245 = load i32, ptr %3244, align 4, !tbaa !5
  %3246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3233, ptr noundef @.str.5, i32 noundef %3234, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 227, ptr noundef %3237, ptr noundef %3240, ptr noundef %3243, i32 noundef %3245) #10
  br label %3247

3247:                                             ; preds = %3230, %3213
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3248

3248:                                             ; preds = %3247
  br label %3249

3249:                                             ; preds = %3248
  call void @exit(i32 noundef 1) #12
  unreachable

3250:                                             ; No predecessors!
  br label %3251

3251:                                             ; preds = %3250
  br label %3252

3252:                                             ; preds = %3251, %3194
  br label %3253

3253:                                             ; preds = %3252
  br label %3254

3254:                                             ; preds = %3253
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  store i32 -1, ptr %72, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %3255 = load i32, ptr %48, align 4, !tbaa !5
  %3256 = sext i32 %3255 to i64
  %3257 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %3256
  %3258 = getelementptr inbounds %struct.anon, ptr %3257, i32 0, i32 1
  %3259 = load i32, ptr %3258, align 8, !tbaa !24
  store i32 %3259, ptr %73, align 4, !tbaa !5
  %3260 = load i32, ptr %73, align 4, !tbaa !5
  %3261 = icmp eq i32 %3260, 0
  br i1 %3261, label %3262, label %3330

3262:                                             ; preds = %3254
  br label %3263

3263:                                             ; preds = %3262
  %3264 = load i32, ptr @test_count, align 4, !tbaa !5
  %3265 = add nsw i32 %3264, 1
  store i32 %3265, ptr @test_count, align 4, !tbaa !5
  %3266 = load ptr, ptr %60, align 8, !tbaa !9
  %3267 = load ptr, ptr %68, align 8, !tbaa !9
  %3268 = load i32, ptr %67, align 4, !tbaa !5
  %3269 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %53, ptr noundef %3266, ptr noundef %3267, i32 noundef %3268, ptr noundef %72, ptr noundef %70)
  %3270 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %3269, ptr %3270, align 4
  %3271 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  %3272 = load i32, ptr %3271, align 4
  %3273 = call zeroext i1 @s2n_result_is_ok(i32 %3272)
  br i1 %3273, label %3327, label %3274

3274:                                             ; preds = %3263
  br label %3275

3275:                                             ; preds = %3274
  br label %3276

3276:                                             ; preds = %3275
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %3277 = call ptr @__errno_location() #11
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  store i32 %3278, ptr %75, align 4, !tbaa !5
  %3279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3280 = call i32 @s2n_print_stacktrace(ptr noundef %3279)
  %3281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3282 = trunc i8 %3281 to i1
  br i1 %3282, label %3283, label %3305

3283:                                             ; preds = %3276
  %3284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3285 = call i32 @fileno(ptr noundef %3284) #10
  %3286 = call i32 @isatty(i32 noundef %3285) #10
  %3287 = icmp ne i32 %3286, 0
  br i1 %3287, label %3288, label %3305

3288:                                             ; preds = %3283
  %3289 = load i32, ptr %75, align 4, !tbaa !5
  %3290 = call ptr @__errno_location() #11
  store i32 %3289, ptr %3290, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = load i32, ptr @test_count, align 4, !tbaa !5
  %3293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @s2n_strerror(i32 noundef %3294, ptr noundef @.str.4)
  %3296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror_debug(i32 noundef %3297, ptr noundef @.str.4)
  %3299 = call ptr @__errno_location() #11
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  %3301 = call ptr @strerror(i32 noundef %3300) #10
  %3302 = call ptr @__errno_location() #11
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3291, ptr noundef @.str.2, i32 noundef %3292, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 233, ptr noundef %3295, ptr noundef %3298, ptr noundef %3301, i32 noundef %3303) #10
  br label %3322

3305:                                             ; preds = %3283, %3276
  %3306 = load i32, ptr %75, align 4, !tbaa !5
  %3307 = call ptr @__errno_location() #11
  store i32 %3306, ptr %3307, align 4, !tbaa !5
  %3308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3309 = load i32, ptr @test_count, align 4, !tbaa !5
  %3310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call ptr @s2n_strerror(i32 noundef %3311, ptr noundef @.str.4)
  %3313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror_debug(i32 noundef %3314, ptr noundef @.str.4)
  %3316 = call ptr @__errno_location() #11
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call ptr @strerror(i32 noundef %3317) #10
  %3319 = call ptr @__errno_location() #11
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3308, ptr noundef @.str.5, i32 noundef %3309, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 233, ptr noundef %3312, ptr noundef %3315, ptr noundef %3318, i32 noundef %3320) #10
  br label %3322

3322:                                             ; preds = %3305, %3288
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3323

3323:                                             ; preds = %3322
  br label %3324

3324:                                             ; preds = %3323
  call void @exit(i32 noundef 1) #12
  unreachable

3325:                                             ; No predecessors!
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

3327:                                             ; preds = %3326, %3263
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

3329:                                             ; preds = %3328
  br label %3535

3330:                                             ; preds = %3254
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

3332:                                             ; preds = %3331
  br label %3333

3333:                                             ; preds = %3332
  %3334 = load i32, ptr @test_count, align 4, !tbaa !5
  %3335 = add nsw i32 %3334, 1
  store i32 %3335, ptr @test_count, align 4, !tbaa !5
  %3336 = load ptr, ptr %60, align 8, !tbaa !9
  %3337 = load ptr, ptr %68, align 8, !tbaa !9
  %3338 = load i32, ptr %67, align 4, !tbaa !5
  %3339 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %53, ptr noundef %3336, ptr noundef %3337, i32 noundef %3338, ptr noundef %72, ptr noundef %70)
  %3340 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %3339, ptr %3340, align 4
  %3341 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  %3342 = load i32, ptr %3341, align 4
  %3343 = call zeroext i1 @s2n_result_is_error(i32 %3342)
  br i1 %3343, label %3397, label %3344

3344:                                             ; preds = %3333
  br label %3345

3345:                                             ; preds = %3344
  br label %3346

3346:                                             ; preds = %3345
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3347 = call ptr @__errno_location() #11
  %3348 = load i32, ptr %3347, align 4, !tbaa !5
  store i32 %3348, ptr %77, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = call i32 @s2n_print_stacktrace(ptr noundef %3349)
  %3351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3352 = trunc i8 %3351 to i1
  br i1 %3352, label %3353, label %3375

3353:                                             ; preds = %3346
  %3354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3355 = call i32 @fileno(ptr noundef %3354) #10
  %3356 = call i32 @isatty(i32 noundef %3355) #10
  %3357 = icmp ne i32 %3356, 0
  br i1 %3357, label %3358, label %3375

3358:                                             ; preds = %3353
  %3359 = load i32, ptr %77, align 4, !tbaa !5
  %3360 = call ptr @__errno_location() #11
  store i32 %3359, ptr %3360, align 4, !tbaa !5
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = load i32, ptr @test_count, align 4, !tbaa !5
  %3363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3364 = load i32, ptr %3363, align 4, !tbaa !5
  %3365 = call ptr @s2n_strerror(i32 noundef %3364, ptr noundef @.str.4)
  %3366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  %3368 = call ptr @s2n_strerror_debug(i32 noundef %3367, ptr noundef @.str.4)
  %3369 = call ptr @__errno_location() #11
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @strerror(i32 noundef %3370) #10
  %3372 = call ptr @__errno_location() #11
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3361, ptr noundef @.str.2, i32 noundef %3362, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3365, ptr noundef %3368, ptr noundef %3371, i32 noundef %3373) #10
  br label %3392

3375:                                             ; preds = %3353, %3346
  %3376 = load i32, ptr %77, align 4, !tbaa !5
  %3377 = call ptr @__errno_location() #11
  store i32 %3376, ptr %3377, align 4, !tbaa !5
  %3378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3379 = load i32, ptr @test_count, align 4, !tbaa !5
  %3380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3381 = load i32, ptr %3380, align 4, !tbaa !5
  %3382 = call ptr @s2n_strerror(i32 noundef %3381, ptr noundef @.str.4)
  %3383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3384 = load i32, ptr %3383, align 4, !tbaa !5
  %3385 = call ptr @s2n_strerror_debug(i32 noundef %3384, ptr noundef @.str.4)
  %3386 = call ptr @__errno_location() #11
  %3387 = load i32, ptr %3386, align 4, !tbaa !5
  %3388 = call ptr @strerror(i32 noundef %3387) #10
  %3389 = call ptr @__errno_location() #11
  %3390 = load i32, ptr %3389, align 4, !tbaa !5
  %3391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3378, ptr noundef @.str.5, i32 noundef %3379, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3382, ptr noundef %3385, ptr noundef %3388, i32 noundef %3390) #10
  br label %3392

3392:                                             ; preds = %3375, %3358
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3393

3393:                                             ; preds = %3392
  br label %3394

3394:                                             ; preds = %3393
  call void @exit(i32 noundef 1) #12
  unreachable

3395:                                             ; No predecessors!
  br label %3396

3396:                                             ; preds = %3395
  br label %3397

3397:                                             ; preds = %3396, %3333
  br label %3398

3398:                                             ; preds = %3397
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

3400:                                             ; preds = %3399
  %3401 = load i32, ptr @test_count, align 4, !tbaa !5
  %3402 = add nsw i32 %3401, 1
  store i32 %3402, ptr @test_count, align 4, !tbaa !5
  %3403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3404 = load i32, ptr %3403, align 4, !tbaa !5
  %3405 = load i32, ptr %73, align 4, !tbaa !5
  %3406 = icmp eq i32 %3404, %3405
  br i1 %3406, label %3460, label %3407

3407:                                             ; preds = %3400
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

3409:                                             ; preds = %3408
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  %3410 = call ptr @__errno_location() #11
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  store i32 %3411, ptr %78, align 4, !tbaa !5
  %3412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3413 = call i32 @s2n_print_stacktrace(ptr noundef %3412)
  %3414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3415 = trunc i8 %3414 to i1
  br i1 %3415, label %3416, label %3438

3416:                                             ; preds = %3409
  %3417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3418 = call i32 @fileno(ptr noundef %3417) #10
  %3419 = call i32 @isatty(i32 noundef %3418) #10
  %3420 = icmp ne i32 %3419, 0
  br i1 %3420, label %3421, label %3438

3421:                                             ; preds = %3416
  %3422 = load i32, ptr %78, align 4, !tbaa !5
  %3423 = call ptr @__errno_location() #11
  store i32 %3422, ptr %3423, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = load i32, ptr @test_count, align 4, !tbaa !5
  %3426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call ptr @s2n_strerror(i32 noundef %3427, ptr noundef @.str.4)
  %3429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  %3431 = call ptr @s2n_strerror_debug(i32 noundef %3430, ptr noundef @.str.4)
  %3432 = call ptr @__errno_location() #11
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  %3434 = call ptr @strerror(i32 noundef %3433) #10
  %3435 = call ptr @__errno_location() #11
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3424, ptr noundef @.str.2, i32 noundef %3425, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3428, ptr noundef %3431, ptr noundef %3434, i32 noundef %3436) #10
  br label %3455

3438:                                             ; preds = %3416, %3409
  %3439 = load i32, ptr %78, align 4, !tbaa !5
  %3440 = call ptr @__errno_location() #11
  store i32 %3439, ptr %3440, align 4, !tbaa !5
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = load i32, ptr @test_count, align 4, !tbaa !5
  %3443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror(i32 noundef %3444, ptr noundef @.str.4)
  %3446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = call ptr @s2n_strerror_debug(i32 noundef %3447, ptr noundef @.str.4)
  %3449 = call ptr @__errno_location() #11
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  %3451 = call ptr @strerror(i32 noundef %3450) #10
  %3452 = call ptr @__errno_location() #11
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3441, ptr noundef @.str.5, i32 noundef %3442, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3445, ptr noundef %3448, ptr noundef %3451, i32 noundef %3453) #10
  br label %3455

3455:                                             ; preds = %3438, %3421
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %3456

3456:                                             ; preds = %3455
  br label %3457

3457:                                             ; preds = %3456
  call void @exit(i32 noundef 1) #12
  unreachable

3458:                                             ; No predecessors!
  br label %3459

3459:                                             ; preds = %3458
  br label %3460

3460:                                             ; preds = %3459, %3400
  br label %3461

3461:                                             ; preds = %3460
  br label %3462

3462:                                             ; preds = %3461
  br label %3463

3463:                                             ; preds = %3462
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = add nsw i32 %3464, 1
  store i32 %3465, ptr @test_count, align 4, !tbaa !5
  %3466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  %3468 = call ptr @s2n_strerror_debug(i32 noundef %3467, ptr noundef @.str.4)
  %3469 = icmp eq ptr %3468, null
  br i1 %3469, label %3470, label %3523

3470:                                             ; preds = %3463
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

3472:                                             ; preds = %3471
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3473 = call ptr @__errno_location() #11
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  store i32 %3474, ptr %79, align 4, !tbaa !5
  %3475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3476 = call i32 @s2n_print_stacktrace(ptr noundef %3475)
  %3477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3478 = trunc i8 %3477 to i1
  br i1 %3478, label %3479, label %3501

3479:                                             ; preds = %3472
  %3480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3481 = call i32 @fileno(ptr noundef %3480) #10
  %3482 = call i32 @isatty(i32 noundef %3481) #10
  %3483 = icmp ne i32 %3482, 0
  br i1 %3483, label %3484, label %3501

3484:                                             ; preds = %3479
  %3485 = load i32, ptr %79, align 4, !tbaa !5
  %3486 = call ptr @__errno_location() #11
  store i32 %3485, ptr %3486, align 4, !tbaa !5
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = load i32, ptr @test_count, align 4, !tbaa !5
  %3489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3490 = load i32, ptr %3489, align 4, !tbaa !5
  %3491 = call ptr @s2n_strerror(i32 noundef %3490, ptr noundef @.str.4)
  %3492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3493 = load i32, ptr %3492, align 4, !tbaa !5
  %3494 = call ptr @s2n_strerror_debug(i32 noundef %3493, ptr noundef @.str.4)
  %3495 = call ptr @__errno_location() #11
  %3496 = load i32, ptr %3495, align 4, !tbaa !5
  %3497 = call ptr @strerror(i32 noundef %3496) #10
  %3498 = call ptr @__errno_location() #11
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3487, ptr noundef @.str.2, i32 noundef %3488, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3491, ptr noundef %3494, ptr noundef %3497, i32 noundef %3499) #10
  br label %3518

3501:                                             ; preds = %3479, %3472
  %3502 = load i32, ptr %79, align 4, !tbaa !5
  %3503 = call ptr @__errno_location() #11
  store i32 %3502, ptr %3503, align 4, !tbaa !5
  %3504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3505 = load i32, ptr @test_count, align 4, !tbaa !5
  %3506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3507 = load i32, ptr %3506, align 4, !tbaa !5
  %3508 = call ptr @s2n_strerror(i32 noundef %3507, ptr noundef @.str.4)
  %3509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3510 = load i32, ptr %3509, align 4, !tbaa !5
  %3511 = call ptr @s2n_strerror_debug(i32 noundef %3510, ptr noundef @.str.4)
  %3512 = call ptr @__errno_location() #11
  %3513 = load i32, ptr %3512, align 4, !tbaa !5
  %3514 = call ptr @strerror(i32 noundef %3513) #10
  %3515 = call ptr @__errno_location() #11
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3504, ptr noundef @.str.5, i32 noundef %3505, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3508, ptr noundef %3511, ptr noundef %3514, i32 noundef %3516) #10
  br label %3518

3518:                                             ; preds = %3501, %3484
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3519

3519:                                             ; preds = %3518
  br label %3520

3520:                                             ; preds = %3519
  call void @exit(i32 noundef 1) #12
  unreachable

3521:                                             ; No predecessors!
  br label %3522

3522:                                             ; preds = %3521
  br label %3523

3523:                                             ; preds = %3522, %3463
  br label %3524

3524:                                             ; preds = %3523
  br label %3525

3525:                                             ; preds = %3524
  br label %3526

3526:                                             ; preds = %3525
  br label %3527

3527:                                             ; preds = %3526
  br label %3528

3528:                                             ; preds = %3527
  %3529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3529, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3530 = call ptr @__errno_location() #11
  store i32 0, ptr %3530, align 4, !tbaa !5
  br label %3531

3531:                                             ; preds = %3528
  br label %3532

3532:                                             ; preds = %3531
  br label %3533

3533:                                             ; preds = %3532
  br label %3534

3534:                                             ; preds = %3533
  br label %3535

3535:                                             ; preds = %3534, %3329
  br label %3536

3536:                                             ; preds = %3535
  %3537 = load i32, ptr @test_count, align 4, !tbaa !5
  %3538 = add nsw i32 %3537, 1
  store i32 %3538, ptr @test_count, align 4, !tbaa !5
  %3539 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %58, i32 0, i32 1
  %3540 = load i32, ptr %3539, align 4, !tbaa !27
  %3541 = icmp eq i32 %3540, 1
  br i1 %3541, label %3595, label %3542

3542:                                             ; preds = %3536
  br label %3543

3543:                                             ; preds = %3542
  br label %3544

3544:                                             ; preds = %3543
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %3545 = call ptr @__errno_location() #11
  %3546 = load i32, ptr %3545, align 4, !tbaa !5
  store i32 %3546, ptr %80, align 4, !tbaa !5
  %3547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3548 = call i32 @s2n_print_stacktrace(ptr noundef %3547)
  %3549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3550 = trunc i8 %3549 to i1
  br i1 %3550, label %3551, label %3573

3551:                                             ; preds = %3544
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = call i32 @fileno(ptr noundef %3552) #10
  %3554 = call i32 @isatty(i32 noundef %3553) #10
  %3555 = icmp ne i32 %3554, 0
  br i1 %3555, label %3556, label %3573

3556:                                             ; preds = %3551
  %3557 = load i32, ptr %80, align 4, !tbaa !5
  %3558 = call ptr @__errno_location() #11
  store i32 %3557, ptr %3558, align 4, !tbaa !5
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = load i32, ptr @test_count, align 4, !tbaa !5
  %3561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call ptr @s2n_strerror(i32 noundef %3562, ptr noundef @.str.4)
  %3564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3565 = load i32, ptr %3564, align 4, !tbaa !5
  %3566 = call ptr @s2n_strerror_debug(i32 noundef %3565, ptr noundef @.str.4)
  %3567 = call ptr @__errno_location() #11
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call ptr @strerror(i32 noundef %3568) #10
  %3570 = call ptr @__errno_location() #11
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  %3572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3559, ptr noundef @.str.2, i32 noundef %3560, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 240, ptr noundef %3563, ptr noundef %3566, ptr noundef %3569, i32 noundef %3571) #10
  br label %3590

3573:                                             ; preds = %3551, %3544
  %3574 = load i32, ptr %80, align 4, !tbaa !5
  %3575 = call ptr @__errno_location() #11
  store i32 %3574, ptr %3575, align 4, !tbaa !5
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = load i32, ptr @test_count, align 4, !tbaa !5
  %3578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = call ptr @s2n_strerror(i32 noundef %3579, ptr noundef @.str.4)
  %3581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3582 = load i32, ptr %3581, align 4, !tbaa !5
  %3583 = call ptr @s2n_strerror_debug(i32 noundef %3582, ptr noundef @.str.4)
  %3584 = call ptr @__errno_location() #11
  %3585 = load i32, ptr %3584, align 4, !tbaa !5
  %3586 = call ptr @strerror(i32 noundef %3585) #10
  %3587 = call ptr @__errno_location() #11
  %3588 = load i32, ptr %3587, align 4, !tbaa !5
  %3589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3576, ptr noundef @.str.5, i32 noundef %3577, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 240, ptr noundef %3580, ptr noundef %3583, ptr noundef %3586, i32 noundef %3588) #10
  br label %3590

3590:                                             ; preds = %3573, %3556
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3591

3591:                                             ; preds = %3590
  br label %3592

3592:                                             ; preds = %3591
  call void @exit(i32 noundef 1) #12
  unreachable

3593:                                             ; No predecessors!
  br label %3594

3594:                                             ; preds = %3593
  br label %3595

3595:                                             ; preds = %3594, %3536
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

3597:                                             ; preds = %3596
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  %3598 = call i32 @s2n_pkey_free(ptr noundef %70)
  call void @llvm.lifetime.end.p0(i64 48, ptr %70) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  %3599 = call i32 @s2n_stuffer_free(ptr noundef %64)
  call void @llvm.lifetime.end.p0(i64 40, ptr %64) #10
  %3600 = call i32 @s2n_connection_ptr_free(ptr noundef %60)
  %3601 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3600, ptr %3601, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #10
  %3602 = call i32 @s2n_config_ptr_free(ptr noundef %55)
  %3603 = getelementptr inbounds %struct.s2n_result, ptr %82, i32 0, i32 0
  store i32 %3602, ptr %3603, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  %3604 = call i32 @s2n_x509_validator_wipe(ptr noundef %53)
  call void @llvm.lifetime.end.p0(i64 56, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 12000, ptr %50) #10
  call void @s2n_x509_trust_store_wipe(ptr noundef %49)
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #10
  br label %3605

3605:                                             ; preds = %3597
  %3606 = load i32, ptr %48, align 4, !tbaa !5
  %3607 = add nsw i32 %3606, 1
  store i32 %3607, ptr %48, align 4, !tbaa !5
  br label %2493, !llvm.loop !28

3608:                                             ; preds = %2497
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  store i32 0, ptr %83, align 4, !tbaa !5
  br label %3609

3609:                                             ; preds = %4659, %3608
  %3610 = load i32, ptr %83, align 4, !tbaa !5
  %3611 = sext i32 %3610 to i64
  %3612 = icmp ult i64 %3611, 4
  br i1 %3612, label %3614, label %3613

3613:                                             ; preds = %3609
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %4662

3614:                                             ; preds = %3609
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #10
  call void @llvm.memset.p0.i64(ptr align 8 %84, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef %84)
  call void @llvm.lifetime.start.p0(i64 12000, ptr %85) #10
  call void @llvm.memset.p0.i64(ptr align 16 %85, i8 0, i64 12000, i1 false)
  br label %3615

3615:                                             ; preds = %3614
  %3616 = load i32, ptr @test_count, align 4, !tbaa !5
  %3617 = add nsw i32 %3616, 1
  store i32 %3617, ptr @test_count, align 4, !tbaa !5
  %3618 = getelementptr inbounds [12000 x i8], ptr %85, i64 0, i64 0
  %3619 = call i32 @s2n_read_test_pem(ptr noundef @.str.23, ptr noundef %3618, i64 noundef 12000)
  %3620 = icmp eq i32 %3619, -1
  br i1 %3620, label %3621, label %3674

3621:                                             ; preds = %3615
  br label %3622

3622:                                             ; preds = %3621
  br label %3623

3623:                                             ; preds = %3622
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  %3624 = call ptr @__errno_location() #11
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  store i32 %3625, ptr %86, align 4, !tbaa !5
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = call i32 @s2n_print_stacktrace(ptr noundef %3626)
  %3628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3629 = trunc i8 %3628 to i1
  br i1 %3629, label %3630, label %3652

3630:                                             ; preds = %3623
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = call i32 @fileno(ptr noundef %3631) #10
  %3633 = call i32 @isatty(i32 noundef %3632) #10
  %3634 = icmp ne i32 %3633, 0
  br i1 %3634, label %3635, label %3652

3635:                                             ; preds = %3630
  %3636 = load i32, ptr %86, align 4, !tbaa !5
  %3637 = call ptr @__errno_location() #11
  store i32 %3636, ptr %3637, align 4, !tbaa !5
  %3638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3639 = load i32, ptr @test_count, align 4, !tbaa !5
  %3640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = call ptr @s2n_strerror(i32 noundef %3641, ptr noundef @.str.4)
  %3643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3644 = load i32, ptr %3643, align 4, !tbaa !5
  %3645 = call ptr @s2n_strerror_debug(i32 noundef %3644, ptr noundef @.str.4)
  %3646 = call ptr @__errno_location() #11
  %3647 = load i32, ptr %3646, align 4, !tbaa !5
  %3648 = call ptr @strerror(i32 noundef %3647) #10
  %3649 = call ptr @__errno_location() #11
  %3650 = load i32, ptr %3649, align 4, !tbaa !5
  %3651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3638, ptr noundef @.str.2, i32 noundef %3639, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 249, ptr noundef %3642, ptr noundef %3645, ptr noundef %3648, i32 noundef %3650) #10
  br label %3669

3652:                                             ; preds = %3630, %3623
  %3653 = load i32, ptr %86, align 4, !tbaa !5
  %3654 = call ptr @__errno_location() #11
  store i32 %3653, ptr %3654, align 4, !tbaa !5
  %3655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3656 = load i32, ptr @test_count, align 4, !tbaa !5
  %3657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call ptr @s2n_strerror(i32 noundef %3658, ptr noundef @.str.4)
  %3660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3661 = load i32, ptr %3660, align 4, !tbaa !5
  %3662 = call ptr @s2n_strerror_debug(i32 noundef %3661, ptr noundef @.str.4)
  %3663 = call ptr @__errno_location() #11
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  %3665 = call ptr @strerror(i32 noundef %3664) #10
  %3666 = call ptr @__errno_location() #11
  %3667 = load i32, ptr %3666, align 4, !tbaa !5
  %3668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3655, ptr noundef @.str.5, i32 noundef %3656, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 249, ptr noundef %3659, ptr noundef %3662, ptr noundef %3665, i32 noundef %3667) #10
  br label %3669

3669:                                             ; preds = %3652, %3635
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %3670

3670:                                             ; preds = %3669
  br label %3671

3671:                                             ; preds = %3670
  call void @exit(i32 noundef 1) #12
  unreachable

3672:                                             ; No predecessors!
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673, %3615
  br label %3675

3675:                                             ; preds = %3674
  br label %3676

3676:                                             ; preds = %3675
  br label %3677

3677:                                             ; preds = %3676
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = add nsw i32 %3678, 1
  store i32 %3679, ptr @test_count, align 4, !tbaa !5
  %3680 = getelementptr inbounds [12000 x i8], ptr %85, i64 0, i64 0
  %3681 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef %84, ptr noundef %3680)
  %3682 = icmp eq i32 %3681, -1
  br i1 %3682, label %3683, label %3736

3683:                                             ; preds = %3677
  br label %3684

3684:                                             ; preds = %3683
  br label %3685

3685:                                             ; preds = %3684
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  %3686 = call ptr @__errno_location() #11
  %3687 = load i32, ptr %3686, align 4, !tbaa !5
  store i32 %3687, ptr %87, align 4, !tbaa !5
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = call i32 @s2n_print_stacktrace(ptr noundef %3688)
  %3690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3691 = trunc i8 %3690 to i1
  br i1 %3691, label %3692, label %3714

3692:                                             ; preds = %3685
  %3693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3694 = call i32 @fileno(ptr noundef %3693) #10
  %3695 = call i32 @isatty(i32 noundef %3694) #10
  %3696 = icmp ne i32 %3695, 0
  br i1 %3696, label %3697, label %3714

3697:                                             ; preds = %3692
  %3698 = load i32, ptr %87, align 4, !tbaa !5
  %3699 = call ptr @__errno_location() #11
  store i32 %3698, ptr %3699, align 4, !tbaa !5
  %3700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3701 = load i32, ptr @test_count, align 4, !tbaa !5
  %3702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3703 = load i32, ptr %3702, align 4, !tbaa !5
  %3704 = call ptr @s2n_strerror(i32 noundef %3703, ptr noundef @.str.4)
  %3705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  %3707 = call ptr @s2n_strerror_debug(i32 noundef %3706, ptr noundef @.str.4)
  %3708 = call ptr @__errno_location() #11
  %3709 = load i32, ptr %3708, align 4, !tbaa !5
  %3710 = call ptr @strerror(i32 noundef %3709) #10
  %3711 = call ptr @__errno_location() #11
  %3712 = load i32, ptr %3711, align 4, !tbaa !5
  %3713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3700, ptr noundef @.str.2, i32 noundef %3701, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 250, ptr noundef %3704, ptr noundef %3707, ptr noundef %3710, i32 noundef %3712) #10
  br label %3731

3714:                                             ; preds = %3692, %3685
  %3715 = load i32, ptr %87, align 4, !tbaa !5
  %3716 = call ptr @__errno_location() #11
  store i32 %3715, ptr %3716, align 4, !tbaa !5
  %3717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3718 = load i32, ptr @test_count, align 4, !tbaa !5
  %3719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3720 = load i32, ptr %3719, align 4, !tbaa !5
  %3721 = call ptr @s2n_strerror(i32 noundef %3720, ptr noundef @.str.4)
  %3722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  %3724 = call ptr @s2n_strerror_debug(i32 noundef %3723, ptr noundef @.str.4)
  %3725 = call ptr @__errno_location() #11
  %3726 = load i32, ptr %3725, align 4, !tbaa !5
  %3727 = call ptr @strerror(i32 noundef %3726) #10
  %3728 = call ptr @__errno_location() #11
  %3729 = load i32, ptr %3728, align 4, !tbaa !5
  %3730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3717, ptr noundef @.str.5, i32 noundef %3718, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 250, ptr noundef %3721, ptr noundef %3724, ptr noundef %3727, i32 noundef %3729) #10
  br label %3731

3731:                                             ; preds = %3714, %3697
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %3732

3732:                                             ; preds = %3731
  br label %3733

3733:                                             ; preds = %3732
  call void @exit(i32 noundef 1) #12
  unreachable

3734:                                             ; No predecessors!
  br label %3735

3735:                                             ; preds = %3734
  br label %3736

3736:                                             ; preds = %3735, %3677
  br label %3737

3737:                                             ; preds = %3736
  br label %3738

3738:                                             ; preds = %3737
  call void @llvm.lifetime.start.p0(i64 56, ptr %88) #10
  br label %3739

3739:                                             ; preds = %3738
  %3740 = load i32, ptr @test_count, align 4, !tbaa !5
  %3741 = add nsw i32 %3740, 1
  store i32 %3741, ptr @test_count, align 4, !tbaa !5
  %3742 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef %88)
  %3743 = icmp eq i32 %3742, -1
  br i1 %3743, label %3744, label %3797

3744:                                             ; preds = %3739
  br label %3745

3745:                                             ; preds = %3744
  br label %3746

3746:                                             ; preds = %3745
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %3747 = call ptr @__errno_location() #11
  %3748 = load i32, ptr %3747, align 4, !tbaa !5
  store i32 %3748, ptr %89, align 4, !tbaa !5
  %3749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3750 = call i32 @s2n_print_stacktrace(ptr noundef %3749)
  %3751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3752 = trunc i8 %3751 to i1
  br i1 %3752, label %3753, label %3775

3753:                                             ; preds = %3746
  %3754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3755 = call i32 @fileno(ptr noundef %3754) #10
  %3756 = call i32 @isatty(i32 noundef %3755) #10
  %3757 = icmp ne i32 %3756, 0
  br i1 %3757, label %3758, label %3775

3758:                                             ; preds = %3753
  %3759 = load i32, ptr %89, align 4, !tbaa !5
  %3760 = call ptr @__errno_location() #11
  store i32 %3759, ptr %3760, align 4, !tbaa !5
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = load i32, ptr @test_count, align 4, !tbaa !5
  %3763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call ptr @s2n_strerror(i32 noundef %3764, ptr noundef @.str.4)
  %3766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call ptr @s2n_strerror_debug(i32 noundef %3767, ptr noundef @.str.4)
  %3769 = call ptr @__errno_location() #11
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  %3771 = call ptr @strerror(i32 noundef %3770) #10
  %3772 = call ptr @__errno_location() #11
  %3773 = load i32, ptr %3772, align 4, !tbaa !5
  %3774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3761, ptr noundef @.str.2, i32 noundef %3762, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 254, ptr noundef %3765, ptr noundef %3768, ptr noundef %3771, i32 noundef %3773) #10
  br label %3792

3775:                                             ; preds = %3753, %3746
  %3776 = load i32, ptr %89, align 4, !tbaa !5
  %3777 = call ptr @__errno_location() #11
  store i32 %3776, ptr %3777, align 4, !tbaa !5
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = load i32, ptr @test_count, align 4, !tbaa !5
  %3780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3781 = load i32, ptr %3780, align 4, !tbaa !5
  %3782 = call ptr @s2n_strerror(i32 noundef %3781, ptr noundef @.str.4)
  %3783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror_debug(i32 noundef %3784, ptr noundef @.str.4)
  %3786 = call ptr @__errno_location() #11
  %3787 = load i32, ptr %3786, align 4, !tbaa !5
  %3788 = call ptr @strerror(i32 noundef %3787) #10
  %3789 = call ptr @__errno_location() #11
  %3790 = load i32, ptr %3789, align 4, !tbaa !5
  %3791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3778, ptr noundef @.str.5, i32 noundef %3779, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 254, ptr noundef %3782, ptr noundef %3785, ptr noundef %3788, i32 noundef %3790) #10
  br label %3792

3792:                                             ; preds = %3775, %3758
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

3794:                                             ; preds = %3793
  call void @exit(i32 noundef 1) #12
  unreachable

3795:                                             ; No predecessors!
  br label %3796

3796:                                             ; preds = %3795
  br label %3797

3797:                                             ; preds = %3796, %3739
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #10
  %3800 = call ptr @s2n_config_new()
  store ptr %3800, ptr %90, align 8, !tbaa !9
  br label %3801

3801:                                             ; preds = %3799
  %3802 = load i32, ptr @test_count, align 4, !tbaa !5
  %3803 = add nsw i32 %3802, 1
  store i32 %3803, ptr @test_count, align 4, !tbaa !5
  %3804 = load ptr, ptr %90, align 8, !tbaa !9
  %3805 = icmp eq ptr %3804, null
  br i1 %3805, label %3806, label %3859

3806:                                             ; preds = %3801
  br label %3807

3807:                                             ; preds = %3806
  br label %3808

3808:                                             ; preds = %3807
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %3809 = call ptr @__errno_location() #11
  %3810 = load i32, ptr %3809, align 4, !tbaa !5
  store i32 %3810, ptr %91, align 4, !tbaa !5
  %3811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3812 = call i32 @s2n_print_stacktrace(ptr noundef %3811)
  %3813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3814 = trunc i8 %3813 to i1
  br i1 %3814, label %3815, label %3837

3815:                                             ; preds = %3808
  %3816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3817 = call i32 @fileno(ptr noundef %3816) #10
  %3818 = call i32 @isatty(i32 noundef %3817) #10
  %3819 = icmp ne i32 %3818, 0
  br i1 %3819, label %3820, label %3837

3820:                                             ; preds = %3815
  %3821 = load i32, ptr %91, align 4, !tbaa !5
  %3822 = call ptr @__errno_location() #11
  store i32 %3821, ptr %3822, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = load i32, ptr @test_count, align 4, !tbaa !5
  %3825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror(i32 noundef %3826, ptr noundef @.str.4)
  %3828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror_debug(i32 noundef %3829, ptr noundef @.str.4)
  %3831 = call ptr @__errno_location() #11
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @strerror(i32 noundef %3832) #10
  %3834 = call ptr @__errno_location() #11
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3823, ptr noundef @.str.2, i32 noundef %3824, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 257, ptr noundef %3827, ptr noundef %3830, ptr noundef %3833, i32 noundef %3835) #10
  br label %3854

3837:                                             ; preds = %3815, %3808
  %3838 = load i32, ptr %91, align 4, !tbaa !5
  %3839 = call ptr @__errno_location() #11
  store i32 %3838, ptr %3839, align 4, !tbaa !5
  %3840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3841 = load i32, ptr @test_count, align 4, !tbaa !5
  %3842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call ptr @s2n_strerror(i32 noundef %3843, ptr noundef @.str.4)
  %3845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call ptr @s2n_strerror_debug(i32 noundef %3846, ptr noundef @.str.4)
  %3848 = call ptr @__errno_location() #11
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @strerror(i32 noundef %3849) #10
  %3851 = call ptr @__errno_location() #11
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3840, ptr noundef @.str.5, i32 noundef %3841, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 257, ptr noundef %3844, ptr noundef %3847, ptr noundef %3850, i32 noundef %3852) #10
  br label %3854

3854:                                             ; preds = %3837, %3820
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %3855

3855:                                             ; preds = %3854
  br label %3856

3856:                                             ; preds = %3855
  call void @exit(i32 noundef 1) #12
  unreachable

3857:                                             ; No predecessors!
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

3859:                                             ; preds = %3858, %3801
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860
  br label %3862

3862:                                             ; preds = %3861
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = add nsw i32 %3863, 1
  store i32 %3864, ptr @test_count, align 4, !tbaa !5
  %3865 = load ptr, ptr %90, align 8, !tbaa !9
  %3866 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3865, ptr noundef @.str.30)
  %3867 = icmp eq i32 %3866, -1
  br i1 %3867, label %3868, label %3921

3868:                                             ; preds = %3862
  br label %3869

3869:                                             ; preds = %3868
  br label %3870

3870:                                             ; preds = %3869
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %3871 = call ptr @__errno_location() #11
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  store i32 %3872, ptr %92, align 4, !tbaa !5
  %3873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3874 = call i32 @s2n_print_stacktrace(ptr noundef %3873)
  %3875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3876 = trunc i8 %3875 to i1
  br i1 %3876, label %3877, label %3899

3877:                                             ; preds = %3870
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = call i32 @fileno(ptr noundef %3878) #10
  %3880 = call i32 @isatty(i32 noundef %3879) #10
  %3881 = icmp ne i32 %3880, 0
  br i1 %3881, label %3882, label %3899

3882:                                             ; preds = %3877
  %3883 = load i32, ptr %92, align 4, !tbaa !5
  %3884 = call ptr @__errno_location() #11
  store i32 %3883, ptr %3884, align 4, !tbaa !5
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = load i32, ptr @test_count, align 4, !tbaa !5
  %3887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3888 = load i32, ptr %3887, align 4, !tbaa !5
  %3889 = call ptr @s2n_strerror(i32 noundef %3888, ptr noundef @.str.4)
  %3890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3891 = load i32, ptr %3890, align 4, !tbaa !5
  %3892 = call ptr @s2n_strerror_debug(i32 noundef %3891, ptr noundef @.str.4)
  %3893 = call ptr @__errno_location() #11
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  %3895 = call ptr @strerror(i32 noundef %3894) #10
  %3896 = call ptr @__errno_location() #11
  %3897 = load i32, ptr %3896, align 4, !tbaa !5
  %3898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3885, ptr noundef @.str.2, i32 noundef %3886, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 258, ptr noundef %3889, ptr noundef %3892, ptr noundef %3895, i32 noundef %3897) #10
  br label %3916

3899:                                             ; preds = %3877, %3870
  %3900 = load i32, ptr %92, align 4, !tbaa !5
  %3901 = call ptr @__errno_location() #11
  store i32 %3900, ptr %3901, align 4, !tbaa !5
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @s2n_strerror(i32 noundef %3905, ptr noundef @.str.4)
  %3907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror_debug(i32 noundef %3908, ptr noundef @.str.4)
  %3910 = call ptr @__errno_location() #11
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = call ptr @strerror(i32 noundef %3911) #10
  %3913 = call ptr @__errno_location() #11
  %3914 = load i32, ptr %3913, align 4, !tbaa !5
  %3915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3902, ptr noundef @.str.5, i32 noundef %3903, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 258, ptr noundef %3906, ptr noundef %3909, ptr noundef %3912, i32 noundef %3914) #10
  br label %3916

3916:                                             ; preds = %3899, %3882
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %3917

3917:                                             ; preds = %3916
  br label %3918

3918:                                             ; preds = %3917
  call void @exit(i32 noundef 1) #12
  unreachable

3919:                                             ; No predecessors!
  br label %3920

3920:                                             ; preds = %3919
  br label %3921

3921:                                             ; preds = %3920, %3862
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

3923:                                             ; preds = %3922
  call void @llvm.lifetime.start.p0(i64 16, ptr %93) #10
  %3924 = load i32, ptr %83, align 4, !tbaa !5
  %3925 = sext i32 %3924 to i64
  %3926 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %3925
  %3927 = getelementptr inbounds %struct.anon, ptr %3926, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %93, ptr align 8 %3927, i64 16, i1 false), !tbaa.struct !18
  br label %3928

3928:                                             ; preds = %3923
  %3929 = load i32, ptr @test_count, align 4, !tbaa !5
  %3930 = add nsw i32 %3929, 1
  store i32 %3930, ptr @test_count, align 4, !tbaa !5
  %3931 = load ptr, ptr %90, align 8, !tbaa !9
  %3932 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %3931, ptr noundef @s2n_test_cert_validation_callback, ptr noundef %93)
  %3933 = icmp eq i32 %3932, -1
  br i1 %3933, label %3934, label %3987

3934:                                             ; preds = %3928
  br label %3935

3935:                                             ; preds = %3934
  br label %3936

3936:                                             ; preds = %3935
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %3937 = call ptr @__errno_location() #11
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  store i32 %3938, ptr %94, align 4, !tbaa !5
  %3939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3940 = call i32 @s2n_print_stacktrace(ptr noundef %3939)
  %3941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3942 = trunc i8 %3941 to i1
  br i1 %3942, label %3943, label %3965

3943:                                             ; preds = %3936
  %3944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3945 = call i32 @fileno(ptr noundef %3944) #10
  %3946 = call i32 @isatty(i32 noundef %3945) #10
  %3947 = icmp ne i32 %3946, 0
  br i1 %3947, label %3948, label %3965

3948:                                             ; preds = %3943
  %3949 = load i32, ptr %94, align 4, !tbaa !5
  %3950 = call ptr @__errno_location() #11
  store i32 %3949, ptr %3950, align 4, !tbaa !5
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = load i32, ptr @test_count, align 4, !tbaa !5
  %3953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = call ptr @s2n_strerror(i32 noundef %3954, ptr noundef @.str.4)
  %3956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call ptr @s2n_strerror_debug(i32 noundef %3957, ptr noundef @.str.4)
  %3959 = call ptr @__errno_location() #11
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  %3961 = call ptr @strerror(i32 noundef %3960) #10
  %3962 = call ptr @__errno_location() #11
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3951, ptr noundef @.str.2, i32 noundef %3952, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 261, ptr noundef %3955, ptr noundef %3958, ptr noundef %3961, i32 noundef %3963) #10
  br label %3982

3965:                                             ; preds = %3943, %3936
  %3966 = load i32, ptr %94, align 4, !tbaa !5
  %3967 = call ptr @__errno_location() #11
  store i32 %3966, ptr %3967, align 4, !tbaa !5
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = load i32, ptr @test_count, align 4, !tbaa !5
  %3970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3971 = load i32, ptr %3970, align 4, !tbaa !5
  %3972 = call ptr @s2n_strerror(i32 noundef %3971, ptr noundef @.str.4)
  %3973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @s2n_strerror_debug(i32 noundef %3974, ptr noundef @.str.4)
  %3976 = call ptr @__errno_location() #11
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call ptr @strerror(i32 noundef %3977) #10
  %3979 = call ptr @__errno_location() #11
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3968, ptr noundef @.str.5, i32 noundef %3969, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 261, ptr noundef %3972, ptr noundef %3975, ptr noundef %3978, i32 noundef %3980) #10
  br label %3982

3982:                                             ; preds = %3965, %3948
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %3983

3983:                                             ; preds = %3982
  br label %3984

3984:                                             ; preds = %3983
  call void @exit(i32 noundef 1) #12
  unreachable

3985:                                             ; No predecessors!
  br label %3986

3986:                                             ; preds = %3985
  br label %3987

3987:                                             ; preds = %3986, %3928
  br label %3988

3988:                                             ; preds = %3987
  br label %3989

3989:                                             ; preds = %3988
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #10
  %3990 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3990, ptr %95, align 8, !tbaa !9
  br label %3991

3991:                                             ; preds = %3989
  %3992 = load i32, ptr @test_count, align 4, !tbaa !5
  %3993 = add nsw i32 %3992, 1
  store i32 %3993, ptr @test_count, align 4, !tbaa !5
  %3994 = load ptr, ptr %95, align 8, !tbaa !9
  %3995 = icmp eq ptr %3994, null
  br i1 %3995, label %3996, label %4049

3996:                                             ; preds = %3991
  br label %3997

3997:                                             ; preds = %3996
  br label %3998

3998:                                             ; preds = %3997
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %3999 = call ptr @__errno_location() #11
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  store i32 %4000, ptr %96, align 4, !tbaa !5
  %4001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4002 = call i32 @s2n_print_stacktrace(ptr noundef %4001)
  %4003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4004 = trunc i8 %4003 to i1
  br i1 %4004, label %4005, label %4027

4005:                                             ; preds = %3998
  %4006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4007 = call i32 @fileno(ptr noundef %4006) #10
  %4008 = call i32 @isatty(i32 noundef %4007) #10
  %4009 = icmp ne i32 %4008, 0
  br i1 %4009, label %4010, label %4027

4010:                                             ; preds = %4005
  %4011 = load i32, ptr %96, align 4, !tbaa !5
  %4012 = call ptr @__errno_location() #11
  store i32 %4011, ptr %4012, align 4, !tbaa !5
  %4013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4014 = load i32, ptr @test_count, align 4, !tbaa !5
  %4015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4016 = load i32, ptr %4015, align 4, !tbaa !5
  %4017 = call ptr @s2n_strerror(i32 noundef %4016, ptr noundef @.str.4)
  %4018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4019 = load i32, ptr %4018, align 4, !tbaa !5
  %4020 = call ptr @s2n_strerror_debug(i32 noundef %4019, ptr noundef @.str.4)
  %4021 = call ptr @__errno_location() #11
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  %4023 = call ptr @strerror(i32 noundef %4022) #10
  %4024 = call ptr @__errno_location() #11
  %4025 = load i32, ptr %4024, align 4, !tbaa !5
  %4026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4013, ptr noundef @.str.2, i32 noundef %4014, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 264, ptr noundef %4017, ptr noundef %4020, ptr noundef %4023, i32 noundef %4025) #10
  br label %4044

4027:                                             ; preds = %4005, %3998
  %4028 = load i32, ptr %96, align 4, !tbaa !5
  %4029 = call ptr @__errno_location() #11
  store i32 %4028, ptr %4029, align 4, !tbaa !5
  %4030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4031 = load i32, ptr @test_count, align 4, !tbaa !5
  %4032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call ptr @s2n_strerror(i32 noundef %4033, ptr noundef @.str.4)
  %4035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call ptr @s2n_strerror_debug(i32 noundef %4036, ptr noundef @.str.4)
  %4038 = call ptr @__errno_location() #11
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  %4040 = call ptr @strerror(i32 noundef %4039) #10
  %4041 = call ptr @__errno_location() #11
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4030, ptr noundef @.str.5, i32 noundef %4031, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 264, ptr noundef %4034, ptr noundef %4037, ptr noundef %4040, i32 noundef %4042) #10
  br label %4044

4044:                                             ; preds = %4027, %4010
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4045

4045:                                             ; preds = %4044
  br label %4046

4046:                                             ; preds = %4045
  call void @exit(i32 noundef 1) #12
  unreachable

4047:                                             ; No predecessors!
  br label %4048

4048:                                             ; preds = %4047
  br label %4049

4049:                                             ; preds = %4048, %3991
  br label %4050

4050:                                             ; preds = %4049
  br label %4051

4051:                                             ; preds = %4050
  br label %4052

4052:                                             ; preds = %4051
  %4053 = load i32, ptr @test_count, align 4, !tbaa !5
  %4054 = add nsw i32 %4053, 1
  store i32 %4054, ptr @test_count, align 4, !tbaa !5
  %4055 = load ptr, ptr %95, align 8, !tbaa !9
  %4056 = load ptr, ptr %90, align 8, !tbaa !9
  %4057 = call i32 @s2n_connection_set_config(ptr noundef %4055, ptr noundef %4056)
  %4058 = icmp eq i32 %4057, -1
  br i1 %4058, label %4059, label %4112

4059:                                             ; preds = %4052
  br label %4060

4060:                                             ; preds = %4059
  br label %4061

4061:                                             ; preds = %4060
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  %4062 = call ptr @__errno_location() #11
  %4063 = load i32, ptr %4062, align 4, !tbaa !5
  store i32 %4063, ptr %97, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = call i32 @s2n_print_stacktrace(ptr noundef %4064)
  %4066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4067 = trunc i8 %4066 to i1
  br i1 %4067, label %4068, label %4090

4068:                                             ; preds = %4061
  %4069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4070 = call i32 @fileno(ptr noundef %4069) #10
  %4071 = call i32 @isatty(i32 noundef %4070) #10
  %4072 = icmp ne i32 %4071, 0
  br i1 %4072, label %4073, label %4090

4073:                                             ; preds = %4068
  %4074 = load i32, ptr %97, align 4, !tbaa !5
  %4075 = call ptr @__errno_location() #11
  store i32 %4074, ptr %4075, align 4, !tbaa !5
  %4076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4077 = load i32, ptr @test_count, align 4, !tbaa !5
  %4078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4079 = load i32, ptr %4078, align 4, !tbaa !5
  %4080 = call ptr @s2n_strerror(i32 noundef %4079, ptr noundef @.str.4)
  %4081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4082 = load i32, ptr %4081, align 4, !tbaa !5
  %4083 = call ptr @s2n_strerror_debug(i32 noundef %4082, ptr noundef @.str.4)
  %4084 = call ptr @__errno_location() #11
  %4085 = load i32, ptr %4084, align 4, !tbaa !5
  %4086 = call ptr @strerror(i32 noundef %4085) #10
  %4087 = call ptr @__errno_location() #11
  %4088 = load i32, ptr %4087, align 4, !tbaa !5
  %4089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4076, ptr noundef @.str.2, i32 noundef %4077, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 265, ptr noundef %4080, ptr noundef %4083, ptr noundef %4086, i32 noundef %4088) #10
  br label %4107

4090:                                             ; preds = %4068, %4061
  %4091 = load i32, ptr %97, align 4, !tbaa !5
  %4092 = call ptr @__errno_location() #11
  store i32 %4091, ptr %4092, align 4, !tbaa !5
  %4093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4094 = load i32, ptr @test_count, align 4, !tbaa !5
  %4095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call ptr @s2n_strerror(i32 noundef %4096, ptr noundef @.str.4)
  %4098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  %4100 = call ptr @s2n_strerror_debug(i32 noundef %4099, ptr noundef @.str.4)
  %4101 = call ptr @__errno_location() #11
  %4102 = load i32, ptr %4101, align 4, !tbaa !5
  %4103 = call ptr @strerror(i32 noundef %4102) #10
  %4104 = call ptr @__errno_location() #11
  %4105 = load i32, ptr %4104, align 4, !tbaa !5
  %4106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4093, ptr noundef @.str.5, i32 noundef %4094, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 265, ptr noundef %4097, ptr noundef %4100, ptr noundef %4103, i32 noundef %4105) #10
  br label %4107

4107:                                             ; preds = %4090, %4073
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  br label %4108

4108:                                             ; preds = %4107
  br label %4109

4109:                                             ; preds = %4108
  call void @exit(i32 noundef 1) #12
  unreachable

4110:                                             ; No predecessors!
  br label %4111

4111:                                             ; preds = %4110
  br label %4112

4112:                                             ; preds = %4111, %4052
  br label %4113

4113:                                             ; preds = %4112
  br label %4114

4114:                                             ; preds = %4113
  call void @llvm.lifetime.start.p0(i64 40, ptr %98) #10
  call void @llvm.memset.p0.i64(ptr align 8 %98, i8 0, i64 40, i1 false)
  br label %4115

4115:                                             ; preds = %4114
  %4116 = load i32, ptr @test_count, align 4, !tbaa !5
  %4117 = add nsw i32 %4116, 1
  store i32 %4117, ptr @test_count, align 4, !tbaa !5
  %4118 = load ptr, ptr %95, align 8, !tbaa !9
  %4119 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %4118, ptr noundef @.str.23, ptr noundef %98)
  %4120 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  store i32 %4119, ptr %4120, align 4
  %4121 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  %4122 = load i32, ptr %4121, align 4
  %4123 = call zeroext i1 @s2n_result_is_ok(i32 %4122)
  br i1 %4123, label %4177, label %4124

4124:                                             ; preds = %4115
  br label %4125

4125:                                             ; preds = %4124
  br label %4126

4126:                                             ; preds = %4125
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %4127 = call ptr @__errno_location() #11
  %4128 = load i32, ptr %4127, align 4, !tbaa !5
  store i32 %4128, ptr %100, align 4, !tbaa !5
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = call i32 @s2n_print_stacktrace(ptr noundef %4129)
  %4131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4132 = trunc i8 %4131 to i1
  br i1 %4132, label %4133, label %4155

4133:                                             ; preds = %4126
  %4134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4135 = call i32 @fileno(ptr noundef %4134) #10
  %4136 = call i32 @isatty(i32 noundef %4135) #10
  %4137 = icmp ne i32 %4136, 0
  br i1 %4137, label %4138, label %4155

4138:                                             ; preds = %4133
  %4139 = load i32, ptr %100, align 4, !tbaa !5
  %4140 = call ptr @__errno_location() #11
  store i32 %4139, ptr %4140, align 4, !tbaa !5
  %4141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4142 = load i32, ptr @test_count, align 4, !tbaa !5
  %4143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4144 = load i32, ptr %4143, align 4, !tbaa !5
  %4145 = call ptr @s2n_strerror(i32 noundef %4144, ptr noundef @.str.4)
  %4146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4147 = load i32, ptr %4146, align 4, !tbaa !5
  %4148 = call ptr @s2n_strerror_debug(i32 noundef %4147, ptr noundef @.str.4)
  %4149 = call ptr @__errno_location() #11
  %4150 = load i32, ptr %4149, align 4, !tbaa !5
  %4151 = call ptr @strerror(i32 noundef %4150) #10
  %4152 = call ptr @__errno_location() #11
  %4153 = load i32, ptr %4152, align 4, !tbaa !5
  %4154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4141, ptr noundef @.str.2, i32 noundef %4142, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 268, ptr noundef %4145, ptr noundef %4148, ptr noundef %4151, i32 noundef %4153) #10
  br label %4172

4155:                                             ; preds = %4133, %4126
  %4156 = load i32, ptr %100, align 4, !tbaa !5
  %4157 = call ptr @__errno_location() #11
  store i32 %4156, ptr %4157, align 4, !tbaa !5
  %4158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4159 = load i32, ptr @test_count, align 4, !tbaa !5
  %4160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4161 = load i32, ptr %4160, align 4, !tbaa !5
  %4162 = call ptr @s2n_strerror(i32 noundef %4161, ptr noundef @.str.4)
  %4163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4164 = load i32, ptr %4163, align 4, !tbaa !5
  %4165 = call ptr @s2n_strerror_debug(i32 noundef %4164, ptr noundef @.str.4)
  %4166 = call ptr @__errno_location() #11
  %4167 = load i32, ptr %4166, align 4, !tbaa !5
  %4168 = call ptr @strerror(i32 noundef %4167) #10
  %4169 = call ptr @__errno_location() #11
  %4170 = load i32, ptr %4169, align 4, !tbaa !5
  %4171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4158, ptr noundef @.str.5, i32 noundef %4159, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 268, ptr noundef %4162, ptr noundef %4165, ptr noundef %4168, i32 noundef %4170) #10
  br label %4172

4172:                                             ; preds = %4155, %4138
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %4173

4173:                                             ; preds = %4172
  br label %4174

4174:                                             ; preds = %4173
  call void @exit(i32 noundef 1) #12
  unreachable

4175:                                             ; No predecessors!
  br label %4176

4176:                                             ; preds = %4175
  br label %4177

4177:                                             ; preds = %4176, %4115
  br label %4178

4178:                                             ; preds = %4177
  br label %4179

4179:                                             ; preds = %4178
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  %4180 = getelementptr inbounds %struct.s2n_stuffer, ptr %98, i32 0, i32 2
  %4181 = load i32, ptr %4180, align 4, !tbaa !20
  %4182 = getelementptr inbounds %struct.s2n_stuffer, ptr %98, i32 0, i32 1
  %4183 = load i32, ptr %4182, align 8, !tbaa !23
  %4184 = sub i32 %4181, %4183
  store i32 %4184, ptr %101, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #10
  %4185 = load i32, ptr %101, align 4, !tbaa !5
  %4186 = call ptr @s2n_stuffer_raw_read(ptr noundef %98, i32 noundef %4185)
  store ptr %4186, ptr %102, align 8, !tbaa !9
  br label %4187

4187:                                             ; preds = %4179
  %4188 = load i32, ptr @test_count, align 4, !tbaa !5
  %4189 = add nsw i32 %4188, 1
  store i32 %4189, ptr @test_count, align 4, !tbaa !5
  %4190 = load ptr, ptr %102, align 8, !tbaa !9
  %4191 = icmp eq ptr %4190, null
  br i1 %4191, label %4192, label %4245

4192:                                             ; preds = %4187
  br label %4193

4193:                                             ; preds = %4192
  br label %4194

4194:                                             ; preds = %4193
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  %4195 = call ptr @__errno_location() #11
  %4196 = load i32, ptr %4195, align 4, !tbaa !5
  store i32 %4196, ptr %103, align 4, !tbaa !5
  %4197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4198 = call i32 @s2n_print_stacktrace(ptr noundef %4197)
  %4199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4200 = trunc i8 %4199 to i1
  br i1 %4200, label %4201, label %4223

4201:                                             ; preds = %4194
  %4202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4203 = call i32 @fileno(ptr noundef %4202) #10
  %4204 = call i32 @isatty(i32 noundef %4203) #10
  %4205 = icmp ne i32 %4204, 0
  br i1 %4205, label %4206, label %4223

4206:                                             ; preds = %4201
  %4207 = load i32, ptr %103, align 4, !tbaa !5
  %4208 = call ptr @__errno_location() #11
  store i32 %4207, ptr %4208, align 4, !tbaa !5
  %4209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4210 = load i32, ptr @test_count, align 4, !tbaa !5
  %4211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4212 = load i32, ptr %4211, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror(i32 noundef %4212, ptr noundef @.str.4)
  %4214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @s2n_strerror_debug(i32 noundef %4215, ptr noundef @.str.4)
  %4217 = call ptr @__errno_location() #11
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call ptr @strerror(i32 noundef %4218) #10
  %4220 = call ptr @__errno_location() #11
  %4221 = load i32, ptr %4220, align 4, !tbaa !5
  %4222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4209, ptr noundef @.str.2, i32 noundef %4210, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 271, ptr noundef %4213, ptr noundef %4216, ptr noundef %4219, i32 noundef %4221) #10
  br label %4240

4223:                                             ; preds = %4201, %4194
  %4224 = load i32, ptr %103, align 4, !tbaa !5
  %4225 = call ptr @__errno_location() #11
  store i32 %4224, ptr %4225, align 4, !tbaa !5
  %4226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4227 = load i32, ptr @test_count, align 4, !tbaa !5
  %4228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call ptr @s2n_strerror(i32 noundef %4229, ptr noundef @.str.4)
  %4231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @s2n_strerror_debug(i32 noundef %4232, ptr noundef @.str.4)
  %4234 = call ptr @__errno_location() #11
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @strerror(i32 noundef %4235) #10
  %4237 = call ptr @__errno_location() #11
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4226, ptr noundef @.str.5, i32 noundef %4227, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 271, ptr noundef %4230, ptr noundef %4233, ptr noundef %4236, i32 noundef %4238) #10
  br label %4240

4240:                                             ; preds = %4223, %4206
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %4241

4241:                                             ; preds = %4240
  br label %4242

4242:                                             ; preds = %4241
  call void @exit(i32 noundef 1) #12
  unreachable

4243:                                             ; No predecessors!
  br label %4244

4244:                                             ; preds = %4243
  br label %4245

4245:                                             ; preds = %4244, %4187
  br label %4246

4246:                                             ; preds = %4245
  br label %4247

4247:                                             ; preds = %4246
  call void @llvm.lifetime.start.p0(i64 48, ptr %104) #10
  call void @llvm.memset.p0.i64(ptr align 8 %104, i8 0, i64 48, i1 false)
  br label %4248

4248:                                             ; preds = %4247
  %4249 = load i32, ptr @test_count, align 4, !tbaa !5
  %4250 = add nsw i32 %4249, 1
  store i32 %4250, ptr @test_count, align 4, !tbaa !5
  %4251 = call i32 @s2n_pkey_zero_init(ptr noundef %104)
  %4252 = icmp eq i32 %4251, -1
  br i1 %4252, label %4253, label %4306

4253:                                             ; preds = %4248
  br label %4254

4254:                                             ; preds = %4253
  br label %4255

4255:                                             ; preds = %4254
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %4256 = call ptr @__errno_location() #11
  %4257 = load i32, ptr %4256, align 4, !tbaa !5
  store i32 %4257, ptr %105, align 4, !tbaa !5
  %4258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4259 = call i32 @s2n_print_stacktrace(ptr noundef %4258)
  %4260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4261 = trunc i8 %4260 to i1
  br i1 %4261, label %4262, label %4284

4262:                                             ; preds = %4255
  %4263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4264 = call i32 @fileno(ptr noundef %4263) #10
  %4265 = call i32 @isatty(i32 noundef %4264) #10
  %4266 = icmp ne i32 %4265, 0
  br i1 %4266, label %4267, label %4284

4267:                                             ; preds = %4262
  %4268 = load i32, ptr %105, align 4, !tbaa !5
  %4269 = call ptr @__errno_location() #11
  store i32 %4268, ptr %4269, align 4, !tbaa !5
  %4270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4271 = load i32, ptr @test_count, align 4, !tbaa !5
  %4272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call ptr @s2n_strerror(i32 noundef %4273, ptr noundef @.str.4)
  %4275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call ptr @s2n_strerror_debug(i32 noundef %4276, ptr noundef @.str.4)
  %4278 = call ptr @__errno_location() #11
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @strerror(i32 noundef %4279) #10
  %4281 = call ptr @__errno_location() #11
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4270, ptr noundef @.str.2, i32 noundef %4271, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 274, ptr noundef %4274, ptr noundef %4277, ptr noundef %4280, i32 noundef %4282) #10
  br label %4301

4284:                                             ; preds = %4262, %4255
  %4285 = load i32, ptr %105, align 4, !tbaa !5
  %4286 = call ptr @__errno_location() #11
  store i32 %4285, ptr %4286, align 4, !tbaa !5
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = load i32, ptr @test_count, align 4, !tbaa !5
  %4289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror(i32 noundef %4290, ptr noundef @.str.4)
  %4292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @s2n_strerror_debug(i32 noundef %4293, ptr noundef @.str.4)
  %4295 = call ptr @__errno_location() #11
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @strerror(i32 noundef %4296) #10
  %4298 = call ptr @__errno_location() #11
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4287, ptr noundef @.str.5, i32 noundef %4288, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 274, ptr noundef %4291, ptr noundef %4294, ptr noundef %4297, i32 noundef %4299) #10
  br label %4301

4301:                                             ; preds = %4284, %4267
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4302

4302:                                             ; preds = %4301
  br label %4303

4303:                                             ; preds = %4302
  call void @exit(i32 noundef 1) #12
  unreachable

4304:                                             ; No predecessors!
  br label %4305

4305:                                             ; preds = %4304
  br label %4306

4306:                                             ; preds = %4305, %4248
  br label %4307

4307:                                             ; preds = %4306
  br label %4308

4308:                                             ; preds = %4307
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  store i32 -1, ptr %106, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %4309 = load i32, ptr %83, align 4, !tbaa !5
  %4310 = sext i32 %4309 to i64
  %4311 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %4310
  %4312 = getelementptr inbounds %struct.anon, ptr %4311, i32 0, i32 1
  %4313 = load i32, ptr %4312, align 8, !tbaa !24
  store i32 %4313, ptr %107, align 4, !tbaa !5
  %4314 = load i32, ptr %107, align 4, !tbaa !5
  %4315 = icmp eq i32 %4314, 0
  br i1 %4315, label %4316, label %4384

4316:                                             ; preds = %4308
  br label %4317

4317:                                             ; preds = %4316
  %4318 = load i32, ptr @test_count, align 4, !tbaa !5
  %4319 = add nsw i32 %4318, 1
  store i32 %4319, ptr @test_count, align 4, !tbaa !5
  %4320 = load ptr, ptr %95, align 8, !tbaa !9
  %4321 = load ptr, ptr %102, align 8, !tbaa !9
  %4322 = load i32, ptr %101, align 4, !tbaa !5
  %4323 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %88, ptr noundef %4320, ptr noundef %4321, i32 noundef %4322, ptr noundef %106, ptr noundef %104)
  %4324 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  store i32 %4323, ptr %4324, align 4
  %4325 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  %4326 = load i32, ptr %4325, align 4
  %4327 = call zeroext i1 @s2n_result_is_ok(i32 %4326)
  br i1 %4327, label %4381, label %4328

4328:                                             ; preds = %4317
  br label %4329

4329:                                             ; preds = %4328
  br label %4330

4330:                                             ; preds = %4329
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  %4331 = call ptr @__errno_location() #11
  %4332 = load i32, ptr %4331, align 4, !tbaa !5
  store i32 %4332, ptr %109, align 4, !tbaa !5
  %4333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4334 = call i32 @s2n_print_stacktrace(ptr noundef %4333)
  %4335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4336 = trunc i8 %4335 to i1
  br i1 %4336, label %4337, label %4359

4337:                                             ; preds = %4330
  %4338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4339 = call i32 @fileno(ptr noundef %4338) #10
  %4340 = call i32 @isatty(i32 noundef %4339) #10
  %4341 = icmp ne i32 %4340, 0
  br i1 %4341, label %4342, label %4359

4342:                                             ; preds = %4337
  %4343 = load i32, ptr %109, align 4, !tbaa !5
  %4344 = call ptr @__errno_location() #11
  store i32 %4343, ptr %4344, align 4, !tbaa !5
  %4345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  %4349 = call ptr @s2n_strerror(i32 noundef %4348, ptr noundef @.str.4)
  %4350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror_debug(i32 noundef %4351, ptr noundef @.str.4)
  %4353 = call ptr @__errno_location() #11
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @strerror(i32 noundef %4354) #10
  %4356 = call ptr @__errno_location() #11
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4345, ptr noundef @.str.2, i32 noundef %4346, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 280, ptr noundef %4349, ptr noundef %4352, ptr noundef %4355, i32 noundef %4357) #10
  br label %4376

4359:                                             ; preds = %4337, %4330
  %4360 = load i32, ptr %109, align 4, !tbaa !5
  %4361 = call ptr @__errno_location() #11
  store i32 %4360, ptr %4361, align 4, !tbaa !5
  %4362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4363 = load i32, ptr @test_count, align 4, !tbaa !5
  %4364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4365 = load i32, ptr %4364, align 4, !tbaa !5
  %4366 = call ptr @s2n_strerror(i32 noundef %4365, ptr noundef @.str.4)
  %4367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  %4369 = call ptr @s2n_strerror_debug(i32 noundef %4368, ptr noundef @.str.4)
  %4370 = call ptr @__errno_location() #11
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @strerror(i32 noundef %4371) #10
  %4373 = call ptr @__errno_location() #11
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4362, ptr noundef @.str.5, i32 noundef %4363, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 280, ptr noundef %4366, ptr noundef %4369, ptr noundef %4372, i32 noundef %4374) #10
  br label %4376

4376:                                             ; preds = %4359, %4342
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %4377

4377:                                             ; preds = %4376
  br label %4378

4378:                                             ; preds = %4377
  call void @exit(i32 noundef 1) #12
  unreachable

4379:                                             ; No predecessors!
  br label %4380

4380:                                             ; preds = %4379
  br label %4381

4381:                                             ; preds = %4380, %4317
  br label %4382

4382:                                             ; preds = %4381
  br label %4383

4383:                                             ; preds = %4382
  br label %4589

4384:                                             ; preds = %4308
  br label %4385

4385:                                             ; preds = %4384
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386
  %4388 = load i32, ptr @test_count, align 4, !tbaa !5
  %4389 = add nsw i32 %4388, 1
  store i32 %4389, ptr @test_count, align 4, !tbaa !5
  %4390 = load ptr, ptr %95, align 8, !tbaa !9
  %4391 = load ptr, ptr %102, align 8, !tbaa !9
  %4392 = load i32, ptr %101, align 4, !tbaa !5
  %4393 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef %88, ptr noundef %4390, ptr noundef %4391, i32 noundef %4392, ptr noundef %106, ptr noundef %104)
  %4394 = getelementptr inbounds %struct.s2n_result, ptr %110, i32 0, i32 0
  store i32 %4393, ptr %4394, align 4
  %4395 = getelementptr inbounds %struct.s2n_result, ptr %110, i32 0, i32 0
  %4396 = load i32, ptr %4395, align 4
  %4397 = call zeroext i1 @s2n_result_is_error(i32 %4396)
  br i1 %4397, label %4451, label %4398

4398:                                             ; preds = %4387
  br label %4399

4399:                                             ; preds = %4398
  br label %4400

4400:                                             ; preds = %4399
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  %4401 = call ptr @__errno_location() #11
  %4402 = load i32, ptr %4401, align 4, !tbaa !5
  store i32 %4402, ptr %111, align 4, !tbaa !5
  %4403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4404 = call i32 @s2n_print_stacktrace(ptr noundef %4403)
  %4405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4406 = trunc i8 %4405 to i1
  br i1 %4406, label %4407, label %4429

4407:                                             ; preds = %4400
  %4408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4409 = call i32 @fileno(ptr noundef %4408) #10
  %4410 = call i32 @isatty(i32 noundef %4409) #10
  %4411 = icmp ne i32 %4410, 0
  br i1 %4411, label %4412, label %4429

4412:                                             ; preds = %4407
  %4413 = load i32, ptr %111, align 4, !tbaa !5
  %4414 = call ptr @__errno_location() #11
  store i32 %4413, ptr %4414, align 4, !tbaa !5
  %4415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4416 = load i32, ptr @test_count, align 4, !tbaa !5
  %4417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4418 = load i32, ptr %4417, align 4, !tbaa !5
  %4419 = call ptr @s2n_strerror(i32 noundef %4418, ptr noundef @.str.4)
  %4420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4421 = load i32, ptr %4420, align 4, !tbaa !5
  %4422 = call ptr @s2n_strerror_debug(i32 noundef %4421, ptr noundef @.str.4)
  %4423 = call ptr @__errno_location() #11
  %4424 = load i32, ptr %4423, align 4, !tbaa !5
  %4425 = call ptr @strerror(i32 noundef %4424) #10
  %4426 = call ptr @__errno_location() #11
  %4427 = load i32, ptr %4426, align 4, !tbaa !5
  %4428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4415, ptr noundef @.str.2, i32 noundef %4416, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 284, ptr noundef %4419, ptr noundef %4422, ptr noundef %4425, i32 noundef %4427) #10
  br label %4446

4429:                                             ; preds = %4407, %4400
  %4430 = load i32, ptr %111, align 4, !tbaa !5
  %4431 = call ptr @__errno_location() #11
  store i32 %4430, ptr %4431, align 4, !tbaa !5
  %4432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4433 = load i32, ptr @test_count, align 4, !tbaa !5
  %4434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4435 = load i32, ptr %4434, align 4, !tbaa !5
  %4436 = call ptr @s2n_strerror(i32 noundef %4435, ptr noundef @.str.4)
  %4437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror_debug(i32 noundef %4438, ptr noundef @.str.4)
  %4440 = call ptr @__errno_location() #11
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  %4442 = call ptr @strerror(i32 noundef %4441) #10
  %4443 = call ptr @__errno_location() #11
  %4444 = load i32, ptr %4443, align 4, !tbaa !5
  %4445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4432, ptr noundef @.str.5, i32 noundef %4433, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 284, ptr noundef %4436, ptr noundef %4439, ptr noundef %4442, i32 noundef %4444) #10
  br label %4446

4446:                                             ; preds = %4429, %4412
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %4447

4447:                                             ; preds = %4446
  br label %4448

4448:                                             ; preds = %4447
  call void @exit(i32 noundef 1) #12
  unreachable

4449:                                             ; No predecessors!
  br label %4450

4450:                                             ; preds = %4449
  br label %4451

4451:                                             ; preds = %4450, %4387
  br label %4452

4452:                                             ; preds = %4451
  br label %4453

4453:                                             ; preds = %4452
  br label %4454

4454:                                             ; preds = %4453
  %4455 = load i32, ptr @test_count, align 4, !tbaa !5
  %4456 = add nsw i32 %4455, 1
  store i32 %4456, ptr @test_count, align 4, !tbaa !5
  %4457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  %4459 = load i32, ptr %107, align 4, !tbaa !5
  %4460 = icmp eq i32 %4458, %4459
  br i1 %4460, label %4514, label %4461

4461:                                             ; preds = %4454
  br label %4462

4462:                                             ; preds = %4461
  br label %4463

4463:                                             ; preds = %4462
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #10
  %4464 = call ptr @__errno_location() #11
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  store i32 %4465, ptr %112, align 4, !tbaa !5
  %4466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4467 = call i32 @s2n_print_stacktrace(ptr noundef %4466)
  %4468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4469 = trunc i8 %4468 to i1
  br i1 %4469, label %4470, label %4492

4470:                                             ; preds = %4463
  %4471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4472 = call i32 @fileno(ptr noundef %4471) #10
  %4473 = call i32 @isatty(i32 noundef %4472) #10
  %4474 = icmp ne i32 %4473, 0
  br i1 %4474, label %4475, label %4492

4475:                                             ; preds = %4470
  %4476 = load i32, ptr %112, align 4, !tbaa !5
  %4477 = call ptr @__errno_location() #11
  store i32 %4476, ptr %4477, align 4, !tbaa !5
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = load i32, ptr @test_count, align 4, !tbaa !5
  %4480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror(i32 noundef %4481, ptr noundef @.str.4)
  %4483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @s2n_strerror_debug(i32 noundef %4484, ptr noundef @.str.4)
  %4486 = call ptr @__errno_location() #11
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call ptr @strerror(i32 noundef %4487) #10
  %4489 = call ptr @__errno_location() #11
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  %4491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4478, ptr noundef @.str.2, i32 noundef %4479, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 284, ptr noundef %4482, ptr noundef %4485, ptr noundef %4488, i32 noundef %4490) #10
  br label %4509

4492:                                             ; preds = %4470, %4463
  %4493 = load i32, ptr %112, align 4, !tbaa !5
  %4494 = call ptr @__errno_location() #11
  store i32 %4493, ptr %4494, align 4, !tbaa !5
  %4495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4496 = load i32, ptr @test_count, align 4, !tbaa !5
  %4497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror(i32 noundef %4498, ptr noundef @.str.4)
  %4500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @s2n_strerror_debug(i32 noundef %4501, ptr noundef @.str.4)
  %4503 = call ptr @__errno_location() #11
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call ptr @strerror(i32 noundef %4504) #10
  %4506 = call ptr @__errno_location() #11
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4495, ptr noundef @.str.5, i32 noundef %4496, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 284, ptr noundef %4499, ptr noundef %4502, ptr noundef %4505, i32 noundef %4507) #10
  br label %4509

4509:                                             ; preds = %4492, %4475
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %4510

4510:                                             ; preds = %4509
  br label %4511

4511:                                             ; preds = %4510
  call void @exit(i32 noundef 1) #12
  unreachable

4512:                                             ; No predecessors!
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

4514:                                             ; preds = %4513, %4454
  br label %4515

4515:                                             ; preds = %4514
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

4517:                                             ; preds = %4516
  %4518 = load i32, ptr @test_count, align 4, !tbaa !5
  %4519 = add nsw i32 %4518, 1
  store i32 %4519, ptr @test_count, align 4, !tbaa !5
  %4520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4521 = load i32, ptr %4520, align 4, !tbaa !5
  %4522 = call ptr @s2n_strerror_debug(i32 noundef %4521, ptr noundef @.str.4)
  %4523 = icmp eq ptr %4522, null
  br i1 %4523, label %4524, label %4577

4524:                                             ; preds = %4517
  br label %4525

4525:                                             ; preds = %4524
  br label %4526

4526:                                             ; preds = %4525
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #10
  %4527 = call ptr @__errno_location() #11
  %4528 = load i32, ptr %4527, align 4, !tbaa !5
  store i32 %4528, ptr %113, align 4, !tbaa !5
  %4529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4530 = call i32 @s2n_print_stacktrace(ptr noundef %4529)
  %4531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4532 = trunc i8 %4531 to i1
  br i1 %4532, label %4533, label %4555

4533:                                             ; preds = %4526
  %4534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4535 = call i32 @fileno(ptr noundef %4534) #10
  %4536 = call i32 @isatty(i32 noundef %4535) #10
  %4537 = icmp ne i32 %4536, 0
  br i1 %4537, label %4538, label %4555

4538:                                             ; preds = %4533
  %4539 = load i32, ptr %113, align 4, !tbaa !5
  %4540 = call ptr @__errno_location() #11
  store i32 %4539, ptr %4540, align 4, !tbaa !5
  %4541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4542 = load i32, ptr @test_count, align 4, !tbaa !5
  %4543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4544 = load i32, ptr %4543, align 4, !tbaa !5
  %4545 = call ptr @s2n_strerror(i32 noundef %4544, ptr noundef @.str.4)
  %4546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4547 = load i32, ptr %4546, align 4, !tbaa !5
  %4548 = call ptr @s2n_strerror_debug(i32 noundef %4547, ptr noundef @.str.4)
  %4549 = call ptr @__errno_location() #11
  %4550 = load i32, ptr %4549, align 4, !tbaa !5
  %4551 = call ptr @strerror(i32 noundef %4550) #10
  %4552 = call ptr @__errno_location() #11
  %4553 = load i32, ptr %4552, align 4, !tbaa !5
  %4554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4541, ptr noundef @.str.2, i32 noundef %4542, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 284, ptr noundef %4545, ptr noundef %4548, ptr noundef %4551, i32 noundef %4553) #10
  br label %4572

4555:                                             ; preds = %4533, %4526
  %4556 = load i32, ptr %113, align 4, !tbaa !5
  %4557 = call ptr @__errno_location() #11
  store i32 %4556, ptr %4557, align 4, !tbaa !5
  %4558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4559 = load i32, ptr @test_count, align 4, !tbaa !5
  %4560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4561 = load i32, ptr %4560, align 4, !tbaa !5
  %4562 = call ptr @s2n_strerror(i32 noundef %4561, ptr noundef @.str.4)
  %4563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4564 = load i32, ptr %4563, align 4, !tbaa !5
  %4565 = call ptr @s2n_strerror_debug(i32 noundef %4564, ptr noundef @.str.4)
  %4566 = call ptr @__errno_location() #11
  %4567 = load i32, ptr %4566, align 4, !tbaa !5
  %4568 = call ptr @strerror(i32 noundef %4567) #10
  %4569 = call ptr @__errno_location() #11
  %4570 = load i32, ptr %4569, align 4, !tbaa !5
  %4571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4558, ptr noundef @.str.5, i32 noundef %4559, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 284, ptr noundef %4562, ptr noundef %4565, ptr noundef %4568, i32 noundef %4570) #10
  br label %4572

4572:                                             ; preds = %4555, %4538
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  br label %4573

4573:                                             ; preds = %4572
  br label %4574

4574:                                             ; preds = %4573
  call void @exit(i32 noundef 1) #12
  unreachable

4575:                                             ; No predecessors!
  br label %4576

4576:                                             ; preds = %4575
  br label %4577

4577:                                             ; preds = %4576, %4517
  br label %4578

4578:                                             ; preds = %4577
  br label %4579

4579:                                             ; preds = %4578
  br label %4580

4580:                                             ; preds = %4579
  br label %4581

4581:                                             ; preds = %4580
  br label %4582

4582:                                             ; preds = %4581
  %4583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4583, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4584 = call ptr @__errno_location() #11
  store i32 0, ptr %4584, align 4, !tbaa !5
  br label %4585

4585:                                             ; preds = %4582
  br label %4586

4586:                                             ; preds = %4585
  br label %4587

4587:                                             ; preds = %4586
  br label %4588

4588:                                             ; preds = %4587
  br label %4589

4589:                                             ; preds = %4588, %4383
  br label %4590

4590:                                             ; preds = %4589
  %4591 = load i32, ptr @test_count, align 4, !tbaa !5
  %4592 = add nsw i32 %4591, 1
  store i32 %4592, ptr @test_count, align 4, !tbaa !5
  %4593 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %93, i32 0, i32 1
  %4594 = load i32, ptr %4593, align 4, !tbaa !27
  %4595 = icmp eq i32 %4594, 1
  br i1 %4595, label %4649, label %4596

4596:                                             ; preds = %4590
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

4598:                                             ; preds = %4597
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #10
  %4599 = call ptr @__errno_location() #11
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  store i32 %4600, ptr %114, align 4, !tbaa !5
  %4601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4602 = call i32 @s2n_print_stacktrace(ptr noundef %4601)
  %4603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4604 = trunc i8 %4603 to i1
  br i1 %4604, label %4605, label %4627

4605:                                             ; preds = %4598
  %4606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4607 = call i32 @fileno(ptr noundef %4606) #10
  %4608 = call i32 @isatty(i32 noundef %4607) #10
  %4609 = icmp ne i32 %4608, 0
  br i1 %4609, label %4610, label %4627

4610:                                             ; preds = %4605
  %4611 = load i32, ptr %114, align 4, !tbaa !5
  %4612 = call ptr @__errno_location() #11
  store i32 %4611, ptr %4612, align 4, !tbaa !5
  %4613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4614 = load i32, ptr @test_count, align 4, !tbaa !5
  %4615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4616 = load i32, ptr %4615, align 4, !tbaa !5
  %4617 = call ptr @s2n_strerror(i32 noundef %4616, ptr noundef @.str.4)
  %4618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call ptr @s2n_strerror_debug(i32 noundef %4619, ptr noundef @.str.4)
  %4621 = call ptr @__errno_location() #11
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call ptr @strerror(i32 noundef %4622) #10
  %4624 = call ptr @__errno_location() #11
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4613, ptr noundef @.str.2, i32 noundef %4614, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 287, ptr noundef %4617, ptr noundef %4620, ptr noundef %4623, i32 noundef %4625) #10
  br label %4644

4627:                                             ; preds = %4605, %4598
  %4628 = load i32, ptr %114, align 4, !tbaa !5
  %4629 = call ptr @__errno_location() #11
  store i32 %4628, ptr %4629, align 4, !tbaa !5
  %4630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4631 = load i32, ptr @test_count, align 4, !tbaa !5
  %4632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4633 = load i32, ptr %4632, align 4, !tbaa !5
  %4634 = call ptr @s2n_strerror(i32 noundef %4633, ptr noundef @.str.4)
  %4635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4636 = load i32, ptr %4635, align 4, !tbaa !5
  %4637 = call ptr @s2n_strerror_debug(i32 noundef %4636, ptr noundef @.str.4)
  %4638 = call ptr @__errno_location() #11
  %4639 = load i32, ptr %4638, align 4, !tbaa !5
  %4640 = call ptr @strerror(i32 noundef %4639) #10
  %4641 = call ptr @__errno_location() #11
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  %4643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4630, ptr noundef @.str.5, i32 noundef %4631, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 287, ptr noundef %4634, ptr noundef %4637, ptr noundef %4640, i32 noundef %4642) #10
  br label %4644

4644:                                             ; preds = %4627, %4610
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %4645

4645:                                             ; preds = %4644
  br label %4646

4646:                                             ; preds = %4645
  call void @exit(i32 noundef 1) #12
  unreachable

4647:                                             ; No predecessors!
  br label %4648

4648:                                             ; preds = %4647
  br label %4649

4649:                                             ; preds = %4648, %4590
  br label %4650

4650:                                             ; preds = %4649
  br label %4651

4651:                                             ; preds = %4650
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  %4652 = call i32 @s2n_pkey_free(ptr noundef %104)
  call void @llvm.lifetime.end.p0(i64 48, ptr %104) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  %4653 = call i32 @s2n_stuffer_free(ptr noundef %98)
  call void @llvm.lifetime.end.p0(i64 40, ptr %98) #10
  %4654 = call i32 @s2n_connection_ptr_free(ptr noundef %95)
  %4655 = getelementptr inbounds %struct.s2n_result, ptr %115, i32 0, i32 0
  store i32 %4654, ptr %4655, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #10
  %4656 = call i32 @s2n_config_ptr_free(ptr noundef %90)
  %4657 = getelementptr inbounds %struct.s2n_result, ptr %116, i32 0, i32 0
  store i32 %4656, ptr %4657, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #10
  %4658 = call i32 @s2n_x509_validator_wipe(ptr noundef %88)
  call void @llvm.lifetime.end.p0(i64 56, ptr %88) #10
  call void @llvm.lifetime.end.p0(i64 12000, ptr %85) #10
  call void @s2n_x509_trust_store_wipe(ptr noundef %84)
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #10
  br label %4659

4659:                                             ; preds = %4651
  %4660 = load i32, ptr %83, align 4, !tbaa !5
  %4661 = add nsw i32 %4660, 1
  store i32 %4661, ptr %83, align 4, !tbaa !5
  br label %3609, !llvm.loop !29

4662:                                             ; preds = %3613
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  store i32 0, ptr %117, align 4, !tbaa !5
  br label %4663

4663:                                             ; preds = %5885, %4662
  %4664 = load i32, ptr %117, align 4, !tbaa !5
  %4665 = sext i32 %4664 to i64
  %4666 = icmp ult i64 %4665, 4
  br i1 %4666, label %4668, label %4667

4667:                                             ; preds = %4663
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %5888

4668:                                             ; preds = %4663
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  %4669 = call ptr @s2n_config_new()
  store ptr %4669, ptr %118, align 8, !tbaa !9
  br label %4670

4670:                                             ; preds = %4668
  %4671 = load i32, ptr @test_count, align 4, !tbaa !5
  %4672 = add nsw i32 %4671, 1
  store i32 %4672, ptr @test_count, align 4, !tbaa !5
  %4673 = load ptr, ptr %118, align 8, !tbaa !9
  %4674 = icmp eq ptr %4673, null
  br i1 %4674, label %4675, label %4728

4675:                                             ; preds = %4670
  br label %4676

4676:                                             ; preds = %4675
  br label %4677

4677:                                             ; preds = %4676
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %4678 = call ptr @__errno_location() #11
  %4679 = load i32, ptr %4678, align 4, !tbaa !5
  store i32 %4679, ptr %119, align 4, !tbaa !5
  %4680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4681 = call i32 @s2n_print_stacktrace(ptr noundef %4680)
  %4682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4683 = trunc i8 %4682 to i1
  br i1 %4683, label %4684, label %4706

4684:                                             ; preds = %4677
  %4685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4686 = call i32 @fileno(ptr noundef %4685) #10
  %4687 = call i32 @isatty(i32 noundef %4686) #10
  %4688 = icmp ne i32 %4687, 0
  br i1 %4688, label %4689, label %4706

4689:                                             ; preds = %4684
  %4690 = load i32, ptr %119, align 4, !tbaa !5
  %4691 = call ptr @__errno_location() #11
  store i32 %4690, ptr %4691, align 4, !tbaa !5
  %4692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4693 = load i32, ptr @test_count, align 4, !tbaa !5
  %4694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4695 = load i32, ptr %4694, align 4, !tbaa !5
  %4696 = call ptr @s2n_strerror(i32 noundef %4695, ptr noundef @.str.4)
  %4697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4698 = load i32, ptr %4697, align 4, !tbaa !5
  %4699 = call ptr @s2n_strerror_debug(i32 noundef %4698, ptr noundef @.str.4)
  %4700 = call ptr @__errno_location() #11
  %4701 = load i32, ptr %4700, align 4, !tbaa !5
  %4702 = call ptr @strerror(i32 noundef %4701) #10
  %4703 = call ptr @__errno_location() #11
  %4704 = load i32, ptr %4703, align 4, !tbaa !5
  %4705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4692, ptr noundef @.str.2, i32 noundef %4693, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 293, ptr noundef %4696, ptr noundef %4699, ptr noundef %4702, i32 noundef %4704) #10
  br label %4723

4706:                                             ; preds = %4684, %4677
  %4707 = load i32, ptr %119, align 4, !tbaa !5
  %4708 = call ptr @__errno_location() #11
  store i32 %4707, ptr %4708, align 4, !tbaa !5
  %4709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4710 = load i32, ptr @test_count, align 4, !tbaa !5
  %4711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4712 = load i32, ptr %4711, align 4, !tbaa !5
  %4713 = call ptr @s2n_strerror(i32 noundef %4712, ptr noundef @.str.4)
  %4714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4715 = load i32, ptr %4714, align 4, !tbaa !5
  %4716 = call ptr @s2n_strerror_debug(i32 noundef %4715, ptr noundef @.str.4)
  %4717 = call ptr @__errno_location() #11
  %4718 = load i32, ptr %4717, align 4, !tbaa !5
  %4719 = call ptr @strerror(i32 noundef %4718) #10
  %4720 = call ptr @__errno_location() #11
  %4721 = load i32, ptr %4720, align 4, !tbaa !5
  %4722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4709, ptr noundef @.str.5, i32 noundef %4710, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 293, ptr noundef %4713, ptr noundef %4716, ptr noundef %4719, i32 noundef %4721) #10
  br label %4723

4723:                                             ; preds = %4706, %4689
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %4724

4724:                                             ; preds = %4723
  br label %4725

4725:                                             ; preds = %4724
  call void @exit(i32 noundef 1) #12
  unreachable

4726:                                             ; No predecessors!
  br label %4727

4727:                                             ; preds = %4726
  br label %4728

4728:                                             ; preds = %4727, %4670
  br label %4729

4729:                                             ; preds = %4728
  br label %4730

4730:                                             ; preds = %4729
  br label %4731

4731:                                             ; preds = %4730
  %4732 = load i32, ptr @test_count, align 4, !tbaa !5
  %4733 = add nsw i32 %4732, 1
  store i32 %4733, ptr @test_count, align 4, !tbaa !5
  %4734 = load ptr, ptr %118, align 8, !tbaa !9
  %4735 = load ptr, ptr %45, align 8, !tbaa !9
  %4736 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4734, ptr noundef %4735)
  %4737 = icmp eq i32 %4736, -1
  br i1 %4737, label %4738, label %4791

4738:                                             ; preds = %4731
  br label %4739

4739:                                             ; preds = %4738
  br label %4740

4740:                                             ; preds = %4739
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %4741 = call ptr @__errno_location() #11
  %4742 = load i32, ptr %4741, align 4, !tbaa !5
  store i32 %4742, ptr %120, align 4, !tbaa !5
  %4743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4744 = call i32 @s2n_print_stacktrace(ptr noundef %4743)
  %4745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4746 = trunc i8 %4745 to i1
  br i1 %4746, label %4747, label %4769

4747:                                             ; preds = %4740
  %4748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4749 = call i32 @fileno(ptr noundef %4748) #10
  %4750 = call i32 @isatty(i32 noundef %4749) #10
  %4751 = icmp ne i32 %4750, 0
  br i1 %4751, label %4752, label %4769

4752:                                             ; preds = %4747
  %4753 = load i32, ptr %120, align 4, !tbaa !5
  %4754 = call ptr @__errno_location() #11
  store i32 %4753, ptr %4754, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = load i32, ptr @test_count, align 4, !tbaa !5
  %4757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4758 = load i32, ptr %4757, align 4, !tbaa !5
  %4759 = call ptr @s2n_strerror(i32 noundef %4758, ptr noundef @.str.4)
  %4760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = call ptr @s2n_strerror_debug(i32 noundef %4761, ptr noundef @.str.4)
  %4763 = call ptr @__errno_location() #11
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @strerror(i32 noundef %4764) #10
  %4766 = call ptr @__errno_location() #11
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4755, ptr noundef @.str.2, i32 noundef %4756, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 294, ptr noundef %4759, ptr noundef %4762, ptr noundef %4765, i32 noundef %4767) #10
  br label %4786

4769:                                             ; preds = %4747, %4740
  %4770 = load i32, ptr %120, align 4, !tbaa !5
  %4771 = call ptr @__errno_location() #11
  store i32 %4770, ptr %4771, align 4, !tbaa !5
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = load i32, ptr @test_count, align 4, !tbaa !5
  %4774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call ptr @s2n_strerror(i32 noundef %4775, ptr noundef @.str.4)
  %4777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call ptr @s2n_strerror_debug(i32 noundef %4778, ptr noundef @.str.4)
  %4780 = call ptr @__errno_location() #11
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call ptr @strerror(i32 noundef %4781) #10
  %4783 = call ptr @__errno_location() #11
  %4784 = load i32, ptr %4783, align 4, !tbaa !5
  %4785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4772, ptr noundef @.str.5, i32 noundef %4773, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 294, ptr noundef %4776, ptr noundef %4779, ptr noundef %4782, i32 noundef %4784) #10
  br label %4786

4786:                                             ; preds = %4769, %4752
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %4787

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787
  call void @exit(i32 noundef 1) #12
  unreachable

4789:                                             ; No predecessors!
  br label %4790

4790:                                             ; preds = %4789
  br label %4791

4791:                                             ; preds = %4790, %4731
  br label %4792

4792:                                             ; preds = %4791
  br label %4793

4793:                                             ; preds = %4792
  br label %4794

4794:                                             ; preds = %4793
  %4795 = load i32, ptr @test_count, align 4, !tbaa !5
  %4796 = add nsw i32 %4795, 1
  store i32 %4796, ptr @test_count, align 4, !tbaa !5
  %4797 = load ptr, ptr %118, align 8, !tbaa !9
  %4798 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %4797, ptr noundef @.str.23, ptr noundef null)
  %4799 = icmp eq i32 %4798, -1
  br i1 %4799, label %4800, label %4853

4800:                                             ; preds = %4794
  br label %4801

4801:                                             ; preds = %4800
  br label %4802

4802:                                             ; preds = %4801
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %4803 = call ptr @__errno_location() #11
  %4804 = load i32, ptr %4803, align 4, !tbaa !5
  store i32 %4804, ptr %121, align 4, !tbaa !5
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = call i32 @s2n_print_stacktrace(ptr noundef %4805)
  %4807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4808 = trunc i8 %4807 to i1
  br i1 %4808, label %4809, label %4831

4809:                                             ; preds = %4802
  %4810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4811 = call i32 @fileno(ptr noundef %4810) #10
  %4812 = call i32 @isatty(i32 noundef %4811) #10
  %4813 = icmp ne i32 %4812, 0
  br i1 %4813, label %4814, label %4831

4814:                                             ; preds = %4809
  %4815 = load i32, ptr %121, align 4, !tbaa !5
  %4816 = call ptr @__errno_location() #11
  store i32 %4815, ptr %4816, align 4, !tbaa !5
  %4817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4818 = load i32, ptr @test_count, align 4, !tbaa !5
  %4819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @s2n_strerror(i32 noundef %4820, ptr noundef @.str.4)
  %4822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call ptr @s2n_strerror_debug(i32 noundef %4823, ptr noundef @.str.4)
  %4825 = call ptr @__errno_location() #11
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call ptr @strerror(i32 noundef %4826) #10
  %4828 = call ptr @__errno_location() #11
  %4829 = load i32, ptr %4828, align 4, !tbaa !5
  %4830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4817, ptr noundef @.str.2, i32 noundef %4818, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 295, ptr noundef %4821, ptr noundef %4824, ptr noundef %4827, i32 noundef %4829) #10
  br label %4848

4831:                                             ; preds = %4809, %4802
  %4832 = load i32, ptr %121, align 4, !tbaa !5
  %4833 = call ptr @__errno_location() #11
  store i32 %4832, ptr %4833, align 4, !tbaa !5
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = load i32, ptr @test_count, align 4, !tbaa !5
  %4836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4837 = load i32, ptr %4836, align 4, !tbaa !5
  %4838 = call ptr @s2n_strerror(i32 noundef %4837, ptr noundef @.str.4)
  %4839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4840 = load i32, ptr %4839, align 4, !tbaa !5
  %4841 = call ptr @s2n_strerror_debug(i32 noundef %4840, ptr noundef @.str.4)
  %4842 = call ptr @__errno_location() #11
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  %4844 = call ptr @strerror(i32 noundef %4843) #10
  %4845 = call ptr @__errno_location() #11
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  %4847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4834, ptr noundef @.str.5, i32 noundef %4835, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 295, ptr noundef %4838, ptr noundef %4841, ptr noundef %4844, i32 noundef %4846) #10
  br label %4848

4848:                                             ; preds = %4831, %4814
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %4849

4849:                                             ; preds = %4848
  br label %4850

4850:                                             ; preds = %4849
  call void @exit(i32 noundef 1) #12
  unreachable

4851:                                             ; No predecessors!
  br label %4852

4852:                                             ; preds = %4851
  br label %4853

4853:                                             ; preds = %4852, %4794
  br label %4854

4854:                                             ; preds = %4853
  br label %4855

4855:                                             ; preds = %4854
  br label %4856

4856:                                             ; preds = %4855
  %4857 = load i32, ptr @test_count, align 4, !tbaa !5
  %4858 = add nsw i32 %4857, 1
  store i32 %4858, ptr @test_count, align 4, !tbaa !5
  %4859 = load ptr, ptr %118, align 8, !tbaa !9
  %4860 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %4859, ptr noundef @.str.30)
  %4861 = icmp eq i32 %4860, -1
  br i1 %4861, label %4862, label %4915

4862:                                             ; preds = %4856
  br label %4863

4863:                                             ; preds = %4862
  br label %4864

4864:                                             ; preds = %4863
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #10
  %4865 = call ptr @__errno_location() #11
  %4866 = load i32, ptr %4865, align 4, !tbaa !5
  store i32 %4866, ptr %122, align 4, !tbaa !5
  %4867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4868 = call i32 @s2n_print_stacktrace(ptr noundef %4867)
  %4869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4870 = trunc i8 %4869 to i1
  br i1 %4870, label %4871, label %4893

4871:                                             ; preds = %4864
  %4872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4873 = call i32 @fileno(ptr noundef %4872) #10
  %4874 = call i32 @isatty(i32 noundef %4873) #10
  %4875 = icmp ne i32 %4874, 0
  br i1 %4875, label %4876, label %4893

4876:                                             ; preds = %4871
  %4877 = load i32, ptr %122, align 4, !tbaa !5
  %4878 = call ptr @__errno_location() #11
  store i32 %4877, ptr %4878, align 4, !tbaa !5
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = load i32, ptr @test_count, align 4, !tbaa !5
  %4881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call ptr @s2n_strerror(i32 noundef %4882, ptr noundef @.str.4)
  %4884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4885 = load i32, ptr %4884, align 4, !tbaa !5
  %4886 = call ptr @s2n_strerror_debug(i32 noundef %4885, ptr noundef @.str.4)
  %4887 = call ptr @__errno_location() #11
  %4888 = load i32, ptr %4887, align 4, !tbaa !5
  %4889 = call ptr @strerror(i32 noundef %4888) #10
  %4890 = call ptr @__errno_location() #11
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  %4892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4879, ptr noundef @.str.2, i32 noundef %4880, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 296, ptr noundef %4883, ptr noundef %4886, ptr noundef %4889, i32 noundef %4891) #10
  br label %4910

4893:                                             ; preds = %4871, %4864
  %4894 = load i32, ptr %122, align 4, !tbaa !5
  %4895 = call ptr @__errno_location() #11
  store i32 %4894, ptr %4895, align 4, !tbaa !5
  %4896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4897 = load i32, ptr @test_count, align 4, !tbaa !5
  %4898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4899 = load i32, ptr %4898, align 4, !tbaa !5
  %4900 = call ptr @s2n_strerror(i32 noundef %4899, ptr noundef @.str.4)
  %4901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4902 = load i32, ptr %4901, align 4, !tbaa !5
  %4903 = call ptr @s2n_strerror_debug(i32 noundef %4902, ptr noundef @.str.4)
  %4904 = call ptr @__errno_location() #11
  %4905 = load i32, ptr %4904, align 4, !tbaa !5
  %4906 = call ptr @strerror(i32 noundef %4905) #10
  %4907 = call ptr @__errno_location() #11
  %4908 = load i32, ptr %4907, align 4, !tbaa !5
  %4909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4896, ptr noundef @.str.5, i32 noundef %4897, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 296, ptr noundef %4900, ptr noundef %4903, ptr noundef %4906, i32 noundef %4908) #10
  br label %4910

4910:                                             ; preds = %4893, %4876
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %4911

4911:                                             ; preds = %4910
  br label %4912

4912:                                             ; preds = %4911
  call void @exit(i32 noundef 1) #12
  unreachable

4913:                                             ; No predecessors!
  br label %4914

4914:                                             ; preds = %4913
  br label %4915

4915:                                             ; preds = %4914, %4856
  br label %4916

4916:                                             ; preds = %4915
  br label %4917

4917:                                             ; preds = %4916
  call void @llvm.lifetime.start.p0(i64 16, ptr %123) #10
  %4918 = load i32, ptr %117, align 4, !tbaa !5
  %4919 = sext i32 %4918 to i64
  %4920 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %4919
  %4921 = getelementptr inbounds %struct.anon, ptr %4920, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %123, ptr align 8 %4921, i64 16, i1 false), !tbaa.struct !18
  br label %4922

4922:                                             ; preds = %4917
  %4923 = load i32, ptr @test_count, align 4, !tbaa !5
  %4924 = add nsw i32 %4923, 1
  store i32 %4924, ptr @test_count, align 4, !tbaa !5
  %4925 = load ptr, ptr %118, align 8, !tbaa !9
  %4926 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %4925, ptr noundef @s2n_test_cert_validation_callback_self_talk, ptr noundef %123)
  %4927 = icmp eq i32 %4926, -1
  br i1 %4927, label %4928, label %4981

4928:                                             ; preds = %4922
  br label %4929

4929:                                             ; preds = %4928
  br label %4930

4930:                                             ; preds = %4929
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  %4931 = call ptr @__errno_location() #11
  %4932 = load i32, ptr %4931, align 4, !tbaa !5
  store i32 %4932, ptr %124, align 4, !tbaa !5
  %4933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4934 = call i32 @s2n_print_stacktrace(ptr noundef %4933)
  %4935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4936 = trunc i8 %4935 to i1
  br i1 %4936, label %4937, label %4959

4937:                                             ; preds = %4930
  %4938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4939 = call i32 @fileno(ptr noundef %4938) #10
  %4940 = call i32 @isatty(i32 noundef %4939) #10
  %4941 = icmp ne i32 %4940, 0
  br i1 %4941, label %4942, label %4959

4942:                                             ; preds = %4937
  %4943 = load i32, ptr %124, align 4, !tbaa !5
  %4944 = call ptr @__errno_location() #11
  store i32 %4943, ptr %4944, align 4, !tbaa !5
  %4945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4946 = load i32, ptr @test_count, align 4, !tbaa !5
  %4947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror(i32 noundef %4948, ptr noundef @.str.4)
  %4950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4951 = load i32, ptr %4950, align 4, !tbaa !5
  %4952 = call ptr @s2n_strerror_debug(i32 noundef %4951, ptr noundef @.str.4)
  %4953 = call ptr @__errno_location() #11
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  %4955 = call ptr @strerror(i32 noundef %4954) #10
  %4956 = call ptr @__errno_location() #11
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4945, ptr noundef @.str.2, i32 noundef %4946, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4949, ptr noundef %4952, ptr noundef %4955, i32 noundef %4957) #10
  br label %4976

4959:                                             ; preds = %4937, %4930
  %4960 = load i32, ptr %124, align 4, !tbaa !5
  %4961 = call ptr @__errno_location() #11
  store i32 %4960, ptr %4961, align 4, !tbaa !5
  %4962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4963 = load i32, ptr @test_count, align 4, !tbaa !5
  %4964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call ptr @s2n_strerror(i32 noundef %4965, ptr noundef @.str.4)
  %4967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4968 = load i32, ptr %4967, align 4, !tbaa !5
  %4969 = call ptr @s2n_strerror_debug(i32 noundef %4968, ptr noundef @.str.4)
  %4970 = call ptr @__errno_location() #11
  %4971 = load i32, ptr %4970, align 4, !tbaa !5
  %4972 = call ptr @strerror(i32 noundef %4971) #10
  %4973 = call ptr @__errno_location() #11
  %4974 = load i32, ptr %4973, align 4, !tbaa !5
  %4975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4962, ptr noundef @.str.5, i32 noundef %4963, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4966, ptr noundef %4969, ptr noundef %4972, i32 noundef %4974) #10
  br label %4976

4976:                                             ; preds = %4959, %4942
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %4977

4977:                                             ; preds = %4976
  br label %4978

4978:                                             ; preds = %4977
  call void @exit(i32 noundef 1) #12
  unreachable

4979:                                             ; No predecessors!
  br label %4980

4980:                                             ; preds = %4979
  br label %4981

4981:                                             ; preds = %4980, %4922
  br label %4982

4982:                                             ; preds = %4981
  br label %4983

4983:                                             ; preds = %4982
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #10
  %4984 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4984, ptr %125, align 8, !tbaa !9
  br label %4985

4985:                                             ; preds = %4983
  %4986 = load i32, ptr @test_count, align 4, !tbaa !5
  %4987 = add nsw i32 %4986, 1
  store i32 %4987, ptr @test_count, align 4, !tbaa !5
  %4988 = load ptr, ptr %125, align 8, !tbaa !9
  %4989 = icmp eq ptr %4988, null
  br i1 %4989, label %4990, label %5043

4990:                                             ; preds = %4985
  br label %4991

4991:                                             ; preds = %4990
  br label %4992

4992:                                             ; preds = %4991
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %4993 = call ptr @__errno_location() #11
  %4994 = load i32, ptr %4993, align 4, !tbaa !5
  store i32 %4994, ptr %126, align 4, !tbaa !5
  %4995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4996 = call i32 @s2n_print_stacktrace(ptr noundef %4995)
  %4997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4998 = trunc i8 %4997 to i1
  br i1 %4998, label %4999, label %5021

4999:                                             ; preds = %4992
  %5000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5001 = call i32 @fileno(ptr noundef %5000) #10
  %5002 = call i32 @isatty(i32 noundef %5001) #10
  %5003 = icmp ne i32 %5002, 0
  br i1 %5003, label %5004, label %5021

5004:                                             ; preds = %4999
  %5005 = load i32, ptr %126, align 4, !tbaa !5
  %5006 = call ptr @__errno_location() #11
  store i32 %5005, ptr %5006, align 4, !tbaa !5
  %5007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5008 = load i32, ptr @test_count, align 4, !tbaa !5
  %5009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5010 = load i32, ptr %5009, align 4, !tbaa !5
  %5011 = call ptr @s2n_strerror(i32 noundef %5010, ptr noundef @.str.4)
  %5012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5013 = load i32, ptr %5012, align 4, !tbaa !5
  %5014 = call ptr @s2n_strerror_debug(i32 noundef %5013, ptr noundef @.str.4)
  %5015 = call ptr @__errno_location() #11
  %5016 = load i32, ptr %5015, align 4, !tbaa !5
  %5017 = call ptr @strerror(i32 noundef %5016) #10
  %5018 = call ptr @__errno_location() #11
  %5019 = load i32, ptr %5018, align 4, !tbaa !5
  %5020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5007, ptr noundef @.str.2, i32 noundef %5008, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 302, ptr noundef %5011, ptr noundef %5014, ptr noundef %5017, i32 noundef %5019) #10
  br label %5038

5021:                                             ; preds = %4999, %4992
  %5022 = load i32, ptr %126, align 4, !tbaa !5
  %5023 = call ptr @__errno_location() #11
  store i32 %5022, ptr %5023, align 4, !tbaa !5
  %5024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5025 = load i32, ptr @test_count, align 4, !tbaa !5
  %5026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5027 = load i32, ptr %5026, align 4, !tbaa !5
  %5028 = call ptr @s2n_strerror(i32 noundef %5027, ptr noundef @.str.4)
  %5029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5030 = load i32, ptr %5029, align 4, !tbaa !5
  %5031 = call ptr @s2n_strerror_debug(i32 noundef %5030, ptr noundef @.str.4)
  %5032 = call ptr @__errno_location() #11
  %5033 = load i32, ptr %5032, align 4, !tbaa !5
  %5034 = call ptr @strerror(i32 noundef %5033) #10
  %5035 = call ptr @__errno_location() #11
  %5036 = load i32, ptr %5035, align 4, !tbaa !5
  %5037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5024, ptr noundef @.str.5, i32 noundef %5025, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 302, ptr noundef %5028, ptr noundef %5031, ptr noundef %5034, i32 noundef %5036) #10
  br label %5038

5038:                                             ; preds = %5021, %5004
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %5039

5039:                                             ; preds = %5038
  br label %5040

5040:                                             ; preds = %5039
  call void @exit(i32 noundef 1) #12
  unreachable

5041:                                             ; No predecessors!
  br label %5042

5042:                                             ; preds = %5041
  br label %5043

5043:                                             ; preds = %5042, %4985
  br label %5044

5044:                                             ; preds = %5043
  br label %5045

5045:                                             ; preds = %5044
  br label %5046

5046:                                             ; preds = %5045
  %5047 = load i32, ptr @test_count, align 4, !tbaa !5
  %5048 = add nsw i32 %5047, 1
  store i32 %5048, ptr @test_count, align 4, !tbaa !5
  %5049 = load ptr, ptr %125, align 8, !tbaa !9
  %5050 = load ptr, ptr %118, align 8, !tbaa !9
  %5051 = call i32 @s2n_connection_set_config(ptr noundef %5049, ptr noundef %5050)
  %5052 = icmp eq i32 %5051, -1
  br i1 %5052, label %5053, label %5106

5053:                                             ; preds = %5046
  br label %5054

5054:                                             ; preds = %5053
  br label %5055

5055:                                             ; preds = %5054
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %5056 = call ptr @__errno_location() #11
  %5057 = load i32, ptr %5056, align 4, !tbaa !5
  store i32 %5057, ptr %127, align 4, !tbaa !5
  %5058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5059 = call i32 @s2n_print_stacktrace(ptr noundef %5058)
  %5060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5061 = trunc i8 %5060 to i1
  br i1 %5061, label %5062, label %5084

5062:                                             ; preds = %5055
  %5063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5064 = call i32 @fileno(ptr noundef %5063) #10
  %5065 = call i32 @isatty(i32 noundef %5064) #10
  %5066 = icmp ne i32 %5065, 0
  br i1 %5066, label %5067, label %5084

5067:                                             ; preds = %5062
  %5068 = load i32, ptr %127, align 4, !tbaa !5
  %5069 = call ptr @__errno_location() #11
  store i32 %5068, ptr %5069, align 4, !tbaa !5
  %5070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5071 = load i32, ptr @test_count, align 4, !tbaa !5
  %5072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5073 = load i32, ptr %5072, align 4, !tbaa !5
  %5074 = call ptr @s2n_strerror(i32 noundef %5073, ptr noundef @.str.4)
  %5075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5076 = load i32, ptr %5075, align 4, !tbaa !5
  %5077 = call ptr @s2n_strerror_debug(i32 noundef %5076, ptr noundef @.str.4)
  %5078 = call ptr @__errno_location() #11
  %5079 = load i32, ptr %5078, align 4, !tbaa !5
  %5080 = call ptr @strerror(i32 noundef %5079) #10
  %5081 = call ptr @__errno_location() #11
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5070, ptr noundef @.str.2, i32 noundef %5071, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 303, ptr noundef %5074, ptr noundef %5077, ptr noundef %5080, i32 noundef %5082) #10
  br label %5101

5084:                                             ; preds = %5062, %5055
  %5085 = load i32, ptr %127, align 4, !tbaa !5
  %5086 = call ptr @__errno_location() #11
  store i32 %5085, ptr %5086, align 4, !tbaa !5
  %5087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5088 = load i32, ptr @test_count, align 4, !tbaa !5
  %5089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5090 = load i32, ptr %5089, align 4, !tbaa !5
  %5091 = call ptr @s2n_strerror(i32 noundef %5090, ptr noundef @.str.4)
  %5092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5093 = load i32, ptr %5092, align 4, !tbaa !5
  %5094 = call ptr @s2n_strerror_debug(i32 noundef %5093, ptr noundef @.str.4)
  %5095 = call ptr @__errno_location() #11
  %5096 = load i32, ptr %5095, align 4, !tbaa !5
  %5097 = call ptr @strerror(i32 noundef %5096) #10
  %5098 = call ptr @__errno_location() #11
  %5099 = load i32, ptr %5098, align 4, !tbaa !5
  %5100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5087, ptr noundef @.str.5, i32 noundef %5088, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 303, ptr noundef %5091, ptr noundef %5094, ptr noundef %5097, i32 noundef %5099) #10
  br label %5101

5101:                                             ; preds = %5084, %5067
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %5102

5102:                                             ; preds = %5101
  br label %5103

5103:                                             ; preds = %5102
  call void @exit(i32 noundef 1) #12
  unreachable

5104:                                             ; No predecessors!
  br label %5105

5105:                                             ; preds = %5104
  br label %5106

5106:                                             ; preds = %5105, %5046
  br label %5107

5107:                                             ; preds = %5106
  br label %5108

5108:                                             ; preds = %5107
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  %5109 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5109, ptr %128, align 8, !tbaa !9
  br label %5110

5110:                                             ; preds = %5108
  %5111 = load i32, ptr @test_count, align 4, !tbaa !5
  %5112 = add nsw i32 %5111, 1
  store i32 %5112, ptr @test_count, align 4, !tbaa !5
  %5113 = load ptr, ptr %128, align 8, !tbaa !9
  %5114 = icmp eq ptr %5113, null
  br i1 %5114, label %5115, label %5168

5115:                                             ; preds = %5110
  br label %5116

5116:                                             ; preds = %5115
  br label %5117

5117:                                             ; preds = %5116
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %5118 = call ptr @__errno_location() #11
  %5119 = load i32, ptr %5118, align 4, !tbaa !5
  store i32 %5119, ptr %129, align 4, !tbaa !5
  %5120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5121 = call i32 @s2n_print_stacktrace(ptr noundef %5120)
  %5122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5123 = trunc i8 %5122 to i1
  br i1 %5123, label %5124, label %5146

5124:                                             ; preds = %5117
  %5125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5126 = call i32 @fileno(ptr noundef %5125) #10
  %5127 = call i32 @isatty(i32 noundef %5126) #10
  %5128 = icmp ne i32 %5127, 0
  br i1 %5128, label %5129, label %5146

5129:                                             ; preds = %5124
  %5130 = load i32, ptr %129, align 4, !tbaa !5
  %5131 = call ptr @__errno_location() #11
  store i32 %5130, ptr %5131, align 4, !tbaa !5
  %5132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5133 = load i32, ptr @test_count, align 4, !tbaa !5
  %5134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5135 = load i32, ptr %5134, align 4, !tbaa !5
  %5136 = call ptr @s2n_strerror(i32 noundef %5135, ptr noundef @.str.4)
  %5137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5138 = load i32, ptr %5137, align 4, !tbaa !5
  %5139 = call ptr @s2n_strerror_debug(i32 noundef %5138, ptr noundef @.str.4)
  %5140 = call ptr @__errno_location() #11
  %5141 = load i32, ptr %5140, align 4, !tbaa !5
  %5142 = call ptr @strerror(i32 noundef %5141) #10
  %5143 = call ptr @__errno_location() #11
  %5144 = load i32, ptr %5143, align 4, !tbaa !5
  %5145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5132, ptr noundef @.str.2, i32 noundef %5133, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 306, ptr noundef %5136, ptr noundef %5139, ptr noundef %5142, i32 noundef %5144) #10
  br label %5163

5146:                                             ; preds = %5124, %5117
  %5147 = load i32, ptr %129, align 4, !tbaa !5
  %5148 = call ptr @__errno_location() #11
  store i32 %5147, ptr %5148, align 4, !tbaa !5
  %5149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5150 = load i32, ptr @test_count, align 4, !tbaa !5
  %5151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  %5153 = call ptr @s2n_strerror(i32 noundef %5152, ptr noundef @.str.4)
  %5154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5155 = load i32, ptr %5154, align 4, !tbaa !5
  %5156 = call ptr @s2n_strerror_debug(i32 noundef %5155, ptr noundef @.str.4)
  %5157 = call ptr @__errno_location() #11
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call ptr @strerror(i32 noundef %5158) #10
  %5160 = call ptr @__errno_location() #11
  %5161 = load i32, ptr %5160, align 4, !tbaa !5
  %5162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5149, ptr noundef @.str.5, i32 noundef %5150, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 306, ptr noundef %5153, ptr noundef %5156, ptr noundef %5159, i32 noundef %5161) #10
  br label %5163

5163:                                             ; preds = %5146, %5129
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %5164

5164:                                             ; preds = %5163
  br label %5165

5165:                                             ; preds = %5164
  call void @exit(i32 noundef 1) #12
  unreachable

5166:                                             ; No predecessors!
  br label %5167

5167:                                             ; preds = %5166
  br label %5168

5168:                                             ; preds = %5167, %5110
  br label %5169

5169:                                             ; preds = %5168
  br label %5170

5170:                                             ; preds = %5169
  br label %5171

5171:                                             ; preds = %5170
  %5172 = load i32, ptr @test_count, align 4, !tbaa !5
  %5173 = add nsw i32 %5172, 1
  store i32 %5173, ptr @test_count, align 4, !tbaa !5
  %5174 = load ptr, ptr %128, align 8, !tbaa !9
  %5175 = load ptr, ptr %118, align 8, !tbaa !9
  %5176 = call i32 @s2n_connection_set_config(ptr noundef %5174, ptr noundef %5175)
  %5177 = icmp eq i32 %5176, -1
  br i1 %5177, label %5178, label %5231

5178:                                             ; preds = %5171
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %5181 = call ptr @__errno_location() #11
  %5182 = load i32, ptr %5181, align 4, !tbaa !5
  store i32 %5182, ptr %130, align 4, !tbaa !5
  %5183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5184 = call i32 @s2n_print_stacktrace(ptr noundef %5183)
  %5185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5186 = trunc i8 %5185 to i1
  br i1 %5186, label %5187, label %5209

5187:                                             ; preds = %5180
  %5188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5189 = call i32 @fileno(ptr noundef %5188) #10
  %5190 = call i32 @isatty(i32 noundef %5189) #10
  %5191 = icmp ne i32 %5190, 0
  br i1 %5191, label %5192, label %5209

5192:                                             ; preds = %5187
  %5193 = load i32, ptr %130, align 4, !tbaa !5
  %5194 = call ptr @__errno_location() #11
  store i32 %5193, ptr %5194, align 4, !tbaa !5
  %5195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5196 = load i32, ptr @test_count, align 4, !tbaa !5
  %5197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5198 = load i32, ptr %5197, align 4, !tbaa !5
  %5199 = call ptr @s2n_strerror(i32 noundef %5198, ptr noundef @.str.4)
  %5200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5201 = load i32, ptr %5200, align 4, !tbaa !5
  %5202 = call ptr @s2n_strerror_debug(i32 noundef %5201, ptr noundef @.str.4)
  %5203 = call ptr @__errno_location() #11
  %5204 = load i32, ptr %5203, align 4, !tbaa !5
  %5205 = call ptr @strerror(i32 noundef %5204) #10
  %5206 = call ptr @__errno_location() #11
  %5207 = load i32, ptr %5206, align 4, !tbaa !5
  %5208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5195, ptr noundef @.str.2, i32 noundef %5196, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 307, ptr noundef %5199, ptr noundef %5202, ptr noundef %5205, i32 noundef %5207) #10
  br label %5226

5209:                                             ; preds = %5187, %5180
  %5210 = load i32, ptr %130, align 4, !tbaa !5
  %5211 = call ptr @__errno_location() #11
  store i32 %5210, ptr %5211, align 4, !tbaa !5
  %5212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5213 = load i32, ptr @test_count, align 4, !tbaa !5
  %5214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5215 = load i32, ptr %5214, align 4, !tbaa !5
  %5216 = call ptr @s2n_strerror(i32 noundef %5215, ptr noundef @.str.4)
  %5217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5218 = load i32, ptr %5217, align 4, !tbaa !5
  %5219 = call ptr @s2n_strerror_debug(i32 noundef %5218, ptr noundef @.str.4)
  %5220 = call ptr @__errno_location() #11
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @strerror(i32 noundef %5221) #10
  %5223 = call ptr @__errno_location() #11
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5212, ptr noundef @.str.5, i32 noundef %5213, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 307, ptr noundef %5216, ptr noundef %5219, ptr noundef %5222, i32 noundef %5224) #10
  br label %5226

5226:                                             ; preds = %5209, %5192
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %5227

5227:                                             ; preds = %5226
  br label %5228

5228:                                             ; preds = %5227
  call void @exit(i32 noundef 1) #12
  unreachable

5229:                                             ; No predecessors!
  br label %5230

5230:                                             ; preds = %5229
  br label %5231

5231:                                             ; preds = %5230, %5171
  br label %5232

5232:                                             ; preds = %5231
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

5234:                                             ; preds = %5233
  %5235 = load i32, ptr @test_count, align 4, !tbaa !5
  %5236 = add nsw i32 %5235, 1
  store i32 %5236, ptr @test_count, align 4, !tbaa !5
  %5237 = load ptr, ptr %128, align 8, !tbaa !9
  %5238 = call i32 @s2n_connection_set_blinding(ptr noundef %5237, i32 noundef 1)
  %5239 = icmp eq i32 %5238, -1
  br i1 %5239, label %5240, label %5293

5240:                                             ; preds = %5234
  br label %5241

5241:                                             ; preds = %5240
  br label %5242

5242:                                             ; preds = %5241
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %5243 = call ptr @__errno_location() #11
  %5244 = load i32, ptr %5243, align 4, !tbaa !5
  store i32 %5244, ptr %131, align 4, !tbaa !5
  %5245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5246 = call i32 @s2n_print_stacktrace(ptr noundef %5245)
  %5247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5248 = trunc i8 %5247 to i1
  br i1 %5248, label %5249, label %5271

5249:                                             ; preds = %5242
  %5250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5251 = call i32 @fileno(ptr noundef %5250) #10
  %5252 = call i32 @isatty(i32 noundef %5251) #10
  %5253 = icmp ne i32 %5252, 0
  br i1 %5253, label %5254, label %5271

5254:                                             ; preds = %5249
  %5255 = load i32, ptr %131, align 4, !tbaa !5
  %5256 = call ptr @__errno_location() #11
  store i32 %5255, ptr %5256, align 4, !tbaa !5
  %5257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5258 = load i32, ptr @test_count, align 4, !tbaa !5
  %5259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5260 = load i32, ptr %5259, align 4, !tbaa !5
  %5261 = call ptr @s2n_strerror(i32 noundef %5260, ptr noundef @.str.4)
  %5262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  %5264 = call ptr @s2n_strerror_debug(i32 noundef %5263, ptr noundef @.str.4)
  %5265 = call ptr @__errno_location() #11
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @strerror(i32 noundef %5266) #10
  %5268 = call ptr @__errno_location() #11
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5257, ptr noundef @.str.2, i32 noundef %5258, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 308, ptr noundef %5261, ptr noundef %5264, ptr noundef %5267, i32 noundef %5269) #10
  br label %5288

5271:                                             ; preds = %5249, %5242
  %5272 = load i32, ptr %131, align 4, !tbaa !5
  %5273 = call ptr @__errno_location() #11
  store i32 %5272, ptr %5273, align 4, !tbaa !5
  %5274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5275 = load i32, ptr @test_count, align 4, !tbaa !5
  %5276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call ptr @s2n_strerror(i32 noundef %5277, ptr noundef @.str.4)
  %5279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5280 = load i32, ptr %5279, align 4, !tbaa !5
  %5281 = call ptr @s2n_strerror_debug(i32 noundef %5280, ptr noundef @.str.4)
  %5282 = call ptr @__errno_location() #11
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  %5284 = call ptr @strerror(i32 noundef %5283) #10
  %5285 = call ptr @__errno_location() #11
  %5286 = load i32, ptr %5285, align 4, !tbaa !5
  %5287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5274, ptr noundef @.str.5, i32 noundef %5275, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 308, ptr noundef %5278, ptr noundef %5281, ptr noundef %5284, i32 noundef %5286) #10
  br label %5288

5288:                                             ; preds = %5271, %5254
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %5289

5289:                                             ; preds = %5288
  br label %5290

5290:                                             ; preds = %5289
  call void @exit(i32 noundef 1) #12
  unreachable

5291:                                             ; No predecessors!
  br label %5292

5292:                                             ; preds = %5291
  br label %5293

5293:                                             ; preds = %5292, %5234
  br label %5294

5294:                                             ; preds = %5293
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

5296:                                             ; preds = %5295
  %5297 = load i32, ptr @test_count, align 4, !tbaa !5
  %5298 = add nsw i32 %5297, 1
  store i32 %5298, ptr @test_count, align 4, !tbaa !5
  %5299 = load ptr, ptr %128, align 8, !tbaa !9
  %5300 = call i32 @s2n_set_server_name(ptr noundef %5299, ptr noundef @.str.35)
  %5301 = icmp eq i32 %5300, -1
  br i1 %5301, label %5302, label %5355

5302:                                             ; preds = %5296
  br label %5303

5303:                                             ; preds = %5302
  br label %5304

5304:                                             ; preds = %5303
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %5305 = call ptr @__errno_location() #11
  %5306 = load i32, ptr %5305, align 4, !tbaa !5
  store i32 %5306, ptr %132, align 4, !tbaa !5
  %5307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5308 = call i32 @s2n_print_stacktrace(ptr noundef %5307)
  %5309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5310 = trunc i8 %5309 to i1
  br i1 %5310, label %5311, label %5333

5311:                                             ; preds = %5304
  %5312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5313 = call i32 @fileno(ptr noundef %5312) #10
  %5314 = call i32 @isatty(i32 noundef %5313) #10
  %5315 = icmp ne i32 %5314, 0
  br i1 %5315, label %5316, label %5333

5316:                                             ; preds = %5311
  %5317 = load i32, ptr %132, align 4, !tbaa !5
  %5318 = call ptr @__errno_location() #11
  store i32 %5317, ptr %5318, align 4, !tbaa !5
  %5319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5320 = load i32, ptr @test_count, align 4, !tbaa !5
  %5321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5322 = load i32, ptr %5321, align 4, !tbaa !5
  %5323 = call ptr @s2n_strerror(i32 noundef %5322, ptr noundef @.str.4)
  %5324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5325 = load i32, ptr %5324, align 4, !tbaa !5
  %5326 = call ptr @s2n_strerror_debug(i32 noundef %5325, ptr noundef @.str.4)
  %5327 = call ptr @__errno_location() #11
  %5328 = load i32, ptr %5327, align 4, !tbaa !5
  %5329 = call ptr @strerror(i32 noundef %5328) #10
  %5330 = call ptr @__errno_location() #11
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  %5332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5319, ptr noundef @.str.2, i32 noundef %5320, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 309, ptr noundef %5323, ptr noundef %5326, ptr noundef %5329, i32 noundef %5331) #10
  br label %5350

5333:                                             ; preds = %5311, %5304
  %5334 = load i32, ptr %132, align 4, !tbaa !5
  %5335 = call ptr @__errno_location() #11
  store i32 %5334, ptr %5335, align 4, !tbaa !5
  %5336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5337 = load i32, ptr @test_count, align 4, !tbaa !5
  %5338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5339 = load i32, ptr %5338, align 4, !tbaa !5
  %5340 = call ptr @s2n_strerror(i32 noundef %5339, ptr noundef @.str.4)
  %5341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  %5343 = call ptr @s2n_strerror_debug(i32 noundef %5342, ptr noundef @.str.4)
  %5344 = call ptr @__errno_location() #11
  %5345 = load i32, ptr %5344, align 4, !tbaa !5
  %5346 = call ptr @strerror(i32 noundef %5345) #10
  %5347 = call ptr @__errno_location() #11
  %5348 = load i32, ptr %5347, align 4, !tbaa !5
  %5349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5336, ptr noundef @.str.5, i32 noundef %5337, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 309, ptr noundef %5340, ptr noundef %5343, ptr noundef %5346, i32 noundef %5348) #10
  br label %5350

5350:                                             ; preds = %5333, %5316
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %5351

5351:                                             ; preds = %5350
  br label %5352

5352:                                             ; preds = %5351
  call void @exit(i32 noundef 1) #12
  unreachable

5353:                                             ; No predecessors!
  br label %5354

5354:                                             ; preds = %5353
  br label %5355

5355:                                             ; preds = %5354, %5296
  br label %5356

5356:                                             ; preds = %5355
  br label %5357

5357:                                             ; preds = %5356
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #10
  call void @llvm.memset.p0.i64(ptr align 4 %133, i8 0, i64 8, i1 false)
  br label %5358

5358:                                             ; preds = %5357
  %5359 = load i32, ptr @test_count, align 4, !tbaa !5
  %5360 = add nsw i32 %5359, 1
  store i32 %5360, ptr @test_count, align 4, !tbaa !5
  %5361 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %133)
  %5362 = icmp eq i32 %5361, -1
  br i1 %5362, label %5363, label %5416

5363:                                             ; preds = %5358
  br label %5364

5364:                                             ; preds = %5363
  br label %5365

5365:                                             ; preds = %5364
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #10
  %5366 = call ptr @__errno_location() #11
  %5367 = load i32, ptr %5366, align 4, !tbaa !5
  store i32 %5367, ptr %134, align 4, !tbaa !5
  %5368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5369 = call i32 @s2n_print_stacktrace(ptr noundef %5368)
  %5370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5371 = trunc i8 %5370 to i1
  br i1 %5371, label %5372, label %5394

5372:                                             ; preds = %5365
  %5373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5374 = call i32 @fileno(ptr noundef %5373) #10
  %5375 = call i32 @isatty(i32 noundef %5374) #10
  %5376 = icmp ne i32 %5375, 0
  br i1 %5376, label %5377, label %5394

5377:                                             ; preds = %5372
  %5378 = load i32, ptr %134, align 4, !tbaa !5
  %5379 = call ptr @__errno_location() #11
  store i32 %5378, ptr %5379, align 4, !tbaa !5
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = load i32, ptr @test_count, align 4, !tbaa !5
  %5382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5383 = load i32, ptr %5382, align 4, !tbaa !5
  %5384 = call ptr @s2n_strerror(i32 noundef %5383, ptr noundef @.str.4)
  %5385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5386 = load i32, ptr %5385, align 4, !tbaa !5
  %5387 = call ptr @s2n_strerror_debug(i32 noundef %5386, ptr noundef @.str.4)
  %5388 = call ptr @__errno_location() #11
  %5389 = load i32, ptr %5388, align 4, !tbaa !5
  %5390 = call ptr @strerror(i32 noundef %5389) #10
  %5391 = call ptr @__errno_location() #11
  %5392 = load i32, ptr %5391, align 4, !tbaa !5
  %5393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5380, ptr noundef @.str.2, i32 noundef %5381, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 312, ptr noundef %5384, ptr noundef %5387, ptr noundef %5390, i32 noundef %5392) #10
  br label %5411

5394:                                             ; preds = %5372, %5365
  %5395 = load i32, ptr %134, align 4, !tbaa !5
  %5396 = call ptr @__errno_location() #11
  store i32 %5395, ptr %5396, align 4, !tbaa !5
  %5397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5398 = load i32, ptr @test_count, align 4, !tbaa !5
  %5399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5400 = load i32, ptr %5399, align 4, !tbaa !5
  %5401 = call ptr @s2n_strerror(i32 noundef %5400, ptr noundef @.str.4)
  %5402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5403 = load i32, ptr %5402, align 4, !tbaa !5
  %5404 = call ptr @s2n_strerror_debug(i32 noundef %5403, ptr noundef @.str.4)
  %5405 = call ptr @__errno_location() #11
  %5406 = load i32, ptr %5405, align 4, !tbaa !5
  %5407 = call ptr @strerror(i32 noundef %5406) #10
  %5408 = call ptr @__errno_location() #11
  %5409 = load i32, ptr %5408, align 4, !tbaa !5
  %5410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5397, ptr noundef @.str.5, i32 noundef %5398, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 312, ptr noundef %5401, ptr noundef %5404, ptr noundef %5407, i32 noundef %5409) #10
  br label %5411

5411:                                             ; preds = %5394, %5377
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #10
  br label %5412

5412:                                             ; preds = %5411
  br label %5413

5413:                                             ; preds = %5412
  call void @exit(i32 noundef 1) #12
  unreachable

5414:                                             ; No predecessors!
  br label %5415

5415:                                             ; preds = %5414
  br label %5416

5416:                                             ; preds = %5415, %5358
  br label %5417

5417:                                             ; preds = %5416
  br label %5418

5418:                                             ; preds = %5417
  br label %5419

5419:                                             ; preds = %5418
  %5420 = load i32, ptr @test_count, align 4, !tbaa !5
  %5421 = add nsw i32 %5420, 1
  store i32 %5421, ptr @test_count, align 4, !tbaa !5
  %5422 = load ptr, ptr %128, align 8, !tbaa !9
  %5423 = call i32 @s2n_connection_set_io_pair(ptr noundef %5422, ptr noundef %133)
  %5424 = icmp eq i32 %5423, -1
  br i1 %5424, label %5425, label %5478

5425:                                             ; preds = %5419
  br label %5426

5426:                                             ; preds = %5425
  br label %5427

5427:                                             ; preds = %5426
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %5428 = call ptr @__errno_location() #11
  %5429 = load i32, ptr %5428, align 4, !tbaa !5
  store i32 %5429, ptr %135, align 4, !tbaa !5
  %5430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5431 = call i32 @s2n_print_stacktrace(ptr noundef %5430)
  %5432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5433 = trunc i8 %5432 to i1
  br i1 %5433, label %5434, label %5456

5434:                                             ; preds = %5427
  %5435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5436 = call i32 @fileno(ptr noundef %5435) #10
  %5437 = call i32 @isatty(i32 noundef %5436) #10
  %5438 = icmp ne i32 %5437, 0
  br i1 %5438, label %5439, label %5456

5439:                                             ; preds = %5434
  %5440 = load i32, ptr %135, align 4, !tbaa !5
  %5441 = call ptr @__errno_location() #11
  store i32 %5440, ptr %5441, align 4, !tbaa !5
  %5442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5443 = load i32, ptr @test_count, align 4, !tbaa !5
  %5444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = call ptr @s2n_strerror(i32 noundef %5445, ptr noundef @.str.4)
  %5447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @s2n_strerror_debug(i32 noundef %5448, ptr noundef @.str.4)
  %5450 = call ptr @__errno_location() #11
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @strerror(i32 noundef %5451) #10
  %5453 = call ptr @__errno_location() #11
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5442, ptr noundef @.str.2, i32 noundef %5443, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 313, ptr noundef %5446, ptr noundef %5449, ptr noundef %5452, i32 noundef %5454) #10
  br label %5473

5456:                                             ; preds = %5434, %5427
  %5457 = load i32, ptr %135, align 4, !tbaa !5
  %5458 = call ptr @__errno_location() #11
  store i32 %5457, ptr %5458, align 4, !tbaa !5
  %5459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5460 = load i32, ptr @test_count, align 4, !tbaa !5
  %5461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5462 = load i32, ptr %5461, align 4, !tbaa !5
  %5463 = call ptr @s2n_strerror(i32 noundef %5462, ptr noundef @.str.4)
  %5464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  %5466 = call ptr @s2n_strerror_debug(i32 noundef %5465, ptr noundef @.str.4)
  %5467 = call ptr @__errno_location() #11
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call ptr @strerror(i32 noundef %5468) #10
  %5470 = call ptr @__errno_location() #11
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5459, ptr noundef @.str.5, i32 noundef %5460, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 313, ptr noundef %5463, ptr noundef %5466, ptr noundef %5469, i32 noundef %5471) #10
  br label %5473

5473:                                             ; preds = %5456, %5439
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %5474

5474:                                             ; preds = %5473
  br label %5475

5475:                                             ; preds = %5474
  call void @exit(i32 noundef 1) #12
  unreachable

5476:                                             ; No predecessors!
  br label %5477

5477:                                             ; preds = %5476
  br label %5478

5478:                                             ; preds = %5477, %5419
  br label %5479

5479:                                             ; preds = %5478
  br label %5480

5480:                                             ; preds = %5479
  br label %5481

5481:                                             ; preds = %5480
  %5482 = load i32, ptr @test_count, align 4, !tbaa !5
  %5483 = add nsw i32 %5482, 1
  store i32 %5483, ptr @test_count, align 4, !tbaa !5
  %5484 = load ptr, ptr %125, align 8, !tbaa !9
  %5485 = call i32 @s2n_connection_set_io_pair(ptr noundef %5484, ptr noundef %133)
  %5486 = icmp eq i32 %5485, -1
  br i1 %5486, label %5487, label %5540

5487:                                             ; preds = %5481
  br label %5488

5488:                                             ; preds = %5487
  br label %5489

5489:                                             ; preds = %5488
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %5490 = call ptr @__errno_location() #11
  %5491 = load i32, ptr %5490, align 4, !tbaa !5
  store i32 %5491, ptr %136, align 4, !tbaa !5
  %5492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5493 = call i32 @s2n_print_stacktrace(ptr noundef %5492)
  %5494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5495 = trunc i8 %5494 to i1
  br i1 %5495, label %5496, label %5518

5496:                                             ; preds = %5489
  %5497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5498 = call i32 @fileno(ptr noundef %5497) #10
  %5499 = call i32 @isatty(i32 noundef %5498) #10
  %5500 = icmp ne i32 %5499, 0
  br i1 %5500, label %5501, label %5518

5501:                                             ; preds = %5496
  %5502 = load i32, ptr %136, align 4, !tbaa !5
  %5503 = call ptr @__errno_location() #11
  store i32 %5502, ptr %5503, align 4, !tbaa !5
  %5504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5505 = load i32, ptr @test_count, align 4, !tbaa !5
  %5506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call ptr @s2n_strerror(i32 noundef %5507, ptr noundef @.str.4)
  %5509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5510 = load i32, ptr %5509, align 4, !tbaa !5
  %5511 = call ptr @s2n_strerror_debug(i32 noundef %5510, ptr noundef @.str.4)
  %5512 = call ptr @__errno_location() #11
  %5513 = load i32, ptr %5512, align 4, !tbaa !5
  %5514 = call ptr @strerror(i32 noundef %5513) #10
  %5515 = call ptr @__errno_location() #11
  %5516 = load i32, ptr %5515, align 4, !tbaa !5
  %5517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5504, ptr noundef @.str.2, i32 noundef %5505, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 314, ptr noundef %5508, ptr noundef %5511, ptr noundef %5514, i32 noundef %5516) #10
  br label %5535

5518:                                             ; preds = %5496, %5489
  %5519 = load i32, ptr %136, align 4, !tbaa !5
  %5520 = call ptr @__errno_location() #11
  store i32 %5519, ptr %5520, align 4, !tbaa !5
  %5521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5522 = load i32, ptr @test_count, align 4, !tbaa !5
  %5523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5524 = load i32, ptr %5523, align 4, !tbaa !5
  %5525 = call ptr @s2n_strerror(i32 noundef %5524, ptr noundef @.str.4)
  %5526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5527 = load i32, ptr %5526, align 4, !tbaa !5
  %5528 = call ptr @s2n_strerror_debug(i32 noundef %5527, ptr noundef @.str.4)
  %5529 = call ptr @__errno_location() #11
  %5530 = load i32, ptr %5529, align 4, !tbaa !5
  %5531 = call ptr @strerror(i32 noundef %5530) #10
  %5532 = call ptr @__errno_location() #11
  %5533 = load i32, ptr %5532, align 4, !tbaa !5
  %5534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5521, ptr noundef @.str.5, i32 noundef %5522, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 314, ptr noundef %5525, ptr noundef %5528, ptr noundef %5531, i32 noundef %5533) #10
  br label %5535

5535:                                             ; preds = %5518, %5501
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %5536

5536:                                             ; preds = %5535
  br label %5537

5537:                                             ; preds = %5536
  call void @exit(i32 noundef 1) #12
  unreachable

5538:                                             ; No predecessors!
  br label %5539

5539:                                             ; preds = %5538
  br label %5540

5540:                                             ; preds = %5539, %5481
  br label %5541

5541:                                             ; preds = %5540
  br label %5542

5542:                                             ; preds = %5541
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #10
  %5543 = load i32, ptr %117, align 4, !tbaa !5
  %5544 = sext i32 %5543 to i64
  %5545 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %5544
  %5546 = getelementptr inbounds %struct.anon, ptr %5545, i32 0, i32 1
  %5547 = load i32, ptr %5546, align 8, !tbaa !24
  store i32 %5547, ptr %137, align 4, !tbaa !5
  %5548 = load i32, ptr %137, align 4, !tbaa !5
  %5549 = icmp eq i32 %5548, 0
  br i1 %5549, label %5550, label %5614

5550:                                             ; preds = %5542
  br label %5551

5551:                                             ; preds = %5550
  %5552 = load i32, ptr @test_count, align 4, !tbaa !5
  %5553 = add nsw i32 %5552, 1
  store i32 %5553, ptr @test_count, align 4, !tbaa !5
  %5554 = load ptr, ptr %125, align 8, !tbaa !9
  %5555 = load ptr, ptr %128, align 8, !tbaa !9
  %5556 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5554, ptr noundef %5555)
  %5557 = icmp eq i32 %5556, -1
  br i1 %5557, label %5558, label %5611

5558:                                             ; preds = %5551
  br label %5559

5559:                                             ; preds = %5558
  br label %5560

5560:                                             ; preds = %5559
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #10
  %5561 = call ptr @__errno_location() #11
  %5562 = load i32, ptr %5561, align 4, !tbaa !5
  store i32 %5562, ptr %138, align 4, !tbaa !5
  %5563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5564 = call i32 @s2n_print_stacktrace(ptr noundef %5563)
  %5565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5566 = trunc i8 %5565 to i1
  br i1 %5566, label %5567, label %5589

5567:                                             ; preds = %5560
  %5568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5569 = call i32 @fileno(ptr noundef %5568) #10
  %5570 = call i32 @isatty(i32 noundef %5569) #10
  %5571 = icmp ne i32 %5570, 0
  br i1 %5571, label %5572, label %5589

5572:                                             ; preds = %5567
  %5573 = load i32, ptr %138, align 4, !tbaa !5
  %5574 = call ptr @__errno_location() #11
  store i32 %5573, ptr %5574, align 4, !tbaa !5
  %5575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5576 = load i32, ptr @test_count, align 4, !tbaa !5
  %5577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5578 = load i32, ptr %5577, align 4, !tbaa !5
  %5579 = call ptr @s2n_strerror(i32 noundef %5578, ptr noundef @.str.4)
  %5580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5581 = load i32, ptr %5580, align 4, !tbaa !5
  %5582 = call ptr @s2n_strerror_debug(i32 noundef %5581, ptr noundef @.str.4)
  %5583 = call ptr @__errno_location() #11
  %5584 = load i32, ptr %5583, align 4, !tbaa !5
  %5585 = call ptr @strerror(i32 noundef %5584) #10
  %5586 = call ptr @__errno_location() #11
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5575, ptr noundef @.str.2, i32 noundef %5576, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 318, ptr noundef %5579, ptr noundef %5582, ptr noundef %5585, i32 noundef %5587) #10
  br label %5606

5589:                                             ; preds = %5567, %5560
  %5590 = load i32, ptr %138, align 4, !tbaa !5
  %5591 = call ptr @__errno_location() #11
  store i32 %5590, ptr %5591, align 4, !tbaa !5
  %5592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5593 = load i32, ptr @test_count, align 4, !tbaa !5
  %5594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  %5596 = call ptr @s2n_strerror(i32 noundef %5595, ptr noundef @.str.4)
  %5597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5598 = load i32, ptr %5597, align 4, !tbaa !5
  %5599 = call ptr @s2n_strerror_debug(i32 noundef %5598, ptr noundef @.str.4)
  %5600 = call ptr @__errno_location() #11
  %5601 = load i32, ptr %5600, align 4, !tbaa !5
  %5602 = call ptr @strerror(i32 noundef %5601) #10
  %5603 = call ptr @__errno_location() #11
  %5604 = load i32, ptr %5603, align 4, !tbaa !5
  %5605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5592, ptr noundef @.str.5, i32 noundef %5593, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 318, ptr noundef %5596, ptr noundef %5599, ptr noundef %5602, i32 noundef %5604) #10
  br label %5606

5606:                                             ; preds = %5589, %5572
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  br label %5607

5607:                                             ; preds = %5606
  br label %5608

5608:                                             ; preds = %5607
  call void @exit(i32 noundef 1) #12
  unreachable

5609:                                             ; No predecessors!
  br label %5610

5610:                                             ; preds = %5609
  br label %5611

5611:                                             ; preds = %5610, %5551
  br label %5612

5612:                                             ; preds = %5611
  br label %5613

5613:                                             ; preds = %5612
  br label %5815

5614:                                             ; preds = %5542
  br label %5615

5615:                                             ; preds = %5614
  br label %5616

5616:                                             ; preds = %5615
  br label %5617

5617:                                             ; preds = %5616
  %5618 = load i32, ptr @test_count, align 4, !tbaa !5
  %5619 = add nsw i32 %5618, 1
  store i32 %5619, ptr @test_count, align 4, !tbaa !5
  %5620 = load ptr, ptr %125, align 8, !tbaa !9
  %5621 = load ptr, ptr %128, align 8, !tbaa !9
  %5622 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5620, ptr noundef %5621)
  %5623 = icmp eq i32 %5622, -1
  br i1 %5623, label %5677, label %5624

5624:                                             ; preds = %5617
  br label %5625

5625:                                             ; preds = %5624
  br label %5626

5626:                                             ; preds = %5625
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #10
  %5627 = call ptr @__errno_location() #11
  %5628 = load i32, ptr %5627, align 4, !tbaa !5
  store i32 %5628, ptr %139, align 4, !tbaa !5
  %5629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5630 = call i32 @s2n_print_stacktrace(ptr noundef %5629)
  %5631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5632 = trunc i8 %5631 to i1
  br i1 %5632, label %5633, label %5655

5633:                                             ; preds = %5626
  %5634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5635 = call i32 @fileno(ptr noundef %5634) #10
  %5636 = call i32 @isatty(i32 noundef %5635) #10
  %5637 = icmp ne i32 %5636, 0
  br i1 %5637, label %5638, label %5655

5638:                                             ; preds = %5633
  %5639 = load i32, ptr %139, align 4, !tbaa !5
  %5640 = call ptr @__errno_location() #11
  store i32 %5639, ptr %5640, align 4, !tbaa !5
  %5641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5642 = load i32, ptr @test_count, align 4, !tbaa !5
  %5643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call ptr @s2n_strerror(i32 noundef %5644, ptr noundef @.str.4)
  %5646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5647 = load i32, ptr %5646, align 4, !tbaa !5
  %5648 = call ptr @s2n_strerror_debug(i32 noundef %5647, ptr noundef @.str.4)
  %5649 = call ptr @__errno_location() #11
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  %5651 = call ptr @strerror(i32 noundef %5650) #10
  %5652 = call ptr @__errno_location() #11
  %5653 = load i32, ptr %5652, align 4, !tbaa !5
  %5654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5641, ptr noundef @.str.2, i32 noundef %5642, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5645, ptr noundef %5648, ptr noundef %5651, i32 noundef %5653) #10
  br label %5672

5655:                                             ; preds = %5633, %5626
  %5656 = load i32, ptr %139, align 4, !tbaa !5
  %5657 = call ptr @__errno_location() #11
  store i32 %5656, ptr %5657, align 4, !tbaa !5
  %5658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5659 = load i32, ptr @test_count, align 4, !tbaa !5
  %5660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5661 = load i32, ptr %5660, align 4, !tbaa !5
  %5662 = call ptr @s2n_strerror(i32 noundef %5661, ptr noundef @.str.4)
  %5663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5664 = load i32, ptr %5663, align 4, !tbaa !5
  %5665 = call ptr @s2n_strerror_debug(i32 noundef %5664, ptr noundef @.str.4)
  %5666 = call ptr @__errno_location() #11
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  %5668 = call ptr @strerror(i32 noundef %5667) #10
  %5669 = call ptr @__errno_location() #11
  %5670 = load i32, ptr %5669, align 4, !tbaa !5
  %5671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5658, ptr noundef @.str.5, i32 noundef %5659, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5662, ptr noundef %5665, ptr noundef %5668, i32 noundef %5670) #10
  br label %5672

5672:                                             ; preds = %5655, %5638
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #10
  br label %5673

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673
  call void @exit(i32 noundef 1) #12
  unreachable

5675:                                             ; No predecessors!
  br label %5676

5676:                                             ; preds = %5675
  br label %5677

5677:                                             ; preds = %5676, %5617
  br label %5678

5678:                                             ; preds = %5677
  br label %5679

5679:                                             ; preds = %5678
  br label %5680

5680:                                             ; preds = %5679
  %5681 = load i32, ptr @test_count, align 4, !tbaa !5
  %5682 = add nsw i32 %5681, 1
  store i32 %5682, ptr @test_count, align 4, !tbaa !5
  %5683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5684 = load i32, ptr %5683, align 4, !tbaa !5
  %5685 = load i32, ptr %137, align 4, !tbaa !5
  %5686 = icmp eq i32 %5684, %5685
  br i1 %5686, label %5740, label %5687

5687:                                             ; preds = %5680
  br label %5688

5688:                                             ; preds = %5687
  br label %5689

5689:                                             ; preds = %5688
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %5690 = call ptr @__errno_location() #11
  %5691 = load i32, ptr %5690, align 4, !tbaa !5
  store i32 %5691, ptr %140, align 4, !tbaa !5
  %5692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5693 = call i32 @s2n_print_stacktrace(ptr noundef %5692)
  %5694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5695 = trunc i8 %5694 to i1
  br i1 %5695, label %5696, label %5718

5696:                                             ; preds = %5689
  %5697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5698 = call i32 @fileno(ptr noundef %5697) #10
  %5699 = call i32 @isatty(i32 noundef %5698) #10
  %5700 = icmp ne i32 %5699, 0
  br i1 %5700, label %5701, label %5718

5701:                                             ; preds = %5696
  %5702 = load i32, ptr %140, align 4, !tbaa !5
  %5703 = call ptr @__errno_location() #11
  store i32 %5702, ptr %5703, align 4, !tbaa !5
  %5704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5705 = load i32, ptr @test_count, align 4, !tbaa !5
  %5706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5707 = load i32, ptr %5706, align 4, !tbaa !5
  %5708 = call ptr @s2n_strerror(i32 noundef %5707, ptr noundef @.str.4)
  %5709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5710 = load i32, ptr %5709, align 4, !tbaa !5
  %5711 = call ptr @s2n_strerror_debug(i32 noundef %5710, ptr noundef @.str.4)
  %5712 = call ptr @__errno_location() #11
  %5713 = load i32, ptr %5712, align 4, !tbaa !5
  %5714 = call ptr @strerror(i32 noundef %5713) #10
  %5715 = call ptr @__errno_location() #11
  %5716 = load i32, ptr %5715, align 4, !tbaa !5
  %5717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5704, ptr noundef @.str.2, i32 noundef %5705, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5708, ptr noundef %5711, ptr noundef %5714, i32 noundef %5716) #10
  br label %5735

5718:                                             ; preds = %5696, %5689
  %5719 = load i32, ptr %140, align 4, !tbaa !5
  %5720 = call ptr @__errno_location() #11
  store i32 %5719, ptr %5720, align 4, !tbaa !5
  %5721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5722 = load i32, ptr @test_count, align 4, !tbaa !5
  %5723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5724 = load i32, ptr %5723, align 4, !tbaa !5
  %5725 = call ptr @s2n_strerror(i32 noundef %5724, ptr noundef @.str.4)
  %5726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5727 = load i32, ptr %5726, align 4, !tbaa !5
  %5728 = call ptr @s2n_strerror_debug(i32 noundef %5727, ptr noundef @.str.4)
  %5729 = call ptr @__errno_location() #11
  %5730 = load i32, ptr %5729, align 4, !tbaa !5
  %5731 = call ptr @strerror(i32 noundef %5730) #10
  %5732 = call ptr @__errno_location() #11
  %5733 = load i32, ptr %5732, align 4, !tbaa !5
  %5734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5721, ptr noundef @.str.5, i32 noundef %5722, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5725, ptr noundef %5728, ptr noundef %5731, i32 noundef %5733) #10
  br label %5735

5735:                                             ; preds = %5718, %5701
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  br label %5736

5736:                                             ; preds = %5735
  br label %5737

5737:                                             ; preds = %5736
  call void @exit(i32 noundef 1) #12
  unreachable

5738:                                             ; No predecessors!
  br label %5739

5739:                                             ; preds = %5738
  br label %5740

5740:                                             ; preds = %5739, %5680
  br label %5741

5741:                                             ; preds = %5740
  br label %5742

5742:                                             ; preds = %5741
  br label %5743

5743:                                             ; preds = %5742
  %5744 = load i32, ptr @test_count, align 4, !tbaa !5
  %5745 = add nsw i32 %5744, 1
  store i32 %5745, ptr @test_count, align 4, !tbaa !5
  %5746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5747 = load i32, ptr %5746, align 4, !tbaa !5
  %5748 = call ptr @s2n_strerror_debug(i32 noundef %5747, ptr noundef @.str.4)
  %5749 = icmp eq ptr %5748, null
  br i1 %5749, label %5750, label %5803

5750:                                             ; preds = %5743
  br label %5751

5751:                                             ; preds = %5750
  br label %5752

5752:                                             ; preds = %5751
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #10
  %5753 = call ptr @__errno_location() #11
  %5754 = load i32, ptr %5753, align 4, !tbaa !5
  store i32 %5754, ptr %141, align 4, !tbaa !5
  %5755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5756 = call i32 @s2n_print_stacktrace(ptr noundef %5755)
  %5757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5758 = trunc i8 %5757 to i1
  br i1 %5758, label %5759, label %5781

5759:                                             ; preds = %5752
  %5760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5761 = call i32 @fileno(ptr noundef %5760) #10
  %5762 = call i32 @isatty(i32 noundef %5761) #10
  %5763 = icmp ne i32 %5762, 0
  br i1 %5763, label %5764, label %5781

5764:                                             ; preds = %5759
  %5765 = load i32, ptr %141, align 4, !tbaa !5
  %5766 = call ptr @__errno_location() #11
  store i32 %5765, ptr %5766, align 4, !tbaa !5
  %5767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5768 = load i32, ptr @test_count, align 4, !tbaa !5
  %5769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5770 = load i32, ptr %5769, align 4, !tbaa !5
  %5771 = call ptr @s2n_strerror(i32 noundef %5770, ptr noundef @.str.4)
  %5772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5773 = load i32, ptr %5772, align 4, !tbaa !5
  %5774 = call ptr @s2n_strerror_debug(i32 noundef %5773, ptr noundef @.str.4)
  %5775 = call ptr @__errno_location() #11
  %5776 = load i32, ptr %5775, align 4, !tbaa !5
  %5777 = call ptr @strerror(i32 noundef %5776) #10
  %5778 = call ptr @__errno_location() #11
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  %5780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5767, ptr noundef @.str.2, i32 noundef %5768, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5771, ptr noundef %5774, ptr noundef %5777, i32 noundef %5779) #10
  br label %5798

5781:                                             ; preds = %5759, %5752
  %5782 = load i32, ptr %141, align 4, !tbaa !5
  %5783 = call ptr @__errno_location() #11
  store i32 %5782, ptr %5783, align 4, !tbaa !5
  %5784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5785 = load i32, ptr @test_count, align 4, !tbaa !5
  %5786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5787 = load i32, ptr %5786, align 4, !tbaa !5
  %5788 = call ptr @s2n_strerror(i32 noundef %5787, ptr noundef @.str.4)
  %5789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5790 = load i32, ptr %5789, align 4, !tbaa !5
  %5791 = call ptr @s2n_strerror_debug(i32 noundef %5790, ptr noundef @.str.4)
  %5792 = call ptr @__errno_location() #11
  %5793 = load i32, ptr %5792, align 4, !tbaa !5
  %5794 = call ptr @strerror(i32 noundef %5793) #10
  %5795 = call ptr @__errno_location() #11
  %5796 = load i32, ptr %5795, align 4, !tbaa !5
  %5797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5784, ptr noundef @.str.5, i32 noundef %5785, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5788, ptr noundef %5791, ptr noundef %5794, i32 noundef %5796) #10
  br label %5798

5798:                                             ; preds = %5781, %5764
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #10
  br label %5799

5799:                                             ; preds = %5798
  br label %5800

5800:                                             ; preds = %5799
  call void @exit(i32 noundef 1) #12
  unreachable

5801:                                             ; No predecessors!
  br label %5802

5802:                                             ; preds = %5801
  br label %5803

5803:                                             ; preds = %5802, %5743
  br label %5804

5804:                                             ; preds = %5803
  br label %5805

5805:                                             ; preds = %5804
  br label %5806

5806:                                             ; preds = %5805
  br label %5807

5807:                                             ; preds = %5806
  br label %5808

5808:                                             ; preds = %5807
  %5809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5809, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5810 = call ptr @__errno_location() #11
  store i32 0, ptr %5810, align 4, !tbaa !5
  br label %5811

5811:                                             ; preds = %5808
  br label %5812

5812:                                             ; preds = %5811
  br label %5813

5813:                                             ; preds = %5812
  br label %5814

5814:                                             ; preds = %5813
  br label %5815

5815:                                             ; preds = %5814, %5613
  br label %5816

5816:                                             ; preds = %5815
  %5817 = load i32, ptr @test_count, align 4, !tbaa !5
  %5818 = add nsw i32 %5817, 1
  store i32 %5818, ptr @test_count, align 4, !tbaa !5
  %5819 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %123, i32 0, i32 1
  %5820 = load i32, ptr %5819, align 4, !tbaa !27
  %5821 = icmp eq i32 %5820, 1
  br i1 %5821, label %5875, label %5822

5822:                                             ; preds = %5816
  br label %5823

5823:                                             ; preds = %5822
  br label %5824

5824:                                             ; preds = %5823
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %5825 = call ptr @__errno_location() #11
  %5826 = load i32, ptr %5825, align 4, !tbaa !5
  store i32 %5826, ptr %142, align 4, !tbaa !5
  %5827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5828 = call i32 @s2n_print_stacktrace(ptr noundef %5827)
  %5829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5830 = trunc i8 %5829 to i1
  br i1 %5830, label %5831, label %5853

5831:                                             ; preds = %5824
  %5832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5833 = call i32 @fileno(ptr noundef %5832) #10
  %5834 = call i32 @isatty(i32 noundef %5833) #10
  %5835 = icmp ne i32 %5834, 0
  br i1 %5835, label %5836, label %5853

5836:                                             ; preds = %5831
  %5837 = load i32, ptr %142, align 4, !tbaa !5
  %5838 = call ptr @__errno_location() #11
  store i32 %5837, ptr %5838, align 4, !tbaa !5
  %5839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5840 = load i32, ptr @test_count, align 4, !tbaa !5
  %5841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5842 = load i32, ptr %5841, align 4, !tbaa !5
  %5843 = call ptr @s2n_strerror(i32 noundef %5842, ptr noundef @.str.4)
  %5844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5845 = load i32, ptr %5844, align 4, !tbaa !5
  %5846 = call ptr @s2n_strerror_debug(i32 noundef %5845, ptr noundef @.str.4)
  %5847 = call ptr @__errno_location() #11
  %5848 = load i32, ptr %5847, align 4, !tbaa !5
  %5849 = call ptr @strerror(i32 noundef %5848) #10
  %5850 = call ptr @__errno_location() #11
  %5851 = load i32, ptr %5850, align 4, !tbaa !5
  %5852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5839, ptr noundef @.str.2, i32 noundef %5840, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 324, ptr noundef %5843, ptr noundef %5846, ptr noundef %5849, i32 noundef %5851) #10
  br label %5870

5853:                                             ; preds = %5831, %5824
  %5854 = load i32, ptr %142, align 4, !tbaa !5
  %5855 = call ptr @__errno_location() #11
  store i32 %5854, ptr %5855, align 4, !tbaa !5
  %5856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5857 = load i32, ptr @test_count, align 4, !tbaa !5
  %5858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5859 = load i32, ptr %5858, align 4, !tbaa !5
  %5860 = call ptr @s2n_strerror(i32 noundef %5859, ptr noundef @.str.4)
  %5861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5862 = load i32, ptr %5861, align 4, !tbaa !5
  %5863 = call ptr @s2n_strerror_debug(i32 noundef %5862, ptr noundef @.str.4)
  %5864 = call ptr @__errno_location() #11
  %5865 = load i32, ptr %5864, align 4, !tbaa !5
  %5866 = call ptr @strerror(i32 noundef %5865) #10
  %5867 = call ptr @__errno_location() #11
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  %5869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5856, ptr noundef @.str.5, i32 noundef %5857, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 324, ptr noundef %5860, ptr noundef %5863, ptr noundef %5866, i32 noundef %5868) #10
  br label %5870

5870:                                             ; preds = %5853, %5836
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %5871

5871:                                             ; preds = %5870
  br label %5872

5872:                                             ; preds = %5871
  call void @exit(i32 noundef 1) #12
  unreachable

5873:                                             ; No predecessors!
  br label %5874

5874:                                             ; preds = %5873
  br label %5875

5875:                                             ; preds = %5874, %5816
  br label %5876

5876:                                             ; preds = %5875
  br label %5877

5877:                                             ; preds = %5876
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  %5878 = call i32 @s2n_io_pair_close(ptr noundef %133)
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #10
  %5879 = call i32 @s2n_connection_ptr_free(ptr noundef %128)
  %5880 = getelementptr inbounds %struct.s2n_result, ptr %143, i32 0, i32 0
  store i32 %5879, ptr %5880, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  %5881 = call i32 @s2n_connection_ptr_free(ptr noundef %125)
  %5882 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  store i32 %5881, ptr %5882, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %123) #10
  %5883 = call i32 @s2n_config_ptr_free(ptr noundef %118)
  %5884 = getelementptr inbounds %struct.s2n_result, ptr %145, i32 0, i32 0
  store i32 %5883, ptr %5884, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  br label %5885

5885:                                             ; preds = %5877
  %5886 = load i32, ptr %117, align 4, !tbaa !5
  %5887 = add nsw i32 %5886, 1
  store i32 %5887, ptr %117, align 4, !tbaa !5
  br label %4663, !llvm.loop !30

5888:                                             ; preds = %4667
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #10
  store i32 0, ptr %146, align 4, !tbaa !5
  br label %5889

5889:                                             ; preds = %7486, %5888
  %5890 = load i32, ptr %146, align 4, !tbaa !5
  %5891 = sext i32 %5890 to i64
  %5892 = icmp ult i64 %5891, 4
  br i1 %5892, label %5894, label %5893

5893:                                             ; preds = %5889
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #10
  br label %7489

5894:                                             ; preds = %5889
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #10
  %5895 = call ptr @s2n_config_new()
  store ptr %5895, ptr %147, align 8, !tbaa !9
  br label %5896

5896:                                             ; preds = %5894
  %5897 = load i32, ptr @test_count, align 4, !tbaa !5
  %5898 = add nsw i32 %5897, 1
  store i32 %5898, ptr @test_count, align 4, !tbaa !5
  %5899 = load ptr, ptr %147, align 8, !tbaa !9
  %5900 = icmp eq ptr %5899, null
  br i1 %5900, label %5901, label %5954

5901:                                             ; preds = %5896
  br label %5902

5902:                                             ; preds = %5901
  br label %5903

5903:                                             ; preds = %5902
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #10
  %5904 = call ptr @__errno_location() #11
  %5905 = load i32, ptr %5904, align 4, !tbaa !5
  store i32 %5905, ptr %148, align 4, !tbaa !5
  %5906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5907 = call i32 @s2n_print_stacktrace(ptr noundef %5906)
  %5908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5909 = trunc i8 %5908 to i1
  br i1 %5909, label %5910, label %5932

5910:                                             ; preds = %5903
  %5911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5912 = call i32 @fileno(ptr noundef %5911) #10
  %5913 = call i32 @isatty(i32 noundef %5912) #10
  %5914 = icmp ne i32 %5913, 0
  br i1 %5914, label %5915, label %5932

5915:                                             ; preds = %5910
  %5916 = load i32, ptr %148, align 4, !tbaa !5
  %5917 = call ptr @__errno_location() #11
  store i32 %5916, ptr %5917, align 4, !tbaa !5
  %5918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5919 = load i32, ptr @test_count, align 4, !tbaa !5
  %5920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5921 = load i32, ptr %5920, align 4, !tbaa !5
  %5922 = call ptr @s2n_strerror(i32 noundef %5921, ptr noundef @.str.4)
  %5923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5924 = load i32, ptr %5923, align 4, !tbaa !5
  %5925 = call ptr @s2n_strerror_debug(i32 noundef %5924, ptr noundef @.str.4)
  %5926 = call ptr @__errno_location() #11
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = call ptr @strerror(i32 noundef %5927) #10
  %5929 = call ptr @__errno_location() #11
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5918, ptr noundef @.str.2, i32 noundef %5919, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 330, ptr noundef %5922, ptr noundef %5925, ptr noundef %5928, i32 noundef %5930) #10
  br label %5949

5932:                                             ; preds = %5910, %5903
  %5933 = load i32, ptr %148, align 4, !tbaa !5
  %5934 = call ptr @__errno_location() #11
  store i32 %5933, ptr %5934, align 4, !tbaa !5
  %5935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5936 = load i32, ptr @test_count, align 4, !tbaa !5
  %5937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5938 = load i32, ptr %5937, align 4, !tbaa !5
  %5939 = call ptr @s2n_strerror(i32 noundef %5938, ptr noundef @.str.4)
  %5940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5941 = load i32, ptr %5940, align 4, !tbaa !5
  %5942 = call ptr @s2n_strerror_debug(i32 noundef %5941, ptr noundef @.str.4)
  %5943 = call ptr @__errno_location() #11
  %5944 = load i32, ptr %5943, align 4, !tbaa !5
  %5945 = call ptr @strerror(i32 noundef %5944) #10
  %5946 = call ptr @__errno_location() #11
  %5947 = load i32, ptr %5946, align 4, !tbaa !5
  %5948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5935, ptr noundef @.str.5, i32 noundef %5936, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 330, ptr noundef %5939, ptr noundef %5942, ptr noundef %5945, i32 noundef %5947) #10
  br label %5949

5949:                                             ; preds = %5932, %5915
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #10
  br label %5950

5950:                                             ; preds = %5949
  br label %5951

5951:                                             ; preds = %5950
  call void @exit(i32 noundef 1) #12
  unreachable

5952:                                             ; No predecessors!
  br label %5953

5953:                                             ; preds = %5952
  br label %5954

5954:                                             ; preds = %5953, %5896
  br label %5955

5955:                                             ; preds = %5954
  br label %5956

5956:                                             ; preds = %5955
  br label %5957

5957:                                             ; preds = %5956
  %5958 = load i32, ptr @test_count, align 4, !tbaa !5
  %5959 = add nsw i32 %5958, 1
  store i32 %5959, ptr @test_count, align 4, !tbaa !5
  %5960 = load ptr, ptr %147, align 8, !tbaa !9
  %5961 = load ptr, ptr %45, align 8, !tbaa !9
  %5962 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %5960, ptr noundef %5961)
  %5963 = icmp eq i32 %5962, -1
  br i1 %5963, label %5964, label %6017

5964:                                             ; preds = %5957
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

5966:                                             ; preds = %5965
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %5967 = call ptr @__errno_location() #11
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  store i32 %5968, ptr %149, align 4, !tbaa !5
  %5969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5970 = call i32 @s2n_print_stacktrace(ptr noundef %5969)
  %5971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5972 = trunc i8 %5971 to i1
  br i1 %5972, label %5973, label %5995

5973:                                             ; preds = %5966
  %5974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5975 = call i32 @fileno(ptr noundef %5974) #10
  %5976 = call i32 @isatty(i32 noundef %5975) #10
  %5977 = icmp ne i32 %5976, 0
  br i1 %5977, label %5978, label %5995

5978:                                             ; preds = %5973
  %5979 = load i32, ptr %149, align 4, !tbaa !5
  %5980 = call ptr @__errno_location() #11
  store i32 %5979, ptr %5980, align 4, !tbaa !5
  %5981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5982 = load i32, ptr @test_count, align 4, !tbaa !5
  %5983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5984 = load i32, ptr %5983, align 4, !tbaa !5
  %5985 = call ptr @s2n_strerror(i32 noundef %5984, ptr noundef @.str.4)
  %5986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5987 = load i32, ptr %5986, align 4, !tbaa !5
  %5988 = call ptr @s2n_strerror_debug(i32 noundef %5987, ptr noundef @.str.4)
  %5989 = call ptr @__errno_location() #11
  %5990 = load i32, ptr %5989, align 4, !tbaa !5
  %5991 = call ptr @strerror(i32 noundef %5990) #10
  %5992 = call ptr @__errno_location() #11
  %5993 = load i32, ptr %5992, align 4, !tbaa !5
  %5994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5981, ptr noundef @.str.2, i32 noundef %5982, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5985, ptr noundef %5988, ptr noundef %5991, i32 noundef %5993) #10
  br label %6012

5995:                                             ; preds = %5973, %5966
  %5996 = load i32, ptr %149, align 4, !tbaa !5
  %5997 = call ptr @__errno_location() #11
  store i32 %5996, ptr %5997, align 4, !tbaa !5
  %5998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5999 = load i32, ptr @test_count, align 4, !tbaa !5
  %6000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6001 = load i32, ptr %6000, align 4, !tbaa !5
  %6002 = call ptr @s2n_strerror(i32 noundef %6001, ptr noundef @.str.4)
  %6003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call ptr @s2n_strerror_debug(i32 noundef %6004, ptr noundef @.str.4)
  %6006 = call ptr @__errno_location() #11
  %6007 = load i32, ptr %6006, align 4, !tbaa !5
  %6008 = call ptr @strerror(i32 noundef %6007) #10
  %6009 = call ptr @__errno_location() #11
  %6010 = load i32, ptr %6009, align 4, !tbaa !5
  %6011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5998, ptr noundef @.str.5, i32 noundef %5999, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 331, ptr noundef %6002, ptr noundef %6005, ptr noundef %6008, i32 noundef %6010) #10
  br label %6012

6012:                                             ; preds = %5995, %5978
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %6013

6013:                                             ; preds = %6012
  br label %6014

6014:                                             ; preds = %6013
  call void @exit(i32 noundef 1) #12
  unreachable

6015:                                             ; No predecessors!
  br label %6016

6016:                                             ; preds = %6015
  br label %6017

6017:                                             ; preds = %6016, %5957
  br label %6018

6018:                                             ; preds = %6017
  br label %6019

6019:                                             ; preds = %6018
  br label %6020

6020:                                             ; preds = %6019
  %6021 = load i32, ptr @test_count, align 4, !tbaa !5
  %6022 = add nsw i32 %6021, 1
  store i32 %6022, ptr @test_count, align 4, !tbaa !5
  %6023 = load ptr, ptr %147, align 8, !tbaa !9
  %6024 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %6023, ptr noundef @.str.23, ptr noundef null)
  %6025 = icmp eq i32 %6024, -1
  br i1 %6025, label %6026, label %6079

6026:                                             ; preds = %6020
  br label %6027

6027:                                             ; preds = %6026
  br label %6028

6028:                                             ; preds = %6027
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #10
  %6029 = call ptr @__errno_location() #11
  %6030 = load i32, ptr %6029, align 4, !tbaa !5
  store i32 %6030, ptr %150, align 4, !tbaa !5
  %6031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6032 = call i32 @s2n_print_stacktrace(ptr noundef %6031)
  %6033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6034 = trunc i8 %6033 to i1
  br i1 %6034, label %6035, label %6057

6035:                                             ; preds = %6028
  %6036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6037 = call i32 @fileno(ptr noundef %6036) #10
  %6038 = call i32 @isatty(i32 noundef %6037) #10
  %6039 = icmp ne i32 %6038, 0
  br i1 %6039, label %6040, label %6057

6040:                                             ; preds = %6035
  %6041 = load i32, ptr %150, align 4, !tbaa !5
  %6042 = call ptr @__errno_location() #11
  store i32 %6041, ptr %6042, align 4, !tbaa !5
  %6043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6044 = load i32, ptr @test_count, align 4, !tbaa !5
  %6045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6046 = load i32, ptr %6045, align 4, !tbaa !5
  %6047 = call ptr @s2n_strerror(i32 noundef %6046, ptr noundef @.str.4)
  %6048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6049 = load i32, ptr %6048, align 4, !tbaa !5
  %6050 = call ptr @s2n_strerror_debug(i32 noundef %6049, ptr noundef @.str.4)
  %6051 = call ptr @__errno_location() #11
  %6052 = load i32, ptr %6051, align 4, !tbaa !5
  %6053 = call ptr @strerror(i32 noundef %6052) #10
  %6054 = call ptr @__errno_location() #11
  %6055 = load i32, ptr %6054, align 4, !tbaa !5
  %6056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6043, ptr noundef @.str.2, i32 noundef %6044, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6047, ptr noundef %6050, ptr noundef %6053, i32 noundef %6055) #10
  br label %6074

6057:                                             ; preds = %6035, %6028
  %6058 = load i32, ptr %150, align 4, !tbaa !5
  %6059 = call ptr @__errno_location() #11
  store i32 %6058, ptr %6059, align 4, !tbaa !5
  %6060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6061 = load i32, ptr @test_count, align 4, !tbaa !5
  %6062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6063 = load i32, ptr %6062, align 4, !tbaa !5
  %6064 = call ptr @s2n_strerror(i32 noundef %6063, ptr noundef @.str.4)
  %6065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6066 = load i32, ptr %6065, align 4, !tbaa !5
  %6067 = call ptr @s2n_strerror_debug(i32 noundef %6066, ptr noundef @.str.4)
  %6068 = call ptr @__errno_location() #11
  %6069 = load i32, ptr %6068, align 4, !tbaa !5
  %6070 = call ptr @strerror(i32 noundef %6069) #10
  %6071 = call ptr @__errno_location() #11
  %6072 = load i32, ptr %6071, align 4, !tbaa !5
  %6073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6060, ptr noundef @.str.5, i32 noundef %6061, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6064, ptr noundef %6067, ptr noundef %6070, i32 noundef %6072) #10
  br label %6074

6074:                                             ; preds = %6057, %6040
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #10
  br label %6075

6075:                                             ; preds = %6074
  br label %6076

6076:                                             ; preds = %6075
  call void @exit(i32 noundef 1) #12
  unreachable

6077:                                             ; No predecessors!
  br label %6078

6078:                                             ; preds = %6077
  br label %6079

6079:                                             ; preds = %6078, %6020
  br label %6080

6080:                                             ; preds = %6079
  br label %6081

6081:                                             ; preds = %6080
  br label %6082

6082:                                             ; preds = %6081
  %6083 = load i32, ptr @test_count, align 4, !tbaa !5
  %6084 = add nsw i32 %6083, 1
  store i32 %6084, ptr @test_count, align 4, !tbaa !5
  %6085 = load ptr, ptr %147, align 8, !tbaa !9
  %6086 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6085, ptr noundef @.str.30)
  %6087 = icmp eq i32 %6086, -1
  br i1 %6087, label %6088, label %6141

6088:                                             ; preds = %6082
  br label %6089

6089:                                             ; preds = %6088
  br label %6090

6090:                                             ; preds = %6089
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %6091 = call ptr @__errno_location() #11
  %6092 = load i32, ptr %6091, align 4, !tbaa !5
  store i32 %6092, ptr %151, align 4, !tbaa !5
  %6093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6094 = call i32 @s2n_print_stacktrace(ptr noundef %6093)
  %6095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6096 = trunc i8 %6095 to i1
  br i1 %6096, label %6097, label %6119

6097:                                             ; preds = %6090
  %6098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6099 = call i32 @fileno(ptr noundef %6098) #10
  %6100 = call i32 @isatty(i32 noundef %6099) #10
  %6101 = icmp ne i32 %6100, 0
  br i1 %6101, label %6102, label %6119

6102:                                             ; preds = %6097
  %6103 = load i32, ptr %151, align 4, !tbaa !5
  %6104 = call ptr @__errno_location() #11
  store i32 %6103, ptr %6104, align 4, !tbaa !5
  %6105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6106 = load i32, ptr @test_count, align 4, !tbaa !5
  %6107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  %6109 = call ptr @s2n_strerror(i32 noundef %6108, ptr noundef @.str.4)
  %6110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6111 = load i32, ptr %6110, align 4, !tbaa !5
  %6112 = call ptr @s2n_strerror_debug(i32 noundef %6111, ptr noundef @.str.4)
  %6113 = call ptr @__errno_location() #11
  %6114 = load i32, ptr %6113, align 4, !tbaa !5
  %6115 = call ptr @strerror(i32 noundef %6114) #10
  %6116 = call ptr @__errno_location() #11
  %6117 = load i32, ptr %6116, align 4, !tbaa !5
  %6118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6105, ptr noundef @.str.2, i32 noundef %6106, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 333, ptr noundef %6109, ptr noundef %6112, ptr noundef %6115, i32 noundef %6117) #10
  br label %6136

6119:                                             ; preds = %6097, %6090
  %6120 = load i32, ptr %151, align 4, !tbaa !5
  %6121 = call ptr @__errno_location() #11
  store i32 %6120, ptr %6121, align 4, !tbaa !5
  %6122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6123 = load i32, ptr @test_count, align 4, !tbaa !5
  %6124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6125 = load i32, ptr %6124, align 4, !tbaa !5
  %6126 = call ptr @s2n_strerror(i32 noundef %6125, ptr noundef @.str.4)
  %6127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6128 = load i32, ptr %6127, align 4, !tbaa !5
  %6129 = call ptr @s2n_strerror_debug(i32 noundef %6128, ptr noundef @.str.4)
  %6130 = call ptr @__errno_location() #11
  %6131 = load i32, ptr %6130, align 4, !tbaa !5
  %6132 = call ptr @strerror(i32 noundef %6131) #10
  %6133 = call ptr @__errno_location() #11
  %6134 = load i32, ptr %6133, align 4, !tbaa !5
  %6135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6122, ptr noundef @.str.5, i32 noundef %6123, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 333, ptr noundef %6126, ptr noundef %6129, ptr noundef %6132, i32 noundef %6134) #10
  br label %6136

6136:                                             ; preds = %6119, %6102
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %6137

6137:                                             ; preds = %6136
  br label %6138

6138:                                             ; preds = %6137
  call void @exit(i32 noundef 1) #12
  unreachable

6139:                                             ; No predecessors!
  br label %6140

6140:                                             ; preds = %6139
  br label %6141

6141:                                             ; preds = %6140, %6082
  br label %6142

6142:                                             ; preds = %6141
  br label %6143

6143:                                             ; preds = %6142
  br label %6144

6144:                                             ; preds = %6143
  %6145 = load i32, ptr @test_count, align 4, !tbaa !5
  %6146 = add nsw i32 %6145, 1
  store i32 %6146, ptr @test_count, align 4, !tbaa !5
  %6147 = load ptr, ptr %147, align 8, !tbaa !9
  %6148 = call i32 @s2n_config_set_client_auth_type(ptr noundef %6147, i32 noundef 1)
  %6149 = icmp eq i32 %6148, -1
  br i1 %6149, label %6150, label %6203

6150:                                             ; preds = %6144
  br label %6151

6151:                                             ; preds = %6150
  br label %6152

6152:                                             ; preds = %6151
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #10
  %6153 = call ptr @__errno_location() #11
  %6154 = load i32, ptr %6153, align 4, !tbaa !5
  store i32 %6154, ptr %152, align 4, !tbaa !5
  %6155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6156 = call i32 @s2n_print_stacktrace(ptr noundef %6155)
  %6157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6158 = trunc i8 %6157 to i1
  br i1 %6158, label %6159, label %6181

6159:                                             ; preds = %6152
  %6160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6161 = call i32 @fileno(ptr noundef %6160) #10
  %6162 = call i32 @isatty(i32 noundef %6161) #10
  %6163 = icmp ne i32 %6162, 0
  br i1 %6163, label %6164, label %6181

6164:                                             ; preds = %6159
  %6165 = load i32, ptr %152, align 4, !tbaa !5
  %6166 = call ptr @__errno_location() #11
  store i32 %6165, ptr %6166, align 4, !tbaa !5
  %6167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6168 = load i32, ptr @test_count, align 4, !tbaa !5
  %6169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6170 = load i32, ptr %6169, align 4, !tbaa !5
  %6171 = call ptr @s2n_strerror(i32 noundef %6170, ptr noundef @.str.4)
  %6172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6173 = load i32, ptr %6172, align 4, !tbaa !5
  %6174 = call ptr @s2n_strerror_debug(i32 noundef %6173, ptr noundef @.str.4)
  %6175 = call ptr @__errno_location() #11
  %6176 = load i32, ptr %6175, align 4, !tbaa !5
  %6177 = call ptr @strerror(i32 noundef %6176) #10
  %6178 = call ptr @__errno_location() #11
  %6179 = load i32, ptr %6178, align 4, !tbaa !5
  %6180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6167, ptr noundef @.str.2, i32 noundef %6168, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 334, ptr noundef %6171, ptr noundef %6174, ptr noundef %6177, i32 noundef %6179) #10
  br label %6198

6181:                                             ; preds = %6159, %6152
  %6182 = load i32, ptr %152, align 4, !tbaa !5
  %6183 = call ptr @__errno_location() #11
  store i32 %6182, ptr %6183, align 4, !tbaa !5
  %6184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6185 = load i32, ptr @test_count, align 4, !tbaa !5
  %6186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6187 = load i32, ptr %6186, align 4, !tbaa !5
  %6188 = call ptr @s2n_strerror(i32 noundef %6187, ptr noundef @.str.4)
  %6189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6190 = load i32, ptr %6189, align 4, !tbaa !5
  %6191 = call ptr @s2n_strerror_debug(i32 noundef %6190, ptr noundef @.str.4)
  %6192 = call ptr @__errno_location() #11
  %6193 = load i32, ptr %6192, align 4, !tbaa !5
  %6194 = call ptr @strerror(i32 noundef %6193) #10
  %6195 = call ptr @__errno_location() #11
  %6196 = load i32, ptr %6195, align 4, !tbaa !5
  %6197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6184, ptr noundef @.str.5, i32 noundef %6185, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 334, ptr noundef %6188, ptr noundef %6191, ptr noundef %6194, i32 noundef %6196) #10
  br label %6198

6198:                                             ; preds = %6181, %6164
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #10
  br label %6199

6199:                                             ; preds = %6198
  br label %6200

6200:                                             ; preds = %6199
  call void @exit(i32 noundef 1) #12
  unreachable

6201:                                             ; No predecessors!
  br label %6202

6202:                                             ; preds = %6201
  br label %6203

6203:                                             ; preds = %6202, %6144
  br label %6204

6204:                                             ; preds = %6203
  br label %6205

6205:                                             ; preds = %6204
  call void @llvm.lifetime.start.p0(i64 16, ptr %153) #10
  %6206 = load i32, ptr %146, align 4, !tbaa !5
  %6207 = sext i32 %6206 to i64
  %6208 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %6207
  %6209 = getelementptr inbounds %struct.anon, ptr %6208, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %153, ptr align 8 %6209, i64 16, i1 false), !tbaa.struct !18
  br label %6210

6210:                                             ; preds = %6205
  %6211 = load i32, ptr @test_count, align 4, !tbaa !5
  %6212 = add nsw i32 %6211, 1
  store i32 %6212, ptr @test_count, align 4, !tbaa !5
  %6213 = load ptr, ptr %147, align 8, !tbaa !9
  %6214 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %6213, ptr noundef @s2n_test_cert_validation_callback_self_talk_server, ptr noundef %153)
  %6215 = icmp eq i32 %6214, -1
  br i1 %6215, label %6216, label %6269

6216:                                             ; preds = %6210
  br label %6217

6217:                                             ; preds = %6216
  br label %6218

6218:                                             ; preds = %6217
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %6219 = call ptr @__errno_location() #11
  %6220 = load i32, ptr %6219, align 4, !tbaa !5
  store i32 %6220, ptr %154, align 4, !tbaa !5
  %6221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6222 = call i32 @s2n_print_stacktrace(ptr noundef %6221)
  %6223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6224 = trunc i8 %6223 to i1
  br i1 %6224, label %6225, label %6247

6225:                                             ; preds = %6218
  %6226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6227 = call i32 @fileno(ptr noundef %6226) #10
  %6228 = call i32 @isatty(i32 noundef %6227) #10
  %6229 = icmp ne i32 %6228, 0
  br i1 %6229, label %6230, label %6247

6230:                                             ; preds = %6225
  %6231 = load i32, ptr %154, align 4, !tbaa !5
  %6232 = call ptr @__errno_location() #11
  store i32 %6231, ptr %6232, align 4, !tbaa !5
  %6233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6234 = load i32, ptr @test_count, align 4, !tbaa !5
  %6235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6236 = load i32, ptr %6235, align 4, !tbaa !5
  %6237 = call ptr @s2n_strerror(i32 noundef %6236, ptr noundef @.str.4)
  %6238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6239 = load i32, ptr %6238, align 4, !tbaa !5
  %6240 = call ptr @s2n_strerror_debug(i32 noundef %6239, ptr noundef @.str.4)
  %6241 = call ptr @__errno_location() #11
  %6242 = load i32, ptr %6241, align 4, !tbaa !5
  %6243 = call ptr @strerror(i32 noundef %6242) #10
  %6244 = call ptr @__errno_location() #11
  %6245 = load i32, ptr %6244, align 4, !tbaa !5
  %6246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6233, ptr noundef @.str.2, i32 noundef %6234, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 338, ptr noundef %6237, ptr noundef %6240, ptr noundef %6243, i32 noundef %6245) #10
  br label %6264

6247:                                             ; preds = %6225, %6218
  %6248 = load i32, ptr %154, align 4, !tbaa !5
  %6249 = call ptr @__errno_location() #11
  store i32 %6248, ptr %6249, align 4, !tbaa !5
  %6250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6251 = load i32, ptr @test_count, align 4, !tbaa !5
  %6252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6253 = load i32, ptr %6252, align 4, !tbaa !5
  %6254 = call ptr @s2n_strerror(i32 noundef %6253, ptr noundef @.str.4)
  %6255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6256 = load i32, ptr %6255, align 4, !tbaa !5
  %6257 = call ptr @s2n_strerror_debug(i32 noundef %6256, ptr noundef @.str.4)
  %6258 = call ptr @__errno_location() #11
  %6259 = load i32, ptr %6258, align 4, !tbaa !5
  %6260 = call ptr @strerror(i32 noundef %6259) #10
  %6261 = call ptr @__errno_location() #11
  %6262 = load i32, ptr %6261, align 4, !tbaa !5
  %6263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6250, ptr noundef @.str.5, i32 noundef %6251, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 338, ptr noundef %6254, ptr noundef %6257, ptr noundef %6260, i32 noundef %6262) #10
  br label %6264

6264:                                             ; preds = %6247, %6230
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %6265

6265:                                             ; preds = %6264
  br label %6266

6266:                                             ; preds = %6265
  call void @exit(i32 noundef 1) #12
  unreachable

6267:                                             ; No predecessors!
  br label %6268

6268:                                             ; preds = %6267
  br label %6269

6269:                                             ; preds = %6268, %6210
  br label %6270

6270:                                             ; preds = %6269
  br label %6271

6271:                                             ; preds = %6270
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #10
  %6272 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6272, ptr %155, align 8, !tbaa !9
  br label %6273

6273:                                             ; preds = %6271
  %6274 = load i32, ptr @test_count, align 4, !tbaa !5
  %6275 = add nsw i32 %6274, 1
  store i32 %6275, ptr @test_count, align 4, !tbaa !5
  %6276 = load ptr, ptr %155, align 8, !tbaa !9
  %6277 = icmp eq ptr %6276, null
  br i1 %6277, label %6278, label %6331

6278:                                             ; preds = %6273
  br label %6279

6279:                                             ; preds = %6278
  br label %6280

6280:                                             ; preds = %6279
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %6281 = call ptr @__errno_location() #11
  %6282 = load i32, ptr %6281, align 4, !tbaa !5
  store i32 %6282, ptr %156, align 4, !tbaa !5
  %6283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6284 = call i32 @s2n_print_stacktrace(ptr noundef %6283)
  %6285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6286 = trunc i8 %6285 to i1
  br i1 %6286, label %6287, label %6309

6287:                                             ; preds = %6280
  %6288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6289 = call i32 @fileno(ptr noundef %6288) #10
  %6290 = call i32 @isatty(i32 noundef %6289) #10
  %6291 = icmp ne i32 %6290, 0
  br i1 %6291, label %6292, label %6309

6292:                                             ; preds = %6287
  %6293 = load i32, ptr %156, align 4, !tbaa !5
  %6294 = call ptr @__errno_location() #11
  store i32 %6293, ptr %6294, align 4, !tbaa !5
  %6295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6296 = load i32, ptr @test_count, align 4, !tbaa !5
  %6297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6298 = load i32, ptr %6297, align 4, !tbaa !5
  %6299 = call ptr @s2n_strerror(i32 noundef %6298, ptr noundef @.str.4)
  %6300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6301 = load i32, ptr %6300, align 4, !tbaa !5
  %6302 = call ptr @s2n_strerror_debug(i32 noundef %6301, ptr noundef @.str.4)
  %6303 = call ptr @__errno_location() #11
  %6304 = load i32, ptr %6303, align 4, !tbaa !5
  %6305 = call ptr @strerror(i32 noundef %6304) #10
  %6306 = call ptr @__errno_location() #11
  %6307 = load i32, ptr %6306, align 4, !tbaa !5
  %6308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6295, ptr noundef @.str.2, i32 noundef %6296, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6299, ptr noundef %6302, ptr noundef %6305, i32 noundef %6307) #10
  br label %6326

6309:                                             ; preds = %6287, %6280
  %6310 = load i32, ptr %156, align 4, !tbaa !5
  %6311 = call ptr @__errno_location() #11
  store i32 %6310, ptr %6311, align 4, !tbaa !5
  %6312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6313 = load i32, ptr @test_count, align 4, !tbaa !5
  %6314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6315 = load i32, ptr %6314, align 4, !tbaa !5
  %6316 = call ptr @s2n_strerror(i32 noundef %6315, ptr noundef @.str.4)
  %6317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6318 = load i32, ptr %6317, align 4, !tbaa !5
  %6319 = call ptr @s2n_strerror_debug(i32 noundef %6318, ptr noundef @.str.4)
  %6320 = call ptr @__errno_location() #11
  %6321 = load i32, ptr %6320, align 4, !tbaa !5
  %6322 = call ptr @strerror(i32 noundef %6321) #10
  %6323 = call ptr @__errno_location() #11
  %6324 = load i32, ptr %6323, align 4, !tbaa !5
  %6325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6312, ptr noundef @.str.5, i32 noundef %6313, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6316, ptr noundef %6319, ptr noundef %6322, i32 noundef %6324) #10
  br label %6326

6326:                                             ; preds = %6309, %6292
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %6327

6327:                                             ; preds = %6326
  br label %6328

6328:                                             ; preds = %6327
  call void @exit(i32 noundef 1) #12
  unreachable

6329:                                             ; No predecessors!
  br label %6330

6330:                                             ; preds = %6329
  br label %6331

6331:                                             ; preds = %6330, %6273
  br label %6332

6332:                                             ; preds = %6331
  br label %6333

6333:                                             ; preds = %6332
  br label %6334

6334:                                             ; preds = %6333
  %6335 = load i32, ptr @test_count, align 4, !tbaa !5
  %6336 = add nsw i32 %6335, 1
  store i32 %6336, ptr @test_count, align 4, !tbaa !5
  %6337 = load ptr, ptr %155, align 8, !tbaa !9
  %6338 = load ptr, ptr %147, align 8, !tbaa !9
  %6339 = call i32 @s2n_connection_set_config(ptr noundef %6337, ptr noundef %6338)
  %6340 = icmp eq i32 %6339, -1
  br i1 %6340, label %6341, label %6394

6341:                                             ; preds = %6334
  br label %6342

6342:                                             ; preds = %6341
  br label %6343

6343:                                             ; preds = %6342
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %6344 = call ptr @__errno_location() #11
  %6345 = load i32, ptr %6344, align 4, !tbaa !5
  store i32 %6345, ptr %157, align 4, !tbaa !5
  %6346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6347 = call i32 @s2n_print_stacktrace(ptr noundef %6346)
  %6348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6349 = trunc i8 %6348 to i1
  br i1 %6349, label %6350, label %6372

6350:                                             ; preds = %6343
  %6351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6352 = call i32 @fileno(ptr noundef %6351) #10
  %6353 = call i32 @isatty(i32 noundef %6352) #10
  %6354 = icmp ne i32 %6353, 0
  br i1 %6354, label %6355, label %6372

6355:                                             ; preds = %6350
  %6356 = load i32, ptr %157, align 4, !tbaa !5
  %6357 = call ptr @__errno_location() #11
  store i32 %6356, ptr %6357, align 4, !tbaa !5
  %6358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6359 = load i32, ptr @test_count, align 4, !tbaa !5
  %6360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6361 = load i32, ptr %6360, align 4, !tbaa !5
  %6362 = call ptr @s2n_strerror(i32 noundef %6361, ptr noundef @.str.4)
  %6363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6364 = load i32, ptr %6363, align 4, !tbaa !5
  %6365 = call ptr @s2n_strerror_debug(i32 noundef %6364, ptr noundef @.str.4)
  %6366 = call ptr @__errno_location() #11
  %6367 = load i32, ptr %6366, align 4, !tbaa !5
  %6368 = call ptr @strerror(i32 noundef %6367) #10
  %6369 = call ptr @__errno_location() #11
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  %6371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6358, ptr noundef @.str.2, i32 noundef %6359, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 342, ptr noundef %6362, ptr noundef %6365, ptr noundef %6368, i32 noundef %6370) #10
  br label %6389

6372:                                             ; preds = %6350, %6343
  %6373 = load i32, ptr %157, align 4, !tbaa !5
  %6374 = call ptr @__errno_location() #11
  store i32 %6373, ptr %6374, align 4, !tbaa !5
  %6375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6376 = load i32, ptr @test_count, align 4, !tbaa !5
  %6377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6378 = load i32, ptr %6377, align 4, !tbaa !5
  %6379 = call ptr @s2n_strerror(i32 noundef %6378, ptr noundef @.str.4)
  %6380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6381 = load i32, ptr %6380, align 4, !tbaa !5
  %6382 = call ptr @s2n_strerror_debug(i32 noundef %6381, ptr noundef @.str.4)
  %6383 = call ptr @__errno_location() #11
  %6384 = load i32, ptr %6383, align 4, !tbaa !5
  %6385 = call ptr @strerror(i32 noundef %6384) #10
  %6386 = call ptr @__errno_location() #11
  %6387 = load i32, ptr %6386, align 4, !tbaa !5
  %6388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6375, ptr noundef @.str.5, i32 noundef %6376, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 342, ptr noundef %6379, ptr noundef %6382, ptr noundef %6385, i32 noundef %6387) #10
  br label %6389

6389:                                             ; preds = %6372, %6355
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %6390

6390:                                             ; preds = %6389
  br label %6391

6391:                                             ; preds = %6390
  call void @exit(i32 noundef 1) #12
  unreachable

6392:                                             ; No predecessors!
  br label %6393

6393:                                             ; preds = %6392
  br label %6394

6394:                                             ; preds = %6393, %6334
  br label %6395

6395:                                             ; preds = %6394
  br label %6396

6396:                                             ; preds = %6395
  br label %6397

6397:                                             ; preds = %6396
  %6398 = load i32, ptr @test_count, align 4, !tbaa !5
  %6399 = add nsw i32 %6398, 1
  store i32 %6399, ptr @test_count, align 4, !tbaa !5
  %6400 = load ptr, ptr %155, align 8, !tbaa !9
  %6401 = call i32 @s2n_connection_set_blinding(ptr noundef %6400, i32 noundef 1)
  %6402 = icmp eq i32 %6401, -1
  br i1 %6402, label %6403, label %6456

6403:                                             ; preds = %6397
  br label %6404

6404:                                             ; preds = %6403
  br label %6405

6405:                                             ; preds = %6404
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #10
  %6406 = call ptr @__errno_location() #11
  %6407 = load i32, ptr %6406, align 4, !tbaa !5
  store i32 %6407, ptr %158, align 4, !tbaa !5
  %6408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6409 = call i32 @s2n_print_stacktrace(ptr noundef %6408)
  %6410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6411 = trunc i8 %6410 to i1
  br i1 %6411, label %6412, label %6434

6412:                                             ; preds = %6405
  %6413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6414 = call i32 @fileno(ptr noundef %6413) #10
  %6415 = call i32 @isatty(i32 noundef %6414) #10
  %6416 = icmp ne i32 %6415, 0
  br i1 %6416, label %6417, label %6434

6417:                                             ; preds = %6412
  %6418 = load i32, ptr %158, align 4, !tbaa !5
  %6419 = call ptr @__errno_location() #11
  store i32 %6418, ptr %6419, align 4, !tbaa !5
  %6420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6421 = load i32, ptr @test_count, align 4, !tbaa !5
  %6422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6423 = load i32, ptr %6422, align 4, !tbaa !5
  %6424 = call ptr @s2n_strerror(i32 noundef %6423, ptr noundef @.str.4)
  %6425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6426 = load i32, ptr %6425, align 4, !tbaa !5
  %6427 = call ptr @s2n_strerror_debug(i32 noundef %6426, ptr noundef @.str.4)
  %6428 = call ptr @__errno_location() #11
  %6429 = load i32, ptr %6428, align 4, !tbaa !5
  %6430 = call ptr @strerror(i32 noundef %6429) #10
  %6431 = call ptr @__errno_location() #11
  %6432 = load i32, ptr %6431, align 4, !tbaa !5
  %6433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6420, ptr noundef @.str.2, i32 noundef %6421, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 343, ptr noundef %6424, ptr noundef %6427, ptr noundef %6430, i32 noundef %6432) #10
  br label %6451

6434:                                             ; preds = %6412, %6405
  %6435 = load i32, ptr %158, align 4, !tbaa !5
  %6436 = call ptr @__errno_location() #11
  store i32 %6435, ptr %6436, align 4, !tbaa !5
  %6437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6438 = load i32, ptr @test_count, align 4, !tbaa !5
  %6439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6440 = load i32, ptr %6439, align 4, !tbaa !5
  %6441 = call ptr @s2n_strerror(i32 noundef %6440, ptr noundef @.str.4)
  %6442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6443 = load i32, ptr %6442, align 4, !tbaa !5
  %6444 = call ptr @s2n_strerror_debug(i32 noundef %6443, ptr noundef @.str.4)
  %6445 = call ptr @__errno_location() #11
  %6446 = load i32, ptr %6445, align 4, !tbaa !5
  %6447 = call ptr @strerror(i32 noundef %6446) #10
  %6448 = call ptr @__errno_location() #11
  %6449 = load i32, ptr %6448, align 4, !tbaa !5
  %6450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6437, ptr noundef @.str.5, i32 noundef %6438, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 343, ptr noundef %6441, ptr noundef %6444, ptr noundef %6447, i32 noundef %6449) #10
  br label %6451

6451:                                             ; preds = %6434, %6417
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #10
  br label %6452

6452:                                             ; preds = %6451
  br label %6453

6453:                                             ; preds = %6452
  call void @exit(i32 noundef 1) #12
  unreachable

6454:                                             ; No predecessors!
  br label %6455

6455:                                             ; preds = %6454
  br label %6456

6456:                                             ; preds = %6455, %6397
  br label %6457

6457:                                             ; preds = %6456
  br label %6458

6458:                                             ; preds = %6457
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #10
  %6459 = call ptr @s2n_config_new()
  store ptr %6459, ptr %159, align 8, !tbaa !9
  br label %6460

6460:                                             ; preds = %6458
  %6461 = load i32, ptr @test_count, align 4, !tbaa !5
  %6462 = add nsw i32 %6461, 1
  store i32 %6462, ptr @test_count, align 4, !tbaa !5
  %6463 = load ptr, ptr %159, align 8, !tbaa !9
  %6464 = icmp eq ptr %6463, null
  br i1 %6464, label %6465, label %6518

6465:                                             ; preds = %6460
  br label %6466

6466:                                             ; preds = %6465
  br label %6467

6467:                                             ; preds = %6466
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #10
  %6468 = call ptr @__errno_location() #11
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  store i32 %6469, ptr %160, align 4, !tbaa !5
  %6470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6471 = call i32 @s2n_print_stacktrace(ptr noundef %6470)
  %6472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6473 = trunc i8 %6472 to i1
  br i1 %6473, label %6474, label %6496

6474:                                             ; preds = %6467
  %6475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6476 = call i32 @fileno(ptr noundef %6475) #10
  %6477 = call i32 @isatty(i32 noundef %6476) #10
  %6478 = icmp ne i32 %6477, 0
  br i1 %6478, label %6479, label %6496

6479:                                             ; preds = %6474
  %6480 = load i32, ptr %160, align 4, !tbaa !5
  %6481 = call ptr @__errno_location() #11
  store i32 %6480, ptr %6481, align 4, !tbaa !5
  %6482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6483 = load i32, ptr @test_count, align 4, !tbaa !5
  %6484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6485 = load i32, ptr %6484, align 4, !tbaa !5
  %6486 = call ptr @s2n_strerror(i32 noundef %6485, ptr noundef @.str.4)
  %6487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6488 = load i32, ptr %6487, align 4, !tbaa !5
  %6489 = call ptr @s2n_strerror_debug(i32 noundef %6488, ptr noundef @.str.4)
  %6490 = call ptr @__errno_location() #11
  %6491 = load i32, ptr %6490, align 4, !tbaa !5
  %6492 = call ptr @strerror(i32 noundef %6491) #10
  %6493 = call ptr @__errno_location() #11
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  %6495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6482, ptr noundef @.str.2, i32 noundef %6483, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 346, ptr noundef %6486, ptr noundef %6489, ptr noundef %6492, i32 noundef %6494) #10
  br label %6513

6496:                                             ; preds = %6474, %6467
  %6497 = load i32, ptr %160, align 4, !tbaa !5
  %6498 = call ptr @__errno_location() #11
  store i32 %6497, ptr %6498, align 4, !tbaa !5
  %6499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6500 = load i32, ptr @test_count, align 4, !tbaa !5
  %6501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6502 = load i32, ptr %6501, align 4, !tbaa !5
  %6503 = call ptr @s2n_strerror(i32 noundef %6502, ptr noundef @.str.4)
  %6504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6505 = load i32, ptr %6504, align 4, !tbaa !5
  %6506 = call ptr @s2n_strerror_debug(i32 noundef %6505, ptr noundef @.str.4)
  %6507 = call ptr @__errno_location() #11
  %6508 = load i32, ptr %6507, align 4, !tbaa !5
  %6509 = call ptr @strerror(i32 noundef %6508) #10
  %6510 = call ptr @__errno_location() #11
  %6511 = load i32, ptr %6510, align 4, !tbaa !5
  %6512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6499, ptr noundef @.str.5, i32 noundef %6500, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 346, ptr noundef %6503, ptr noundef %6506, ptr noundef %6509, i32 noundef %6511) #10
  br label %6513

6513:                                             ; preds = %6496, %6479
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #10
  br label %6514

6514:                                             ; preds = %6513
  br label %6515

6515:                                             ; preds = %6514
  call void @exit(i32 noundef 1) #12
  unreachable

6516:                                             ; No predecessors!
  br label %6517

6517:                                             ; preds = %6516
  br label %6518

6518:                                             ; preds = %6517, %6460
  br label %6519

6519:                                             ; preds = %6518
  br label %6520

6520:                                             ; preds = %6519
  br label %6521

6521:                                             ; preds = %6520
  %6522 = load i32, ptr @test_count, align 4, !tbaa !5
  %6523 = add nsw i32 %6522, 1
  store i32 %6523, ptr @test_count, align 4, !tbaa !5
  %6524 = load ptr, ptr %159, align 8, !tbaa !9
  %6525 = load ptr, ptr %45, align 8, !tbaa !9
  %6526 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6524, ptr noundef %6525)
  %6527 = icmp eq i32 %6526, -1
  br i1 %6527, label %6528, label %6581

6528:                                             ; preds = %6521
  br label %6529

6529:                                             ; preds = %6528
  br label %6530

6530:                                             ; preds = %6529
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #10
  %6531 = call ptr @__errno_location() #11
  %6532 = load i32, ptr %6531, align 4, !tbaa !5
  store i32 %6532, ptr %161, align 4, !tbaa !5
  %6533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6534 = call i32 @s2n_print_stacktrace(ptr noundef %6533)
  %6535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6536 = trunc i8 %6535 to i1
  br i1 %6536, label %6537, label %6559

6537:                                             ; preds = %6530
  %6538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6539 = call i32 @fileno(ptr noundef %6538) #10
  %6540 = call i32 @isatty(i32 noundef %6539) #10
  %6541 = icmp ne i32 %6540, 0
  br i1 %6541, label %6542, label %6559

6542:                                             ; preds = %6537
  %6543 = load i32, ptr %161, align 4, !tbaa !5
  %6544 = call ptr @__errno_location() #11
  store i32 %6543, ptr %6544, align 4, !tbaa !5
  %6545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6546 = load i32, ptr @test_count, align 4, !tbaa !5
  %6547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6548 = load i32, ptr %6547, align 4, !tbaa !5
  %6549 = call ptr @s2n_strerror(i32 noundef %6548, ptr noundef @.str.4)
  %6550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6551 = load i32, ptr %6550, align 4, !tbaa !5
  %6552 = call ptr @s2n_strerror_debug(i32 noundef %6551, ptr noundef @.str.4)
  %6553 = call ptr @__errno_location() #11
  %6554 = load i32, ptr %6553, align 4, !tbaa !5
  %6555 = call ptr @strerror(i32 noundef %6554) #10
  %6556 = call ptr @__errno_location() #11
  %6557 = load i32, ptr %6556, align 4, !tbaa !5
  %6558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6545, ptr noundef @.str.2, i32 noundef %6546, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 347, ptr noundef %6549, ptr noundef %6552, ptr noundef %6555, i32 noundef %6557) #10
  br label %6576

6559:                                             ; preds = %6537, %6530
  %6560 = load i32, ptr %161, align 4, !tbaa !5
  %6561 = call ptr @__errno_location() #11
  store i32 %6560, ptr %6561, align 4, !tbaa !5
  %6562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6563 = load i32, ptr @test_count, align 4, !tbaa !5
  %6564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6565 = load i32, ptr %6564, align 4, !tbaa !5
  %6566 = call ptr @s2n_strerror(i32 noundef %6565, ptr noundef @.str.4)
  %6567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6568 = load i32, ptr %6567, align 4, !tbaa !5
  %6569 = call ptr @s2n_strerror_debug(i32 noundef %6568, ptr noundef @.str.4)
  %6570 = call ptr @__errno_location() #11
  %6571 = load i32, ptr %6570, align 4, !tbaa !5
  %6572 = call ptr @strerror(i32 noundef %6571) #10
  %6573 = call ptr @__errno_location() #11
  %6574 = load i32, ptr %6573, align 4, !tbaa !5
  %6575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6562, ptr noundef @.str.5, i32 noundef %6563, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 347, ptr noundef %6566, ptr noundef %6569, ptr noundef %6572, i32 noundef %6574) #10
  br label %6576

6576:                                             ; preds = %6559, %6542
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #10
  br label %6577

6577:                                             ; preds = %6576
  br label %6578

6578:                                             ; preds = %6577
  call void @exit(i32 noundef 1) #12
  unreachable

6579:                                             ; No predecessors!
  br label %6580

6580:                                             ; preds = %6579
  br label %6581

6581:                                             ; preds = %6580, %6521
  br label %6582

6582:                                             ; preds = %6581
  br label %6583

6583:                                             ; preds = %6582
  br label %6584

6584:                                             ; preds = %6583
  %6585 = load i32, ptr @test_count, align 4, !tbaa !5
  %6586 = add nsw i32 %6585, 1
  store i32 %6586, ptr @test_count, align 4, !tbaa !5
  %6587 = load ptr, ptr %159, align 8, !tbaa !9
  %6588 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %6587, ptr noundef @.str.23, ptr noundef null)
  %6589 = icmp eq i32 %6588, -1
  br i1 %6589, label %6590, label %6643

6590:                                             ; preds = %6584
  br label %6591

6591:                                             ; preds = %6590
  br label %6592

6592:                                             ; preds = %6591
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #10
  %6593 = call ptr @__errno_location() #11
  %6594 = load i32, ptr %6593, align 4, !tbaa !5
  store i32 %6594, ptr %162, align 4, !tbaa !5
  %6595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6596 = call i32 @s2n_print_stacktrace(ptr noundef %6595)
  %6597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6598 = trunc i8 %6597 to i1
  br i1 %6598, label %6599, label %6621

6599:                                             ; preds = %6592
  %6600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6601 = call i32 @fileno(ptr noundef %6600) #10
  %6602 = call i32 @isatty(i32 noundef %6601) #10
  %6603 = icmp ne i32 %6602, 0
  br i1 %6603, label %6604, label %6621

6604:                                             ; preds = %6599
  %6605 = load i32, ptr %162, align 4, !tbaa !5
  %6606 = call ptr @__errno_location() #11
  store i32 %6605, ptr %6606, align 4, !tbaa !5
  %6607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6608 = load i32, ptr @test_count, align 4, !tbaa !5
  %6609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6610 = load i32, ptr %6609, align 4, !tbaa !5
  %6611 = call ptr @s2n_strerror(i32 noundef %6610, ptr noundef @.str.4)
  %6612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  %6614 = call ptr @s2n_strerror_debug(i32 noundef %6613, ptr noundef @.str.4)
  %6615 = call ptr @__errno_location() #11
  %6616 = load i32, ptr %6615, align 4, !tbaa !5
  %6617 = call ptr @strerror(i32 noundef %6616) #10
  %6618 = call ptr @__errno_location() #11
  %6619 = load i32, ptr %6618, align 4, !tbaa !5
  %6620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6607, ptr noundef @.str.2, i32 noundef %6608, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 348, ptr noundef %6611, ptr noundef %6614, ptr noundef %6617, i32 noundef %6619) #10
  br label %6638

6621:                                             ; preds = %6599, %6592
  %6622 = load i32, ptr %162, align 4, !tbaa !5
  %6623 = call ptr @__errno_location() #11
  store i32 %6622, ptr %6623, align 4, !tbaa !5
  %6624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6625 = load i32, ptr @test_count, align 4, !tbaa !5
  %6626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6627 = load i32, ptr %6626, align 4, !tbaa !5
  %6628 = call ptr @s2n_strerror(i32 noundef %6627, ptr noundef @.str.4)
  %6629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6630 = load i32, ptr %6629, align 4, !tbaa !5
  %6631 = call ptr @s2n_strerror_debug(i32 noundef %6630, ptr noundef @.str.4)
  %6632 = call ptr @__errno_location() #11
  %6633 = load i32, ptr %6632, align 4, !tbaa !5
  %6634 = call ptr @strerror(i32 noundef %6633) #10
  %6635 = call ptr @__errno_location() #11
  %6636 = load i32, ptr %6635, align 4, !tbaa !5
  %6637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6624, ptr noundef @.str.5, i32 noundef %6625, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 348, ptr noundef %6628, ptr noundef %6631, ptr noundef %6634, i32 noundef %6636) #10
  br label %6638

6638:                                             ; preds = %6621, %6604
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #10
  br label %6639

6639:                                             ; preds = %6638
  br label %6640

6640:                                             ; preds = %6639
  call void @exit(i32 noundef 1) #12
  unreachable

6641:                                             ; No predecessors!
  br label %6642

6642:                                             ; preds = %6641
  br label %6643

6643:                                             ; preds = %6642, %6584
  br label %6644

6644:                                             ; preds = %6643
  br label %6645

6645:                                             ; preds = %6644
  br label %6646

6646:                                             ; preds = %6645
  %6647 = load i32, ptr @test_count, align 4, !tbaa !5
  %6648 = add nsw i32 %6647, 1
  store i32 %6648, ptr @test_count, align 4, !tbaa !5
  %6649 = load ptr, ptr %159, align 8, !tbaa !9
  %6650 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6649, ptr noundef @.str.30)
  %6651 = icmp eq i32 %6650, -1
  br i1 %6651, label %6652, label %6705

6652:                                             ; preds = %6646
  br label %6653

6653:                                             ; preds = %6652
  br label %6654

6654:                                             ; preds = %6653
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %6655 = call ptr @__errno_location() #11
  %6656 = load i32, ptr %6655, align 4, !tbaa !5
  store i32 %6656, ptr %163, align 4, !tbaa !5
  %6657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6658 = call i32 @s2n_print_stacktrace(ptr noundef %6657)
  %6659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6660 = trunc i8 %6659 to i1
  br i1 %6660, label %6661, label %6683

6661:                                             ; preds = %6654
  %6662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6663 = call i32 @fileno(ptr noundef %6662) #10
  %6664 = call i32 @isatty(i32 noundef %6663) #10
  %6665 = icmp ne i32 %6664, 0
  br i1 %6665, label %6666, label %6683

6666:                                             ; preds = %6661
  %6667 = load i32, ptr %163, align 4, !tbaa !5
  %6668 = call ptr @__errno_location() #11
  store i32 %6667, ptr %6668, align 4, !tbaa !5
  %6669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6670 = load i32, ptr @test_count, align 4, !tbaa !5
  %6671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6672 = load i32, ptr %6671, align 4, !tbaa !5
  %6673 = call ptr @s2n_strerror(i32 noundef %6672, ptr noundef @.str.4)
  %6674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6675 = load i32, ptr %6674, align 4, !tbaa !5
  %6676 = call ptr @s2n_strerror_debug(i32 noundef %6675, ptr noundef @.str.4)
  %6677 = call ptr @__errno_location() #11
  %6678 = load i32, ptr %6677, align 4, !tbaa !5
  %6679 = call ptr @strerror(i32 noundef %6678) #10
  %6680 = call ptr @__errno_location() #11
  %6681 = load i32, ptr %6680, align 4, !tbaa !5
  %6682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6669, ptr noundef @.str.2, i32 noundef %6670, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 349, ptr noundef %6673, ptr noundef %6676, ptr noundef %6679, i32 noundef %6681) #10
  br label %6700

6683:                                             ; preds = %6661, %6654
  %6684 = load i32, ptr %163, align 4, !tbaa !5
  %6685 = call ptr @__errno_location() #11
  store i32 %6684, ptr %6685, align 4, !tbaa !5
  %6686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6687 = load i32, ptr @test_count, align 4, !tbaa !5
  %6688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6689 = load i32, ptr %6688, align 4, !tbaa !5
  %6690 = call ptr @s2n_strerror(i32 noundef %6689, ptr noundef @.str.4)
  %6691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6692 = load i32, ptr %6691, align 4, !tbaa !5
  %6693 = call ptr @s2n_strerror_debug(i32 noundef %6692, ptr noundef @.str.4)
  %6694 = call ptr @__errno_location() #11
  %6695 = load i32, ptr %6694, align 4, !tbaa !5
  %6696 = call ptr @strerror(i32 noundef %6695) #10
  %6697 = call ptr @__errno_location() #11
  %6698 = load i32, ptr %6697, align 4, !tbaa !5
  %6699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6686, ptr noundef @.str.5, i32 noundef %6687, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 349, ptr noundef %6690, ptr noundef %6693, ptr noundef %6696, i32 noundef %6698) #10
  br label %6700

6700:                                             ; preds = %6683, %6666
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %6701

6701:                                             ; preds = %6700
  br label %6702

6702:                                             ; preds = %6701
  call void @exit(i32 noundef 1) #12
  unreachable

6703:                                             ; No predecessors!
  br label %6704

6704:                                             ; preds = %6703
  br label %6705

6705:                                             ; preds = %6704, %6646
  br label %6706

6706:                                             ; preds = %6705
  br label %6707

6707:                                             ; preds = %6706
  br label %6708

6708:                                             ; preds = %6707
  %6709 = load i32, ptr @test_count, align 4, !tbaa !5
  %6710 = add nsw i32 %6709, 1
  store i32 %6710, ptr @test_count, align 4, !tbaa !5
  %6711 = load ptr, ptr %159, align 8, !tbaa !9
  %6712 = call i32 @s2n_config_set_client_auth_type(ptr noundef %6711, i32 noundef 2)
  %6713 = icmp eq i32 %6712, -1
  br i1 %6713, label %6714, label %6767

6714:                                             ; preds = %6708
  br label %6715

6715:                                             ; preds = %6714
  br label %6716

6716:                                             ; preds = %6715
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #10
  %6717 = call ptr @__errno_location() #11
  %6718 = load i32, ptr %6717, align 4, !tbaa !5
  store i32 %6718, ptr %164, align 4, !tbaa !5
  %6719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6720 = call i32 @s2n_print_stacktrace(ptr noundef %6719)
  %6721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6722 = trunc i8 %6721 to i1
  br i1 %6722, label %6723, label %6745

6723:                                             ; preds = %6716
  %6724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6725 = call i32 @fileno(ptr noundef %6724) #10
  %6726 = call i32 @isatty(i32 noundef %6725) #10
  %6727 = icmp ne i32 %6726, 0
  br i1 %6727, label %6728, label %6745

6728:                                             ; preds = %6723
  %6729 = load i32, ptr %164, align 4, !tbaa !5
  %6730 = call ptr @__errno_location() #11
  store i32 %6729, ptr %6730, align 4, !tbaa !5
  %6731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6732 = load i32, ptr @test_count, align 4, !tbaa !5
  %6733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6734 = load i32, ptr %6733, align 4, !tbaa !5
  %6735 = call ptr @s2n_strerror(i32 noundef %6734, ptr noundef @.str.4)
  %6736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6737 = load i32, ptr %6736, align 4, !tbaa !5
  %6738 = call ptr @s2n_strerror_debug(i32 noundef %6737, ptr noundef @.str.4)
  %6739 = call ptr @__errno_location() #11
  %6740 = load i32, ptr %6739, align 4, !tbaa !5
  %6741 = call ptr @strerror(i32 noundef %6740) #10
  %6742 = call ptr @__errno_location() #11
  %6743 = load i32, ptr %6742, align 4, !tbaa !5
  %6744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6731, ptr noundef @.str.2, i32 noundef %6732, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 350, ptr noundef %6735, ptr noundef %6738, ptr noundef %6741, i32 noundef %6743) #10
  br label %6762

6745:                                             ; preds = %6723, %6716
  %6746 = load i32, ptr %164, align 4, !tbaa !5
  %6747 = call ptr @__errno_location() #11
  store i32 %6746, ptr %6747, align 4, !tbaa !5
  %6748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6749 = load i32, ptr @test_count, align 4, !tbaa !5
  %6750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6751 = load i32, ptr %6750, align 4, !tbaa !5
  %6752 = call ptr @s2n_strerror(i32 noundef %6751, ptr noundef @.str.4)
  %6753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6754 = load i32, ptr %6753, align 4, !tbaa !5
  %6755 = call ptr @s2n_strerror_debug(i32 noundef %6754, ptr noundef @.str.4)
  %6756 = call ptr @__errno_location() #11
  %6757 = load i32, ptr %6756, align 4, !tbaa !5
  %6758 = call ptr @strerror(i32 noundef %6757) #10
  %6759 = call ptr @__errno_location() #11
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6748, ptr noundef @.str.5, i32 noundef %6749, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 350, ptr noundef %6752, ptr noundef %6755, ptr noundef %6758, i32 noundef %6760) #10
  br label %6762

6762:                                             ; preds = %6745, %6728
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #10
  br label %6763

6763:                                             ; preds = %6762
  br label %6764

6764:                                             ; preds = %6763
  call void @exit(i32 noundef 1) #12
  unreachable

6765:                                             ; No predecessors!
  br label %6766

6766:                                             ; preds = %6765
  br label %6767

6767:                                             ; preds = %6766, %6708
  br label %6768

6768:                                             ; preds = %6767
  br label %6769

6769:                                             ; preds = %6768
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #10
  %6770 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6770, ptr %165, align 8, !tbaa !9
  br label %6771

6771:                                             ; preds = %6769
  %6772 = load i32, ptr @test_count, align 4, !tbaa !5
  %6773 = add nsw i32 %6772, 1
  store i32 %6773, ptr @test_count, align 4, !tbaa !5
  %6774 = load ptr, ptr %165, align 8, !tbaa !9
  %6775 = icmp eq ptr %6774, null
  br i1 %6775, label %6776, label %6829

6776:                                             ; preds = %6771
  br label %6777

6777:                                             ; preds = %6776
  br label %6778

6778:                                             ; preds = %6777
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #10
  %6779 = call ptr @__errno_location() #11
  %6780 = load i32, ptr %6779, align 4, !tbaa !5
  store i32 %6780, ptr %166, align 4, !tbaa !5
  %6781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6782 = call i32 @s2n_print_stacktrace(ptr noundef %6781)
  %6783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6784 = trunc i8 %6783 to i1
  br i1 %6784, label %6785, label %6807

6785:                                             ; preds = %6778
  %6786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6787 = call i32 @fileno(ptr noundef %6786) #10
  %6788 = call i32 @isatty(i32 noundef %6787) #10
  %6789 = icmp ne i32 %6788, 0
  br i1 %6789, label %6790, label %6807

6790:                                             ; preds = %6785
  %6791 = load i32, ptr %166, align 4, !tbaa !5
  %6792 = call ptr @__errno_location() #11
  store i32 %6791, ptr %6792, align 4, !tbaa !5
  %6793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6794 = load i32, ptr @test_count, align 4, !tbaa !5
  %6795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6796 = load i32, ptr %6795, align 4, !tbaa !5
  %6797 = call ptr @s2n_strerror(i32 noundef %6796, ptr noundef @.str.4)
  %6798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6799 = load i32, ptr %6798, align 4, !tbaa !5
  %6800 = call ptr @s2n_strerror_debug(i32 noundef %6799, ptr noundef @.str.4)
  %6801 = call ptr @__errno_location() #11
  %6802 = load i32, ptr %6801, align 4, !tbaa !5
  %6803 = call ptr @strerror(i32 noundef %6802) #10
  %6804 = call ptr @__errno_location() #11
  %6805 = load i32, ptr %6804, align 4, !tbaa !5
  %6806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6793, ptr noundef @.str.2, i32 noundef %6794, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 353, ptr noundef %6797, ptr noundef %6800, ptr noundef %6803, i32 noundef %6805) #10
  br label %6824

6807:                                             ; preds = %6785, %6778
  %6808 = load i32, ptr %166, align 4, !tbaa !5
  %6809 = call ptr @__errno_location() #11
  store i32 %6808, ptr %6809, align 4, !tbaa !5
  %6810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6811 = load i32, ptr @test_count, align 4, !tbaa !5
  %6812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6813 = load i32, ptr %6812, align 4, !tbaa !5
  %6814 = call ptr @s2n_strerror(i32 noundef %6813, ptr noundef @.str.4)
  %6815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6816 = load i32, ptr %6815, align 4, !tbaa !5
  %6817 = call ptr @s2n_strerror_debug(i32 noundef %6816, ptr noundef @.str.4)
  %6818 = call ptr @__errno_location() #11
  %6819 = load i32, ptr %6818, align 4, !tbaa !5
  %6820 = call ptr @strerror(i32 noundef %6819) #10
  %6821 = call ptr @__errno_location() #11
  %6822 = load i32, ptr %6821, align 4, !tbaa !5
  %6823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6810, ptr noundef @.str.5, i32 noundef %6811, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 353, ptr noundef %6814, ptr noundef %6817, ptr noundef %6820, i32 noundef %6822) #10
  br label %6824

6824:                                             ; preds = %6807, %6790
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #10
  br label %6825

6825:                                             ; preds = %6824
  br label %6826

6826:                                             ; preds = %6825
  call void @exit(i32 noundef 1) #12
  unreachable

6827:                                             ; No predecessors!
  br label %6828

6828:                                             ; preds = %6827
  br label %6829

6829:                                             ; preds = %6828, %6771
  br label %6830

6830:                                             ; preds = %6829
  br label %6831

6831:                                             ; preds = %6830
  br label %6832

6832:                                             ; preds = %6831
  %6833 = load i32, ptr @test_count, align 4, !tbaa !5
  %6834 = add nsw i32 %6833, 1
  store i32 %6834, ptr @test_count, align 4, !tbaa !5
  %6835 = load ptr, ptr %165, align 8, !tbaa !9
  %6836 = load ptr, ptr %159, align 8, !tbaa !9
  %6837 = call i32 @s2n_connection_set_config(ptr noundef %6835, ptr noundef %6836)
  %6838 = icmp eq i32 %6837, -1
  br i1 %6838, label %6839, label %6892

6839:                                             ; preds = %6832
  br label %6840

6840:                                             ; preds = %6839
  br label %6841

6841:                                             ; preds = %6840
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  %6842 = call ptr @__errno_location() #11
  %6843 = load i32, ptr %6842, align 4, !tbaa !5
  store i32 %6843, ptr %167, align 4, !tbaa !5
  %6844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6845 = call i32 @s2n_print_stacktrace(ptr noundef %6844)
  %6846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6847 = trunc i8 %6846 to i1
  br i1 %6847, label %6848, label %6870

6848:                                             ; preds = %6841
  %6849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6850 = call i32 @fileno(ptr noundef %6849) #10
  %6851 = call i32 @isatty(i32 noundef %6850) #10
  %6852 = icmp ne i32 %6851, 0
  br i1 %6852, label %6853, label %6870

6853:                                             ; preds = %6848
  %6854 = load i32, ptr %167, align 4, !tbaa !5
  %6855 = call ptr @__errno_location() #11
  store i32 %6854, ptr %6855, align 4, !tbaa !5
  %6856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6857 = load i32, ptr @test_count, align 4, !tbaa !5
  %6858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6859 = load i32, ptr %6858, align 4, !tbaa !5
  %6860 = call ptr @s2n_strerror(i32 noundef %6859, ptr noundef @.str.4)
  %6861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6862 = load i32, ptr %6861, align 4, !tbaa !5
  %6863 = call ptr @s2n_strerror_debug(i32 noundef %6862, ptr noundef @.str.4)
  %6864 = call ptr @__errno_location() #11
  %6865 = load i32, ptr %6864, align 4, !tbaa !5
  %6866 = call ptr @strerror(i32 noundef %6865) #10
  %6867 = call ptr @__errno_location() #11
  %6868 = load i32, ptr %6867, align 4, !tbaa !5
  %6869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6856, ptr noundef @.str.2, i32 noundef %6857, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 354, ptr noundef %6860, ptr noundef %6863, ptr noundef %6866, i32 noundef %6868) #10
  br label %6887

6870:                                             ; preds = %6848, %6841
  %6871 = load i32, ptr %167, align 4, !tbaa !5
  %6872 = call ptr @__errno_location() #11
  store i32 %6871, ptr %6872, align 4, !tbaa !5
  %6873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6874 = load i32, ptr @test_count, align 4, !tbaa !5
  %6875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6876 = load i32, ptr %6875, align 4, !tbaa !5
  %6877 = call ptr @s2n_strerror(i32 noundef %6876, ptr noundef @.str.4)
  %6878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call ptr @s2n_strerror_debug(i32 noundef %6879, ptr noundef @.str.4)
  %6881 = call ptr @__errno_location() #11
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call ptr @strerror(i32 noundef %6882) #10
  %6884 = call ptr @__errno_location() #11
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6873, ptr noundef @.str.5, i32 noundef %6874, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 354, ptr noundef %6877, ptr noundef %6880, ptr noundef %6883, i32 noundef %6885) #10
  br label %6887

6887:                                             ; preds = %6870, %6853
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  br label %6888

6888:                                             ; preds = %6887
  br label %6889

6889:                                             ; preds = %6888
  call void @exit(i32 noundef 1) #12
  unreachable

6890:                                             ; No predecessors!
  br label %6891

6891:                                             ; preds = %6890
  br label %6892

6892:                                             ; preds = %6891, %6832
  br label %6893

6893:                                             ; preds = %6892
  br label %6894

6894:                                             ; preds = %6893
  br label %6895

6895:                                             ; preds = %6894
  %6896 = load i32, ptr @test_count, align 4, !tbaa !5
  %6897 = add nsw i32 %6896, 1
  store i32 %6897, ptr @test_count, align 4, !tbaa !5
  %6898 = load ptr, ptr %165, align 8, !tbaa !9
  %6899 = call i32 @s2n_set_server_name(ptr noundef %6898, ptr noundef @.str.35)
  %6900 = icmp eq i32 %6899, -1
  br i1 %6900, label %6901, label %6954

6901:                                             ; preds = %6895
  br label %6902

6902:                                             ; preds = %6901
  br label %6903

6903:                                             ; preds = %6902
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #10
  %6904 = call ptr @__errno_location() #11
  %6905 = load i32, ptr %6904, align 4, !tbaa !5
  store i32 %6905, ptr %168, align 4, !tbaa !5
  %6906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6907 = call i32 @s2n_print_stacktrace(ptr noundef %6906)
  %6908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6909 = trunc i8 %6908 to i1
  br i1 %6909, label %6910, label %6932

6910:                                             ; preds = %6903
  %6911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6912 = call i32 @fileno(ptr noundef %6911) #10
  %6913 = call i32 @isatty(i32 noundef %6912) #10
  %6914 = icmp ne i32 %6913, 0
  br i1 %6914, label %6915, label %6932

6915:                                             ; preds = %6910
  %6916 = load i32, ptr %168, align 4, !tbaa !5
  %6917 = call ptr @__errno_location() #11
  store i32 %6916, ptr %6917, align 4, !tbaa !5
  %6918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6919 = load i32, ptr @test_count, align 4, !tbaa !5
  %6920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6921 = load i32, ptr %6920, align 4, !tbaa !5
  %6922 = call ptr @s2n_strerror(i32 noundef %6921, ptr noundef @.str.4)
  %6923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  %6925 = call ptr @s2n_strerror_debug(i32 noundef %6924, ptr noundef @.str.4)
  %6926 = call ptr @__errno_location() #11
  %6927 = load i32, ptr %6926, align 4, !tbaa !5
  %6928 = call ptr @strerror(i32 noundef %6927) #10
  %6929 = call ptr @__errno_location() #11
  %6930 = load i32, ptr %6929, align 4, !tbaa !5
  %6931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6918, ptr noundef @.str.2, i32 noundef %6919, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 355, ptr noundef %6922, ptr noundef %6925, ptr noundef %6928, i32 noundef %6930) #10
  br label %6949

6932:                                             ; preds = %6910, %6903
  %6933 = load i32, ptr %168, align 4, !tbaa !5
  %6934 = call ptr @__errno_location() #11
  store i32 %6933, ptr %6934, align 4, !tbaa !5
  %6935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6936 = load i32, ptr @test_count, align 4, !tbaa !5
  %6937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @s2n_strerror(i32 noundef %6938, ptr noundef @.str.4)
  %6940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call ptr @s2n_strerror_debug(i32 noundef %6941, ptr noundef @.str.4)
  %6943 = call ptr @__errno_location() #11
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  %6945 = call ptr @strerror(i32 noundef %6944) #10
  %6946 = call ptr @__errno_location() #11
  %6947 = load i32, ptr %6946, align 4, !tbaa !5
  %6948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6935, ptr noundef @.str.5, i32 noundef %6936, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 355, ptr noundef %6939, ptr noundef %6942, ptr noundef %6945, i32 noundef %6947) #10
  br label %6949

6949:                                             ; preds = %6932, %6915
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #10
  br label %6950

6950:                                             ; preds = %6949
  br label %6951

6951:                                             ; preds = %6950
  call void @exit(i32 noundef 1) #12
  unreachable

6952:                                             ; No predecessors!
  br label %6953

6953:                                             ; preds = %6952
  br label %6954

6954:                                             ; preds = %6953, %6895
  br label %6955

6955:                                             ; preds = %6954
  br label %6956

6956:                                             ; preds = %6955
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #10
  call void @llvm.memset.p0.i64(ptr align 4 %169, i8 0, i64 8, i1 false)
  br label %6957

6957:                                             ; preds = %6956
  %6958 = load i32, ptr @test_count, align 4, !tbaa !5
  %6959 = add nsw i32 %6958, 1
  store i32 %6959, ptr @test_count, align 4, !tbaa !5
  %6960 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %169)
  %6961 = icmp eq i32 %6960, -1
  br i1 %6961, label %6962, label %7015

6962:                                             ; preds = %6957
  br label %6963

6963:                                             ; preds = %6962
  br label %6964

6964:                                             ; preds = %6963
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #10
  %6965 = call ptr @__errno_location() #11
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  store i32 %6966, ptr %170, align 4, !tbaa !5
  %6967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6968 = call i32 @s2n_print_stacktrace(ptr noundef %6967)
  %6969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6970 = trunc i8 %6969 to i1
  br i1 %6970, label %6971, label %6993

6971:                                             ; preds = %6964
  %6972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6973 = call i32 @fileno(ptr noundef %6972) #10
  %6974 = call i32 @isatty(i32 noundef %6973) #10
  %6975 = icmp ne i32 %6974, 0
  br i1 %6975, label %6976, label %6993

6976:                                             ; preds = %6971
  %6977 = load i32, ptr %170, align 4, !tbaa !5
  %6978 = call ptr @__errno_location() #11
  store i32 %6977, ptr %6978, align 4, !tbaa !5
  %6979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6980 = load i32, ptr @test_count, align 4, !tbaa !5
  %6981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6982 = load i32, ptr %6981, align 4, !tbaa !5
  %6983 = call ptr @s2n_strerror(i32 noundef %6982, ptr noundef @.str.4)
  %6984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6985 = load i32, ptr %6984, align 4, !tbaa !5
  %6986 = call ptr @s2n_strerror_debug(i32 noundef %6985, ptr noundef @.str.4)
  %6987 = call ptr @__errno_location() #11
  %6988 = load i32, ptr %6987, align 4, !tbaa !5
  %6989 = call ptr @strerror(i32 noundef %6988) #10
  %6990 = call ptr @__errno_location() #11
  %6991 = load i32, ptr %6990, align 4, !tbaa !5
  %6992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6979, ptr noundef @.str.2, i32 noundef %6980, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6983, ptr noundef %6986, ptr noundef %6989, i32 noundef %6991) #10
  br label %7010

6993:                                             ; preds = %6971, %6964
  %6994 = load i32, ptr %170, align 4, !tbaa !5
  %6995 = call ptr @__errno_location() #11
  store i32 %6994, ptr %6995, align 4, !tbaa !5
  %6996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6997 = load i32, ptr @test_count, align 4, !tbaa !5
  %6998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6999 = load i32, ptr %6998, align 4, !tbaa !5
  %7000 = call ptr @s2n_strerror(i32 noundef %6999, ptr noundef @.str.4)
  %7001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7002 = load i32, ptr %7001, align 4, !tbaa !5
  %7003 = call ptr @s2n_strerror_debug(i32 noundef %7002, ptr noundef @.str.4)
  %7004 = call ptr @__errno_location() #11
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call ptr @strerror(i32 noundef %7005) #10
  %7007 = call ptr @__errno_location() #11
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6996, ptr noundef @.str.5, i32 noundef %6997, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 358, ptr noundef %7000, ptr noundef %7003, ptr noundef %7006, i32 noundef %7008) #10
  br label %7010

7010:                                             ; preds = %6993, %6976
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #10
  br label %7011

7011:                                             ; preds = %7010
  br label %7012

7012:                                             ; preds = %7011
  call void @exit(i32 noundef 1) #12
  unreachable

7013:                                             ; No predecessors!
  br label %7014

7014:                                             ; preds = %7013
  br label %7015

7015:                                             ; preds = %7014, %6957
  br label %7016

7016:                                             ; preds = %7015
  br label %7017

7017:                                             ; preds = %7016
  br label %7018

7018:                                             ; preds = %7017
  %7019 = load i32, ptr @test_count, align 4, !tbaa !5
  %7020 = add nsw i32 %7019, 1
  store i32 %7020, ptr @test_count, align 4, !tbaa !5
  %7021 = load ptr, ptr %165, align 8, !tbaa !9
  %7022 = call i32 @s2n_connection_set_io_pair(ptr noundef %7021, ptr noundef %169)
  %7023 = icmp eq i32 %7022, -1
  br i1 %7023, label %7024, label %7077

7024:                                             ; preds = %7018
  br label %7025

7025:                                             ; preds = %7024
  br label %7026

7026:                                             ; preds = %7025
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  %7027 = call ptr @__errno_location() #11
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  store i32 %7028, ptr %171, align 4, !tbaa !5
  %7029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7030 = call i32 @s2n_print_stacktrace(ptr noundef %7029)
  %7031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7032 = trunc i8 %7031 to i1
  br i1 %7032, label %7033, label %7055

7033:                                             ; preds = %7026
  %7034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7035 = call i32 @fileno(ptr noundef %7034) #10
  %7036 = call i32 @isatty(i32 noundef %7035) #10
  %7037 = icmp ne i32 %7036, 0
  br i1 %7037, label %7038, label %7055

7038:                                             ; preds = %7033
  %7039 = load i32, ptr %171, align 4, !tbaa !5
  %7040 = call ptr @__errno_location() #11
  store i32 %7039, ptr %7040, align 4, !tbaa !5
  %7041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7042 = load i32, ptr @test_count, align 4, !tbaa !5
  %7043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7044 = load i32, ptr %7043, align 4, !tbaa !5
  %7045 = call ptr @s2n_strerror(i32 noundef %7044, ptr noundef @.str.4)
  %7046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7047 = load i32, ptr %7046, align 4, !tbaa !5
  %7048 = call ptr @s2n_strerror_debug(i32 noundef %7047, ptr noundef @.str.4)
  %7049 = call ptr @__errno_location() #11
  %7050 = load i32, ptr %7049, align 4, !tbaa !5
  %7051 = call ptr @strerror(i32 noundef %7050) #10
  %7052 = call ptr @__errno_location() #11
  %7053 = load i32, ptr %7052, align 4, !tbaa !5
  %7054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7041, ptr noundef @.str.2, i32 noundef %7042, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 359, ptr noundef %7045, ptr noundef %7048, ptr noundef %7051, i32 noundef %7053) #10
  br label %7072

7055:                                             ; preds = %7033, %7026
  %7056 = load i32, ptr %171, align 4, !tbaa !5
  %7057 = call ptr @__errno_location() #11
  store i32 %7056, ptr %7057, align 4, !tbaa !5
  %7058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7059 = load i32, ptr @test_count, align 4, !tbaa !5
  %7060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7061 = load i32, ptr %7060, align 4, !tbaa !5
  %7062 = call ptr @s2n_strerror(i32 noundef %7061, ptr noundef @.str.4)
  %7063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7064 = load i32, ptr %7063, align 4, !tbaa !5
  %7065 = call ptr @s2n_strerror_debug(i32 noundef %7064, ptr noundef @.str.4)
  %7066 = call ptr @__errno_location() #11
  %7067 = load i32, ptr %7066, align 4, !tbaa !5
  %7068 = call ptr @strerror(i32 noundef %7067) #10
  %7069 = call ptr @__errno_location() #11
  %7070 = load i32, ptr %7069, align 4, !tbaa !5
  %7071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7058, ptr noundef @.str.5, i32 noundef %7059, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 359, ptr noundef %7062, ptr noundef %7065, ptr noundef %7068, i32 noundef %7070) #10
  br label %7072

7072:                                             ; preds = %7055, %7038
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  br label %7073

7073:                                             ; preds = %7072
  br label %7074

7074:                                             ; preds = %7073
  call void @exit(i32 noundef 1) #12
  unreachable

7075:                                             ; No predecessors!
  br label %7076

7076:                                             ; preds = %7075
  br label %7077

7077:                                             ; preds = %7076, %7018
  br label %7078

7078:                                             ; preds = %7077
  br label %7079

7079:                                             ; preds = %7078
  br label %7080

7080:                                             ; preds = %7079
  %7081 = load i32, ptr @test_count, align 4, !tbaa !5
  %7082 = add nsw i32 %7081, 1
  store i32 %7082, ptr @test_count, align 4, !tbaa !5
  %7083 = load ptr, ptr %155, align 8, !tbaa !9
  %7084 = call i32 @s2n_connection_set_io_pair(ptr noundef %7083, ptr noundef %169)
  %7085 = icmp eq i32 %7084, -1
  br i1 %7085, label %7086, label %7139

7086:                                             ; preds = %7080
  br label %7087

7087:                                             ; preds = %7086
  br label %7088

7088:                                             ; preds = %7087
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #10
  %7089 = call ptr @__errno_location() #11
  %7090 = load i32, ptr %7089, align 4, !tbaa !5
  store i32 %7090, ptr %172, align 4, !tbaa !5
  %7091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7092 = call i32 @s2n_print_stacktrace(ptr noundef %7091)
  %7093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7094 = trunc i8 %7093 to i1
  br i1 %7094, label %7095, label %7117

7095:                                             ; preds = %7088
  %7096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7097 = call i32 @fileno(ptr noundef %7096) #10
  %7098 = call i32 @isatty(i32 noundef %7097) #10
  %7099 = icmp ne i32 %7098, 0
  br i1 %7099, label %7100, label %7117

7100:                                             ; preds = %7095
  %7101 = load i32, ptr %172, align 4, !tbaa !5
  %7102 = call ptr @__errno_location() #11
  store i32 %7101, ptr %7102, align 4, !tbaa !5
  %7103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7104 = load i32, ptr @test_count, align 4, !tbaa !5
  %7105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7106 = load i32, ptr %7105, align 4, !tbaa !5
  %7107 = call ptr @s2n_strerror(i32 noundef %7106, ptr noundef @.str.4)
  %7108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7109 = load i32, ptr %7108, align 4, !tbaa !5
  %7110 = call ptr @s2n_strerror_debug(i32 noundef %7109, ptr noundef @.str.4)
  %7111 = call ptr @__errno_location() #11
  %7112 = load i32, ptr %7111, align 4, !tbaa !5
  %7113 = call ptr @strerror(i32 noundef %7112) #10
  %7114 = call ptr @__errno_location() #11
  %7115 = load i32, ptr %7114, align 4, !tbaa !5
  %7116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7103, ptr noundef @.str.2, i32 noundef %7104, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 360, ptr noundef %7107, ptr noundef %7110, ptr noundef %7113, i32 noundef %7115) #10
  br label %7134

7117:                                             ; preds = %7095, %7088
  %7118 = load i32, ptr %172, align 4, !tbaa !5
  %7119 = call ptr @__errno_location() #11
  store i32 %7118, ptr %7119, align 4, !tbaa !5
  %7120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7121 = load i32, ptr @test_count, align 4, !tbaa !5
  %7122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7123 = load i32, ptr %7122, align 4, !tbaa !5
  %7124 = call ptr @s2n_strerror(i32 noundef %7123, ptr noundef @.str.4)
  %7125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  %7127 = call ptr @s2n_strerror_debug(i32 noundef %7126, ptr noundef @.str.4)
  %7128 = call ptr @__errno_location() #11
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  %7130 = call ptr @strerror(i32 noundef %7129) #10
  %7131 = call ptr @__errno_location() #11
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7120, ptr noundef @.str.5, i32 noundef %7121, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 360, ptr noundef %7124, ptr noundef %7127, ptr noundef %7130, i32 noundef %7132) #10
  br label %7134

7134:                                             ; preds = %7117, %7100
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #10
  br label %7135

7135:                                             ; preds = %7134
  br label %7136

7136:                                             ; preds = %7135
  call void @exit(i32 noundef 1) #12
  unreachable

7137:                                             ; No predecessors!
  br label %7138

7138:                                             ; preds = %7137
  br label %7139

7139:                                             ; preds = %7138, %7080
  br label %7140

7140:                                             ; preds = %7139
  br label %7141

7141:                                             ; preds = %7140
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #10
  %7142 = load i32, ptr %146, align 4, !tbaa !5
  %7143 = sext i32 %7142 to i64
  %7144 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %7143
  %7145 = getelementptr inbounds %struct.anon, ptr %7144, i32 0, i32 1
  %7146 = load i32, ptr %7145, align 8, !tbaa !24
  store i32 %7146, ptr %173, align 4, !tbaa !5
  %7147 = load i32, ptr %173, align 4, !tbaa !5
  %7148 = icmp eq i32 %7147, 0
  br i1 %7148, label %7149, label %7213

7149:                                             ; preds = %7141
  br label %7150

7150:                                             ; preds = %7149
  %7151 = load i32, ptr @test_count, align 4, !tbaa !5
  %7152 = add nsw i32 %7151, 1
  store i32 %7152, ptr @test_count, align 4, !tbaa !5
  %7153 = load ptr, ptr %155, align 8, !tbaa !9
  %7154 = load ptr, ptr %165, align 8, !tbaa !9
  %7155 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %7153, ptr noundef %7154)
  %7156 = icmp eq i32 %7155, -1
  br i1 %7156, label %7157, label %7210

7157:                                             ; preds = %7150
  br label %7158

7158:                                             ; preds = %7157
  br label %7159

7159:                                             ; preds = %7158
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #10
  %7160 = call ptr @__errno_location() #11
  %7161 = load i32, ptr %7160, align 4, !tbaa !5
  store i32 %7161, ptr %174, align 4, !tbaa !5
  %7162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7163 = call i32 @s2n_print_stacktrace(ptr noundef %7162)
  %7164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7165 = trunc i8 %7164 to i1
  br i1 %7165, label %7166, label %7188

7166:                                             ; preds = %7159
  %7167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7168 = call i32 @fileno(ptr noundef %7167) #10
  %7169 = call i32 @isatty(i32 noundef %7168) #10
  %7170 = icmp ne i32 %7169, 0
  br i1 %7170, label %7171, label %7188

7171:                                             ; preds = %7166
  %7172 = load i32, ptr %174, align 4, !tbaa !5
  %7173 = call ptr @__errno_location() #11
  store i32 %7172, ptr %7173, align 4, !tbaa !5
  %7174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7175 = load i32, ptr @test_count, align 4, !tbaa !5
  %7176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7177 = load i32, ptr %7176, align 4, !tbaa !5
  %7178 = call ptr @s2n_strerror(i32 noundef %7177, ptr noundef @.str.4)
  %7179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7180 = load i32, ptr %7179, align 4, !tbaa !5
  %7181 = call ptr @s2n_strerror_debug(i32 noundef %7180, ptr noundef @.str.4)
  %7182 = call ptr @__errno_location() #11
  %7183 = load i32, ptr %7182, align 4, !tbaa !5
  %7184 = call ptr @strerror(i32 noundef %7183) #10
  %7185 = call ptr @__errno_location() #11
  %7186 = load i32, ptr %7185, align 4, !tbaa !5
  %7187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7174, ptr noundef @.str.2, i32 noundef %7175, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 364, ptr noundef %7178, ptr noundef %7181, ptr noundef %7184, i32 noundef %7186) #10
  br label %7205

7188:                                             ; preds = %7166, %7159
  %7189 = load i32, ptr %174, align 4, !tbaa !5
  %7190 = call ptr @__errno_location() #11
  store i32 %7189, ptr %7190, align 4, !tbaa !5
  %7191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7192 = load i32, ptr @test_count, align 4, !tbaa !5
  %7193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  %7195 = call ptr @s2n_strerror(i32 noundef %7194, ptr noundef @.str.4)
  %7196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7197 = load i32, ptr %7196, align 4, !tbaa !5
  %7198 = call ptr @s2n_strerror_debug(i32 noundef %7197, ptr noundef @.str.4)
  %7199 = call ptr @__errno_location() #11
  %7200 = load i32, ptr %7199, align 4, !tbaa !5
  %7201 = call ptr @strerror(i32 noundef %7200) #10
  %7202 = call ptr @__errno_location() #11
  %7203 = load i32, ptr %7202, align 4, !tbaa !5
  %7204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7191, ptr noundef @.str.5, i32 noundef %7192, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 364, ptr noundef %7195, ptr noundef %7198, ptr noundef %7201, i32 noundef %7203) #10
  br label %7205

7205:                                             ; preds = %7188, %7171
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #10
  br label %7206

7206:                                             ; preds = %7205
  br label %7207

7207:                                             ; preds = %7206
  call void @exit(i32 noundef 1) #12
  unreachable

7208:                                             ; No predecessors!
  br label %7209

7209:                                             ; preds = %7208
  br label %7210

7210:                                             ; preds = %7209, %7150
  br label %7211

7211:                                             ; preds = %7210
  br label %7212

7212:                                             ; preds = %7211
  br label %7414

7213:                                             ; preds = %7141
  br label %7214

7214:                                             ; preds = %7213
  br label %7215

7215:                                             ; preds = %7214
  br label %7216

7216:                                             ; preds = %7215
  %7217 = load i32, ptr @test_count, align 4, !tbaa !5
  %7218 = add nsw i32 %7217, 1
  store i32 %7218, ptr @test_count, align 4, !tbaa !5
  %7219 = load ptr, ptr %155, align 8, !tbaa !9
  %7220 = load ptr, ptr %165, align 8, !tbaa !9
  %7221 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %7219, ptr noundef %7220)
  %7222 = icmp eq i32 %7221, -1
  br i1 %7222, label %7276, label %7223

7223:                                             ; preds = %7216
  br label %7224

7224:                                             ; preds = %7223
  br label %7225

7225:                                             ; preds = %7224
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %7226 = call ptr @__errno_location() #11
  %7227 = load i32, ptr %7226, align 4, !tbaa !5
  store i32 %7227, ptr %175, align 4, !tbaa !5
  %7228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7229 = call i32 @s2n_print_stacktrace(ptr noundef %7228)
  %7230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7231 = trunc i8 %7230 to i1
  br i1 %7231, label %7232, label %7254

7232:                                             ; preds = %7225
  %7233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7234 = call i32 @fileno(ptr noundef %7233) #10
  %7235 = call i32 @isatty(i32 noundef %7234) #10
  %7236 = icmp ne i32 %7235, 0
  br i1 %7236, label %7237, label %7254

7237:                                             ; preds = %7232
  %7238 = load i32, ptr %175, align 4, !tbaa !5
  %7239 = call ptr @__errno_location() #11
  store i32 %7238, ptr %7239, align 4, !tbaa !5
  %7240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7241 = load i32, ptr @test_count, align 4, !tbaa !5
  %7242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7243 = load i32, ptr %7242, align 4, !tbaa !5
  %7244 = call ptr @s2n_strerror(i32 noundef %7243, ptr noundef @.str.4)
  %7245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7246 = load i32, ptr %7245, align 4, !tbaa !5
  %7247 = call ptr @s2n_strerror_debug(i32 noundef %7246, ptr noundef @.str.4)
  %7248 = call ptr @__errno_location() #11
  %7249 = load i32, ptr %7248, align 4, !tbaa !5
  %7250 = call ptr @strerror(i32 noundef %7249) #10
  %7251 = call ptr @__errno_location() #11
  %7252 = load i32, ptr %7251, align 4, !tbaa !5
  %7253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7240, ptr noundef @.str.2, i32 noundef %7241, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7244, ptr noundef %7247, ptr noundef %7250, i32 noundef %7252) #10
  br label %7271

7254:                                             ; preds = %7232, %7225
  %7255 = load i32, ptr %175, align 4, !tbaa !5
  %7256 = call ptr @__errno_location() #11
  store i32 %7255, ptr %7256, align 4, !tbaa !5
  %7257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7258 = load i32, ptr @test_count, align 4, !tbaa !5
  %7259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7260 = load i32, ptr %7259, align 4, !tbaa !5
  %7261 = call ptr @s2n_strerror(i32 noundef %7260, ptr noundef @.str.4)
  %7262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7263 = load i32, ptr %7262, align 4, !tbaa !5
  %7264 = call ptr @s2n_strerror_debug(i32 noundef %7263, ptr noundef @.str.4)
  %7265 = call ptr @__errno_location() #11
  %7266 = load i32, ptr %7265, align 4, !tbaa !5
  %7267 = call ptr @strerror(i32 noundef %7266) #10
  %7268 = call ptr @__errno_location() #11
  %7269 = load i32, ptr %7268, align 4, !tbaa !5
  %7270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7257, ptr noundef @.str.5, i32 noundef %7258, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7261, ptr noundef %7264, ptr noundef %7267, i32 noundef %7269) #10
  br label %7271

7271:                                             ; preds = %7254, %7237
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %7272

7272:                                             ; preds = %7271
  br label %7273

7273:                                             ; preds = %7272
  call void @exit(i32 noundef 1) #12
  unreachable

7274:                                             ; No predecessors!
  br label %7275

7275:                                             ; preds = %7274
  br label %7276

7276:                                             ; preds = %7275, %7216
  br label %7277

7277:                                             ; preds = %7276
  br label %7278

7278:                                             ; preds = %7277
  br label %7279

7279:                                             ; preds = %7278
  %7280 = load i32, ptr @test_count, align 4, !tbaa !5
  %7281 = add nsw i32 %7280, 1
  store i32 %7281, ptr @test_count, align 4, !tbaa !5
  %7282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7283 = load i32, ptr %7282, align 4, !tbaa !5
  %7284 = load i32, ptr %173, align 4, !tbaa !5
  %7285 = icmp eq i32 %7283, %7284
  br i1 %7285, label %7339, label %7286

7286:                                             ; preds = %7279
  br label %7287

7287:                                             ; preds = %7286
  br label %7288

7288:                                             ; preds = %7287
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #10
  %7289 = call ptr @__errno_location() #11
  %7290 = load i32, ptr %7289, align 4, !tbaa !5
  store i32 %7290, ptr %176, align 4, !tbaa !5
  %7291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7292 = call i32 @s2n_print_stacktrace(ptr noundef %7291)
  %7293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7294 = trunc i8 %7293 to i1
  br i1 %7294, label %7295, label %7317

7295:                                             ; preds = %7288
  %7296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7297 = call i32 @fileno(ptr noundef %7296) #10
  %7298 = call i32 @isatty(i32 noundef %7297) #10
  %7299 = icmp ne i32 %7298, 0
  br i1 %7299, label %7300, label %7317

7300:                                             ; preds = %7295
  %7301 = load i32, ptr %176, align 4, !tbaa !5
  %7302 = call ptr @__errno_location() #11
  store i32 %7301, ptr %7302, align 4, !tbaa !5
  %7303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7304 = load i32, ptr @test_count, align 4, !tbaa !5
  %7305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7306 = load i32, ptr %7305, align 4, !tbaa !5
  %7307 = call ptr @s2n_strerror(i32 noundef %7306, ptr noundef @.str.4)
  %7308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7309 = load i32, ptr %7308, align 4, !tbaa !5
  %7310 = call ptr @s2n_strerror_debug(i32 noundef %7309, ptr noundef @.str.4)
  %7311 = call ptr @__errno_location() #11
  %7312 = load i32, ptr %7311, align 4, !tbaa !5
  %7313 = call ptr @strerror(i32 noundef %7312) #10
  %7314 = call ptr @__errno_location() #11
  %7315 = load i32, ptr %7314, align 4, !tbaa !5
  %7316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7303, ptr noundef @.str.2, i32 noundef %7304, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7307, ptr noundef %7310, ptr noundef %7313, i32 noundef %7315) #10
  br label %7334

7317:                                             ; preds = %7295, %7288
  %7318 = load i32, ptr %176, align 4, !tbaa !5
  %7319 = call ptr @__errno_location() #11
  store i32 %7318, ptr %7319, align 4, !tbaa !5
  %7320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7321 = load i32, ptr @test_count, align 4, !tbaa !5
  %7322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7323 = load i32, ptr %7322, align 4, !tbaa !5
  %7324 = call ptr @s2n_strerror(i32 noundef %7323, ptr noundef @.str.4)
  %7325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7326 = load i32, ptr %7325, align 4, !tbaa !5
  %7327 = call ptr @s2n_strerror_debug(i32 noundef %7326, ptr noundef @.str.4)
  %7328 = call ptr @__errno_location() #11
  %7329 = load i32, ptr %7328, align 4, !tbaa !5
  %7330 = call ptr @strerror(i32 noundef %7329) #10
  %7331 = call ptr @__errno_location() #11
  %7332 = load i32, ptr %7331, align 4, !tbaa !5
  %7333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7320, ptr noundef @.str.5, i32 noundef %7321, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7324, ptr noundef %7327, ptr noundef %7330, i32 noundef %7332) #10
  br label %7334

7334:                                             ; preds = %7317, %7300
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #10
  br label %7335

7335:                                             ; preds = %7334
  br label %7336

7336:                                             ; preds = %7335
  call void @exit(i32 noundef 1) #12
  unreachable

7337:                                             ; No predecessors!
  br label %7338

7338:                                             ; preds = %7337
  br label %7339

7339:                                             ; preds = %7338, %7279
  br label %7340

7340:                                             ; preds = %7339
  br label %7341

7341:                                             ; preds = %7340
  br label %7342

7342:                                             ; preds = %7341
  %7343 = load i32, ptr @test_count, align 4, !tbaa !5
  %7344 = add nsw i32 %7343, 1
  store i32 %7344, ptr @test_count, align 4, !tbaa !5
  %7345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7346 = load i32, ptr %7345, align 4, !tbaa !5
  %7347 = call ptr @s2n_strerror_debug(i32 noundef %7346, ptr noundef @.str.4)
  %7348 = icmp eq ptr %7347, null
  br i1 %7348, label %7349, label %7402

7349:                                             ; preds = %7342
  br label %7350

7350:                                             ; preds = %7349
  br label %7351

7351:                                             ; preds = %7350
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #10
  %7352 = call ptr @__errno_location() #11
  %7353 = load i32, ptr %7352, align 4, !tbaa !5
  store i32 %7353, ptr %177, align 4, !tbaa !5
  %7354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7355 = call i32 @s2n_print_stacktrace(ptr noundef %7354)
  %7356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7357 = trunc i8 %7356 to i1
  br i1 %7357, label %7358, label %7380

7358:                                             ; preds = %7351
  %7359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7360 = call i32 @fileno(ptr noundef %7359) #10
  %7361 = call i32 @isatty(i32 noundef %7360) #10
  %7362 = icmp ne i32 %7361, 0
  br i1 %7362, label %7363, label %7380

7363:                                             ; preds = %7358
  %7364 = load i32, ptr %177, align 4, !tbaa !5
  %7365 = call ptr @__errno_location() #11
  store i32 %7364, ptr %7365, align 4, !tbaa !5
  %7366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7367 = load i32, ptr @test_count, align 4, !tbaa !5
  %7368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7369 = load i32, ptr %7368, align 4, !tbaa !5
  %7370 = call ptr @s2n_strerror(i32 noundef %7369, ptr noundef @.str.4)
  %7371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7372 = load i32, ptr %7371, align 4, !tbaa !5
  %7373 = call ptr @s2n_strerror_debug(i32 noundef %7372, ptr noundef @.str.4)
  %7374 = call ptr @__errno_location() #11
  %7375 = load i32, ptr %7374, align 4, !tbaa !5
  %7376 = call ptr @strerror(i32 noundef %7375) #10
  %7377 = call ptr @__errno_location() #11
  %7378 = load i32, ptr %7377, align 4, !tbaa !5
  %7379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7366, ptr noundef @.str.2, i32 noundef %7367, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7370, ptr noundef %7373, ptr noundef %7376, i32 noundef %7378) #10
  br label %7397

7380:                                             ; preds = %7358, %7351
  %7381 = load i32, ptr %177, align 4, !tbaa !5
  %7382 = call ptr @__errno_location() #11
  store i32 %7381, ptr %7382, align 4, !tbaa !5
  %7383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7384 = load i32, ptr @test_count, align 4, !tbaa !5
  %7385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7386 = load i32, ptr %7385, align 4, !tbaa !5
  %7387 = call ptr @s2n_strerror(i32 noundef %7386, ptr noundef @.str.4)
  %7388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7389 = load i32, ptr %7388, align 4, !tbaa !5
  %7390 = call ptr @s2n_strerror_debug(i32 noundef %7389, ptr noundef @.str.4)
  %7391 = call ptr @__errno_location() #11
  %7392 = load i32, ptr %7391, align 4, !tbaa !5
  %7393 = call ptr @strerror(i32 noundef %7392) #10
  %7394 = call ptr @__errno_location() #11
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  %7396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7383, ptr noundef @.str.5, i32 noundef %7384, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7387, ptr noundef %7390, ptr noundef %7393, i32 noundef %7395) #10
  br label %7397

7397:                                             ; preds = %7380, %7363
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #10
  br label %7398

7398:                                             ; preds = %7397
  br label %7399

7399:                                             ; preds = %7398
  call void @exit(i32 noundef 1) #12
  unreachable

7400:                                             ; No predecessors!
  br label %7401

7401:                                             ; preds = %7400
  br label %7402

7402:                                             ; preds = %7401, %7342
  br label %7403

7403:                                             ; preds = %7402
  br label %7404

7404:                                             ; preds = %7403
  br label %7405

7405:                                             ; preds = %7404
  br label %7406

7406:                                             ; preds = %7405
  br label %7407

7407:                                             ; preds = %7406
  %7408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7408, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7409 = call ptr @__errno_location() #11
  store i32 0, ptr %7409, align 4, !tbaa !5
  br label %7410

7410:                                             ; preds = %7407
  br label %7411

7411:                                             ; preds = %7410
  br label %7412

7412:                                             ; preds = %7411
  br label %7413

7413:                                             ; preds = %7412
  br label %7414

7414:                                             ; preds = %7413, %7212
  br label %7415

7415:                                             ; preds = %7414
  %7416 = load i32, ptr @test_count, align 4, !tbaa !5
  %7417 = add nsw i32 %7416, 1
  store i32 %7417, ptr @test_count, align 4, !tbaa !5
  %7418 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %153, i32 0, i32 1
  %7419 = load i32, ptr %7418, align 4, !tbaa !27
  %7420 = icmp eq i32 %7419, 1
  br i1 %7420, label %7474, label %7421

7421:                                             ; preds = %7415
  br label %7422

7422:                                             ; preds = %7421
  br label %7423

7423:                                             ; preds = %7422
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %7424 = call ptr @__errno_location() #11
  %7425 = load i32, ptr %7424, align 4, !tbaa !5
  store i32 %7425, ptr %178, align 4, !tbaa !5
  %7426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7427 = call i32 @s2n_print_stacktrace(ptr noundef %7426)
  %7428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7429 = trunc i8 %7428 to i1
  br i1 %7429, label %7430, label %7452

7430:                                             ; preds = %7423
  %7431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7432 = call i32 @fileno(ptr noundef %7431) #10
  %7433 = call i32 @isatty(i32 noundef %7432) #10
  %7434 = icmp ne i32 %7433, 0
  br i1 %7434, label %7435, label %7452

7435:                                             ; preds = %7430
  %7436 = load i32, ptr %178, align 4, !tbaa !5
  %7437 = call ptr @__errno_location() #11
  store i32 %7436, ptr %7437, align 4, !tbaa !5
  %7438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7439 = load i32, ptr @test_count, align 4, !tbaa !5
  %7440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @s2n_strerror(i32 noundef %7441, ptr noundef @.str.4)
  %7443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call ptr @s2n_strerror_debug(i32 noundef %7444, ptr noundef @.str.4)
  %7446 = call ptr @__errno_location() #11
  %7447 = load i32, ptr %7446, align 4, !tbaa !5
  %7448 = call ptr @strerror(i32 noundef %7447) #10
  %7449 = call ptr @__errno_location() #11
  %7450 = load i32, ptr %7449, align 4, !tbaa !5
  %7451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7438, ptr noundef @.str.2, i32 noundef %7439, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7442, ptr noundef %7445, ptr noundef %7448, i32 noundef %7450) #10
  br label %7469

7452:                                             ; preds = %7430, %7423
  %7453 = load i32, ptr %178, align 4, !tbaa !5
  %7454 = call ptr @__errno_location() #11
  store i32 %7453, ptr %7454, align 4, !tbaa !5
  %7455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7456 = load i32, ptr @test_count, align 4, !tbaa !5
  %7457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  %7459 = call ptr @s2n_strerror(i32 noundef %7458, ptr noundef @.str.4)
  %7460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7461 = load i32, ptr %7460, align 4, !tbaa !5
  %7462 = call ptr @s2n_strerror_debug(i32 noundef %7461, ptr noundef @.str.4)
  %7463 = call ptr @__errno_location() #11
  %7464 = load i32, ptr %7463, align 4, !tbaa !5
  %7465 = call ptr @strerror(i32 noundef %7464) #10
  %7466 = call ptr @__errno_location() #11
  %7467 = load i32, ptr %7466, align 4, !tbaa !5
  %7468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7455, ptr noundef @.str.5, i32 noundef %7456, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7459, ptr noundef %7462, ptr noundef %7465, i32 noundef %7467) #10
  br label %7469

7469:                                             ; preds = %7452, %7435
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %7470

7470:                                             ; preds = %7469
  br label %7471

7471:                                             ; preds = %7470
  call void @exit(i32 noundef 1) #12
  unreachable

7472:                                             ; No predecessors!
  br label %7473

7473:                                             ; preds = %7472
  br label %7474

7474:                                             ; preds = %7473, %7415
  br label %7475

7475:                                             ; preds = %7474
  br label %7476

7476:                                             ; preds = %7475
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #10
  %7477 = call i32 @s2n_io_pair_close(ptr noundef %169)
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #10
  %7478 = call i32 @s2n_connection_ptr_free(ptr noundef %165)
  %7479 = getelementptr inbounds %struct.s2n_result, ptr %179, i32 0, i32 0
  store i32 %7478, ptr %7479, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #10
  %7480 = call i32 @s2n_config_ptr_free(ptr noundef %159)
  %7481 = getelementptr inbounds %struct.s2n_result, ptr %180, i32 0, i32 0
  store i32 %7480, ptr %7481, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #10
  %7482 = call i32 @s2n_connection_ptr_free(ptr noundef %155)
  %7483 = getelementptr inbounds %struct.s2n_result, ptr %181, i32 0, i32 0
  store i32 %7482, ptr %7483, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %153) #10
  %7484 = call i32 @s2n_config_ptr_free(ptr noundef %147)
  %7485 = getelementptr inbounds %struct.s2n_result, ptr %182, i32 0, i32 0
  store i32 %7484, ptr %7485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #10
  br label %7486

7486:                                             ; preds = %7476
  %7487 = load i32, ptr %146, align 4, !tbaa !5
  %7488 = add nsw i32 %7487, 1
  store i32 %7488, ptr %146, align 4, !tbaa !5
  br label %5889, !llvm.loop !31

7489:                                             ; preds = %5893
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  store i32 0, ptr %183, align 4, !tbaa !5
  br label %7490

7490:                                             ; preds = %9156, %7489
  %7491 = load i32, ptr %183, align 4, !tbaa !5
  %7492 = sext i32 %7491 to i64
  %7493 = icmp ult i64 %7492, 4
  br i1 %7493, label %7495, label %7494

7494:                                             ; preds = %7490
  store i32 750, ptr %184, align 4
  br label %9159

7495:                                             ; preds = %7490
  %7496 = call zeroext i8 @s2n_x509_ocsp_stapling_supported()
  %7497 = icmp ne i8 %7496, 0
  br i1 %7497, label %7498, label %7500

7498:                                             ; preds = %7495
  %7499 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %7499, label %7501, label %7500

7500:                                             ; preds = %7498, %7495
  store i32 750, ptr %184, align 4
  br label %9159

7501:                                             ; preds = %7498
  call void @llvm.lifetime.start.p0(i64 12000, ptr %185) #10
  call void @llvm.memset.p0.i64(ptr align 16 %185, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #10
  store i32 0, ptr %186, align 4, !tbaa !5
  br label %7502

7502:                                             ; preds = %7501
  %7503 = load i32, ptr @test_count, align 4, !tbaa !5
  %7504 = add nsw i32 %7503, 1
  store i32 %7504, ptr @test_count, align 4, !tbaa !5
  %7505 = getelementptr inbounds [12000 x i8], ptr %185, i64 0, i64 0
  %7506 = call i32 @s2n_read_test_pem_and_len(ptr noundef @.str.73, ptr noundef %7505, ptr noundef %186, i64 noundef 12000)
  %7507 = icmp eq i32 %7506, -1
  br i1 %7507, label %7508, label %7561

7508:                                             ; preds = %7502
  br label %7509

7509:                                             ; preds = %7508
  br label %7510

7510:                                             ; preds = %7509
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %7511 = call ptr @__errno_location() #11
  %7512 = load i32, ptr %7511, align 4, !tbaa !5
  store i32 %7512, ptr %187, align 4, !tbaa !5
  %7513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7514 = call i32 @s2n_print_stacktrace(ptr noundef %7513)
  %7515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7516 = trunc i8 %7515 to i1
  br i1 %7516, label %7517, label %7539

7517:                                             ; preds = %7510
  %7518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7519 = call i32 @fileno(ptr noundef %7518) #10
  %7520 = call i32 @isatty(i32 noundef %7519) #10
  %7521 = icmp ne i32 %7520, 0
  br i1 %7521, label %7522, label %7539

7522:                                             ; preds = %7517
  %7523 = load i32, ptr %187, align 4, !tbaa !5
  %7524 = call ptr @__errno_location() #11
  store i32 %7523, ptr %7524, align 4, !tbaa !5
  %7525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7526 = load i32, ptr @test_count, align 4, !tbaa !5
  %7527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7528 = load i32, ptr %7527, align 4, !tbaa !5
  %7529 = call ptr @s2n_strerror(i32 noundef %7528, ptr noundef @.str.4)
  %7530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7531 = load i32, ptr %7530, align 4, !tbaa !5
  %7532 = call ptr @s2n_strerror_debug(i32 noundef %7531, ptr noundef @.str.4)
  %7533 = call ptr @__errno_location() #11
  %7534 = load i32, ptr %7533, align 4, !tbaa !5
  %7535 = call ptr @strerror(i32 noundef %7534) #10
  %7536 = call ptr @__errno_location() #11
  %7537 = load i32, ptr %7536, align 4, !tbaa !5
  %7538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7525, ptr noundef @.str.2, i32 noundef %7526, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7529, ptr noundef %7532, ptr noundef %7535, i32 noundef %7537) #10
  br label %7556

7539:                                             ; preds = %7517, %7510
  %7540 = load i32, ptr %187, align 4, !tbaa !5
  %7541 = call ptr @__errno_location() #11
  store i32 %7540, ptr %7541, align 4, !tbaa !5
  %7542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7543 = load i32, ptr @test_count, align 4, !tbaa !5
  %7544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7545 = load i32, ptr %7544, align 4, !tbaa !5
  %7546 = call ptr @s2n_strerror(i32 noundef %7545, ptr noundef @.str.4)
  %7547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7548 = load i32, ptr %7547, align 4, !tbaa !5
  %7549 = call ptr @s2n_strerror_debug(i32 noundef %7548, ptr noundef @.str.4)
  %7550 = call ptr @__errno_location() #11
  %7551 = load i32, ptr %7550, align 4, !tbaa !5
  %7552 = call ptr @strerror(i32 noundef %7551) #10
  %7553 = call ptr @__errno_location() #11
  %7554 = load i32, ptr %7553, align 4, !tbaa !5
  %7555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7542, ptr noundef @.str.5, i32 noundef %7543, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7546, ptr noundef %7549, ptr noundef %7552, i32 noundef %7554) #10
  br label %7556

7556:                                             ; preds = %7539, %7522
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %7557

7557:                                             ; preds = %7556
  br label %7558

7558:                                             ; preds = %7557
  call void @exit(i32 noundef 1) #12
  unreachable

7559:                                             ; No predecessors!
  br label %7560

7560:                                             ; preds = %7559
  br label %7561

7561:                                             ; preds = %7560, %7502
  br label %7562

7562:                                             ; preds = %7561
  br label %7563

7563:                                             ; preds = %7562
  br label %7564

7564:                                             ; preds = %7563
  %7565 = load i32, ptr @test_count, align 4, !tbaa !5
  %7566 = add nsw i32 %7565, 1
  store i32 %7566, ptr @test_count, align 4, !tbaa !5
  %7567 = load i32, ptr %186, align 4, !tbaa !5
  %7568 = icmp ugt i32 %7567, 0
  br i1 %7568, label %7622, label %7569

7569:                                             ; preds = %7564
  br label %7570

7570:                                             ; preds = %7569
  br label %7571

7571:                                             ; preds = %7570
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #10
  %7572 = call ptr @__errno_location() #11
  %7573 = load i32, ptr %7572, align 4, !tbaa !5
  store i32 %7573, ptr %188, align 4, !tbaa !5
  %7574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7575 = call i32 @s2n_print_stacktrace(ptr noundef %7574)
  %7576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7577 = trunc i8 %7576 to i1
  br i1 %7577, label %7578, label %7600

7578:                                             ; preds = %7571
  %7579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7580 = call i32 @fileno(ptr noundef %7579) #10
  %7581 = call i32 @isatty(i32 noundef %7580) #10
  %7582 = icmp ne i32 %7581, 0
  br i1 %7582, label %7583, label %7600

7583:                                             ; preds = %7578
  %7584 = load i32, ptr %188, align 4, !tbaa !5
  %7585 = call ptr @__errno_location() #11
  store i32 %7584, ptr %7585, align 4, !tbaa !5
  %7586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7587 = load i32, ptr @test_count, align 4, !tbaa !5
  %7588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7589 = load i32, ptr %7588, align 4, !tbaa !5
  %7590 = call ptr @s2n_strerror(i32 noundef %7589, ptr noundef @.str.4)
  %7591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7592 = load i32, ptr %7591, align 4, !tbaa !5
  %7593 = call ptr @s2n_strerror_debug(i32 noundef %7592, ptr noundef @.str.4)
  %7594 = call ptr @__errno_location() #11
  %7595 = load i32, ptr %7594, align 4, !tbaa !5
  %7596 = call ptr @strerror(i32 noundef %7595) #10
  %7597 = call ptr @__errno_location() #11
  %7598 = load i32, ptr %7597, align 4, !tbaa !5
  %7599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7586, ptr noundef @.str.2, i32 noundef %7587, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 393, ptr noundef %7590, ptr noundef %7593, ptr noundef %7596, i32 noundef %7598) #10
  br label %7617

7600:                                             ; preds = %7578, %7571
  %7601 = load i32, ptr %188, align 4, !tbaa !5
  %7602 = call ptr @__errno_location() #11
  store i32 %7601, ptr %7602, align 4, !tbaa !5
  %7603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7604 = load i32, ptr @test_count, align 4, !tbaa !5
  %7605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7606 = load i32, ptr %7605, align 4, !tbaa !5
  %7607 = call ptr @s2n_strerror(i32 noundef %7606, ptr noundef @.str.4)
  %7608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7609 = load i32, ptr %7608, align 4, !tbaa !5
  %7610 = call ptr @s2n_strerror_debug(i32 noundef %7609, ptr noundef @.str.4)
  %7611 = call ptr @__errno_location() #11
  %7612 = load i32, ptr %7611, align 4, !tbaa !5
  %7613 = call ptr @strerror(i32 noundef %7612) #10
  %7614 = call ptr @__errno_location() #11
  %7615 = load i32, ptr %7614, align 4, !tbaa !5
  %7616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7603, ptr noundef @.str.5, i32 noundef %7604, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 393, ptr noundef %7607, ptr noundef %7610, ptr noundef %7613, i32 noundef %7615) #10
  br label %7617

7617:                                             ; preds = %7600, %7583
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #10
  br label %7618

7618:                                             ; preds = %7617
  br label %7619

7619:                                             ; preds = %7618
  call void @exit(i32 noundef 1) #12
  unreachable

7620:                                             ; No predecessors!
  br label %7621

7621:                                             ; preds = %7620
  br label %7622

7622:                                             ; preds = %7621, %7564
  br label %7623

7623:                                             ; preds = %7622
  br label %7624

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

7625:                                             ; preds = %7624
  %7626 = load i32, ptr @test_count, align 4, !tbaa !5
  %7627 = add nsw i32 %7626, 1
  store i32 %7627, ptr @test_count, align 4, !tbaa !5
  %7628 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %189, ptr noundef @.str.76, ptr noundef @.str.77)
  %7629 = icmp eq i32 %7628, -1
  br i1 %7629, label %7630, label %7683

7630:                                             ; preds = %7625
  br label %7631

7631:                                             ; preds = %7630
  br label %7632

7632:                                             ; preds = %7631
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  %7633 = call ptr @__errno_location() #11
  %7634 = load i32, ptr %7633, align 4, !tbaa !5
  store i32 %7634, ptr %190, align 4, !tbaa !5
  %7635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7636 = call i32 @s2n_print_stacktrace(ptr noundef %7635)
  %7637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7638 = trunc i8 %7637 to i1
  br i1 %7638, label %7639, label %7661

7639:                                             ; preds = %7632
  %7640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7641 = call i32 @fileno(ptr noundef %7640) #10
  %7642 = call i32 @isatty(i32 noundef %7641) #10
  %7643 = icmp ne i32 %7642, 0
  br i1 %7643, label %7644, label %7661

7644:                                             ; preds = %7639
  %7645 = load i32, ptr %190, align 4, !tbaa !5
  %7646 = call ptr @__errno_location() #11
  store i32 %7645, ptr %7646, align 4, !tbaa !5
  %7647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7648 = load i32, ptr @test_count, align 4, !tbaa !5
  %7649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7650 = load i32, ptr %7649, align 4, !tbaa !5
  %7651 = call ptr @s2n_strerror(i32 noundef %7650, ptr noundef @.str.4)
  %7652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  %7654 = call ptr @s2n_strerror_debug(i32 noundef %7653, ptr noundef @.str.4)
  %7655 = call ptr @__errno_location() #11
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  %7657 = call ptr @strerror(i32 noundef %7656) #10
  %7658 = call ptr @__errno_location() #11
  %7659 = load i32, ptr %7658, align 4, !tbaa !5
  %7660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7647, ptr noundef @.str.2, i32 noundef %7648, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 397, ptr noundef %7651, ptr noundef %7654, ptr noundef %7657, i32 noundef %7659) #10
  br label %7678

7661:                                             ; preds = %7639, %7632
  %7662 = load i32, ptr %190, align 4, !tbaa !5
  %7663 = call ptr @__errno_location() #11
  store i32 %7662, ptr %7663, align 4, !tbaa !5
  %7664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7665 = load i32, ptr @test_count, align 4, !tbaa !5
  %7666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7667 = load i32, ptr %7666, align 4, !tbaa !5
  %7668 = call ptr @s2n_strerror(i32 noundef %7667, ptr noundef @.str.4)
  %7669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7670 = load i32, ptr %7669, align 4, !tbaa !5
  %7671 = call ptr @s2n_strerror_debug(i32 noundef %7670, ptr noundef @.str.4)
  %7672 = call ptr @__errno_location() #11
  %7673 = load i32, ptr %7672, align 4, !tbaa !5
  %7674 = call ptr @strerror(i32 noundef %7673) #10
  %7675 = call ptr @__errno_location() #11
  %7676 = load i32, ptr %7675, align 4, !tbaa !5
  %7677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7664, ptr noundef @.str.5, i32 noundef %7665, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 397, ptr noundef %7668, ptr noundef %7671, ptr noundef %7674, i32 noundef %7676) #10
  br label %7678

7678:                                             ; preds = %7661, %7644
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  br label %7679

7679:                                             ; preds = %7678
  br label %7680

7680:                                             ; preds = %7679
  call void @exit(i32 noundef 1) #12
  unreachable

7681:                                             ; No predecessors!
  br label %7682

7682:                                             ; preds = %7681
  br label %7683

7683:                                             ; preds = %7682, %7625
  br label %7684

7684:                                             ; preds = %7683
  br label %7685

7685:                                             ; preds = %7684
  br label %7686

7686:                                             ; preds = %7685
  %7687 = load i32, ptr @test_count, align 4, !tbaa !5
  %7688 = add nsw i32 %7687, 1
  store i32 %7688, ptr @test_count, align 4, !tbaa !5
  %7689 = load ptr, ptr %189, align 8, !tbaa !9
  %7690 = getelementptr inbounds [12000 x i8], ptr %185, i64 0, i64 0
  %7691 = load i32, ptr %186, align 4, !tbaa !5
  %7692 = call i32 @s2n_cert_chain_and_key_set_ocsp_data(ptr noundef %7689, ptr noundef %7690, i32 noundef %7691)
  %7693 = icmp eq i32 %7692, -1
  br i1 %7693, label %7694, label %7747

7694:                                             ; preds = %7686
  br label %7695

7695:                                             ; preds = %7694
  br label %7696

7696:                                             ; preds = %7695
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #10
  %7697 = call ptr @__errno_location() #11
  %7698 = load i32, ptr %7697, align 4, !tbaa !5
  store i32 %7698, ptr %191, align 4, !tbaa !5
  %7699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7700 = call i32 @s2n_print_stacktrace(ptr noundef %7699)
  %7701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7702 = trunc i8 %7701 to i1
  br i1 %7702, label %7703, label %7725

7703:                                             ; preds = %7696
  %7704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7705 = call i32 @fileno(ptr noundef %7704) #10
  %7706 = call i32 @isatty(i32 noundef %7705) #10
  %7707 = icmp ne i32 %7706, 0
  br i1 %7707, label %7708, label %7725

7708:                                             ; preds = %7703
  %7709 = load i32, ptr %191, align 4, !tbaa !5
  %7710 = call ptr @__errno_location() #11
  store i32 %7709, ptr %7710, align 4, !tbaa !5
  %7711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7712 = load i32, ptr @test_count, align 4, !tbaa !5
  %7713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7714 = load i32, ptr %7713, align 4, !tbaa !5
  %7715 = call ptr @s2n_strerror(i32 noundef %7714, ptr noundef @.str.4)
  %7716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  %7718 = call ptr @s2n_strerror_debug(i32 noundef %7717, ptr noundef @.str.4)
  %7719 = call ptr @__errno_location() #11
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call ptr @strerror(i32 noundef %7720) #10
  %7722 = call ptr @__errno_location() #11
  %7723 = load i32, ptr %7722, align 4, !tbaa !5
  %7724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7711, ptr noundef @.str.2, i32 noundef %7712, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 398, ptr noundef %7715, ptr noundef %7718, ptr noundef %7721, i32 noundef %7723) #10
  br label %7742

7725:                                             ; preds = %7703, %7696
  %7726 = load i32, ptr %191, align 4, !tbaa !5
  %7727 = call ptr @__errno_location() #11
  store i32 %7726, ptr %7727, align 4, !tbaa !5
  %7728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7729 = load i32, ptr @test_count, align 4, !tbaa !5
  %7730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7731 = load i32, ptr %7730, align 4, !tbaa !5
  %7732 = call ptr @s2n_strerror(i32 noundef %7731, ptr noundef @.str.4)
  %7733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7734 = load i32, ptr %7733, align 4, !tbaa !5
  %7735 = call ptr @s2n_strerror_debug(i32 noundef %7734, ptr noundef @.str.4)
  %7736 = call ptr @__errno_location() #11
  %7737 = load i32, ptr %7736, align 4, !tbaa !5
  %7738 = call ptr @strerror(i32 noundef %7737) #10
  %7739 = call ptr @__errno_location() #11
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  %7741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7728, ptr noundef @.str.5, i32 noundef %7729, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 398, ptr noundef %7732, ptr noundef %7735, ptr noundef %7738, i32 noundef %7740) #10
  br label %7742

7742:                                             ; preds = %7725, %7708
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br label %7743

7743:                                             ; preds = %7742
  br label %7744

7744:                                             ; preds = %7743
  call void @exit(i32 noundef 1) #12
  unreachable

7745:                                             ; No predecessors!
  br label %7746

7746:                                             ; preds = %7745
  br label %7747

7747:                                             ; preds = %7746, %7686
  br label %7748

7748:                                             ; preds = %7747
  br label %7749

7749:                                             ; preds = %7748
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #10
  %7750 = call ptr @s2n_config_new()
  store ptr %7750, ptr %192, align 8, !tbaa !9
  br label %7751

7751:                                             ; preds = %7749
  %7752 = load i32, ptr @test_count, align 4, !tbaa !5
  %7753 = add nsw i32 %7752, 1
  store i32 %7753, ptr @test_count, align 4, !tbaa !5
  %7754 = load ptr, ptr %192, align 8, !tbaa !9
  %7755 = icmp eq ptr %7754, null
  br i1 %7755, label %7756, label %7809

7756:                                             ; preds = %7751
  br label %7757

7757:                                             ; preds = %7756
  br label %7758

7758:                                             ; preds = %7757
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #10
  %7759 = call ptr @__errno_location() #11
  %7760 = load i32, ptr %7759, align 4, !tbaa !5
  store i32 %7760, ptr %193, align 4, !tbaa !5
  %7761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7762 = call i32 @s2n_print_stacktrace(ptr noundef %7761)
  %7763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7764 = trunc i8 %7763 to i1
  br i1 %7764, label %7765, label %7787

7765:                                             ; preds = %7758
  %7766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7767 = call i32 @fileno(ptr noundef %7766) #10
  %7768 = call i32 @isatty(i32 noundef %7767) #10
  %7769 = icmp ne i32 %7768, 0
  br i1 %7769, label %7770, label %7787

7770:                                             ; preds = %7765
  %7771 = load i32, ptr %193, align 4, !tbaa !5
  %7772 = call ptr @__errno_location() #11
  store i32 %7771, ptr %7772, align 4, !tbaa !5
  %7773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7774 = load i32, ptr @test_count, align 4, !tbaa !5
  %7775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7776 = load i32, ptr %7775, align 4, !tbaa !5
  %7777 = call ptr @s2n_strerror(i32 noundef %7776, ptr noundef @.str.4)
  %7778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7779 = load i32, ptr %7778, align 4, !tbaa !5
  %7780 = call ptr @s2n_strerror_debug(i32 noundef %7779, ptr noundef @.str.4)
  %7781 = call ptr @__errno_location() #11
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call ptr @strerror(i32 noundef %7782) #10
  %7784 = call ptr @__errno_location() #11
  %7785 = load i32, ptr %7784, align 4, !tbaa !5
  %7786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7773, ptr noundef @.str.2, i32 noundef %7774, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 401, ptr noundef %7777, ptr noundef %7780, ptr noundef %7783, i32 noundef %7785) #10
  br label %7804

7787:                                             ; preds = %7765, %7758
  %7788 = load i32, ptr %193, align 4, !tbaa !5
  %7789 = call ptr @__errno_location() #11
  store i32 %7788, ptr %7789, align 4, !tbaa !5
  %7790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7791 = load i32, ptr @test_count, align 4, !tbaa !5
  %7792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7793 = load i32, ptr %7792, align 4, !tbaa !5
  %7794 = call ptr @s2n_strerror(i32 noundef %7793, ptr noundef @.str.4)
  %7795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7796 = load i32, ptr %7795, align 4, !tbaa !5
  %7797 = call ptr @s2n_strerror_debug(i32 noundef %7796, ptr noundef @.str.4)
  %7798 = call ptr @__errno_location() #11
  %7799 = load i32, ptr %7798, align 4, !tbaa !5
  %7800 = call ptr @strerror(i32 noundef %7799) #10
  %7801 = call ptr @__errno_location() #11
  %7802 = load i32, ptr %7801, align 4, !tbaa !5
  %7803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7790, ptr noundef @.str.5, i32 noundef %7791, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 401, ptr noundef %7794, ptr noundef %7797, ptr noundef %7800, i32 noundef %7802) #10
  br label %7804

7804:                                             ; preds = %7787, %7770
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #10
  br label %7805

7805:                                             ; preds = %7804
  br label %7806

7806:                                             ; preds = %7805
  call void @exit(i32 noundef 1) #12
  unreachable

7807:                                             ; No predecessors!
  br label %7808

7808:                                             ; preds = %7807
  br label %7809

7809:                                             ; preds = %7808, %7751
  br label %7810

7810:                                             ; preds = %7809
  br label %7811

7811:                                             ; preds = %7810
  br label %7812

7812:                                             ; preds = %7811
  %7813 = load i32, ptr @test_count, align 4, !tbaa !5
  %7814 = add nsw i32 %7813, 1
  store i32 %7814, ptr @test_count, align 4, !tbaa !5
  %7815 = load ptr, ptr %192, align 8, !tbaa !9
  %7816 = load ptr, ptr %189, align 8, !tbaa !9
  %7817 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %7815, ptr noundef %7816)
  %7818 = icmp eq i32 %7817, -1
  br i1 %7818, label %7819, label %7872

7819:                                             ; preds = %7812
  br label %7820

7820:                                             ; preds = %7819
  br label %7821

7821:                                             ; preds = %7820
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #10
  %7822 = call ptr @__errno_location() #11
  %7823 = load i32, ptr %7822, align 4, !tbaa !5
  store i32 %7823, ptr %194, align 4, !tbaa !5
  %7824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7825 = call i32 @s2n_print_stacktrace(ptr noundef %7824)
  %7826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7827 = trunc i8 %7826 to i1
  br i1 %7827, label %7828, label %7850

7828:                                             ; preds = %7821
  %7829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7830 = call i32 @fileno(ptr noundef %7829) #10
  %7831 = call i32 @isatty(i32 noundef %7830) #10
  %7832 = icmp ne i32 %7831, 0
  br i1 %7832, label %7833, label %7850

7833:                                             ; preds = %7828
  %7834 = load i32, ptr %194, align 4, !tbaa !5
  %7835 = call ptr @__errno_location() #11
  store i32 %7834, ptr %7835, align 4, !tbaa !5
  %7836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7837 = load i32, ptr @test_count, align 4, !tbaa !5
  %7838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7839 = load i32, ptr %7838, align 4, !tbaa !5
  %7840 = call ptr @s2n_strerror(i32 noundef %7839, ptr noundef @.str.4)
  %7841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7842 = load i32, ptr %7841, align 4, !tbaa !5
  %7843 = call ptr @s2n_strerror_debug(i32 noundef %7842, ptr noundef @.str.4)
  %7844 = call ptr @__errno_location() #11
  %7845 = load i32, ptr %7844, align 4, !tbaa !5
  %7846 = call ptr @strerror(i32 noundef %7845) #10
  %7847 = call ptr @__errno_location() #11
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7836, ptr noundef @.str.2, i32 noundef %7837, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 402, ptr noundef %7840, ptr noundef %7843, ptr noundef %7846, i32 noundef %7848) #10
  br label %7867

7850:                                             ; preds = %7828, %7821
  %7851 = load i32, ptr %194, align 4, !tbaa !5
  %7852 = call ptr @__errno_location() #11
  store i32 %7851, ptr %7852, align 4, !tbaa !5
  %7853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7854 = load i32, ptr @test_count, align 4, !tbaa !5
  %7855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7856 = load i32, ptr %7855, align 4, !tbaa !5
  %7857 = call ptr @s2n_strerror(i32 noundef %7856, ptr noundef @.str.4)
  %7858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7859 = load i32, ptr %7858, align 4, !tbaa !5
  %7860 = call ptr @s2n_strerror_debug(i32 noundef %7859, ptr noundef @.str.4)
  %7861 = call ptr @__errno_location() #11
  %7862 = load i32, ptr %7861, align 4, !tbaa !5
  %7863 = call ptr @strerror(i32 noundef %7862) #10
  %7864 = call ptr @__errno_location() #11
  %7865 = load i32, ptr %7864, align 4, !tbaa !5
  %7866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7853, ptr noundef @.str.5, i32 noundef %7854, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 402, ptr noundef %7857, ptr noundef %7860, ptr noundef %7863, i32 noundef %7865) #10
  br label %7867

7867:                                             ; preds = %7850, %7833
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #10
  br label %7868

7868:                                             ; preds = %7867
  br label %7869

7869:                                             ; preds = %7868
  call void @exit(i32 noundef 1) #12
  unreachable

7870:                                             ; No predecessors!
  br label %7871

7871:                                             ; preds = %7870
  br label %7872

7872:                                             ; preds = %7871, %7812
  br label %7873

7873:                                             ; preds = %7872
  br label %7874

7874:                                             ; preds = %7873
  br label %7875

7875:                                             ; preds = %7874
  %7876 = load i32, ptr @test_count, align 4, !tbaa !5
  %7877 = add nsw i32 %7876, 1
  store i32 %7877, ptr @test_count, align 4, !tbaa !5
  %7878 = load ptr, ptr %192, align 8, !tbaa !9
  %7879 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %7878, ptr noundef @.str.81)
  %7880 = icmp eq i32 %7879, -1
  br i1 %7880, label %7881, label %7934

7881:                                             ; preds = %7875
  br label %7882

7882:                                             ; preds = %7881
  br label %7883

7883:                                             ; preds = %7882
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #10
  %7884 = call ptr @__errno_location() #11
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  store i32 %7885, ptr %195, align 4, !tbaa !5
  %7886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7887 = call i32 @s2n_print_stacktrace(ptr noundef %7886)
  %7888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7889 = trunc i8 %7888 to i1
  br i1 %7889, label %7890, label %7912

7890:                                             ; preds = %7883
  %7891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7892 = call i32 @fileno(ptr noundef %7891) #10
  %7893 = call i32 @isatty(i32 noundef %7892) #10
  %7894 = icmp ne i32 %7893, 0
  br i1 %7894, label %7895, label %7912

7895:                                             ; preds = %7890
  %7896 = load i32, ptr %195, align 4, !tbaa !5
  %7897 = call ptr @__errno_location() #11
  store i32 %7896, ptr %7897, align 4, !tbaa !5
  %7898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7899 = load i32, ptr @test_count, align 4, !tbaa !5
  %7900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7901 = load i32, ptr %7900, align 4, !tbaa !5
  %7902 = call ptr @s2n_strerror(i32 noundef %7901, ptr noundef @.str.4)
  %7903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7904 = load i32, ptr %7903, align 4, !tbaa !5
  %7905 = call ptr @s2n_strerror_debug(i32 noundef %7904, ptr noundef @.str.4)
  %7906 = call ptr @__errno_location() #11
  %7907 = load i32, ptr %7906, align 4, !tbaa !5
  %7908 = call ptr @strerror(i32 noundef %7907) #10
  %7909 = call ptr @__errno_location() #11
  %7910 = load i32, ptr %7909, align 4, !tbaa !5
  %7911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7898, ptr noundef @.str.2, i32 noundef %7899, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 403, ptr noundef %7902, ptr noundef %7905, ptr noundef %7908, i32 noundef %7910) #10
  br label %7929

7912:                                             ; preds = %7890, %7883
  %7913 = load i32, ptr %195, align 4, !tbaa !5
  %7914 = call ptr @__errno_location() #11
  store i32 %7913, ptr %7914, align 4, !tbaa !5
  %7915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7916 = load i32, ptr @test_count, align 4, !tbaa !5
  %7917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7918 = load i32, ptr %7917, align 4, !tbaa !5
  %7919 = call ptr @s2n_strerror(i32 noundef %7918, ptr noundef @.str.4)
  %7920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7921 = load i32, ptr %7920, align 4, !tbaa !5
  %7922 = call ptr @s2n_strerror_debug(i32 noundef %7921, ptr noundef @.str.4)
  %7923 = call ptr @__errno_location() #11
  %7924 = load i32, ptr %7923, align 4, !tbaa !5
  %7925 = call ptr @strerror(i32 noundef %7924) #10
  %7926 = call ptr @__errno_location() #11
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  %7928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7915, ptr noundef @.str.5, i32 noundef %7916, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 403, ptr noundef %7919, ptr noundef %7922, ptr noundef %7925, i32 noundef %7927) #10
  br label %7929

7929:                                             ; preds = %7912, %7895
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #10
  br label %7930

7930:                                             ; preds = %7929
  br label %7931

7931:                                             ; preds = %7930
  call void @exit(i32 noundef 1) #12
  unreachable

7932:                                             ; No predecessors!
  br label %7933

7933:                                             ; preds = %7932
  br label %7934

7934:                                             ; preds = %7933, %7875
  br label %7935

7935:                                             ; preds = %7934
  br label %7936

7936:                                             ; preds = %7935
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #10
  %7937 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7937, ptr %196, align 8, !tbaa !9
  br label %7938

7938:                                             ; preds = %7936
  %7939 = load i32, ptr @test_count, align 4, !tbaa !5
  %7940 = add nsw i32 %7939, 1
  store i32 %7940, ptr @test_count, align 4, !tbaa !5
  %7941 = load ptr, ptr %196, align 8, !tbaa !9
  %7942 = icmp eq ptr %7941, null
  br i1 %7942, label %7943, label %7996

7943:                                             ; preds = %7938
  br label %7944

7944:                                             ; preds = %7943
  br label %7945

7945:                                             ; preds = %7944
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #10
  %7946 = call ptr @__errno_location() #11
  %7947 = load i32, ptr %7946, align 4, !tbaa !5
  store i32 %7947, ptr %197, align 4, !tbaa !5
  %7948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7949 = call i32 @s2n_print_stacktrace(ptr noundef %7948)
  %7950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7951 = trunc i8 %7950 to i1
  br i1 %7951, label %7952, label %7974

7952:                                             ; preds = %7945
  %7953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7954 = call i32 @fileno(ptr noundef %7953) #10
  %7955 = call i32 @isatty(i32 noundef %7954) #10
  %7956 = icmp ne i32 %7955, 0
  br i1 %7956, label %7957, label %7974

7957:                                             ; preds = %7952
  %7958 = load i32, ptr %197, align 4, !tbaa !5
  %7959 = call ptr @__errno_location() #11
  store i32 %7958, ptr %7959, align 4, !tbaa !5
  %7960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7961 = load i32, ptr @test_count, align 4, !tbaa !5
  %7962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7963 = load i32, ptr %7962, align 4, !tbaa !5
  %7964 = call ptr @s2n_strerror(i32 noundef %7963, ptr noundef @.str.4)
  %7965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7966 = load i32, ptr %7965, align 4, !tbaa !5
  %7967 = call ptr @s2n_strerror_debug(i32 noundef %7966, ptr noundef @.str.4)
  %7968 = call ptr @__errno_location() #11
  %7969 = load i32, ptr %7968, align 4, !tbaa !5
  %7970 = call ptr @strerror(i32 noundef %7969) #10
  %7971 = call ptr @__errno_location() #11
  %7972 = load i32, ptr %7971, align 4, !tbaa !5
  %7973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7960, ptr noundef @.str.2, i32 noundef %7961, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 406, ptr noundef %7964, ptr noundef %7967, ptr noundef %7970, i32 noundef %7972) #10
  br label %7991

7974:                                             ; preds = %7952, %7945
  %7975 = load i32, ptr %197, align 4, !tbaa !5
  %7976 = call ptr @__errno_location() #11
  store i32 %7975, ptr %7976, align 4, !tbaa !5
  %7977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7978 = load i32, ptr @test_count, align 4, !tbaa !5
  %7979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7980 = load i32, ptr %7979, align 4, !tbaa !5
  %7981 = call ptr @s2n_strerror(i32 noundef %7980, ptr noundef @.str.4)
  %7982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7983 = load i32, ptr %7982, align 4, !tbaa !5
  %7984 = call ptr @s2n_strerror_debug(i32 noundef %7983, ptr noundef @.str.4)
  %7985 = call ptr @__errno_location() #11
  %7986 = load i32, ptr %7985, align 4, !tbaa !5
  %7987 = call ptr @strerror(i32 noundef %7986) #10
  %7988 = call ptr @__errno_location() #11
  %7989 = load i32, ptr %7988, align 4, !tbaa !5
  %7990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7977, ptr noundef @.str.5, i32 noundef %7978, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 406, ptr noundef %7981, ptr noundef %7984, ptr noundef %7987, i32 noundef %7989) #10
  br label %7991

7991:                                             ; preds = %7974, %7957
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #10
  br label %7992

7992:                                             ; preds = %7991
  br label %7993

7993:                                             ; preds = %7992
  call void @exit(i32 noundef 1) #12
  unreachable

7994:                                             ; No predecessors!
  br label %7995

7995:                                             ; preds = %7994
  br label %7996

7996:                                             ; preds = %7995, %7938
  br label %7997

7997:                                             ; preds = %7996
  br label %7998

7998:                                             ; preds = %7997
  br label %7999

7999:                                             ; preds = %7998
  %8000 = load i32, ptr @test_count, align 4, !tbaa !5
  %8001 = add nsw i32 %8000, 1
  store i32 %8001, ptr @test_count, align 4, !tbaa !5
  %8002 = load ptr, ptr %196, align 8, !tbaa !9
  %8003 = load ptr, ptr %192, align 8, !tbaa !9
  %8004 = call i32 @s2n_connection_set_config(ptr noundef %8002, ptr noundef %8003)
  %8005 = icmp eq i32 %8004, -1
  br i1 %8005, label %8006, label %8059

8006:                                             ; preds = %7999
  br label %8007

8007:                                             ; preds = %8006
  br label %8008

8008:                                             ; preds = %8007
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #10
  %8009 = call ptr @__errno_location() #11
  %8010 = load i32, ptr %8009, align 4, !tbaa !5
  store i32 %8010, ptr %198, align 4, !tbaa !5
  %8011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8012 = call i32 @s2n_print_stacktrace(ptr noundef %8011)
  %8013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8014 = trunc i8 %8013 to i1
  br i1 %8014, label %8015, label %8037

8015:                                             ; preds = %8008
  %8016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8017 = call i32 @fileno(ptr noundef %8016) #10
  %8018 = call i32 @isatty(i32 noundef %8017) #10
  %8019 = icmp ne i32 %8018, 0
  br i1 %8019, label %8020, label %8037

8020:                                             ; preds = %8015
  %8021 = load i32, ptr %198, align 4, !tbaa !5
  %8022 = call ptr @__errno_location() #11
  store i32 %8021, ptr %8022, align 4, !tbaa !5
  %8023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8024 = load i32, ptr @test_count, align 4, !tbaa !5
  %8025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8026 = load i32, ptr %8025, align 4, !tbaa !5
  %8027 = call ptr @s2n_strerror(i32 noundef %8026, ptr noundef @.str.4)
  %8028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8029 = load i32, ptr %8028, align 4, !tbaa !5
  %8030 = call ptr @s2n_strerror_debug(i32 noundef %8029, ptr noundef @.str.4)
  %8031 = call ptr @__errno_location() #11
  %8032 = load i32, ptr %8031, align 4, !tbaa !5
  %8033 = call ptr @strerror(i32 noundef %8032) #10
  %8034 = call ptr @__errno_location() #11
  %8035 = load i32, ptr %8034, align 4, !tbaa !5
  %8036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8023, ptr noundef @.str.2, i32 noundef %8024, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 407, ptr noundef %8027, ptr noundef %8030, ptr noundef %8033, i32 noundef %8035) #10
  br label %8054

8037:                                             ; preds = %8015, %8008
  %8038 = load i32, ptr %198, align 4, !tbaa !5
  %8039 = call ptr @__errno_location() #11
  store i32 %8038, ptr %8039, align 4, !tbaa !5
  %8040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8041 = load i32, ptr @test_count, align 4, !tbaa !5
  %8042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8043 = load i32, ptr %8042, align 4, !tbaa !5
  %8044 = call ptr @s2n_strerror(i32 noundef %8043, ptr noundef @.str.4)
  %8045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8046 = load i32, ptr %8045, align 4, !tbaa !5
  %8047 = call ptr @s2n_strerror_debug(i32 noundef %8046, ptr noundef @.str.4)
  %8048 = call ptr @__errno_location() #11
  %8049 = load i32, ptr %8048, align 4, !tbaa !5
  %8050 = call ptr @strerror(i32 noundef %8049) #10
  %8051 = call ptr @__errno_location() #11
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  %8053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8040, ptr noundef @.str.5, i32 noundef %8041, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 407, ptr noundef %8044, ptr noundef %8047, ptr noundef %8050, i32 noundef %8052) #10
  br label %8054

8054:                                             ; preds = %8037, %8020
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  br label %8055

8055:                                             ; preds = %8054
  br label %8056

8056:                                             ; preds = %8055
  call void @exit(i32 noundef 1) #12
  unreachable

8057:                                             ; No predecessors!
  br label %8058

8058:                                             ; preds = %8057
  br label %8059

8059:                                             ; preds = %8058, %7999
  br label %8060

8060:                                             ; preds = %8059
  br label %8061

8061:                                             ; preds = %8060
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #10
  %8062 = call ptr @s2n_config_new()
  store ptr %8062, ptr %199, align 8, !tbaa !9
  br label %8063

8063:                                             ; preds = %8061
  %8064 = load i32, ptr @test_count, align 4, !tbaa !5
  %8065 = add nsw i32 %8064, 1
  store i32 %8065, ptr @test_count, align 4, !tbaa !5
  %8066 = load ptr, ptr %199, align 8, !tbaa !9
  %8067 = icmp eq ptr %8066, null
  br i1 %8067, label %8068, label %8121

8068:                                             ; preds = %8063
  br label %8069

8069:                                             ; preds = %8068
  br label %8070

8070:                                             ; preds = %8069
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #10
  %8071 = call ptr @__errno_location() #11
  %8072 = load i32, ptr %8071, align 4, !tbaa !5
  store i32 %8072, ptr %200, align 4, !tbaa !5
  %8073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8074 = call i32 @s2n_print_stacktrace(ptr noundef %8073)
  %8075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8076 = trunc i8 %8075 to i1
  br i1 %8076, label %8077, label %8099

8077:                                             ; preds = %8070
  %8078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8079 = call i32 @fileno(ptr noundef %8078) #10
  %8080 = call i32 @isatty(i32 noundef %8079) #10
  %8081 = icmp ne i32 %8080, 0
  br i1 %8081, label %8082, label %8099

8082:                                             ; preds = %8077
  %8083 = load i32, ptr %200, align 4, !tbaa !5
  %8084 = call ptr @__errno_location() #11
  store i32 %8083, ptr %8084, align 4, !tbaa !5
  %8085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8086 = load i32, ptr @test_count, align 4, !tbaa !5
  %8087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  %8089 = call ptr @s2n_strerror(i32 noundef %8088, ptr noundef @.str.4)
  %8090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8091 = load i32, ptr %8090, align 4, !tbaa !5
  %8092 = call ptr @s2n_strerror_debug(i32 noundef %8091, ptr noundef @.str.4)
  %8093 = call ptr @__errno_location() #11
  %8094 = load i32, ptr %8093, align 4, !tbaa !5
  %8095 = call ptr @strerror(i32 noundef %8094) #10
  %8096 = call ptr @__errno_location() #11
  %8097 = load i32, ptr %8096, align 4, !tbaa !5
  %8098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8085, ptr noundef @.str.2, i32 noundef %8086, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8089, ptr noundef %8092, ptr noundef %8095, i32 noundef %8097) #10
  br label %8116

8099:                                             ; preds = %8077, %8070
  %8100 = load i32, ptr %200, align 4, !tbaa !5
  %8101 = call ptr @__errno_location() #11
  store i32 %8100, ptr %8101, align 4, !tbaa !5
  %8102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8103 = load i32, ptr @test_count, align 4, !tbaa !5
  %8104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8105 = load i32, ptr %8104, align 4, !tbaa !5
  %8106 = call ptr @s2n_strerror(i32 noundef %8105, ptr noundef @.str.4)
  %8107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8108 = load i32, ptr %8107, align 4, !tbaa !5
  %8109 = call ptr @s2n_strerror_debug(i32 noundef %8108, ptr noundef @.str.4)
  %8110 = call ptr @__errno_location() #11
  %8111 = load i32, ptr %8110, align 4, !tbaa !5
  %8112 = call ptr @strerror(i32 noundef %8111) #10
  %8113 = call ptr @__errno_location() #11
  %8114 = load i32, ptr %8113, align 4, !tbaa !5
  %8115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8102, ptr noundef @.str.5, i32 noundef %8103, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8106, ptr noundef %8109, ptr noundef %8112, i32 noundef %8114) #10
  br label %8116

8116:                                             ; preds = %8099, %8082
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #10
  br label %8117

8117:                                             ; preds = %8116
  br label %8118

8118:                                             ; preds = %8117
  call void @exit(i32 noundef 1) #12
  unreachable

8119:                                             ; No predecessors!
  br label %8120

8120:                                             ; preds = %8119
  br label %8121

8121:                                             ; preds = %8120, %8063
  br label %8122

8122:                                             ; preds = %8121
  br label %8123

8123:                                             ; preds = %8122
  br label %8124

8124:                                             ; preds = %8123
  %8125 = load i32, ptr @test_count, align 4, !tbaa !5
  %8126 = add nsw i32 %8125, 1
  store i32 %8126, ptr @test_count, align 4, !tbaa !5
  %8127 = load ptr, ptr %199, align 8, !tbaa !9
  %8128 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %8127, ptr noundef @.str.83, ptr noundef null)
  %8129 = icmp eq i32 %8128, -1
  br i1 %8129, label %8130, label %8183

8130:                                             ; preds = %8124
  br label %8131

8131:                                             ; preds = %8130
  br label %8132

8132:                                             ; preds = %8131
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #10
  %8133 = call ptr @__errno_location() #11
  %8134 = load i32, ptr %8133, align 4, !tbaa !5
  store i32 %8134, ptr %201, align 4, !tbaa !5
  %8135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8136 = call i32 @s2n_print_stacktrace(ptr noundef %8135)
  %8137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8138 = trunc i8 %8137 to i1
  br i1 %8138, label %8139, label %8161

8139:                                             ; preds = %8132
  %8140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8141 = call i32 @fileno(ptr noundef %8140) #10
  %8142 = call i32 @isatty(i32 noundef %8141) #10
  %8143 = icmp ne i32 %8142, 0
  br i1 %8143, label %8144, label %8161

8144:                                             ; preds = %8139
  %8145 = load i32, ptr %201, align 4, !tbaa !5
  %8146 = call ptr @__errno_location() #11
  store i32 %8145, ptr %8146, align 4, !tbaa !5
  %8147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8148 = load i32, ptr @test_count, align 4, !tbaa !5
  %8149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  %8151 = call ptr @s2n_strerror(i32 noundef %8150, ptr noundef @.str.4)
  %8152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  %8154 = call ptr @s2n_strerror_debug(i32 noundef %8153, ptr noundef @.str.4)
  %8155 = call ptr @__errno_location() #11
  %8156 = load i32, ptr %8155, align 4, !tbaa !5
  %8157 = call ptr @strerror(i32 noundef %8156) #10
  %8158 = call ptr @__errno_location() #11
  %8159 = load i32, ptr %8158, align 4, !tbaa !5
  %8160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8147, ptr noundef @.str.2, i32 noundef %8148, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 411, ptr noundef %8151, ptr noundef %8154, ptr noundef %8157, i32 noundef %8159) #10
  br label %8178

8161:                                             ; preds = %8139, %8132
  %8162 = load i32, ptr %201, align 4, !tbaa !5
  %8163 = call ptr @__errno_location() #11
  store i32 %8162, ptr %8163, align 4, !tbaa !5
  %8164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8165 = load i32, ptr @test_count, align 4, !tbaa !5
  %8166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8167 = load i32, ptr %8166, align 4, !tbaa !5
  %8168 = call ptr @s2n_strerror(i32 noundef %8167, ptr noundef @.str.4)
  %8169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8170 = load i32, ptr %8169, align 4, !tbaa !5
  %8171 = call ptr @s2n_strerror_debug(i32 noundef %8170, ptr noundef @.str.4)
  %8172 = call ptr @__errno_location() #11
  %8173 = load i32, ptr %8172, align 4, !tbaa !5
  %8174 = call ptr @strerror(i32 noundef %8173) #10
  %8175 = call ptr @__errno_location() #11
  %8176 = load i32, ptr %8175, align 4, !tbaa !5
  %8177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8164, ptr noundef @.str.5, i32 noundef %8165, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 411, ptr noundef %8168, ptr noundef %8171, ptr noundef %8174, i32 noundef %8176) #10
  br label %8178

8178:                                             ; preds = %8161, %8144
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #10
  br label %8179

8179:                                             ; preds = %8178
  br label %8180

8180:                                             ; preds = %8179
  call void @exit(i32 noundef 1) #12
  unreachable

8181:                                             ; No predecessors!
  br label %8182

8182:                                             ; preds = %8181
  br label %8183

8183:                                             ; preds = %8182, %8124
  br label %8184

8184:                                             ; preds = %8183
  br label %8185

8185:                                             ; preds = %8184
  br label %8186

8186:                                             ; preds = %8185
  %8187 = load i32, ptr @test_count, align 4, !tbaa !5
  %8188 = add nsw i32 %8187, 1
  store i32 %8188, ptr @test_count, align 4, !tbaa !5
  %8189 = load ptr, ptr %199, align 8, !tbaa !9
  %8190 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %8189, ptr noundef @.str.81)
  %8191 = icmp eq i32 %8190, -1
  br i1 %8191, label %8192, label %8245

8192:                                             ; preds = %8186
  br label %8193

8193:                                             ; preds = %8192
  br label %8194

8194:                                             ; preds = %8193
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #10
  %8195 = call ptr @__errno_location() #11
  %8196 = load i32, ptr %8195, align 4, !tbaa !5
  store i32 %8196, ptr %202, align 4, !tbaa !5
  %8197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8198 = call i32 @s2n_print_stacktrace(ptr noundef %8197)
  %8199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8200 = trunc i8 %8199 to i1
  br i1 %8200, label %8201, label %8223

8201:                                             ; preds = %8194
  %8202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8203 = call i32 @fileno(ptr noundef %8202) #10
  %8204 = call i32 @isatty(i32 noundef %8203) #10
  %8205 = icmp ne i32 %8204, 0
  br i1 %8205, label %8206, label %8223

8206:                                             ; preds = %8201
  %8207 = load i32, ptr %202, align 4, !tbaa !5
  %8208 = call ptr @__errno_location() #11
  store i32 %8207, ptr %8208, align 4, !tbaa !5
  %8209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8210 = load i32, ptr @test_count, align 4, !tbaa !5
  %8211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8212 = load i32, ptr %8211, align 4, !tbaa !5
  %8213 = call ptr @s2n_strerror(i32 noundef %8212, ptr noundef @.str.4)
  %8214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8215 = load i32, ptr %8214, align 4, !tbaa !5
  %8216 = call ptr @s2n_strerror_debug(i32 noundef %8215, ptr noundef @.str.4)
  %8217 = call ptr @__errno_location() #11
  %8218 = load i32, ptr %8217, align 4, !tbaa !5
  %8219 = call ptr @strerror(i32 noundef %8218) #10
  %8220 = call ptr @__errno_location() #11
  %8221 = load i32, ptr %8220, align 4, !tbaa !5
  %8222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8209, ptr noundef @.str.2, i32 noundef %8210, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 412, ptr noundef %8213, ptr noundef %8216, ptr noundef %8219, i32 noundef %8221) #10
  br label %8240

8223:                                             ; preds = %8201, %8194
  %8224 = load i32, ptr %202, align 4, !tbaa !5
  %8225 = call ptr @__errno_location() #11
  store i32 %8224, ptr %8225, align 4, !tbaa !5
  %8226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8227 = load i32, ptr @test_count, align 4, !tbaa !5
  %8228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8229 = load i32, ptr %8228, align 4, !tbaa !5
  %8230 = call ptr @s2n_strerror(i32 noundef %8229, ptr noundef @.str.4)
  %8231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8232 = load i32, ptr %8231, align 4, !tbaa !5
  %8233 = call ptr @s2n_strerror_debug(i32 noundef %8232, ptr noundef @.str.4)
  %8234 = call ptr @__errno_location() #11
  %8235 = load i32, ptr %8234, align 4, !tbaa !5
  %8236 = call ptr @strerror(i32 noundef %8235) #10
  %8237 = call ptr @__errno_location() #11
  %8238 = load i32, ptr %8237, align 4, !tbaa !5
  %8239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8226, ptr noundef @.str.5, i32 noundef %8227, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 412, ptr noundef %8230, ptr noundef %8233, ptr noundef %8236, i32 noundef %8238) #10
  br label %8240

8240:                                             ; preds = %8223, %8206
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #10
  br label %8241

8241:                                             ; preds = %8240
  br label %8242

8242:                                             ; preds = %8241
  call void @exit(i32 noundef 1) #12
  unreachable

8243:                                             ; No predecessors!
  br label %8244

8244:                                             ; preds = %8243
  br label %8245

8245:                                             ; preds = %8244, %8186
  br label %8246

8246:                                             ; preds = %8245
  br label %8247

8247:                                             ; preds = %8246
  br label %8248

8248:                                             ; preds = %8247
  %8249 = load i32, ptr @test_count, align 4, !tbaa !5
  %8250 = add nsw i32 %8249, 1
  store i32 %8250, ptr @test_count, align 4, !tbaa !5
  %8251 = load ptr, ptr %199, align 8, !tbaa !9
  %8252 = call i32 @s2n_config_set_status_request_type(ptr noundef %8251, i32 noundef 1)
  %8253 = icmp eq i32 %8252, -1
  br i1 %8253, label %8254, label %8307

8254:                                             ; preds = %8248
  br label %8255

8255:                                             ; preds = %8254
  br label %8256

8256:                                             ; preds = %8255
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #10
  %8257 = call ptr @__errno_location() #11
  %8258 = load i32, ptr %8257, align 4, !tbaa !5
  store i32 %8258, ptr %203, align 4, !tbaa !5
  %8259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8260 = call i32 @s2n_print_stacktrace(ptr noundef %8259)
  %8261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8262 = trunc i8 %8261 to i1
  br i1 %8262, label %8263, label %8285

8263:                                             ; preds = %8256
  %8264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8265 = call i32 @fileno(ptr noundef %8264) #10
  %8266 = call i32 @isatty(i32 noundef %8265) #10
  %8267 = icmp ne i32 %8266, 0
  br i1 %8267, label %8268, label %8285

8268:                                             ; preds = %8263
  %8269 = load i32, ptr %203, align 4, !tbaa !5
  %8270 = call ptr @__errno_location() #11
  store i32 %8269, ptr %8270, align 4, !tbaa !5
  %8271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8272 = load i32, ptr @test_count, align 4, !tbaa !5
  %8273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8274 = load i32, ptr %8273, align 4, !tbaa !5
  %8275 = call ptr @s2n_strerror(i32 noundef %8274, ptr noundef @.str.4)
  %8276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8277 = load i32, ptr %8276, align 4, !tbaa !5
  %8278 = call ptr @s2n_strerror_debug(i32 noundef %8277, ptr noundef @.str.4)
  %8279 = call ptr @__errno_location() #11
  %8280 = load i32, ptr %8279, align 4, !tbaa !5
  %8281 = call ptr @strerror(i32 noundef %8280) #10
  %8282 = call ptr @__errno_location() #11
  %8283 = load i32, ptr %8282, align 4, !tbaa !5
  %8284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8271, ptr noundef @.str.2, i32 noundef %8272, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 413, ptr noundef %8275, ptr noundef %8278, ptr noundef %8281, i32 noundef %8283) #10
  br label %8302

8285:                                             ; preds = %8263, %8256
  %8286 = load i32, ptr %203, align 4, !tbaa !5
  %8287 = call ptr @__errno_location() #11
  store i32 %8286, ptr %8287, align 4, !tbaa !5
  %8288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8289 = load i32, ptr @test_count, align 4, !tbaa !5
  %8290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8291 = load i32, ptr %8290, align 4, !tbaa !5
  %8292 = call ptr @s2n_strerror(i32 noundef %8291, ptr noundef @.str.4)
  %8293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8294 = load i32, ptr %8293, align 4, !tbaa !5
  %8295 = call ptr @s2n_strerror_debug(i32 noundef %8294, ptr noundef @.str.4)
  %8296 = call ptr @__errno_location() #11
  %8297 = load i32, ptr %8296, align 4, !tbaa !5
  %8298 = call ptr @strerror(i32 noundef %8297) #10
  %8299 = call ptr @__errno_location() #11
  %8300 = load i32, ptr %8299, align 4, !tbaa !5
  %8301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8288, ptr noundef @.str.5, i32 noundef %8289, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 413, ptr noundef %8292, ptr noundef %8295, ptr noundef %8298, i32 noundef %8300) #10
  br label %8302

8302:                                             ; preds = %8285, %8268
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #10
  br label %8303

8303:                                             ; preds = %8302
  br label %8304

8304:                                             ; preds = %8303
  call void @exit(i32 noundef 1) #12
  unreachable

8305:                                             ; No predecessors!
  br label %8306

8306:                                             ; preds = %8305
  br label %8307

8307:                                             ; preds = %8306, %8248
  br label %8308

8308:                                             ; preds = %8307
  br label %8309

8309:                                             ; preds = %8308
  call void @llvm.lifetime.start.p0(i64 16, ptr %204) #10
  %8310 = load i32, ptr %183, align 4, !tbaa !5
  %8311 = sext i32 %8310 to i64
  %8312 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %8311
  %8313 = getelementptr inbounds %struct.anon, ptr %8312, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %204, ptr align 8 %8313, i64 16, i1 false), !tbaa.struct !18
  br label %8314

8314:                                             ; preds = %8309
  %8315 = load i32, ptr @test_count, align 4, !tbaa !5
  %8316 = add nsw i32 %8315, 1
  store i32 %8316, ptr @test_count, align 4, !tbaa !5
  %8317 = load ptr, ptr %199, align 8, !tbaa !9
  %8318 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %8317, ptr noundef @s2n_test_cert_validation_callback_self_talk_ocsp, ptr noundef %204)
  %8319 = icmp eq i32 %8318, -1
  br i1 %8319, label %8320, label %8373

8320:                                             ; preds = %8314
  br label %8321

8321:                                             ; preds = %8320
  br label %8322

8322:                                             ; preds = %8321
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #10
  %8323 = call ptr @__errno_location() #11
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  store i32 %8324, ptr %205, align 4, !tbaa !5
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = call i32 @s2n_print_stacktrace(ptr noundef %8325)
  %8327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8328 = trunc i8 %8327 to i1
  br i1 %8328, label %8329, label %8351

8329:                                             ; preds = %8322
  %8330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8331 = call i32 @fileno(ptr noundef %8330) #10
  %8332 = call i32 @isatty(i32 noundef %8331) #10
  %8333 = icmp ne i32 %8332, 0
  br i1 %8333, label %8334, label %8351

8334:                                             ; preds = %8329
  %8335 = load i32, ptr %205, align 4, !tbaa !5
  %8336 = call ptr @__errno_location() #11
  store i32 %8335, ptr %8336, align 4, !tbaa !5
  %8337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8338 = load i32, ptr @test_count, align 4, !tbaa !5
  %8339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @s2n_strerror(i32 noundef %8340, ptr noundef @.str.4)
  %8342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call ptr @s2n_strerror_debug(i32 noundef %8343, ptr noundef @.str.4)
  %8345 = call ptr @__errno_location() #11
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  %8347 = call ptr @strerror(i32 noundef %8346) #10
  %8348 = call ptr @__errno_location() #11
  %8349 = load i32, ptr %8348, align 4, !tbaa !5
  %8350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8337, ptr noundef @.str.2, i32 noundef %8338, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 417, ptr noundef %8341, ptr noundef %8344, ptr noundef %8347, i32 noundef %8349) #10
  br label %8368

8351:                                             ; preds = %8329, %8322
  %8352 = load i32, ptr %205, align 4, !tbaa !5
  %8353 = call ptr @__errno_location() #11
  store i32 %8352, ptr %8353, align 4, !tbaa !5
  %8354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8355 = load i32, ptr @test_count, align 4, !tbaa !5
  %8356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8357 = load i32, ptr %8356, align 4, !tbaa !5
  %8358 = call ptr @s2n_strerror(i32 noundef %8357, ptr noundef @.str.4)
  %8359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8360 = load i32, ptr %8359, align 4, !tbaa !5
  %8361 = call ptr @s2n_strerror_debug(i32 noundef %8360, ptr noundef @.str.4)
  %8362 = call ptr @__errno_location() #11
  %8363 = load i32, ptr %8362, align 4, !tbaa !5
  %8364 = call ptr @strerror(i32 noundef %8363) #10
  %8365 = call ptr @__errno_location() #11
  %8366 = load i32, ptr %8365, align 4, !tbaa !5
  %8367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8354, ptr noundef @.str.5, i32 noundef %8355, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 417, ptr noundef %8358, ptr noundef %8361, ptr noundef %8364, i32 noundef %8366) #10
  br label %8368

8368:                                             ; preds = %8351, %8334
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #10
  br label %8369

8369:                                             ; preds = %8368
  br label %8370

8370:                                             ; preds = %8369
  call void @exit(i32 noundef 1) #12
  unreachable

8371:                                             ; No predecessors!
  br label %8372

8372:                                             ; preds = %8371
  br label %8373

8373:                                             ; preds = %8372, %8314
  br label %8374

8374:                                             ; preds = %8373
  br label %8375

8375:                                             ; preds = %8374
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #10
  %8376 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8376, ptr %206, align 8, !tbaa !9
  br label %8377

8377:                                             ; preds = %8375
  %8378 = load i32, ptr @test_count, align 4, !tbaa !5
  %8379 = add nsw i32 %8378, 1
  store i32 %8379, ptr @test_count, align 4, !tbaa !5
  %8380 = load ptr, ptr %206, align 8, !tbaa !9
  %8381 = icmp eq ptr %8380, null
  br i1 %8381, label %8382, label %8435

8382:                                             ; preds = %8377
  br label %8383

8383:                                             ; preds = %8382
  br label %8384

8384:                                             ; preds = %8383
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #10
  %8385 = call ptr @__errno_location() #11
  %8386 = load i32, ptr %8385, align 4, !tbaa !5
  store i32 %8386, ptr %207, align 4, !tbaa !5
  %8387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8388 = call i32 @s2n_print_stacktrace(ptr noundef %8387)
  %8389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8390 = trunc i8 %8389 to i1
  br i1 %8390, label %8391, label %8413

8391:                                             ; preds = %8384
  %8392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8393 = call i32 @fileno(ptr noundef %8392) #10
  %8394 = call i32 @isatty(i32 noundef %8393) #10
  %8395 = icmp ne i32 %8394, 0
  br i1 %8395, label %8396, label %8413

8396:                                             ; preds = %8391
  %8397 = load i32, ptr %207, align 4, !tbaa !5
  %8398 = call ptr @__errno_location() #11
  store i32 %8397, ptr %8398, align 4, !tbaa !5
  %8399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8400 = load i32, ptr @test_count, align 4, !tbaa !5
  %8401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @s2n_strerror(i32 noundef %8402, ptr noundef @.str.4)
  %8404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call ptr @s2n_strerror_debug(i32 noundef %8405, ptr noundef @.str.4)
  %8407 = call ptr @__errno_location() #11
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call ptr @strerror(i32 noundef %8408) #10
  %8410 = call ptr @__errno_location() #11
  %8411 = load i32, ptr %8410, align 4, !tbaa !5
  %8412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8399, ptr noundef @.str.2, i32 noundef %8400, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 420, ptr noundef %8403, ptr noundef %8406, ptr noundef %8409, i32 noundef %8411) #10
  br label %8430

8413:                                             ; preds = %8391, %8384
  %8414 = load i32, ptr %207, align 4, !tbaa !5
  %8415 = call ptr @__errno_location() #11
  store i32 %8414, ptr %8415, align 4, !tbaa !5
  %8416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8417 = load i32, ptr @test_count, align 4, !tbaa !5
  %8418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8419 = load i32, ptr %8418, align 4, !tbaa !5
  %8420 = call ptr @s2n_strerror(i32 noundef %8419, ptr noundef @.str.4)
  %8421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8422 = load i32, ptr %8421, align 4, !tbaa !5
  %8423 = call ptr @s2n_strerror_debug(i32 noundef %8422, ptr noundef @.str.4)
  %8424 = call ptr @__errno_location() #11
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  %8426 = call ptr @strerror(i32 noundef %8425) #10
  %8427 = call ptr @__errno_location() #11
  %8428 = load i32, ptr %8427, align 4, !tbaa !5
  %8429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8416, ptr noundef @.str.5, i32 noundef %8417, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 420, ptr noundef %8420, ptr noundef %8423, ptr noundef %8426, i32 noundef %8428) #10
  br label %8430

8430:                                             ; preds = %8413, %8396
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #10
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

8432:                                             ; preds = %8431
  call void @exit(i32 noundef 1) #12
  unreachable

8433:                                             ; No predecessors!
  br label %8434

8434:                                             ; preds = %8433
  br label %8435

8435:                                             ; preds = %8434, %8377
  br label %8436

8436:                                             ; preds = %8435
  br label %8437

8437:                                             ; preds = %8436
  br label %8438

8438:                                             ; preds = %8437
  %8439 = load i32, ptr @test_count, align 4, !tbaa !5
  %8440 = add nsw i32 %8439, 1
  store i32 %8440, ptr @test_count, align 4, !tbaa !5
  %8441 = load ptr, ptr %206, align 8, !tbaa !9
  %8442 = load ptr, ptr %199, align 8, !tbaa !9
  %8443 = call i32 @s2n_connection_set_config(ptr noundef %8441, ptr noundef %8442)
  %8444 = icmp eq i32 %8443, -1
  br i1 %8444, label %8445, label %8498

8445:                                             ; preds = %8438
  br label %8446

8446:                                             ; preds = %8445
  br label %8447

8447:                                             ; preds = %8446
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #10
  %8448 = call ptr @__errno_location() #11
  %8449 = load i32, ptr %8448, align 4, !tbaa !5
  store i32 %8449, ptr %208, align 4, !tbaa !5
  %8450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8451 = call i32 @s2n_print_stacktrace(ptr noundef %8450)
  %8452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8453 = trunc i8 %8452 to i1
  br i1 %8453, label %8454, label %8476

8454:                                             ; preds = %8447
  %8455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8456 = call i32 @fileno(ptr noundef %8455) #10
  %8457 = call i32 @isatty(i32 noundef %8456) #10
  %8458 = icmp ne i32 %8457, 0
  br i1 %8458, label %8459, label %8476

8459:                                             ; preds = %8454
  %8460 = load i32, ptr %208, align 4, !tbaa !5
  %8461 = call ptr @__errno_location() #11
  store i32 %8460, ptr %8461, align 4, !tbaa !5
  %8462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8463 = load i32, ptr @test_count, align 4, !tbaa !5
  %8464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8465 = load i32, ptr %8464, align 4, !tbaa !5
  %8466 = call ptr @s2n_strerror(i32 noundef %8465, ptr noundef @.str.4)
  %8467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8468 = load i32, ptr %8467, align 4, !tbaa !5
  %8469 = call ptr @s2n_strerror_debug(i32 noundef %8468, ptr noundef @.str.4)
  %8470 = call ptr @__errno_location() #11
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  %8472 = call ptr @strerror(i32 noundef %8471) #10
  %8473 = call ptr @__errno_location() #11
  %8474 = load i32, ptr %8473, align 4, !tbaa !5
  %8475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8462, ptr noundef @.str.2, i32 noundef %8463, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 421, ptr noundef %8466, ptr noundef %8469, ptr noundef %8472, i32 noundef %8474) #10
  br label %8493

8476:                                             ; preds = %8454, %8447
  %8477 = load i32, ptr %208, align 4, !tbaa !5
  %8478 = call ptr @__errno_location() #11
  store i32 %8477, ptr %8478, align 4, !tbaa !5
  %8479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8480 = load i32, ptr @test_count, align 4, !tbaa !5
  %8481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8482 = load i32, ptr %8481, align 4, !tbaa !5
  %8483 = call ptr @s2n_strerror(i32 noundef %8482, ptr noundef @.str.4)
  %8484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8485 = load i32, ptr %8484, align 4, !tbaa !5
  %8486 = call ptr @s2n_strerror_debug(i32 noundef %8485, ptr noundef @.str.4)
  %8487 = call ptr @__errno_location() #11
  %8488 = load i32, ptr %8487, align 4, !tbaa !5
  %8489 = call ptr @strerror(i32 noundef %8488) #10
  %8490 = call ptr @__errno_location() #11
  %8491 = load i32, ptr %8490, align 4, !tbaa !5
  %8492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8479, ptr noundef @.str.5, i32 noundef %8480, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 421, ptr noundef %8483, ptr noundef %8486, ptr noundef %8489, i32 noundef %8491) #10
  br label %8493

8493:                                             ; preds = %8476, %8459
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #10
  br label %8494

8494:                                             ; preds = %8493
  br label %8495

8495:                                             ; preds = %8494
  call void @exit(i32 noundef 1) #12
  unreachable

8496:                                             ; No predecessors!
  br label %8497

8497:                                             ; preds = %8496
  br label %8498

8498:                                             ; preds = %8497, %8438
  br label %8499

8499:                                             ; preds = %8498
  br label %8500

8500:                                             ; preds = %8499
  br label %8501

8501:                                             ; preds = %8500
  %8502 = load i32, ptr @test_count, align 4, !tbaa !5
  %8503 = add nsw i32 %8502, 1
  store i32 %8503, ptr @test_count, align 4, !tbaa !5
  %8504 = load ptr, ptr %206, align 8, !tbaa !9
  %8505 = call i32 @s2n_set_server_name(ptr noundef %8504, ptr noundef @.str.88)
  %8506 = icmp eq i32 %8505, -1
  br i1 %8506, label %8507, label %8560

8507:                                             ; preds = %8501
  br label %8508

8508:                                             ; preds = %8507
  br label %8509

8509:                                             ; preds = %8508
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #10
  %8510 = call ptr @__errno_location() #11
  %8511 = load i32, ptr %8510, align 4, !tbaa !5
  store i32 %8511, ptr %209, align 4, !tbaa !5
  %8512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8513 = call i32 @s2n_print_stacktrace(ptr noundef %8512)
  %8514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8515 = trunc i8 %8514 to i1
  br i1 %8515, label %8516, label %8538

8516:                                             ; preds = %8509
  %8517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8518 = call i32 @fileno(ptr noundef %8517) #10
  %8519 = call i32 @isatty(i32 noundef %8518) #10
  %8520 = icmp ne i32 %8519, 0
  br i1 %8520, label %8521, label %8538

8521:                                             ; preds = %8516
  %8522 = load i32, ptr %209, align 4, !tbaa !5
  %8523 = call ptr @__errno_location() #11
  store i32 %8522, ptr %8523, align 4, !tbaa !5
  %8524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8525 = load i32, ptr @test_count, align 4, !tbaa !5
  %8526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8527 = load i32, ptr %8526, align 4, !tbaa !5
  %8528 = call ptr @s2n_strerror(i32 noundef %8527, ptr noundef @.str.4)
  %8529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8530 = load i32, ptr %8529, align 4, !tbaa !5
  %8531 = call ptr @s2n_strerror_debug(i32 noundef %8530, ptr noundef @.str.4)
  %8532 = call ptr @__errno_location() #11
  %8533 = load i32, ptr %8532, align 4, !tbaa !5
  %8534 = call ptr @strerror(i32 noundef %8533) #10
  %8535 = call ptr @__errno_location() #11
  %8536 = load i32, ptr %8535, align 4, !tbaa !5
  %8537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8524, ptr noundef @.str.2, i32 noundef %8525, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 422, ptr noundef %8528, ptr noundef %8531, ptr noundef %8534, i32 noundef %8536) #10
  br label %8555

8538:                                             ; preds = %8516, %8509
  %8539 = load i32, ptr %209, align 4, !tbaa !5
  %8540 = call ptr @__errno_location() #11
  store i32 %8539, ptr %8540, align 4, !tbaa !5
  %8541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8542 = load i32, ptr @test_count, align 4, !tbaa !5
  %8543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8544 = load i32, ptr %8543, align 4, !tbaa !5
  %8545 = call ptr @s2n_strerror(i32 noundef %8544, ptr noundef @.str.4)
  %8546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8547 = load i32, ptr %8546, align 4, !tbaa !5
  %8548 = call ptr @s2n_strerror_debug(i32 noundef %8547, ptr noundef @.str.4)
  %8549 = call ptr @__errno_location() #11
  %8550 = load i32, ptr %8549, align 4, !tbaa !5
  %8551 = call ptr @strerror(i32 noundef %8550) #10
  %8552 = call ptr @__errno_location() #11
  %8553 = load i32, ptr %8552, align 4, !tbaa !5
  %8554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8541, ptr noundef @.str.5, i32 noundef %8542, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 422, ptr noundef %8545, ptr noundef %8548, ptr noundef %8551, i32 noundef %8553) #10
  br label %8555

8555:                                             ; preds = %8538, %8521
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #10
  br label %8556

8556:                                             ; preds = %8555
  br label %8557

8557:                                             ; preds = %8556
  call void @exit(i32 noundef 1) #12
  unreachable

8558:                                             ; No predecessors!
  br label %8559

8559:                                             ; preds = %8558
  br label %8560

8560:                                             ; preds = %8559, %8501
  br label %8561

8561:                                             ; preds = %8560
  br label %8562

8562:                                             ; preds = %8561
  br label %8563

8563:                                             ; preds = %8562
  %8564 = load i32, ptr @test_count, align 4, !tbaa !5
  %8565 = add nsw i32 %8564, 1
  store i32 %8565, ptr @test_count, align 4, !tbaa !5
  %8566 = load ptr, ptr %206, align 8, !tbaa !9
  %8567 = call i32 @s2n_connection_set_blinding(ptr noundef %8566, i32 noundef 1)
  %8568 = icmp eq i32 %8567, -1
  br i1 %8568, label %8569, label %8622

8569:                                             ; preds = %8563
  br label %8570

8570:                                             ; preds = %8569
  br label %8571

8571:                                             ; preds = %8570
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #10
  %8572 = call ptr @__errno_location() #11
  %8573 = load i32, ptr %8572, align 4, !tbaa !5
  store i32 %8573, ptr %210, align 4, !tbaa !5
  %8574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8575 = call i32 @s2n_print_stacktrace(ptr noundef %8574)
  %8576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8577 = trunc i8 %8576 to i1
  br i1 %8577, label %8578, label %8600

8578:                                             ; preds = %8571
  %8579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8580 = call i32 @fileno(ptr noundef %8579) #10
  %8581 = call i32 @isatty(i32 noundef %8580) #10
  %8582 = icmp ne i32 %8581, 0
  br i1 %8582, label %8583, label %8600

8583:                                             ; preds = %8578
  %8584 = load i32, ptr %210, align 4, !tbaa !5
  %8585 = call ptr @__errno_location() #11
  store i32 %8584, ptr %8585, align 4, !tbaa !5
  %8586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8587 = load i32, ptr @test_count, align 4, !tbaa !5
  %8588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8589 = load i32, ptr %8588, align 4, !tbaa !5
  %8590 = call ptr @s2n_strerror(i32 noundef %8589, ptr noundef @.str.4)
  %8591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8592 = load i32, ptr %8591, align 4, !tbaa !5
  %8593 = call ptr @s2n_strerror_debug(i32 noundef %8592, ptr noundef @.str.4)
  %8594 = call ptr @__errno_location() #11
  %8595 = load i32, ptr %8594, align 4, !tbaa !5
  %8596 = call ptr @strerror(i32 noundef %8595) #10
  %8597 = call ptr @__errno_location() #11
  %8598 = load i32, ptr %8597, align 4, !tbaa !5
  %8599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8586, ptr noundef @.str.2, i32 noundef %8587, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 423, ptr noundef %8590, ptr noundef %8593, ptr noundef %8596, i32 noundef %8598) #10
  br label %8617

8600:                                             ; preds = %8578, %8571
  %8601 = load i32, ptr %210, align 4, !tbaa !5
  %8602 = call ptr @__errno_location() #11
  store i32 %8601, ptr %8602, align 4, !tbaa !5
  %8603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8604 = load i32, ptr @test_count, align 4, !tbaa !5
  %8605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8606 = load i32, ptr %8605, align 4, !tbaa !5
  %8607 = call ptr @s2n_strerror(i32 noundef %8606, ptr noundef @.str.4)
  %8608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8609 = load i32, ptr %8608, align 4, !tbaa !5
  %8610 = call ptr @s2n_strerror_debug(i32 noundef %8609, ptr noundef @.str.4)
  %8611 = call ptr @__errno_location() #11
  %8612 = load i32, ptr %8611, align 4, !tbaa !5
  %8613 = call ptr @strerror(i32 noundef %8612) #10
  %8614 = call ptr @__errno_location() #11
  %8615 = load i32, ptr %8614, align 4, !tbaa !5
  %8616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8603, ptr noundef @.str.5, i32 noundef %8604, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 423, ptr noundef %8607, ptr noundef %8610, ptr noundef %8613, i32 noundef %8615) #10
  br label %8617

8617:                                             ; preds = %8600, %8583
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #10
  br label %8618

8618:                                             ; preds = %8617
  br label %8619

8619:                                             ; preds = %8618
  call void @exit(i32 noundef 1) #12
  unreachable

8620:                                             ; No predecessors!
  br label %8621

8621:                                             ; preds = %8620
  br label %8622

8622:                                             ; preds = %8621, %8563
  br label %8623

8623:                                             ; preds = %8622
  br label %8624

8624:                                             ; preds = %8623
  call void @llvm.lifetime.start.p0(i64 8, ptr %211) #10
  call void @llvm.memset.p0.i64(ptr align 4 %211, i8 0, i64 8, i1 false)
  br label %8625

8625:                                             ; preds = %8624
  %8626 = load i32, ptr @test_count, align 4, !tbaa !5
  %8627 = add nsw i32 %8626, 1
  store i32 %8627, ptr @test_count, align 4, !tbaa !5
  %8628 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %211)
  %8629 = icmp eq i32 %8628, -1
  br i1 %8629, label %8630, label %8683

8630:                                             ; preds = %8625
  br label %8631

8631:                                             ; preds = %8630
  br label %8632

8632:                                             ; preds = %8631
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #10
  %8633 = call ptr @__errno_location() #11
  %8634 = load i32, ptr %8633, align 4, !tbaa !5
  store i32 %8634, ptr %212, align 4, !tbaa !5
  %8635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8636 = call i32 @s2n_print_stacktrace(ptr noundef %8635)
  %8637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8638 = trunc i8 %8637 to i1
  br i1 %8638, label %8639, label %8661

8639:                                             ; preds = %8632
  %8640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8641 = call i32 @fileno(ptr noundef %8640) #10
  %8642 = call i32 @isatty(i32 noundef %8641) #10
  %8643 = icmp ne i32 %8642, 0
  br i1 %8643, label %8644, label %8661

8644:                                             ; preds = %8639
  %8645 = load i32, ptr %212, align 4, !tbaa !5
  %8646 = call ptr @__errno_location() #11
  store i32 %8645, ptr %8646, align 4, !tbaa !5
  %8647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8648 = load i32, ptr @test_count, align 4, !tbaa !5
  %8649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8650 = load i32, ptr %8649, align 4, !tbaa !5
  %8651 = call ptr @s2n_strerror(i32 noundef %8650, ptr noundef @.str.4)
  %8652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8653 = load i32, ptr %8652, align 4, !tbaa !5
  %8654 = call ptr @s2n_strerror_debug(i32 noundef %8653, ptr noundef @.str.4)
  %8655 = call ptr @__errno_location() #11
  %8656 = load i32, ptr %8655, align 4, !tbaa !5
  %8657 = call ptr @strerror(i32 noundef %8656) #10
  %8658 = call ptr @__errno_location() #11
  %8659 = load i32, ptr %8658, align 4, !tbaa !5
  %8660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8647, ptr noundef @.str.2, i32 noundef %8648, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 426, ptr noundef %8651, ptr noundef %8654, ptr noundef %8657, i32 noundef %8659) #10
  br label %8678

8661:                                             ; preds = %8639, %8632
  %8662 = load i32, ptr %212, align 4, !tbaa !5
  %8663 = call ptr @__errno_location() #11
  store i32 %8662, ptr %8663, align 4, !tbaa !5
  %8664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8665 = load i32, ptr @test_count, align 4, !tbaa !5
  %8666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8667 = load i32, ptr %8666, align 4, !tbaa !5
  %8668 = call ptr @s2n_strerror(i32 noundef %8667, ptr noundef @.str.4)
  %8669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8670 = load i32, ptr %8669, align 4, !tbaa !5
  %8671 = call ptr @s2n_strerror_debug(i32 noundef %8670, ptr noundef @.str.4)
  %8672 = call ptr @__errno_location() #11
  %8673 = load i32, ptr %8672, align 4, !tbaa !5
  %8674 = call ptr @strerror(i32 noundef %8673) #10
  %8675 = call ptr @__errno_location() #11
  %8676 = load i32, ptr %8675, align 4, !tbaa !5
  %8677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8664, ptr noundef @.str.5, i32 noundef %8665, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 426, ptr noundef %8668, ptr noundef %8671, ptr noundef %8674, i32 noundef %8676) #10
  br label %8678

8678:                                             ; preds = %8661, %8644
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #10
  br label %8679

8679:                                             ; preds = %8678
  br label %8680

8680:                                             ; preds = %8679
  call void @exit(i32 noundef 1) #12
  unreachable

8681:                                             ; No predecessors!
  br label %8682

8682:                                             ; preds = %8681
  br label %8683

8683:                                             ; preds = %8682, %8625
  br label %8684

8684:                                             ; preds = %8683
  br label %8685

8685:                                             ; preds = %8684
  br label %8686

8686:                                             ; preds = %8685
  %8687 = load i32, ptr @test_count, align 4, !tbaa !5
  %8688 = add nsw i32 %8687, 1
  store i32 %8688, ptr @test_count, align 4, !tbaa !5
  %8689 = load ptr, ptr %206, align 8, !tbaa !9
  %8690 = call i32 @s2n_connection_set_io_pair(ptr noundef %8689, ptr noundef %211)
  %8691 = icmp eq i32 %8690, -1
  br i1 %8691, label %8692, label %8745

8692:                                             ; preds = %8686
  br label %8693

8693:                                             ; preds = %8692
  br label %8694

8694:                                             ; preds = %8693
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #10
  %8695 = call ptr @__errno_location() #11
  %8696 = load i32, ptr %8695, align 4, !tbaa !5
  store i32 %8696, ptr %213, align 4, !tbaa !5
  %8697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8698 = call i32 @s2n_print_stacktrace(ptr noundef %8697)
  %8699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8700 = trunc i8 %8699 to i1
  br i1 %8700, label %8701, label %8723

8701:                                             ; preds = %8694
  %8702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8703 = call i32 @fileno(ptr noundef %8702) #10
  %8704 = call i32 @isatty(i32 noundef %8703) #10
  %8705 = icmp ne i32 %8704, 0
  br i1 %8705, label %8706, label %8723

8706:                                             ; preds = %8701
  %8707 = load i32, ptr %213, align 4, !tbaa !5
  %8708 = call ptr @__errno_location() #11
  store i32 %8707, ptr %8708, align 4, !tbaa !5
  %8709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8710 = load i32, ptr @test_count, align 4, !tbaa !5
  %8711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8712 = load i32, ptr %8711, align 4, !tbaa !5
  %8713 = call ptr @s2n_strerror(i32 noundef %8712, ptr noundef @.str.4)
  %8714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8715 = load i32, ptr %8714, align 4, !tbaa !5
  %8716 = call ptr @s2n_strerror_debug(i32 noundef %8715, ptr noundef @.str.4)
  %8717 = call ptr @__errno_location() #11
  %8718 = load i32, ptr %8717, align 4, !tbaa !5
  %8719 = call ptr @strerror(i32 noundef %8718) #10
  %8720 = call ptr @__errno_location() #11
  %8721 = load i32, ptr %8720, align 4, !tbaa !5
  %8722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8709, ptr noundef @.str.2, i32 noundef %8710, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 427, ptr noundef %8713, ptr noundef %8716, ptr noundef %8719, i32 noundef %8721) #10
  br label %8740

8723:                                             ; preds = %8701, %8694
  %8724 = load i32, ptr %213, align 4, !tbaa !5
  %8725 = call ptr @__errno_location() #11
  store i32 %8724, ptr %8725, align 4, !tbaa !5
  %8726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8727 = load i32, ptr @test_count, align 4, !tbaa !5
  %8728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8729 = load i32, ptr %8728, align 4, !tbaa !5
  %8730 = call ptr @s2n_strerror(i32 noundef %8729, ptr noundef @.str.4)
  %8731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8732 = load i32, ptr %8731, align 4, !tbaa !5
  %8733 = call ptr @s2n_strerror_debug(i32 noundef %8732, ptr noundef @.str.4)
  %8734 = call ptr @__errno_location() #11
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = call ptr @strerror(i32 noundef %8735) #10
  %8737 = call ptr @__errno_location() #11
  %8738 = load i32, ptr %8737, align 4, !tbaa !5
  %8739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8726, ptr noundef @.str.5, i32 noundef %8727, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 427, ptr noundef %8730, ptr noundef %8733, ptr noundef %8736, i32 noundef %8738) #10
  br label %8740

8740:                                             ; preds = %8723, %8706
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #10
  br label %8741

8741:                                             ; preds = %8740
  br label %8742

8742:                                             ; preds = %8741
  call void @exit(i32 noundef 1) #12
  unreachable

8743:                                             ; No predecessors!
  br label %8744

8744:                                             ; preds = %8743
  br label %8745

8745:                                             ; preds = %8744, %8686
  br label %8746

8746:                                             ; preds = %8745
  br label %8747

8747:                                             ; preds = %8746
  br label %8748

8748:                                             ; preds = %8747
  %8749 = load i32, ptr @test_count, align 4, !tbaa !5
  %8750 = add nsw i32 %8749, 1
  store i32 %8750, ptr @test_count, align 4, !tbaa !5
  %8751 = load ptr, ptr %196, align 8, !tbaa !9
  %8752 = call i32 @s2n_connection_set_io_pair(ptr noundef %8751, ptr noundef %211)
  %8753 = icmp eq i32 %8752, -1
  br i1 %8753, label %8754, label %8807

8754:                                             ; preds = %8748
  br label %8755

8755:                                             ; preds = %8754
  br label %8756

8756:                                             ; preds = %8755
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #10
  %8757 = call ptr @__errno_location() #11
  %8758 = load i32, ptr %8757, align 4, !tbaa !5
  store i32 %8758, ptr %214, align 4, !tbaa !5
  %8759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8760 = call i32 @s2n_print_stacktrace(ptr noundef %8759)
  %8761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8762 = trunc i8 %8761 to i1
  br i1 %8762, label %8763, label %8785

8763:                                             ; preds = %8756
  %8764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8765 = call i32 @fileno(ptr noundef %8764) #10
  %8766 = call i32 @isatty(i32 noundef %8765) #10
  %8767 = icmp ne i32 %8766, 0
  br i1 %8767, label %8768, label %8785

8768:                                             ; preds = %8763
  %8769 = load i32, ptr %214, align 4, !tbaa !5
  %8770 = call ptr @__errno_location() #11
  store i32 %8769, ptr %8770, align 4, !tbaa !5
  %8771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8772 = load i32, ptr @test_count, align 4, !tbaa !5
  %8773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8774 = load i32, ptr %8773, align 4, !tbaa !5
  %8775 = call ptr @s2n_strerror(i32 noundef %8774, ptr noundef @.str.4)
  %8776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8777 = load i32, ptr %8776, align 4, !tbaa !5
  %8778 = call ptr @s2n_strerror_debug(i32 noundef %8777, ptr noundef @.str.4)
  %8779 = call ptr @__errno_location() #11
  %8780 = load i32, ptr %8779, align 4, !tbaa !5
  %8781 = call ptr @strerror(i32 noundef %8780) #10
  %8782 = call ptr @__errno_location() #11
  %8783 = load i32, ptr %8782, align 4, !tbaa !5
  %8784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8771, ptr noundef @.str.2, i32 noundef %8772, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 428, ptr noundef %8775, ptr noundef %8778, ptr noundef %8781, i32 noundef %8783) #10
  br label %8802

8785:                                             ; preds = %8763, %8756
  %8786 = load i32, ptr %214, align 4, !tbaa !5
  %8787 = call ptr @__errno_location() #11
  store i32 %8786, ptr %8787, align 4, !tbaa !5
  %8788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8789 = load i32, ptr @test_count, align 4, !tbaa !5
  %8790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  %8792 = call ptr @s2n_strerror(i32 noundef %8791, ptr noundef @.str.4)
  %8793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8794 = load i32, ptr %8793, align 4, !tbaa !5
  %8795 = call ptr @s2n_strerror_debug(i32 noundef %8794, ptr noundef @.str.4)
  %8796 = call ptr @__errno_location() #11
  %8797 = load i32, ptr %8796, align 4, !tbaa !5
  %8798 = call ptr @strerror(i32 noundef %8797) #10
  %8799 = call ptr @__errno_location() #11
  %8800 = load i32, ptr %8799, align 4, !tbaa !5
  %8801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8788, ptr noundef @.str.5, i32 noundef %8789, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 428, ptr noundef %8792, ptr noundef %8795, ptr noundef %8798, i32 noundef %8800) #10
  br label %8802

8802:                                             ; preds = %8785, %8768
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #10
  br label %8803

8803:                                             ; preds = %8802
  br label %8804

8804:                                             ; preds = %8803
  call void @exit(i32 noundef 1) #12
  unreachable

8805:                                             ; No predecessors!
  br label %8806

8806:                                             ; preds = %8805
  br label %8807

8807:                                             ; preds = %8806, %8748
  br label %8808

8808:                                             ; preds = %8807
  br label %8809

8809:                                             ; preds = %8808
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #10
  %8810 = load i32, ptr %183, align 4, !tbaa !5
  %8811 = sext i32 %8810 to i64
  %8812 = getelementptr inbounds [4 x %struct.anon], ptr %47, i64 0, i64 %8811
  %8813 = getelementptr inbounds %struct.anon, ptr %8812, i32 0, i32 1
  %8814 = load i32, ptr %8813, align 8, !tbaa !24
  store i32 %8814, ptr %215, align 4, !tbaa !5
  %8815 = load i32, ptr %215, align 4, !tbaa !5
  %8816 = icmp eq i32 %8815, 0
  br i1 %8816, label %8817, label %8881

8817:                                             ; preds = %8809
  br label %8818

8818:                                             ; preds = %8817
  %8819 = load i32, ptr @test_count, align 4, !tbaa !5
  %8820 = add nsw i32 %8819, 1
  store i32 %8820, ptr @test_count, align 4, !tbaa !5
  %8821 = load ptr, ptr %196, align 8, !tbaa !9
  %8822 = load ptr, ptr %206, align 8, !tbaa !9
  %8823 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %8821, ptr noundef %8822)
  %8824 = icmp eq i32 %8823, -1
  br i1 %8824, label %8825, label %8878

8825:                                             ; preds = %8818
  br label %8826

8826:                                             ; preds = %8825
  br label %8827

8827:                                             ; preds = %8826
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #10
  %8828 = call ptr @__errno_location() #11
  %8829 = load i32, ptr %8828, align 4, !tbaa !5
  store i32 %8829, ptr %216, align 4, !tbaa !5
  %8830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8831 = call i32 @s2n_print_stacktrace(ptr noundef %8830)
  %8832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8833 = trunc i8 %8832 to i1
  br i1 %8833, label %8834, label %8856

8834:                                             ; preds = %8827
  %8835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8836 = call i32 @fileno(ptr noundef %8835) #10
  %8837 = call i32 @isatty(i32 noundef %8836) #10
  %8838 = icmp ne i32 %8837, 0
  br i1 %8838, label %8839, label %8856

8839:                                             ; preds = %8834
  %8840 = load i32, ptr %216, align 4, !tbaa !5
  %8841 = call ptr @__errno_location() #11
  store i32 %8840, ptr %8841, align 4, !tbaa !5
  %8842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8843 = load i32, ptr @test_count, align 4, !tbaa !5
  %8844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8845 = load i32, ptr %8844, align 4, !tbaa !5
  %8846 = call ptr @s2n_strerror(i32 noundef %8845, ptr noundef @.str.4)
  %8847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8848 = load i32, ptr %8847, align 4, !tbaa !5
  %8849 = call ptr @s2n_strerror_debug(i32 noundef %8848, ptr noundef @.str.4)
  %8850 = call ptr @__errno_location() #11
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  %8852 = call ptr @strerror(i32 noundef %8851) #10
  %8853 = call ptr @__errno_location() #11
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8842, ptr noundef @.str.2, i32 noundef %8843, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 432, ptr noundef %8846, ptr noundef %8849, ptr noundef %8852, i32 noundef %8854) #10
  br label %8873

8856:                                             ; preds = %8834, %8827
  %8857 = load i32, ptr %216, align 4, !tbaa !5
  %8858 = call ptr @__errno_location() #11
  store i32 %8857, ptr %8858, align 4, !tbaa !5
  %8859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8860 = load i32, ptr @test_count, align 4, !tbaa !5
  %8861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8862 = load i32, ptr %8861, align 4, !tbaa !5
  %8863 = call ptr @s2n_strerror(i32 noundef %8862, ptr noundef @.str.4)
  %8864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8865 = load i32, ptr %8864, align 4, !tbaa !5
  %8866 = call ptr @s2n_strerror_debug(i32 noundef %8865, ptr noundef @.str.4)
  %8867 = call ptr @__errno_location() #11
  %8868 = load i32, ptr %8867, align 4, !tbaa !5
  %8869 = call ptr @strerror(i32 noundef %8868) #10
  %8870 = call ptr @__errno_location() #11
  %8871 = load i32, ptr %8870, align 4, !tbaa !5
  %8872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8859, ptr noundef @.str.5, i32 noundef %8860, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 432, ptr noundef %8863, ptr noundef %8866, ptr noundef %8869, i32 noundef %8871) #10
  br label %8873

8873:                                             ; preds = %8856, %8839
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #10
  br label %8874

8874:                                             ; preds = %8873
  br label %8875

8875:                                             ; preds = %8874
  call void @exit(i32 noundef 1) #12
  unreachable

8876:                                             ; No predecessors!
  br label %8877

8877:                                             ; preds = %8876
  br label %8878

8878:                                             ; preds = %8877, %8818
  br label %8879

8879:                                             ; preds = %8878
  br label %8880

8880:                                             ; preds = %8879
  br label %9082

8881:                                             ; preds = %8809
  br label %8882

8882:                                             ; preds = %8881
  br label %8883

8883:                                             ; preds = %8882
  br label %8884

8884:                                             ; preds = %8883
  %8885 = load i32, ptr @test_count, align 4, !tbaa !5
  %8886 = add nsw i32 %8885, 1
  store i32 %8886, ptr @test_count, align 4, !tbaa !5
  %8887 = load ptr, ptr %196, align 8, !tbaa !9
  %8888 = load ptr, ptr %206, align 8, !tbaa !9
  %8889 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %8887, ptr noundef %8888)
  %8890 = icmp eq i32 %8889, -1
  br i1 %8890, label %8944, label %8891

8891:                                             ; preds = %8884
  br label %8892

8892:                                             ; preds = %8891
  br label %8893

8893:                                             ; preds = %8892
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #10
  %8894 = call ptr @__errno_location() #11
  %8895 = load i32, ptr %8894, align 4, !tbaa !5
  store i32 %8895, ptr %217, align 4, !tbaa !5
  %8896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8897 = call i32 @s2n_print_stacktrace(ptr noundef %8896)
  %8898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8899 = trunc i8 %8898 to i1
  br i1 %8899, label %8900, label %8922

8900:                                             ; preds = %8893
  %8901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8902 = call i32 @fileno(ptr noundef %8901) #10
  %8903 = call i32 @isatty(i32 noundef %8902) #10
  %8904 = icmp ne i32 %8903, 0
  br i1 %8904, label %8905, label %8922

8905:                                             ; preds = %8900
  %8906 = load i32, ptr %217, align 4, !tbaa !5
  %8907 = call ptr @__errno_location() #11
  store i32 %8906, ptr %8907, align 4, !tbaa !5
  %8908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8909 = load i32, ptr @test_count, align 4, !tbaa !5
  %8910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8911 = load i32, ptr %8910, align 4, !tbaa !5
  %8912 = call ptr @s2n_strerror(i32 noundef %8911, ptr noundef @.str.4)
  %8913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8914 = load i32, ptr %8913, align 4, !tbaa !5
  %8915 = call ptr @s2n_strerror_debug(i32 noundef %8914, ptr noundef @.str.4)
  %8916 = call ptr @__errno_location() #11
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  %8918 = call ptr @strerror(i32 noundef %8917) #10
  %8919 = call ptr @__errno_location() #11
  %8920 = load i32, ptr %8919, align 4, !tbaa !5
  %8921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8908, ptr noundef @.str.2, i32 noundef %8909, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 435, ptr noundef %8912, ptr noundef %8915, ptr noundef %8918, i32 noundef %8920) #10
  br label %8939

8922:                                             ; preds = %8900, %8893
  %8923 = load i32, ptr %217, align 4, !tbaa !5
  %8924 = call ptr @__errno_location() #11
  store i32 %8923, ptr %8924, align 4, !tbaa !5
  %8925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8926 = load i32, ptr @test_count, align 4, !tbaa !5
  %8927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8928 = load i32, ptr %8927, align 4, !tbaa !5
  %8929 = call ptr @s2n_strerror(i32 noundef %8928, ptr noundef @.str.4)
  %8930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8931 = load i32, ptr %8930, align 4, !tbaa !5
  %8932 = call ptr @s2n_strerror_debug(i32 noundef %8931, ptr noundef @.str.4)
  %8933 = call ptr @__errno_location() #11
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  %8935 = call ptr @strerror(i32 noundef %8934) #10
  %8936 = call ptr @__errno_location() #11
  %8937 = load i32, ptr %8936, align 4, !tbaa !5
  %8938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8925, ptr noundef @.str.5, i32 noundef %8926, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 435, ptr noundef %8929, ptr noundef %8932, ptr noundef %8935, i32 noundef %8937) #10
  br label %8939

8939:                                             ; preds = %8922, %8905
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #10
  br label %8940

8940:                                             ; preds = %8939
  br label %8941

8941:                                             ; preds = %8940
  call void @exit(i32 noundef 1) #12
  unreachable

8942:                                             ; No predecessors!
  br label %8943

8943:                                             ; preds = %8942
  br label %8944

8944:                                             ; preds = %8943, %8884
  br label %8945

8945:                                             ; preds = %8944
  br label %8946

8946:                                             ; preds = %8945
  br label %8947

8947:                                             ; preds = %8946
  %8948 = load i32, ptr @test_count, align 4, !tbaa !5
  %8949 = add nsw i32 %8948, 1
  store i32 %8949, ptr @test_count, align 4, !tbaa !5
  %8950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8951 = load i32, ptr %8950, align 4, !tbaa !5
  %8952 = load i32, ptr %215, align 4, !tbaa !5
  %8953 = icmp eq i32 %8951, %8952
  br i1 %8953, label %9007, label %8954

8954:                                             ; preds = %8947
  br label %8955

8955:                                             ; preds = %8954
  br label %8956

8956:                                             ; preds = %8955
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #10
  %8957 = call ptr @__errno_location() #11
  %8958 = load i32, ptr %8957, align 4, !tbaa !5
  store i32 %8958, ptr %218, align 4, !tbaa !5
  %8959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8960 = call i32 @s2n_print_stacktrace(ptr noundef %8959)
  %8961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8962 = trunc i8 %8961 to i1
  br i1 %8962, label %8963, label %8985

8963:                                             ; preds = %8956
  %8964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8965 = call i32 @fileno(ptr noundef %8964) #10
  %8966 = call i32 @isatty(i32 noundef %8965) #10
  %8967 = icmp ne i32 %8966, 0
  br i1 %8967, label %8968, label %8985

8968:                                             ; preds = %8963
  %8969 = load i32, ptr %218, align 4, !tbaa !5
  %8970 = call ptr @__errno_location() #11
  store i32 %8969, ptr %8970, align 4, !tbaa !5
  %8971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8972 = load i32, ptr @test_count, align 4, !tbaa !5
  %8973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8974 = load i32, ptr %8973, align 4, !tbaa !5
  %8975 = call ptr @s2n_strerror(i32 noundef %8974, ptr noundef @.str.4)
  %8976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8977 = load i32, ptr %8976, align 4, !tbaa !5
  %8978 = call ptr @s2n_strerror_debug(i32 noundef %8977, ptr noundef @.str.4)
  %8979 = call ptr @__errno_location() #11
  %8980 = load i32, ptr %8979, align 4, !tbaa !5
  %8981 = call ptr @strerror(i32 noundef %8980) #10
  %8982 = call ptr @__errno_location() #11
  %8983 = load i32, ptr %8982, align 4, !tbaa !5
  %8984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8971, ptr noundef @.str.2, i32 noundef %8972, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 435, ptr noundef %8975, ptr noundef %8978, ptr noundef %8981, i32 noundef %8983) #10
  br label %9002

8985:                                             ; preds = %8963, %8956
  %8986 = load i32, ptr %218, align 4, !tbaa !5
  %8987 = call ptr @__errno_location() #11
  store i32 %8986, ptr %8987, align 4, !tbaa !5
  %8988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8989 = load i32, ptr @test_count, align 4, !tbaa !5
  %8990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8991 = load i32, ptr %8990, align 4, !tbaa !5
  %8992 = call ptr @s2n_strerror(i32 noundef %8991, ptr noundef @.str.4)
  %8993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8994 = load i32, ptr %8993, align 4, !tbaa !5
  %8995 = call ptr @s2n_strerror_debug(i32 noundef %8994, ptr noundef @.str.4)
  %8996 = call ptr @__errno_location() #11
  %8997 = load i32, ptr %8996, align 4, !tbaa !5
  %8998 = call ptr @strerror(i32 noundef %8997) #10
  %8999 = call ptr @__errno_location() #11
  %9000 = load i32, ptr %8999, align 4, !tbaa !5
  %9001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8988, ptr noundef @.str.5, i32 noundef %8989, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 435, ptr noundef %8992, ptr noundef %8995, ptr noundef %8998, i32 noundef %9000) #10
  br label %9002

9002:                                             ; preds = %8985, %8968
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #10
  br label %9003

9003:                                             ; preds = %9002
  br label %9004

9004:                                             ; preds = %9003
  call void @exit(i32 noundef 1) #12
  unreachable

9005:                                             ; No predecessors!
  br label %9006

9006:                                             ; preds = %9005
  br label %9007

9007:                                             ; preds = %9006, %8947
  br label %9008

9008:                                             ; preds = %9007
  br label %9009

9009:                                             ; preds = %9008
  br label %9010

9010:                                             ; preds = %9009
  %9011 = load i32, ptr @test_count, align 4, !tbaa !5
  %9012 = add nsw i32 %9011, 1
  store i32 %9012, ptr @test_count, align 4, !tbaa !5
  %9013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9014 = load i32, ptr %9013, align 4, !tbaa !5
  %9015 = call ptr @s2n_strerror_debug(i32 noundef %9014, ptr noundef @.str.4)
  %9016 = icmp eq ptr %9015, null
  br i1 %9016, label %9017, label %9070

9017:                                             ; preds = %9010
  br label %9018

9018:                                             ; preds = %9017
  br label %9019

9019:                                             ; preds = %9018
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #10
  %9020 = call ptr @__errno_location() #11
  %9021 = load i32, ptr %9020, align 4, !tbaa !5
  store i32 %9021, ptr %219, align 4, !tbaa !5
  %9022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9023 = call i32 @s2n_print_stacktrace(ptr noundef %9022)
  %9024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9025 = trunc i8 %9024 to i1
  br i1 %9025, label %9026, label %9048

9026:                                             ; preds = %9019
  %9027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9028 = call i32 @fileno(ptr noundef %9027) #10
  %9029 = call i32 @isatty(i32 noundef %9028) #10
  %9030 = icmp ne i32 %9029, 0
  br i1 %9030, label %9031, label %9048

9031:                                             ; preds = %9026
  %9032 = load i32, ptr %219, align 4, !tbaa !5
  %9033 = call ptr @__errno_location() #11
  store i32 %9032, ptr %9033, align 4, !tbaa !5
  %9034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9035 = load i32, ptr @test_count, align 4, !tbaa !5
  %9036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9037 = load i32, ptr %9036, align 4, !tbaa !5
  %9038 = call ptr @s2n_strerror(i32 noundef %9037, ptr noundef @.str.4)
  %9039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9040 = load i32, ptr %9039, align 4, !tbaa !5
  %9041 = call ptr @s2n_strerror_debug(i32 noundef %9040, ptr noundef @.str.4)
  %9042 = call ptr @__errno_location() #11
  %9043 = load i32, ptr %9042, align 4, !tbaa !5
  %9044 = call ptr @strerror(i32 noundef %9043) #10
  %9045 = call ptr @__errno_location() #11
  %9046 = load i32, ptr %9045, align 4, !tbaa !5
  %9047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9034, ptr noundef @.str.2, i32 noundef %9035, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 435, ptr noundef %9038, ptr noundef %9041, ptr noundef %9044, i32 noundef %9046) #10
  br label %9065

9048:                                             ; preds = %9026, %9019
  %9049 = load i32, ptr %219, align 4, !tbaa !5
  %9050 = call ptr @__errno_location() #11
  store i32 %9049, ptr %9050, align 4, !tbaa !5
  %9051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9052 = load i32, ptr @test_count, align 4, !tbaa !5
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror(i32 noundef %9054, ptr noundef @.str.4)
  %9056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @s2n_strerror_debug(i32 noundef %9057, ptr noundef @.str.4)
  %9059 = call ptr @__errno_location() #11
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call ptr @strerror(i32 noundef %9060) #10
  %9062 = call ptr @__errno_location() #11
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9051, ptr noundef @.str.5, i32 noundef %9052, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 435, ptr noundef %9055, ptr noundef %9058, ptr noundef %9061, i32 noundef %9063) #10
  br label %9065

9065:                                             ; preds = %9048, %9031
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #10
  br label %9066

9066:                                             ; preds = %9065
  br label %9067

9067:                                             ; preds = %9066
  call void @exit(i32 noundef 1) #12
  unreachable

9068:                                             ; No predecessors!
  br label %9069

9069:                                             ; preds = %9068
  br label %9070

9070:                                             ; preds = %9069, %9010
  br label %9071

9071:                                             ; preds = %9070
  br label %9072

9072:                                             ; preds = %9071
  br label %9073

9073:                                             ; preds = %9072
  br label %9074

9074:                                             ; preds = %9073
  br label %9075

9075:                                             ; preds = %9074
  %9076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9076, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9077 = call ptr @__errno_location() #11
  store i32 0, ptr %9077, align 4, !tbaa !5
  br label %9078

9078:                                             ; preds = %9075
  br label %9079

9079:                                             ; preds = %9078
  br label %9080

9080:                                             ; preds = %9079
  br label %9081

9081:                                             ; preds = %9080
  br label %9082

9082:                                             ; preds = %9081, %8880
  br label %9083

9083:                                             ; preds = %9082
  %9084 = load i32, ptr @test_count, align 4, !tbaa !5
  %9085 = add nsw i32 %9084, 1
  store i32 %9085, ptr @test_count, align 4, !tbaa !5
  %9086 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %204, i32 0, i32 1
  %9087 = load i32, ptr %9086, align 4, !tbaa !27
  %9088 = icmp eq i32 %9087, 1
  br i1 %9088, label %9142, label %9089

9089:                                             ; preds = %9083
  br label %9090

9090:                                             ; preds = %9089
  br label %9091

9091:                                             ; preds = %9090
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #10
  %9092 = call ptr @__errno_location() #11
  %9093 = load i32, ptr %9092, align 4, !tbaa !5
  store i32 %9093, ptr %220, align 4, !tbaa !5
  %9094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9095 = call i32 @s2n_print_stacktrace(ptr noundef %9094)
  %9096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9097 = trunc i8 %9096 to i1
  br i1 %9097, label %9098, label %9120

9098:                                             ; preds = %9091
  %9099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9100 = call i32 @fileno(ptr noundef %9099) #10
  %9101 = call i32 @isatty(i32 noundef %9100) #10
  %9102 = icmp ne i32 %9101, 0
  br i1 %9102, label %9103, label %9120

9103:                                             ; preds = %9098
  %9104 = load i32, ptr %220, align 4, !tbaa !5
  %9105 = call ptr @__errno_location() #11
  store i32 %9104, ptr %9105, align 4, !tbaa !5
  %9106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9107 = load i32, ptr @test_count, align 4, !tbaa !5
  %9108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9109 = load i32, ptr %9108, align 4, !tbaa !5
  %9110 = call ptr @s2n_strerror(i32 noundef %9109, ptr noundef @.str.4)
  %9111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9112 = load i32, ptr %9111, align 4, !tbaa !5
  %9113 = call ptr @s2n_strerror_debug(i32 noundef %9112, ptr noundef @.str.4)
  %9114 = call ptr @__errno_location() #11
  %9115 = load i32, ptr %9114, align 4, !tbaa !5
  %9116 = call ptr @strerror(i32 noundef %9115) #10
  %9117 = call ptr @__errno_location() #11
  %9118 = load i32, ptr %9117, align 4, !tbaa !5
  %9119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9106, ptr noundef @.str.2, i32 noundef %9107, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 438, ptr noundef %9110, ptr noundef %9113, ptr noundef %9116, i32 noundef %9118) #10
  br label %9137

9120:                                             ; preds = %9098, %9091
  %9121 = load i32, ptr %220, align 4, !tbaa !5
  %9122 = call ptr @__errno_location() #11
  store i32 %9121, ptr %9122, align 4, !tbaa !5
  %9123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9124 = load i32, ptr @test_count, align 4, !tbaa !5
  %9125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9126 = load i32, ptr %9125, align 4, !tbaa !5
  %9127 = call ptr @s2n_strerror(i32 noundef %9126, ptr noundef @.str.4)
  %9128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9129 = load i32, ptr %9128, align 4, !tbaa !5
  %9130 = call ptr @s2n_strerror_debug(i32 noundef %9129, ptr noundef @.str.4)
  %9131 = call ptr @__errno_location() #11
  %9132 = load i32, ptr %9131, align 4, !tbaa !5
  %9133 = call ptr @strerror(i32 noundef %9132) #10
  %9134 = call ptr @__errno_location() #11
  %9135 = load i32, ptr %9134, align 4, !tbaa !5
  %9136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9123, ptr noundef @.str.5, i32 noundef %9124, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 438, ptr noundef %9127, ptr noundef %9130, ptr noundef %9133, i32 noundef %9135) #10
  br label %9137

9137:                                             ; preds = %9120, %9103
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #10
  br label %9138

9138:                                             ; preds = %9137
  br label %9139

9139:                                             ; preds = %9138
  call void @exit(i32 noundef 1) #12
  unreachable

9140:                                             ; No predecessors!
  br label %9141

9141:                                             ; preds = %9140
  br label %9142

9142:                                             ; preds = %9141, %9083
  br label %9143

9143:                                             ; preds = %9142
  br label %9144

9144:                                             ; preds = %9143
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #10
  %9145 = call i32 @s2n_io_pair_close(ptr noundef %211)
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #10
  %9146 = call i32 @s2n_connection_ptr_free(ptr noundef %206)
  %9147 = getelementptr inbounds %struct.s2n_result, ptr %221, i32 0, i32 0
  store i32 %9146, ptr %9147, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %204) #10
  %9148 = call i32 @s2n_config_ptr_free(ptr noundef %199)
  %9149 = getelementptr inbounds %struct.s2n_result, ptr %222, i32 0, i32 0
  store i32 %9148, ptr %9149, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #10
  %9150 = call i32 @s2n_connection_ptr_free(ptr noundef %196)
  %9151 = getelementptr inbounds %struct.s2n_result, ptr %223, i32 0, i32 0
  store i32 %9150, ptr %9151, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #10
  %9152 = call i32 @s2n_config_ptr_free(ptr noundef %192)
  %9153 = getelementptr inbounds %struct.s2n_result, ptr %224, i32 0, i32 0
  store i32 %9152, ptr %9153, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #10
  %9154 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %189)
  %9155 = getelementptr inbounds %struct.s2n_result, ptr %225, i32 0, i32 0
  store i32 %9154, ptr %9155, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #10
  call void @llvm.lifetime.end.p0(i64 12000, ptr %185) #10
  br label %9156

9156:                                             ; preds = %9144
  %9157 = load i32, ptr %183, align 4, !tbaa !5
  %9158 = add nsw i32 %9157, 1
  store i32 %9158, ptr %183, align 4, !tbaa !5
  br label %7490, !llvm.loop !32

9159:                                             ; preds = %7500, %7494
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %9160

9160:                                             ; preds = %9159
  call void @llvm.lifetime.start.p0(i64 32, ptr %226) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %226, ptr align 16 @__const.main.async_test_cases, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %227) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %227, ptr align 16 @__const.main.versions, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #10
  store i32 0, ptr %228, align 4, !tbaa !5
  br label %9161

9161:                                             ; preds = %11103, %9160
  %9162 = load i32, ptr %228, align 4, !tbaa !5
  %9163 = sext i32 %9162 to i64
  %9164 = icmp ult i64 %9163, 2
  br i1 %9164, label %9166, label %9165

9165:                                             ; preds = %9161
  store i32 915, ptr %184, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #10
  br label %11106

9166:                                             ; preds = %9161
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #10
  store i32 0, ptr %229, align 4, !tbaa !5
  br label %9167

9167:                                             ; preds = %11099, %9166
  %9168 = load i32, ptr %229, align 4, !tbaa !5
  %9169 = sext i32 %9168 to i64
  %9170 = icmp ult i64 %9169, 2
  br i1 %9170, label %9172, label %9171

9171:                                             ; preds = %9167
  store i32 918, ptr %184, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #10
  br label %11102

9172:                                             ; preds = %9167
  call void @llvm.lifetime.start.p0(i64 8, ptr %230) #10
  %9173 = call ptr @s2n_config_new()
  store ptr %9173, ptr %230, align 8, !tbaa !9
  br label %9174

9174:                                             ; preds = %9172
  %9175 = load i32, ptr @test_count, align 4, !tbaa !5
  %9176 = add nsw i32 %9175, 1
  store i32 %9176, ptr @test_count, align 4, !tbaa !5
  %9177 = load ptr, ptr %230, align 8, !tbaa !9
  %9178 = icmp eq ptr %9177, null
  br i1 %9178, label %9179, label %9232

9179:                                             ; preds = %9174
  br label %9180

9180:                                             ; preds = %9179
  br label %9181

9181:                                             ; preds = %9180
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #10
  %9182 = call ptr @__errno_location() #11
  %9183 = load i32, ptr %9182, align 4, !tbaa !5
  store i32 %9183, ptr %231, align 4, !tbaa !5
  %9184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9185 = call i32 @s2n_print_stacktrace(ptr noundef %9184)
  %9186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9187 = trunc i8 %9186 to i1
  br i1 %9187, label %9188, label %9210

9188:                                             ; preds = %9181
  %9189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9190 = call i32 @fileno(ptr noundef %9189) #10
  %9191 = call i32 @isatty(i32 noundef %9190) #10
  %9192 = icmp ne i32 %9191, 0
  br i1 %9192, label %9193, label %9210

9193:                                             ; preds = %9188
  %9194 = load i32, ptr %231, align 4, !tbaa !5
  %9195 = call ptr @__errno_location() #11
  store i32 %9194, ptr %9195, align 4, !tbaa !5
  %9196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9197 = load i32, ptr @test_count, align 4, !tbaa !5
  %9198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9199 = load i32, ptr %9198, align 4, !tbaa !5
  %9200 = call ptr @s2n_strerror(i32 noundef %9199, ptr noundef @.str.4)
  %9201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9202 = load i32, ptr %9201, align 4, !tbaa !5
  %9203 = call ptr @s2n_strerror_debug(i32 noundef %9202, ptr noundef @.str.4)
  %9204 = call ptr @__errno_location() #11
  %9205 = load i32, ptr %9204, align 4, !tbaa !5
  %9206 = call ptr @strerror(i32 noundef %9205) #10
  %9207 = call ptr @__errno_location() #11
  %9208 = load i32, ptr %9207, align 4, !tbaa !5
  %9209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9196, ptr noundef @.str.2, i32 noundef %9197, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 454, ptr noundef %9200, ptr noundef %9203, ptr noundef %9206, i32 noundef %9208) #10
  br label %9227

9210:                                             ; preds = %9188, %9181
  %9211 = load i32, ptr %231, align 4, !tbaa !5
  %9212 = call ptr @__errno_location() #11
  store i32 %9211, ptr %9212, align 4, !tbaa !5
  %9213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9214 = load i32, ptr @test_count, align 4, !tbaa !5
  %9215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9216 = load i32, ptr %9215, align 4, !tbaa !5
  %9217 = call ptr @s2n_strerror(i32 noundef %9216, ptr noundef @.str.4)
  %9218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9219 = load i32, ptr %9218, align 4, !tbaa !5
  %9220 = call ptr @s2n_strerror_debug(i32 noundef %9219, ptr noundef @.str.4)
  %9221 = call ptr @__errno_location() #11
  %9222 = load i32, ptr %9221, align 4, !tbaa !5
  %9223 = call ptr @strerror(i32 noundef %9222) #10
  %9224 = call ptr @__errno_location() #11
  %9225 = load i32, ptr %9224, align 4, !tbaa !5
  %9226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9213, ptr noundef @.str.5, i32 noundef %9214, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 454, ptr noundef %9217, ptr noundef %9220, ptr noundef %9223, i32 noundef %9225) #10
  br label %9227

9227:                                             ; preds = %9210, %9193
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #10
  br label %9228

9228:                                             ; preds = %9227
  br label %9229

9229:                                             ; preds = %9228
  call void @exit(i32 noundef 1) #12
  unreachable

9230:                                             ; No predecessors!
  br label %9231

9231:                                             ; preds = %9230
  br label %9232

9232:                                             ; preds = %9231, %9174
  br label %9233

9233:                                             ; preds = %9232
  br label %9234

9234:                                             ; preds = %9233
  br label %9235

9235:                                             ; preds = %9234
  %9236 = load i32, ptr @test_count, align 4, !tbaa !5
  %9237 = add nsw i32 %9236, 1
  store i32 %9237, ptr @test_count, align 4, !tbaa !5
  %9238 = load ptr, ptr %230, align 8, !tbaa !9
  %9239 = load ptr, ptr %45, align 8, !tbaa !9
  %9240 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9238, ptr noundef %9239)
  %9241 = icmp eq i32 %9240, -1
  br i1 %9241, label %9242, label %9295

9242:                                             ; preds = %9235
  br label %9243

9243:                                             ; preds = %9242
  br label %9244

9244:                                             ; preds = %9243
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #10
  %9245 = call ptr @__errno_location() #11
  %9246 = load i32, ptr %9245, align 4, !tbaa !5
  store i32 %9246, ptr %232, align 4, !tbaa !5
  %9247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9248 = call i32 @s2n_print_stacktrace(ptr noundef %9247)
  %9249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9250 = trunc i8 %9249 to i1
  br i1 %9250, label %9251, label %9273

9251:                                             ; preds = %9244
  %9252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9253 = call i32 @fileno(ptr noundef %9252) #10
  %9254 = call i32 @isatty(i32 noundef %9253) #10
  %9255 = icmp ne i32 %9254, 0
  br i1 %9255, label %9256, label %9273

9256:                                             ; preds = %9251
  %9257 = load i32, ptr %232, align 4, !tbaa !5
  %9258 = call ptr @__errno_location() #11
  store i32 %9257, ptr %9258, align 4, !tbaa !5
  %9259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9260 = load i32, ptr @test_count, align 4, !tbaa !5
  %9261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9262 = load i32, ptr %9261, align 4, !tbaa !5
  %9263 = call ptr @s2n_strerror(i32 noundef %9262, ptr noundef @.str.4)
  %9264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9265 = load i32, ptr %9264, align 4, !tbaa !5
  %9266 = call ptr @s2n_strerror_debug(i32 noundef %9265, ptr noundef @.str.4)
  %9267 = call ptr @__errno_location() #11
  %9268 = load i32, ptr %9267, align 4, !tbaa !5
  %9269 = call ptr @strerror(i32 noundef %9268) #10
  %9270 = call ptr @__errno_location() #11
  %9271 = load i32, ptr %9270, align 4, !tbaa !5
  %9272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9259, ptr noundef @.str.2, i32 noundef %9260, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 455, ptr noundef %9263, ptr noundef %9266, ptr noundef %9269, i32 noundef %9271) #10
  br label %9290

9273:                                             ; preds = %9251, %9244
  %9274 = load i32, ptr %232, align 4, !tbaa !5
  %9275 = call ptr @__errno_location() #11
  store i32 %9274, ptr %9275, align 4, !tbaa !5
  %9276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9277 = load i32, ptr @test_count, align 4, !tbaa !5
  %9278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9279 = load i32, ptr %9278, align 4, !tbaa !5
  %9280 = call ptr @s2n_strerror(i32 noundef %9279, ptr noundef @.str.4)
  %9281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9282 = load i32, ptr %9281, align 4, !tbaa !5
  %9283 = call ptr @s2n_strerror_debug(i32 noundef %9282, ptr noundef @.str.4)
  %9284 = call ptr @__errno_location() #11
  %9285 = load i32, ptr %9284, align 4, !tbaa !5
  %9286 = call ptr @strerror(i32 noundef %9285) #10
  %9287 = call ptr @__errno_location() #11
  %9288 = load i32, ptr %9287, align 4, !tbaa !5
  %9289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9276, ptr noundef @.str.5, i32 noundef %9277, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 455, ptr noundef %9280, ptr noundef %9283, ptr noundef %9286, i32 noundef %9288) #10
  br label %9290

9290:                                             ; preds = %9273, %9256
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #10
  br label %9291

9291:                                             ; preds = %9290
  br label %9292

9292:                                             ; preds = %9291
  call void @exit(i32 noundef 1) #12
  unreachable

9293:                                             ; No predecessors!
  br label %9294

9294:                                             ; preds = %9293
  br label %9295

9295:                                             ; preds = %9294, %9235
  br label %9296

9296:                                             ; preds = %9295
  br label %9297

9297:                                             ; preds = %9296
  br label %9298

9298:                                             ; preds = %9297
  %9299 = load i32, ptr @test_count, align 4, !tbaa !5
  %9300 = add nsw i32 %9299, 1
  store i32 %9300, ptr @test_count, align 4, !tbaa !5
  %9301 = load ptr, ptr %230, align 8, !tbaa !9
  %9302 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %9301, ptr noundef @.str.23, ptr noundef null)
  %9303 = icmp eq i32 %9302, -1
  br i1 %9303, label %9304, label %9357

9304:                                             ; preds = %9298
  br label %9305

9305:                                             ; preds = %9304
  br label %9306

9306:                                             ; preds = %9305
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #10
  %9307 = call ptr @__errno_location() #11
  %9308 = load i32, ptr %9307, align 4, !tbaa !5
  store i32 %9308, ptr %233, align 4, !tbaa !5
  %9309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9310 = call i32 @s2n_print_stacktrace(ptr noundef %9309)
  %9311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9312 = trunc i8 %9311 to i1
  br i1 %9312, label %9313, label %9335

9313:                                             ; preds = %9306
  %9314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9315 = call i32 @fileno(ptr noundef %9314) #10
  %9316 = call i32 @isatty(i32 noundef %9315) #10
  %9317 = icmp ne i32 %9316, 0
  br i1 %9317, label %9318, label %9335

9318:                                             ; preds = %9313
  %9319 = load i32, ptr %233, align 4, !tbaa !5
  %9320 = call ptr @__errno_location() #11
  store i32 %9319, ptr %9320, align 4, !tbaa !5
  %9321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9322 = load i32, ptr @test_count, align 4, !tbaa !5
  %9323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9324 = load i32, ptr %9323, align 4, !tbaa !5
  %9325 = call ptr @s2n_strerror(i32 noundef %9324, ptr noundef @.str.4)
  %9326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9327 = load i32, ptr %9326, align 4, !tbaa !5
  %9328 = call ptr @s2n_strerror_debug(i32 noundef %9327, ptr noundef @.str.4)
  %9329 = call ptr @__errno_location() #11
  %9330 = load i32, ptr %9329, align 4, !tbaa !5
  %9331 = call ptr @strerror(i32 noundef %9330) #10
  %9332 = call ptr @__errno_location() #11
  %9333 = load i32, ptr %9332, align 4, !tbaa !5
  %9334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9321, ptr noundef @.str.2, i32 noundef %9322, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 456, ptr noundef %9325, ptr noundef %9328, ptr noundef %9331, i32 noundef %9333) #10
  br label %9352

9335:                                             ; preds = %9313, %9306
  %9336 = load i32, ptr %233, align 4, !tbaa !5
  %9337 = call ptr @__errno_location() #11
  store i32 %9336, ptr %9337, align 4, !tbaa !5
  %9338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9339 = load i32, ptr @test_count, align 4, !tbaa !5
  %9340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9341 = load i32, ptr %9340, align 4, !tbaa !5
  %9342 = call ptr @s2n_strerror(i32 noundef %9341, ptr noundef @.str.4)
  %9343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9344 = load i32, ptr %9343, align 4, !tbaa !5
  %9345 = call ptr @s2n_strerror_debug(i32 noundef %9344, ptr noundef @.str.4)
  %9346 = call ptr @__errno_location() #11
  %9347 = load i32, ptr %9346, align 4, !tbaa !5
  %9348 = call ptr @strerror(i32 noundef %9347) #10
  %9349 = call ptr @__errno_location() #11
  %9350 = load i32, ptr %9349, align 4, !tbaa !5
  %9351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9338, ptr noundef @.str.5, i32 noundef %9339, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 456, ptr noundef %9342, ptr noundef %9345, ptr noundef %9348, i32 noundef %9350) #10
  br label %9352

9352:                                             ; preds = %9335, %9318
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #10
  br label %9353

9353:                                             ; preds = %9352
  br label %9354

9354:                                             ; preds = %9353
  call void @exit(i32 noundef 1) #12
  unreachable

9355:                                             ; No predecessors!
  br label %9356

9356:                                             ; preds = %9355
  br label %9357

9357:                                             ; preds = %9356, %9298
  br label %9358

9358:                                             ; preds = %9357
  br label %9359

9359:                                             ; preds = %9358
  br label %9360

9360:                                             ; preds = %9359
  %9361 = load i32, ptr @test_count, align 4, !tbaa !5
  %9362 = add nsw i32 %9361, 1
  store i32 %9362, ptr @test_count, align 4, !tbaa !5
  %9363 = load ptr, ptr %230, align 8, !tbaa !9
  %9364 = load i32, ptr %229, align 4, !tbaa !5
  %9365 = sext i32 %9364 to i64
  %9366 = getelementptr inbounds [2 x ptr], ptr %227, i64 0, i64 %9365
  %9367 = load ptr, ptr %9366, align 8, !tbaa !9
  %9368 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %9363, ptr noundef %9367)
  %9369 = icmp eq i32 %9368, -1
  br i1 %9369, label %9370, label %9423

9370:                                             ; preds = %9360
  br label %9371

9371:                                             ; preds = %9370
  br label %9372

9372:                                             ; preds = %9371
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #10
  %9373 = call ptr @__errno_location() #11
  %9374 = load i32, ptr %9373, align 4, !tbaa !5
  store i32 %9374, ptr %234, align 4, !tbaa !5
  %9375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9376 = call i32 @s2n_print_stacktrace(ptr noundef %9375)
  %9377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9378 = trunc i8 %9377 to i1
  br i1 %9378, label %9379, label %9401

9379:                                             ; preds = %9372
  %9380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9381 = call i32 @fileno(ptr noundef %9380) #10
  %9382 = call i32 @isatty(i32 noundef %9381) #10
  %9383 = icmp ne i32 %9382, 0
  br i1 %9383, label %9384, label %9401

9384:                                             ; preds = %9379
  %9385 = load i32, ptr %234, align 4, !tbaa !5
  %9386 = call ptr @__errno_location() #11
  store i32 %9385, ptr %9386, align 4, !tbaa !5
  %9387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9388 = load i32, ptr @test_count, align 4, !tbaa !5
  %9389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9390 = load i32, ptr %9389, align 4, !tbaa !5
  %9391 = call ptr @s2n_strerror(i32 noundef %9390, ptr noundef @.str.4)
  %9392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9393 = load i32, ptr %9392, align 4, !tbaa !5
  %9394 = call ptr @s2n_strerror_debug(i32 noundef %9393, ptr noundef @.str.4)
  %9395 = call ptr @__errno_location() #11
  %9396 = load i32, ptr %9395, align 4, !tbaa !5
  %9397 = call ptr @strerror(i32 noundef %9396) #10
  %9398 = call ptr @__errno_location() #11
  %9399 = load i32, ptr %9398, align 4, !tbaa !5
  %9400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9387, ptr noundef @.str.2, i32 noundef %9388, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 457, ptr noundef %9391, ptr noundef %9394, ptr noundef %9397, i32 noundef %9399) #10
  br label %9418

9401:                                             ; preds = %9379, %9372
  %9402 = load i32, ptr %234, align 4, !tbaa !5
  %9403 = call ptr @__errno_location() #11
  store i32 %9402, ptr %9403, align 4, !tbaa !5
  %9404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9405 = load i32, ptr @test_count, align 4, !tbaa !5
  %9406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9407 = load i32, ptr %9406, align 4, !tbaa !5
  %9408 = call ptr @s2n_strerror(i32 noundef %9407, ptr noundef @.str.4)
  %9409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9410 = load i32, ptr %9409, align 4, !tbaa !5
  %9411 = call ptr @s2n_strerror_debug(i32 noundef %9410, ptr noundef @.str.4)
  %9412 = call ptr @__errno_location() #11
  %9413 = load i32, ptr %9412, align 4, !tbaa !5
  %9414 = call ptr @strerror(i32 noundef %9413) #10
  %9415 = call ptr @__errno_location() #11
  %9416 = load i32, ptr %9415, align 4, !tbaa !5
  %9417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9404, ptr noundef @.str.5, i32 noundef %9405, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 457, ptr noundef %9408, ptr noundef %9411, ptr noundef %9414, i32 noundef %9416) #10
  br label %9418

9418:                                             ; preds = %9401, %9384
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #10
  br label %9419

9419:                                             ; preds = %9418
  br label %9420

9420:                                             ; preds = %9419
  call void @exit(i32 noundef 1) #12
  unreachable

9421:                                             ; No predecessors!
  br label %9422

9422:                                             ; preds = %9421
  br label %9423

9423:                                             ; preds = %9422, %9360
  br label %9424

9424:                                             ; preds = %9423
  br label %9425

9425:                                             ; preds = %9424
  call void @llvm.lifetime.start.p0(i64 16, ptr %235) #10
  %9426 = load i32, ptr %228, align 4, !tbaa !5
  %9427 = sext i32 %9426 to i64
  %9428 = getelementptr inbounds [2 x %struct.s2n_cert_validation_data], ptr %226, i64 0, i64 %9427
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %235, ptr align 16 %9428, i64 16, i1 false), !tbaa.struct !18
  br label %9429

9429:                                             ; preds = %9425
  %9430 = load i32, ptr @test_count, align 4, !tbaa !5
  %9431 = add nsw i32 %9430, 1
  store i32 %9431, ptr @test_count, align 4, !tbaa !5
  %9432 = load ptr, ptr %230, align 8, !tbaa !9
  %9433 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %9432, ptr noundef @s2n_test_cert_validation_callback_self_talk, ptr noundef %235)
  %9434 = icmp eq i32 %9433, -1
  br i1 %9434, label %9435, label %9488

9435:                                             ; preds = %9429
  br label %9436

9436:                                             ; preds = %9435
  br label %9437

9437:                                             ; preds = %9436
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #10
  %9438 = call ptr @__errno_location() #11
  %9439 = load i32, ptr %9438, align 4, !tbaa !5
  store i32 %9439, ptr %236, align 4, !tbaa !5
  %9440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9441 = call i32 @s2n_print_stacktrace(ptr noundef %9440)
  %9442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9443 = trunc i8 %9442 to i1
  br i1 %9443, label %9444, label %9466

9444:                                             ; preds = %9437
  %9445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9446 = call i32 @fileno(ptr noundef %9445) #10
  %9447 = call i32 @isatty(i32 noundef %9446) #10
  %9448 = icmp ne i32 %9447, 0
  br i1 %9448, label %9449, label %9466

9449:                                             ; preds = %9444
  %9450 = load i32, ptr %236, align 4, !tbaa !5
  %9451 = call ptr @__errno_location() #11
  store i32 %9450, ptr %9451, align 4, !tbaa !5
  %9452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9453 = load i32, ptr @test_count, align 4, !tbaa !5
  %9454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9455 = load i32, ptr %9454, align 4, !tbaa !5
  %9456 = call ptr @s2n_strerror(i32 noundef %9455, ptr noundef @.str.4)
  %9457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9458 = load i32, ptr %9457, align 4, !tbaa !5
  %9459 = call ptr @s2n_strerror_debug(i32 noundef %9458, ptr noundef @.str.4)
  %9460 = call ptr @__errno_location() #11
  %9461 = load i32, ptr %9460, align 4, !tbaa !5
  %9462 = call ptr @strerror(i32 noundef %9461) #10
  %9463 = call ptr @__errno_location() #11
  %9464 = load i32, ptr %9463, align 4, !tbaa !5
  %9465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9452, ptr noundef @.str.2, i32 noundef %9453, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 460, ptr noundef %9456, ptr noundef %9459, ptr noundef %9462, i32 noundef %9464) #10
  br label %9483

9466:                                             ; preds = %9444, %9437
  %9467 = load i32, ptr %236, align 4, !tbaa !5
  %9468 = call ptr @__errno_location() #11
  store i32 %9467, ptr %9468, align 4, !tbaa !5
  %9469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9470 = load i32, ptr @test_count, align 4, !tbaa !5
  %9471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9472 = load i32, ptr %9471, align 4, !tbaa !5
  %9473 = call ptr @s2n_strerror(i32 noundef %9472, ptr noundef @.str.4)
  %9474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9475 = load i32, ptr %9474, align 4, !tbaa !5
  %9476 = call ptr @s2n_strerror_debug(i32 noundef %9475, ptr noundef @.str.4)
  %9477 = call ptr @__errno_location() #11
  %9478 = load i32, ptr %9477, align 4, !tbaa !5
  %9479 = call ptr @strerror(i32 noundef %9478) #10
  %9480 = call ptr @__errno_location() #11
  %9481 = load i32, ptr %9480, align 4, !tbaa !5
  %9482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9469, ptr noundef @.str.5, i32 noundef %9470, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 460, ptr noundef %9473, ptr noundef %9476, ptr noundef %9479, i32 noundef %9481) #10
  br label %9483

9483:                                             ; preds = %9466, %9449
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #10
  br label %9484

9484:                                             ; preds = %9483
  br label %9485

9485:                                             ; preds = %9484
  call void @exit(i32 noundef 1) #12
  unreachable

9486:                                             ; No predecessors!
  br label %9487

9487:                                             ; preds = %9486
  br label %9488

9488:                                             ; preds = %9487, %9429
  br label %9489

9489:                                             ; preds = %9488
  br label %9490

9490:                                             ; preds = %9489
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #10
  %9491 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9491, ptr %237, align 8, !tbaa !9
  br label %9492

9492:                                             ; preds = %9490
  %9493 = load i32, ptr @test_count, align 4, !tbaa !5
  %9494 = add nsw i32 %9493, 1
  store i32 %9494, ptr @test_count, align 4, !tbaa !5
  %9495 = load ptr, ptr %237, align 8, !tbaa !9
  %9496 = icmp eq ptr %9495, null
  br i1 %9496, label %9497, label %9550

9497:                                             ; preds = %9492
  br label %9498

9498:                                             ; preds = %9497
  br label %9499

9499:                                             ; preds = %9498
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #10
  %9500 = call ptr @__errno_location() #11
  %9501 = load i32, ptr %9500, align 4, !tbaa !5
  store i32 %9501, ptr %238, align 4, !tbaa !5
  %9502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9503 = call i32 @s2n_print_stacktrace(ptr noundef %9502)
  %9504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9505 = trunc i8 %9504 to i1
  br i1 %9505, label %9506, label %9528

9506:                                             ; preds = %9499
  %9507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9508 = call i32 @fileno(ptr noundef %9507) #10
  %9509 = call i32 @isatty(i32 noundef %9508) #10
  %9510 = icmp ne i32 %9509, 0
  br i1 %9510, label %9511, label %9528

9511:                                             ; preds = %9506
  %9512 = load i32, ptr %238, align 4, !tbaa !5
  %9513 = call ptr @__errno_location() #11
  store i32 %9512, ptr %9513, align 4, !tbaa !5
  %9514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9515 = load i32, ptr @test_count, align 4, !tbaa !5
  %9516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9517 = load i32, ptr %9516, align 4, !tbaa !5
  %9518 = call ptr @s2n_strerror(i32 noundef %9517, ptr noundef @.str.4)
  %9519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9520 = load i32, ptr %9519, align 4, !tbaa !5
  %9521 = call ptr @s2n_strerror_debug(i32 noundef %9520, ptr noundef @.str.4)
  %9522 = call ptr @__errno_location() #11
  %9523 = load i32, ptr %9522, align 4, !tbaa !5
  %9524 = call ptr @strerror(i32 noundef %9523) #10
  %9525 = call ptr @__errno_location() #11
  %9526 = load i32, ptr %9525, align 4, !tbaa !5
  %9527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9514, ptr noundef @.str.2, i32 noundef %9515, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 463, ptr noundef %9518, ptr noundef %9521, ptr noundef %9524, i32 noundef %9526) #10
  br label %9545

9528:                                             ; preds = %9506, %9499
  %9529 = load i32, ptr %238, align 4, !tbaa !5
  %9530 = call ptr @__errno_location() #11
  store i32 %9529, ptr %9530, align 4, !tbaa !5
  %9531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9532 = load i32, ptr @test_count, align 4, !tbaa !5
  %9533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9534 = load i32, ptr %9533, align 4, !tbaa !5
  %9535 = call ptr @s2n_strerror(i32 noundef %9534, ptr noundef @.str.4)
  %9536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9537 = load i32, ptr %9536, align 4, !tbaa !5
  %9538 = call ptr @s2n_strerror_debug(i32 noundef %9537, ptr noundef @.str.4)
  %9539 = call ptr @__errno_location() #11
  %9540 = load i32, ptr %9539, align 4, !tbaa !5
  %9541 = call ptr @strerror(i32 noundef %9540) #10
  %9542 = call ptr @__errno_location() #11
  %9543 = load i32, ptr %9542, align 4, !tbaa !5
  %9544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9531, ptr noundef @.str.5, i32 noundef %9532, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 463, ptr noundef %9535, ptr noundef %9538, ptr noundef %9541, i32 noundef %9543) #10
  br label %9545

9545:                                             ; preds = %9528, %9511
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #10
  br label %9546

9546:                                             ; preds = %9545
  br label %9547

9547:                                             ; preds = %9546
  call void @exit(i32 noundef 1) #12
  unreachable

9548:                                             ; No predecessors!
  br label %9549

9549:                                             ; preds = %9548
  br label %9550

9550:                                             ; preds = %9549, %9492
  br label %9551

9551:                                             ; preds = %9550
  br label %9552

9552:                                             ; preds = %9551
  br label %9553

9553:                                             ; preds = %9552
  %9554 = load i32, ptr @test_count, align 4, !tbaa !5
  %9555 = add nsw i32 %9554, 1
  store i32 %9555, ptr @test_count, align 4, !tbaa !5
  %9556 = load ptr, ptr %237, align 8, !tbaa !9
  %9557 = load ptr, ptr %230, align 8, !tbaa !9
  %9558 = call i32 @s2n_connection_set_config(ptr noundef %9556, ptr noundef %9557)
  %9559 = icmp eq i32 %9558, -1
  br i1 %9559, label %9560, label %9613

9560:                                             ; preds = %9553
  br label %9561

9561:                                             ; preds = %9560
  br label %9562

9562:                                             ; preds = %9561
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #10
  %9563 = call ptr @__errno_location() #11
  %9564 = load i32, ptr %9563, align 4, !tbaa !5
  store i32 %9564, ptr %239, align 4, !tbaa !5
  %9565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9566 = call i32 @s2n_print_stacktrace(ptr noundef %9565)
  %9567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9568 = trunc i8 %9567 to i1
  br i1 %9568, label %9569, label %9591

9569:                                             ; preds = %9562
  %9570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9571 = call i32 @fileno(ptr noundef %9570) #10
  %9572 = call i32 @isatty(i32 noundef %9571) #10
  %9573 = icmp ne i32 %9572, 0
  br i1 %9573, label %9574, label %9591

9574:                                             ; preds = %9569
  %9575 = load i32, ptr %239, align 4, !tbaa !5
  %9576 = call ptr @__errno_location() #11
  store i32 %9575, ptr %9576, align 4, !tbaa !5
  %9577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9578 = load i32, ptr @test_count, align 4, !tbaa !5
  %9579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9580 = load i32, ptr %9579, align 4, !tbaa !5
  %9581 = call ptr @s2n_strerror(i32 noundef %9580, ptr noundef @.str.4)
  %9582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9583 = load i32, ptr %9582, align 4, !tbaa !5
  %9584 = call ptr @s2n_strerror_debug(i32 noundef %9583, ptr noundef @.str.4)
  %9585 = call ptr @__errno_location() #11
  %9586 = load i32, ptr %9585, align 4, !tbaa !5
  %9587 = call ptr @strerror(i32 noundef %9586) #10
  %9588 = call ptr @__errno_location() #11
  %9589 = load i32, ptr %9588, align 4, !tbaa !5
  %9590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9577, ptr noundef @.str.2, i32 noundef %9578, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 464, ptr noundef %9581, ptr noundef %9584, ptr noundef %9587, i32 noundef %9589) #10
  br label %9608

9591:                                             ; preds = %9569, %9562
  %9592 = load i32, ptr %239, align 4, !tbaa !5
  %9593 = call ptr @__errno_location() #11
  store i32 %9592, ptr %9593, align 4, !tbaa !5
  %9594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9595 = load i32, ptr @test_count, align 4, !tbaa !5
  %9596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9597 = load i32, ptr %9596, align 4, !tbaa !5
  %9598 = call ptr @s2n_strerror(i32 noundef %9597, ptr noundef @.str.4)
  %9599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9600 = load i32, ptr %9599, align 4, !tbaa !5
  %9601 = call ptr @s2n_strerror_debug(i32 noundef %9600, ptr noundef @.str.4)
  %9602 = call ptr @__errno_location() #11
  %9603 = load i32, ptr %9602, align 4, !tbaa !5
  %9604 = call ptr @strerror(i32 noundef %9603) #10
  %9605 = call ptr @__errno_location() #11
  %9606 = load i32, ptr %9605, align 4, !tbaa !5
  %9607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9594, ptr noundef @.str.5, i32 noundef %9595, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 464, ptr noundef %9598, ptr noundef %9601, ptr noundef %9604, i32 noundef %9606) #10
  br label %9608

9608:                                             ; preds = %9591, %9574
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #10
  br label %9609

9609:                                             ; preds = %9608
  br label %9610

9610:                                             ; preds = %9609
  call void @exit(i32 noundef 1) #12
  unreachable

9611:                                             ; No predecessors!
  br label %9612

9612:                                             ; preds = %9611
  br label %9613

9613:                                             ; preds = %9612, %9553
  br label %9614

9614:                                             ; preds = %9613
  br label %9615

9615:                                             ; preds = %9614
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #10
  %9616 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9616, ptr %240, align 8, !tbaa !9
  br label %9617

9617:                                             ; preds = %9615
  %9618 = load i32, ptr @test_count, align 4, !tbaa !5
  %9619 = add nsw i32 %9618, 1
  store i32 %9619, ptr @test_count, align 4, !tbaa !5
  %9620 = load ptr, ptr %240, align 8, !tbaa !9
  %9621 = icmp eq ptr %9620, null
  br i1 %9621, label %9622, label %9675

9622:                                             ; preds = %9617
  br label %9623

9623:                                             ; preds = %9622
  br label %9624

9624:                                             ; preds = %9623
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #10
  %9625 = call ptr @__errno_location() #11
  %9626 = load i32, ptr %9625, align 4, !tbaa !5
  store i32 %9626, ptr %241, align 4, !tbaa !5
  %9627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9628 = call i32 @s2n_print_stacktrace(ptr noundef %9627)
  %9629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9630 = trunc i8 %9629 to i1
  br i1 %9630, label %9631, label %9653

9631:                                             ; preds = %9624
  %9632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9633 = call i32 @fileno(ptr noundef %9632) #10
  %9634 = call i32 @isatty(i32 noundef %9633) #10
  %9635 = icmp ne i32 %9634, 0
  br i1 %9635, label %9636, label %9653

9636:                                             ; preds = %9631
  %9637 = load i32, ptr %241, align 4, !tbaa !5
  %9638 = call ptr @__errno_location() #11
  store i32 %9637, ptr %9638, align 4, !tbaa !5
  %9639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9640 = load i32, ptr @test_count, align 4, !tbaa !5
  %9641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9642 = load i32, ptr %9641, align 4, !tbaa !5
  %9643 = call ptr @s2n_strerror(i32 noundef %9642, ptr noundef @.str.4)
  %9644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9645 = load i32, ptr %9644, align 4, !tbaa !5
  %9646 = call ptr @s2n_strerror_debug(i32 noundef %9645, ptr noundef @.str.4)
  %9647 = call ptr @__errno_location() #11
  %9648 = load i32, ptr %9647, align 4, !tbaa !5
  %9649 = call ptr @strerror(i32 noundef %9648) #10
  %9650 = call ptr @__errno_location() #11
  %9651 = load i32, ptr %9650, align 4, !tbaa !5
  %9652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9639, ptr noundef @.str.2, i32 noundef %9640, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 467, ptr noundef %9643, ptr noundef %9646, ptr noundef %9649, i32 noundef %9651) #10
  br label %9670

9653:                                             ; preds = %9631, %9624
  %9654 = load i32, ptr %241, align 4, !tbaa !5
  %9655 = call ptr @__errno_location() #11
  store i32 %9654, ptr %9655, align 4, !tbaa !5
  %9656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9657 = load i32, ptr @test_count, align 4, !tbaa !5
  %9658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9659 = load i32, ptr %9658, align 4, !tbaa !5
  %9660 = call ptr @s2n_strerror(i32 noundef %9659, ptr noundef @.str.4)
  %9661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9662 = load i32, ptr %9661, align 4, !tbaa !5
  %9663 = call ptr @s2n_strerror_debug(i32 noundef %9662, ptr noundef @.str.4)
  %9664 = call ptr @__errno_location() #11
  %9665 = load i32, ptr %9664, align 4, !tbaa !5
  %9666 = call ptr @strerror(i32 noundef %9665) #10
  %9667 = call ptr @__errno_location() #11
  %9668 = load i32, ptr %9667, align 4, !tbaa !5
  %9669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9656, ptr noundef @.str.5, i32 noundef %9657, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 467, ptr noundef %9660, ptr noundef %9663, ptr noundef %9666, i32 noundef %9668) #10
  br label %9670

9670:                                             ; preds = %9653, %9636
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #10
  br label %9671

9671:                                             ; preds = %9670
  br label %9672

9672:                                             ; preds = %9671
  call void @exit(i32 noundef 1) #12
  unreachable

9673:                                             ; No predecessors!
  br label %9674

9674:                                             ; preds = %9673
  br label %9675

9675:                                             ; preds = %9674, %9617
  br label %9676

9676:                                             ; preds = %9675
  br label %9677

9677:                                             ; preds = %9676
  br label %9678

9678:                                             ; preds = %9677
  %9679 = load i32, ptr @test_count, align 4, !tbaa !5
  %9680 = add nsw i32 %9679, 1
  store i32 %9680, ptr @test_count, align 4, !tbaa !5
  %9681 = load ptr, ptr %240, align 8, !tbaa !9
  %9682 = load ptr, ptr %230, align 8, !tbaa !9
  %9683 = call i32 @s2n_connection_set_config(ptr noundef %9681, ptr noundef %9682)
  %9684 = icmp eq i32 %9683, -1
  br i1 %9684, label %9685, label %9738

9685:                                             ; preds = %9678
  br label %9686

9686:                                             ; preds = %9685
  br label %9687

9687:                                             ; preds = %9686
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #10
  %9688 = call ptr @__errno_location() #11
  %9689 = load i32, ptr %9688, align 4, !tbaa !5
  store i32 %9689, ptr %242, align 4, !tbaa !5
  %9690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9691 = call i32 @s2n_print_stacktrace(ptr noundef %9690)
  %9692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9693 = trunc i8 %9692 to i1
  br i1 %9693, label %9694, label %9716

9694:                                             ; preds = %9687
  %9695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9696 = call i32 @fileno(ptr noundef %9695) #10
  %9697 = call i32 @isatty(i32 noundef %9696) #10
  %9698 = icmp ne i32 %9697, 0
  br i1 %9698, label %9699, label %9716

9699:                                             ; preds = %9694
  %9700 = load i32, ptr %242, align 4, !tbaa !5
  %9701 = call ptr @__errno_location() #11
  store i32 %9700, ptr %9701, align 4, !tbaa !5
  %9702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9703 = load i32, ptr @test_count, align 4, !tbaa !5
  %9704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9705 = load i32, ptr %9704, align 4, !tbaa !5
  %9706 = call ptr @s2n_strerror(i32 noundef %9705, ptr noundef @.str.4)
  %9707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9708 = load i32, ptr %9707, align 4, !tbaa !5
  %9709 = call ptr @s2n_strerror_debug(i32 noundef %9708, ptr noundef @.str.4)
  %9710 = call ptr @__errno_location() #11
  %9711 = load i32, ptr %9710, align 4, !tbaa !5
  %9712 = call ptr @strerror(i32 noundef %9711) #10
  %9713 = call ptr @__errno_location() #11
  %9714 = load i32, ptr %9713, align 4, !tbaa !5
  %9715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9702, ptr noundef @.str.2, i32 noundef %9703, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 468, ptr noundef %9706, ptr noundef %9709, ptr noundef %9712, i32 noundef %9714) #10
  br label %9733

9716:                                             ; preds = %9694, %9687
  %9717 = load i32, ptr %242, align 4, !tbaa !5
  %9718 = call ptr @__errno_location() #11
  store i32 %9717, ptr %9718, align 4, !tbaa !5
  %9719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9720 = load i32, ptr @test_count, align 4, !tbaa !5
  %9721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9722 = load i32, ptr %9721, align 4, !tbaa !5
  %9723 = call ptr @s2n_strerror(i32 noundef %9722, ptr noundef @.str.4)
  %9724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9725 = load i32, ptr %9724, align 4, !tbaa !5
  %9726 = call ptr @s2n_strerror_debug(i32 noundef %9725, ptr noundef @.str.4)
  %9727 = call ptr @__errno_location() #11
  %9728 = load i32, ptr %9727, align 4, !tbaa !5
  %9729 = call ptr @strerror(i32 noundef %9728) #10
  %9730 = call ptr @__errno_location() #11
  %9731 = load i32, ptr %9730, align 4, !tbaa !5
  %9732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9719, ptr noundef @.str.5, i32 noundef %9720, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 468, ptr noundef %9723, ptr noundef %9726, ptr noundef %9729, i32 noundef %9731) #10
  br label %9733

9733:                                             ; preds = %9716, %9699
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #10
  br label %9734

9734:                                             ; preds = %9733
  br label %9735

9735:                                             ; preds = %9734
  call void @exit(i32 noundef 1) #12
  unreachable

9736:                                             ; No predecessors!
  br label %9737

9737:                                             ; preds = %9736
  br label %9738

9738:                                             ; preds = %9737, %9678
  br label %9739

9739:                                             ; preds = %9738
  br label %9740

9740:                                             ; preds = %9739
  br label %9741

9741:                                             ; preds = %9740
  %9742 = load i32, ptr @test_count, align 4, !tbaa !5
  %9743 = add nsw i32 %9742, 1
  store i32 %9743, ptr @test_count, align 4, !tbaa !5
  %9744 = load ptr, ptr %240, align 8, !tbaa !9
  %9745 = call i32 @s2n_connection_set_blinding(ptr noundef %9744, i32 noundef 1)
  %9746 = icmp eq i32 %9745, -1
  br i1 %9746, label %9747, label %9800

9747:                                             ; preds = %9741
  br label %9748

9748:                                             ; preds = %9747
  br label %9749

9749:                                             ; preds = %9748
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #10
  %9750 = call ptr @__errno_location() #11
  %9751 = load i32, ptr %9750, align 4, !tbaa !5
  store i32 %9751, ptr %243, align 4, !tbaa !5
  %9752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9753 = call i32 @s2n_print_stacktrace(ptr noundef %9752)
  %9754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9755 = trunc i8 %9754 to i1
  br i1 %9755, label %9756, label %9778

9756:                                             ; preds = %9749
  %9757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9758 = call i32 @fileno(ptr noundef %9757) #10
  %9759 = call i32 @isatty(i32 noundef %9758) #10
  %9760 = icmp ne i32 %9759, 0
  br i1 %9760, label %9761, label %9778

9761:                                             ; preds = %9756
  %9762 = load i32, ptr %243, align 4, !tbaa !5
  %9763 = call ptr @__errno_location() #11
  store i32 %9762, ptr %9763, align 4, !tbaa !5
  %9764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9765 = load i32, ptr @test_count, align 4, !tbaa !5
  %9766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9767 = load i32, ptr %9766, align 4, !tbaa !5
  %9768 = call ptr @s2n_strerror(i32 noundef %9767, ptr noundef @.str.4)
  %9769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9770 = load i32, ptr %9769, align 4, !tbaa !5
  %9771 = call ptr @s2n_strerror_debug(i32 noundef %9770, ptr noundef @.str.4)
  %9772 = call ptr @__errno_location() #11
  %9773 = load i32, ptr %9772, align 4, !tbaa !5
  %9774 = call ptr @strerror(i32 noundef %9773) #10
  %9775 = call ptr @__errno_location() #11
  %9776 = load i32, ptr %9775, align 4, !tbaa !5
  %9777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9764, ptr noundef @.str.2, i32 noundef %9765, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 469, ptr noundef %9768, ptr noundef %9771, ptr noundef %9774, i32 noundef %9776) #10
  br label %9795

9778:                                             ; preds = %9756, %9749
  %9779 = load i32, ptr %243, align 4, !tbaa !5
  %9780 = call ptr @__errno_location() #11
  store i32 %9779, ptr %9780, align 4, !tbaa !5
  %9781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9782 = load i32, ptr @test_count, align 4, !tbaa !5
  %9783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9784 = load i32, ptr %9783, align 4, !tbaa !5
  %9785 = call ptr @s2n_strerror(i32 noundef %9784, ptr noundef @.str.4)
  %9786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9787 = load i32, ptr %9786, align 4, !tbaa !5
  %9788 = call ptr @s2n_strerror_debug(i32 noundef %9787, ptr noundef @.str.4)
  %9789 = call ptr @__errno_location() #11
  %9790 = load i32, ptr %9789, align 4, !tbaa !5
  %9791 = call ptr @strerror(i32 noundef %9790) #10
  %9792 = call ptr @__errno_location() #11
  %9793 = load i32, ptr %9792, align 4, !tbaa !5
  %9794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9781, ptr noundef @.str.5, i32 noundef %9782, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 469, ptr noundef %9785, ptr noundef %9788, ptr noundef %9791, i32 noundef %9793) #10
  br label %9795

9795:                                             ; preds = %9778, %9761
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #10
  br label %9796

9796:                                             ; preds = %9795
  br label %9797

9797:                                             ; preds = %9796
  call void @exit(i32 noundef 1) #12
  unreachable

9798:                                             ; No predecessors!
  br label %9799

9799:                                             ; preds = %9798
  br label %9800

9800:                                             ; preds = %9799, %9741
  br label %9801

9801:                                             ; preds = %9800
  br label %9802

9802:                                             ; preds = %9801
  br label %9803

9803:                                             ; preds = %9802
  %9804 = load i32, ptr @test_count, align 4, !tbaa !5
  %9805 = add nsw i32 %9804, 1
  store i32 %9805, ptr @test_count, align 4, !tbaa !5
  %9806 = load ptr, ptr %240, align 8, !tbaa !9
  %9807 = call i32 @s2n_set_server_name(ptr noundef %9806, ptr noundef @.str.35)
  %9808 = icmp eq i32 %9807, -1
  br i1 %9808, label %9809, label %9862

9809:                                             ; preds = %9803
  br label %9810

9810:                                             ; preds = %9809
  br label %9811

9811:                                             ; preds = %9810
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #10
  %9812 = call ptr @__errno_location() #11
  %9813 = load i32, ptr %9812, align 4, !tbaa !5
  store i32 %9813, ptr %244, align 4, !tbaa !5
  %9814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9815 = call i32 @s2n_print_stacktrace(ptr noundef %9814)
  %9816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9817 = trunc i8 %9816 to i1
  br i1 %9817, label %9818, label %9840

9818:                                             ; preds = %9811
  %9819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9820 = call i32 @fileno(ptr noundef %9819) #10
  %9821 = call i32 @isatty(i32 noundef %9820) #10
  %9822 = icmp ne i32 %9821, 0
  br i1 %9822, label %9823, label %9840

9823:                                             ; preds = %9818
  %9824 = load i32, ptr %244, align 4, !tbaa !5
  %9825 = call ptr @__errno_location() #11
  store i32 %9824, ptr %9825, align 4, !tbaa !5
  %9826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9827 = load i32, ptr @test_count, align 4, !tbaa !5
  %9828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9829 = load i32, ptr %9828, align 4, !tbaa !5
  %9830 = call ptr @s2n_strerror(i32 noundef %9829, ptr noundef @.str.4)
  %9831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9832 = load i32, ptr %9831, align 4, !tbaa !5
  %9833 = call ptr @s2n_strerror_debug(i32 noundef %9832, ptr noundef @.str.4)
  %9834 = call ptr @__errno_location() #11
  %9835 = load i32, ptr %9834, align 4, !tbaa !5
  %9836 = call ptr @strerror(i32 noundef %9835) #10
  %9837 = call ptr @__errno_location() #11
  %9838 = load i32, ptr %9837, align 4, !tbaa !5
  %9839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9826, ptr noundef @.str.2, i32 noundef %9827, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 470, ptr noundef %9830, ptr noundef %9833, ptr noundef %9836, i32 noundef %9838) #10
  br label %9857

9840:                                             ; preds = %9818, %9811
  %9841 = load i32, ptr %244, align 4, !tbaa !5
  %9842 = call ptr @__errno_location() #11
  store i32 %9841, ptr %9842, align 4, !tbaa !5
  %9843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9844 = load i32, ptr @test_count, align 4, !tbaa !5
  %9845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9846 = load i32, ptr %9845, align 4, !tbaa !5
  %9847 = call ptr @s2n_strerror(i32 noundef %9846, ptr noundef @.str.4)
  %9848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9849 = load i32, ptr %9848, align 4, !tbaa !5
  %9850 = call ptr @s2n_strerror_debug(i32 noundef %9849, ptr noundef @.str.4)
  %9851 = call ptr @__errno_location() #11
  %9852 = load i32, ptr %9851, align 4, !tbaa !5
  %9853 = call ptr @strerror(i32 noundef %9852) #10
  %9854 = call ptr @__errno_location() #11
  %9855 = load i32, ptr %9854, align 4, !tbaa !5
  %9856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9843, ptr noundef @.str.5, i32 noundef %9844, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 470, ptr noundef %9847, ptr noundef %9850, ptr noundef %9853, i32 noundef %9855) #10
  br label %9857

9857:                                             ; preds = %9840, %9823
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #10
  br label %9858

9858:                                             ; preds = %9857
  br label %9859

9859:                                             ; preds = %9858
  call void @exit(i32 noundef 1) #12
  unreachable

9860:                                             ; No predecessors!
  br label %9861

9861:                                             ; preds = %9860
  br label %9862

9862:                                             ; preds = %9861, %9803
  br label %9863

9863:                                             ; preds = %9862
  br label %9864

9864:                                             ; preds = %9863
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #10
  call void @llvm.memset.p0.i64(ptr align 4 %245, i8 0, i64 8, i1 false)
  br label %9865

9865:                                             ; preds = %9864
  %9866 = load i32, ptr @test_count, align 4, !tbaa !5
  %9867 = add nsw i32 %9866, 1
  store i32 %9867, ptr @test_count, align 4, !tbaa !5
  %9868 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %245)
  %9869 = icmp eq i32 %9868, -1
  br i1 %9869, label %9870, label %9923

9870:                                             ; preds = %9865
  br label %9871

9871:                                             ; preds = %9870
  br label %9872

9872:                                             ; preds = %9871
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #10
  %9873 = call ptr @__errno_location() #11
  %9874 = load i32, ptr %9873, align 4, !tbaa !5
  store i32 %9874, ptr %246, align 4, !tbaa !5
  %9875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9876 = call i32 @s2n_print_stacktrace(ptr noundef %9875)
  %9877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9878 = trunc i8 %9877 to i1
  br i1 %9878, label %9879, label %9901

9879:                                             ; preds = %9872
  %9880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9881 = call i32 @fileno(ptr noundef %9880) #10
  %9882 = call i32 @isatty(i32 noundef %9881) #10
  %9883 = icmp ne i32 %9882, 0
  br i1 %9883, label %9884, label %9901

9884:                                             ; preds = %9879
  %9885 = load i32, ptr %246, align 4, !tbaa !5
  %9886 = call ptr @__errno_location() #11
  store i32 %9885, ptr %9886, align 4, !tbaa !5
  %9887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9888 = load i32, ptr @test_count, align 4, !tbaa !5
  %9889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9890 = load i32, ptr %9889, align 4, !tbaa !5
  %9891 = call ptr @s2n_strerror(i32 noundef %9890, ptr noundef @.str.4)
  %9892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9893 = load i32, ptr %9892, align 4, !tbaa !5
  %9894 = call ptr @s2n_strerror_debug(i32 noundef %9893, ptr noundef @.str.4)
  %9895 = call ptr @__errno_location() #11
  %9896 = load i32, ptr %9895, align 4, !tbaa !5
  %9897 = call ptr @strerror(i32 noundef %9896) #10
  %9898 = call ptr @__errno_location() #11
  %9899 = load i32, ptr %9898, align 4, !tbaa !5
  %9900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9887, ptr noundef @.str.2, i32 noundef %9888, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 473, ptr noundef %9891, ptr noundef %9894, ptr noundef %9897, i32 noundef %9899) #10
  br label %9918

9901:                                             ; preds = %9879, %9872
  %9902 = load i32, ptr %246, align 4, !tbaa !5
  %9903 = call ptr @__errno_location() #11
  store i32 %9902, ptr %9903, align 4, !tbaa !5
  %9904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9905 = load i32, ptr @test_count, align 4, !tbaa !5
  %9906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9907 = load i32, ptr %9906, align 4, !tbaa !5
  %9908 = call ptr @s2n_strerror(i32 noundef %9907, ptr noundef @.str.4)
  %9909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9910 = load i32, ptr %9909, align 4, !tbaa !5
  %9911 = call ptr @s2n_strerror_debug(i32 noundef %9910, ptr noundef @.str.4)
  %9912 = call ptr @__errno_location() #11
  %9913 = load i32, ptr %9912, align 4, !tbaa !5
  %9914 = call ptr @strerror(i32 noundef %9913) #10
  %9915 = call ptr @__errno_location() #11
  %9916 = load i32, ptr %9915, align 4, !tbaa !5
  %9917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9904, ptr noundef @.str.5, i32 noundef %9905, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 473, ptr noundef %9908, ptr noundef %9911, ptr noundef %9914, i32 noundef %9916) #10
  br label %9918

9918:                                             ; preds = %9901, %9884
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #10
  br label %9919

9919:                                             ; preds = %9918
  br label %9920

9920:                                             ; preds = %9919
  call void @exit(i32 noundef 1) #12
  unreachable

9921:                                             ; No predecessors!
  br label %9922

9922:                                             ; preds = %9921
  br label %9923

9923:                                             ; preds = %9922, %9865
  br label %9924

9924:                                             ; preds = %9923
  br label %9925

9925:                                             ; preds = %9924
  br label %9926

9926:                                             ; preds = %9925
  %9927 = load i32, ptr @test_count, align 4, !tbaa !5
  %9928 = add nsw i32 %9927, 1
  store i32 %9928, ptr @test_count, align 4, !tbaa !5
  %9929 = load ptr, ptr %240, align 8, !tbaa !9
  %9930 = call i32 @s2n_connection_set_io_pair(ptr noundef %9929, ptr noundef %245)
  %9931 = icmp eq i32 %9930, -1
  br i1 %9931, label %9932, label %9985

9932:                                             ; preds = %9926
  br label %9933

9933:                                             ; preds = %9932
  br label %9934

9934:                                             ; preds = %9933
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #10
  %9935 = call ptr @__errno_location() #11
  %9936 = load i32, ptr %9935, align 4, !tbaa !5
  store i32 %9936, ptr %247, align 4, !tbaa !5
  %9937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9938 = call i32 @s2n_print_stacktrace(ptr noundef %9937)
  %9939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9940 = trunc i8 %9939 to i1
  br i1 %9940, label %9941, label %9963

9941:                                             ; preds = %9934
  %9942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9943 = call i32 @fileno(ptr noundef %9942) #10
  %9944 = call i32 @isatty(i32 noundef %9943) #10
  %9945 = icmp ne i32 %9944, 0
  br i1 %9945, label %9946, label %9963

9946:                                             ; preds = %9941
  %9947 = load i32, ptr %247, align 4, !tbaa !5
  %9948 = call ptr @__errno_location() #11
  store i32 %9947, ptr %9948, align 4, !tbaa !5
  %9949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9950 = load i32, ptr @test_count, align 4, !tbaa !5
  %9951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9952 = load i32, ptr %9951, align 4, !tbaa !5
  %9953 = call ptr @s2n_strerror(i32 noundef %9952, ptr noundef @.str.4)
  %9954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9955 = load i32, ptr %9954, align 4, !tbaa !5
  %9956 = call ptr @s2n_strerror_debug(i32 noundef %9955, ptr noundef @.str.4)
  %9957 = call ptr @__errno_location() #11
  %9958 = load i32, ptr %9957, align 4, !tbaa !5
  %9959 = call ptr @strerror(i32 noundef %9958) #10
  %9960 = call ptr @__errno_location() #11
  %9961 = load i32, ptr %9960, align 4, !tbaa !5
  %9962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9949, ptr noundef @.str.2, i32 noundef %9950, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 474, ptr noundef %9953, ptr noundef %9956, ptr noundef %9959, i32 noundef %9961) #10
  br label %9980

9963:                                             ; preds = %9941, %9934
  %9964 = load i32, ptr %247, align 4, !tbaa !5
  %9965 = call ptr @__errno_location() #11
  store i32 %9964, ptr %9965, align 4, !tbaa !5
  %9966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9967 = load i32, ptr @test_count, align 4, !tbaa !5
  %9968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9969 = load i32, ptr %9968, align 4, !tbaa !5
  %9970 = call ptr @s2n_strerror(i32 noundef %9969, ptr noundef @.str.4)
  %9971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9972 = load i32, ptr %9971, align 4, !tbaa !5
  %9973 = call ptr @s2n_strerror_debug(i32 noundef %9972, ptr noundef @.str.4)
  %9974 = call ptr @__errno_location() #11
  %9975 = load i32, ptr %9974, align 4, !tbaa !5
  %9976 = call ptr @strerror(i32 noundef %9975) #10
  %9977 = call ptr @__errno_location() #11
  %9978 = load i32, ptr %9977, align 4, !tbaa !5
  %9979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9966, ptr noundef @.str.5, i32 noundef %9967, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 474, ptr noundef %9970, ptr noundef %9973, ptr noundef %9976, i32 noundef %9978) #10
  br label %9980

9980:                                             ; preds = %9963, %9946
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #10
  br label %9981

9981:                                             ; preds = %9980
  br label %9982

9982:                                             ; preds = %9981
  call void @exit(i32 noundef 1) #12
  unreachable

9983:                                             ; No predecessors!
  br label %9984

9984:                                             ; preds = %9983
  br label %9985

9985:                                             ; preds = %9984, %9926
  br label %9986

9986:                                             ; preds = %9985
  br label %9987

9987:                                             ; preds = %9986
  br label %9988

9988:                                             ; preds = %9987
  %9989 = load i32, ptr @test_count, align 4, !tbaa !5
  %9990 = add nsw i32 %9989, 1
  store i32 %9990, ptr @test_count, align 4, !tbaa !5
  %9991 = load ptr, ptr %237, align 8, !tbaa !9
  %9992 = call i32 @s2n_connection_set_io_pair(ptr noundef %9991, ptr noundef %245)
  %9993 = icmp eq i32 %9992, -1
  br i1 %9993, label %9994, label %10047

9994:                                             ; preds = %9988
  br label %9995

9995:                                             ; preds = %9994
  br label %9996

9996:                                             ; preds = %9995
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #10
  %9997 = call ptr @__errno_location() #11
  %9998 = load i32, ptr %9997, align 4, !tbaa !5
  store i32 %9998, ptr %248, align 4, !tbaa !5
  %9999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10000 = call i32 @s2n_print_stacktrace(ptr noundef %9999)
  %10001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10002 = trunc i8 %10001 to i1
  br i1 %10002, label %10003, label %10025

10003:                                            ; preds = %9996
  %10004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10005 = call i32 @fileno(ptr noundef %10004) #10
  %10006 = call i32 @isatty(i32 noundef %10005) #10
  %10007 = icmp ne i32 %10006, 0
  br i1 %10007, label %10008, label %10025

10008:                                            ; preds = %10003
  %10009 = load i32, ptr %248, align 4, !tbaa !5
  %10010 = call ptr @__errno_location() #11
  store i32 %10009, ptr %10010, align 4, !tbaa !5
  %10011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10012 = load i32, ptr @test_count, align 4, !tbaa !5
  %10013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10014 = load i32, ptr %10013, align 4, !tbaa !5
  %10015 = call ptr @s2n_strerror(i32 noundef %10014, ptr noundef @.str.4)
  %10016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10017 = load i32, ptr %10016, align 4, !tbaa !5
  %10018 = call ptr @s2n_strerror_debug(i32 noundef %10017, ptr noundef @.str.4)
  %10019 = call ptr @__errno_location() #11
  %10020 = load i32, ptr %10019, align 4, !tbaa !5
  %10021 = call ptr @strerror(i32 noundef %10020) #10
  %10022 = call ptr @__errno_location() #11
  %10023 = load i32, ptr %10022, align 4, !tbaa !5
  %10024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10011, ptr noundef @.str.2, i32 noundef %10012, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 475, ptr noundef %10015, ptr noundef %10018, ptr noundef %10021, i32 noundef %10023) #10
  br label %10042

10025:                                            ; preds = %10003, %9996
  %10026 = load i32, ptr %248, align 4, !tbaa !5
  %10027 = call ptr @__errno_location() #11
  store i32 %10026, ptr %10027, align 4, !tbaa !5
  %10028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10029 = load i32, ptr @test_count, align 4, !tbaa !5
  %10030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10031 = load i32, ptr %10030, align 4, !tbaa !5
  %10032 = call ptr @s2n_strerror(i32 noundef %10031, ptr noundef @.str.4)
  %10033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10034 = load i32, ptr %10033, align 4, !tbaa !5
  %10035 = call ptr @s2n_strerror_debug(i32 noundef %10034, ptr noundef @.str.4)
  %10036 = call ptr @__errno_location() #11
  %10037 = load i32, ptr %10036, align 4, !tbaa !5
  %10038 = call ptr @strerror(i32 noundef %10037) #10
  %10039 = call ptr @__errno_location() #11
  %10040 = load i32, ptr %10039, align 4, !tbaa !5
  %10041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10028, ptr noundef @.str.5, i32 noundef %10029, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 475, ptr noundef %10032, ptr noundef %10035, ptr noundef %10038, i32 noundef %10040) #10
  br label %10042

10042:                                            ; preds = %10025, %10008
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #10
  br label %10043

10043:                                            ; preds = %10042
  br label %10044

10044:                                            ; preds = %10043
  call void @exit(i32 noundef 1) #12
  unreachable

10045:                                            ; No predecessors!
  br label %10046

10046:                                            ; preds = %10045
  br label %10047

10047:                                            ; preds = %10046, %9988
  br label %10048

10048:                                            ; preds = %10047
  br label %10049

10049:                                            ; preds = %10048
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #10
  store i32 0, ptr %249, align 4, !tbaa !5
  br label %10050

10050:                                            ; preds = %10316, %10049
  %10051 = load i32, ptr %249, align 4, !tbaa !5
  %10052 = icmp slt i32 %10051, 3
  br i1 %10052, label %10054, label %10053

10053:                                            ; preds = %10050
  store i32 1005, ptr %184, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #10
  br label %10319

10054:                                            ; preds = %10050
  br label %10055

10055:                                            ; preds = %10054
  br label %10056

10056:                                            ; preds = %10055
  br label %10057

10057:                                            ; preds = %10056
  %10058 = load i32, ptr @test_count, align 4, !tbaa !5
  %10059 = add nsw i32 %10058, 1
  store i32 %10059, ptr @test_count, align 4, !tbaa !5
  %10060 = load ptr, ptr %237, align 8, !tbaa !9
  %10061 = load ptr, ptr %240, align 8, !tbaa !9
  %10062 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %10060, ptr noundef %10061)
  %10063 = icmp eq i32 %10062, -1
  br i1 %10063, label %10117, label %10064

10064:                                            ; preds = %10057
  br label %10065

10065:                                            ; preds = %10064
  br label %10066

10066:                                            ; preds = %10065
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #10
  %10067 = call ptr @__errno_location() #11
  %10068 = load i32, ptr %10067, align 4, !tbaa !5
  store i32 %10068, ptr %250, align 4, !tbaa !5
  %10069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10070 = call i32 @s2n_print_stacktrace(ptr noundef %10069)
  %10071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10072 = trunc i8 %10071 to i1
  br i1 %10072, label %10073, label %10095

10073:                                            ; preds = %10066
  %10074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10075 = call i32 @fileno(ptr noundef %10074) #10
  %10076 = call i32 @isatty(i32 noundef %10075) #10
  %10077 = icmp ne i32 %10076, 0
  br i1 %10077, label %10078, label %10095

10078:                                            ; preds = %10073
  %10079 = load i32, ptr %250, align 4, !tbaa !5
  %10080 = call ptr @__errno_location() #11
  store i32 %10079, ptr %10080, align 4, !tbaa !5
  %10081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10082 = load i32, ptr @test_count, align 4, !tbaa !5
  %10083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10084 = load i32, ptr %10083, align 4, !tbaa !5
  %10085 = call ptr @s2n_strerror(i32 noundef %10084, ptr noundef @.str.4)
  %10086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10087 = load i32, ptr %10086, align 4, !tbaa !5
  %10088 = call ptr @s2n_strerror_debug(i32 noundef %10087, ptr noundef @.str.4)
  %10089 = call ptr @__errno_location() #11
  %10090 = load i32, ptr %10089, align 4, !tbaa !5
  %10091 = call ptr @strerror(i32 noundef %10090) #10
  %10092 = call ptr @__errno_location() #11
  %10093 = load i32, ptr %10092, align 4, !tbaa !5
  %10094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10081, ptr noundef @.str.2, i32 noundef %10082, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 479, ptr noundef %10085, ptr noundef %10088, ptr noundef %10091, i32 noundef %10093) #10
  br label %10112

10095:                                            ; preds = %10073, %10066
  %10096 = load i32, ptr %250, align 4, !tbaa !5
  %10097 = call ptr @__errno_location() #11
  store i32 %10096, ptr %10097, align 4, !tbaa !5
  %10098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10099 = load i32, ptr @test_count, align 4, !tbaa !5
  %10100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10101 = load i32, ptr %10100, align 4, !tbaa !5
  %10102 = call ptr @s2n_strerror(i32 noundef %10101, ptr noundef @.str.4)
  %10103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10104 = load i32, ptr %10103, align 4, !tbaa !5
  %10105 = call ptr @s2n_strerror_debug(i32 noundef %10104, ptr noundef @.str.4)
  %10106 = call ptr @__errno_location() #11
  %10107 = load i32, ptr %10106, align 4, !tbaa !5
  %10108 = call ptr @strerror(i32 noundef %10107) #10
  %10109 = call ptr @__errno_location() #11
  %10110 = load i32, ptr %10109, align 4, !tbaa !5
  %10111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10098, ptr noundef @.str.5, i32 noundef %10099, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 479, ptr noundef %10102, ptr noundef %10105, ptr noundef %10108, i32 noundef %10110) #10
  br label %10112

10112:                                            ; preds = %10095, %10078
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #10
  br label %10113

10113:                                            ; preds = %10112
  br label %10114

10114:                                            ; preds = %10113
  call void @exit(i32 noundef 1) #12
  unreachable

10115:                                            ; No predecessors!
  br label %10116

10116:                                            ; preds = %10115
  br label %10117

10117:                                            ; preds = %10116, %10057
  br label %10118

10118:                                            ; preds = %10117
  br label %10119

10119:                                            ; preds = %10118
  br label %10120

10120:                                            ; preds = %10119
  %10121 = load i32, ptr @test_count, align 4, !tbaa !5
  %10122 = add nsw i32 %10121, 1
  store i32 %10122, ptr @test_count, align 4, !tbaa !5
  %10123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10124 = load i32, ptr %10123, align 4, !tbaa !5
  %10125 = icmp eq i32 %10124, 201326593
  br i1 %10125, label %10179, label %10126

10126:                                            ; preds = %10120
  br label %10127

10127:                                            ; preds = %10126
  br label %10128

10128:                                            ; preds = %10127
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #10
  %10129 = call ptr @__errno_location() #11
  %10130 = load i32, ptr %10129, align 4, !tbaa !5
  store i32 %10130, ptr %251, align 4, !tbaa !5
  %10131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10132 = call i32 @s2n_print_stacktrace(ptr noundef %10131)
  %10133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10134 = trunc i8 %10133 to i1
  br i1 %10134, label %10135, label %10157

10135:                                            ; preds = %10128
  %10136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10137 = call i32 @fileno(ptr noundef %10136) #10
  %10138 = call i32 @isatty(i32 noundef %10137) #10
  %10139 = icmp ne i32 %10138, 0
  br i1 %10139, label %10140, label %10157

10140:                                            ; preds = %10135
  %10141 = load i32, ptr %251, align 4, !tbaa !5
  %10142 = call ptr @__errno_location() #11
  store i32 %10141, ptr %10142, align 4, !tbaa !5
  %10143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10144 = load i32, ptr @test_count, align 4, !tbaa !5
  %10145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10146 = load i32, ptr %10145, align 4, !tbaa !5
  %10147 = call ptr @s2n_strerror(i32 noundef %10146, ptr noundef @.str.4)
  %10148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10149 = load i32, ptr %10148, align 4, !tbaa !5
  %10150 = call ptr @s2n_strerror_debug(i32 noundef %10149, ptr noundef @.str.4)
  %10151 = call ptr @__errno_location() #11
  %10152 = load i32, ptr %10151, align 4, !tbaa !5
  %10153 = call ptr @strerror(i32 noundef %10152) #10
  %10154 = call ptr @__errno_location() #11
  %10155 = load i32, ptr %10154, align 4, !tbaa !5
  %10156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10143, ptr noundef @.str.2, i32 noundef %10144, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 479, ptr noundef %10147, ptr noundef %10150, ptr noundef %10153, i32 noundef %10155) #10
  br label %10174

10157:                                            ; preds = %10135, %10128
  %10158 = load i32, ptr %251, align 4, !tbaa !5
  %10159 = call ptr @__errno_location() #11
  store i32 %10158, ptr %10159, align 4, !tbaa !5
  %10160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10161 = load i32, ptr @test_count, align 4, !tbaa !5
  %10162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10163 = load i32, ptr %10162, align 4, !tbaa !5
  %10164 = call ptr @s2n_strerror(i32 noundef %10163, ptr noundef @.str.4)
  %10165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10166 = load i32, ptr %10165, align 4, !tbaa !5
  %10167 = call ptr @s2n_strerror_debug(i32 noundef %10166, ptr noundef @.str.4)
  %10168 = call ptr @__errno_location() #11
  %10169 = load i32, ptr %10168, align 4, !tbaa !5
  %10170 = call ptr @strerror(i32 noundef %10169) #10
  %10171 = call ptr @__errno_location() #11
  %10172 = load i32, ptr %10171, align 4, !tbaa !5
  %10173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10160, ptr noundef @.str.5, i32 noundef %10161, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 479, ptr noundef %10164, ptr noundef %10167, ptr noundef %10170, i32 noundef %10172) #10
  br label %10174

10174:                                            ; preds = %10157, %10140
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #10
  br label %10175

10175:                                            ; preds = %10174
  br label %10176

10176:                                            ; preds = %10175
  call void @exit(i32 noundef 1) #12
  unreachable

10177:                                            ; No predecessors!
  br label %10178

10178:                                            ; preds = %10177
  br label %10179

10179:                                            ; preds = %10178, %10120
  br label %10180

10180:                                            ; preds = %10179
  br label %10181

10181:                                            ; preds = %10180
  br label %10182

10182:                                            ; preds = %10181
  %10183 = load i32, ptr @test_count, align 4, !tbaa !5
  %10184 = add nsw i32 %10183, 1
  store i32 %10184, ptr @test_count, align 4, !tbaa !5
  %10185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10186 = load i32, ptr %10185, align 4, !tbaa !5
  %10187 = call ptr @s2n_strerror_debug(i32 noundef %10186, ptr noundef @.str.4)
  %10188 = icmp eq ptr %10187, null
  br i1 %10188, label %10189, label %10242

10189:                                            ; preds = %10182
  br label %10190

10190:                                            ; preds = %10189
  br label %10191

10191:                                            ; preds = %10190
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #10
  %10192 = call ptr @__errno_location() #11
  %10193 = load i32, ptr %10192, align 4, !tbaa !5
  store i32 %10193, ptr %252, align 4, !tbaa !5
  %10194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10195 = call i32 @s2n_print_stacktrace(ptr noundef %10194)
  %10196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10197 = trunc i8 %10196 to i1
  br i1 %10197, label %10198, label %10220

10198:                                            ; preds = %10191
  %10199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10200 = call i32 @fileno(ptr noundef %10199) #10
  %10201 = call i32 @isatty(i32 noundef %10200) #10
  %10202 = icmp ne i32 %10201, 0
  br i1 %10202, label %10203, label %10220

10203:                                            ; preds = %10198
  %10204 = load i32, ptr %252, align 4, !tbaa !5
  %10205 = call ptr @__errno_location() #11
  store i32 %10204, ptr %10205, align 4, !tbaa !5
  %10206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10207 = load i32, ptr @test_count, align 4, !tbaa !5
  %10208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10209 = load i32, ptr %10208, align 4, !tbaa !5
  %10210 = call ptr @s2n_strerror(i32 noundef %10209, ptr noundef @.str.4)
  %10211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10212 = load i32, ptr %10211, align 4, !tbaa !5
  %10213 = call ptr @s2n_strerror_debug(i32 noundef %10212, ptr noundef @.str.4)
  %10214 = call ptr @__errno_location() #11
  %10215 = load i32, ptr %10214, align 4, !tbaa !5
  %10216 = call ptr @strerror(i32 noundef %10215) #10
  %10217 = call ptr @__errno_location() #11
  %10218 = load i32, ptr %10217, align 4, !tbaa !5
  %10219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10206, ptr noundef @.str.2, i32 noundef %10207, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 479, ptr noundef %10210, ptr noundef %10213, ptr noundef %10216, i32 noundef %10218) #10
  br label %10237

10220:                                            ; preds = %10198, %10191
  %10221 = load i32, ptr %252, align 4, !tbaa !5
  %10222 = call ptr @__errno_location() #11
  store i32 %10221, ptr %10222, align 4, !tbaa !5
  %10223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10224 = load i32, ptr @test_count, align 4, !tbaa !5
  %10225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10226 = load i32, ptr %10225, align 4, !tbaa !5
  %10227 = call ptr @s2n_strerror(i32 noundef %10226, ptr noundef @.str.4)
  %10228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10229 = load i32, ptr %10228, align 4, !tbaa !5
  %10230 = call ptr @s2n_strerror_debug(i32 noundef %10229, ptr noundef @.str.4)
  %10231 = call ptr @__errno_location() #11
  %10232 = load i32, ptr %10231, align 4, !tbaa !5
  %10233 = call ptr @strerror(i32 noundef %10232) #10
  %10234 = call ptr @__errno_location() #11
  %10235 = load i32, ptr %10234, align 4, !tbaa !5
  %10236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10223, ptr noundef @.str.5, i32 noundef %10224, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 479, ptr noundef %10227, ptr noundef %10230, ptr noundef %10233, i32 noundef %10235) #10
  br label %10237

10237:                                            ; preds = %10220, %10203
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #10
  br label %10238

10238:                                            ; preds = %10237
  br label %10239

10239:                                            ; preds = %10238
  call void @exit(i32 noundef 1) #12
  unreachable

10240:                                            ; No predecessors!
  br label %10241

10241:                                            ; preds = %10240
  br label %10242

10242:                                            ; preds = %10241, %10182
  br label %10243

10243:                                            ; preds = %10242
  br label %10244

10244:                                            ; preds = %10243
  br label %10245

10245:                                            ; preds = %10244
  br label %10246

10246:                                            ; preds = %10245
  br label %10247

10247:                                            ; preds = %10246
  %10248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10248, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10249 = call ptr @__errno_location() #11
  store i32 0, ptr %10249, align 4, !tbaa !5
  br label %10250

10250:                                            ; preds = %10247
  br label %10251

10251:                                            ; preds = %10250
  br label %10252

10252:                                            ; preds = %10251
  br label %10253

10253:                                            ; preds = %10252
  br label %10254

10254:                                            ; preds = %10253
  %10255 = load i32, ptr @test_count, align 4, !tbaa !5
  %10256 = add nsw i32 %10255, 1
  store i32 %10256, ptr @test_count, align 4, !tbaa !5
  %10257 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %235, i32 0, i32 1
  %10258 = load i32, ptr %10257, align 4, !tbaa !27
  %10259 = icmp eq i32 %10258, 1
  br i1 %10259, label %10313, label %10260

10260:                                            ; preds = %10254
  br label %10261

10261:                                            ; preds = %10260
  br label %10262

10262:                                            ; preds = %10261
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #10
  %10263 = call ptr @__errno_location() #11
  %10264 = load i32, ptr %10263, align 4, !tbaa !5
  store i32 %10264, ptr %253, align 4, !tbaa !5
  %10265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10266 = call i32 @s2n_print_stacktrace(ptr noundef %10265)
  %10267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10268 = trunc i8 %10267 to i1
  br i1 %10268, label %10269, label %10291

10269:                                            ; preds = %10262
  %10270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10271 = call i32 @fileno(ptr noundef %10270) #10
  %10272 = call i32 @isatty(i32 noundef %10271) #10
  %10273 = icmp ne i32 %10272, 0
  br i1 %10273, label %10274, label %10291

10274:                                            ; preds = %10269
  %10275 = load i32, ptr %253, align 4, !tbaa !5
  %10276 = call ptr @__errno_location() #11
  store i32 %10275, ptr %10276, align 4, !tbaa !5
  %10277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10278 = load i32, ptr @test_count, align 4, !tbaa !5
  %10279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10280 = load i32, ptr %10279, align 4, !tbaa !5
  %10281 = call ptr @s2n_strerror(i32 noundef %10280, ptr noundef @.str.4)
  %10282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10283 = load i32, ptr %10282, align 4, !tbaa !5
  %10284 = call ptr @s2n_strerror_debug(i32 noundef %10283, ptr noundef @.str.4)
  %10285 = call ptr @__errno_location() #11
  %10286 = load i32, ptr %10285, align 4, !tbaa !5
  %10287 = call ptr @strerror(i32 noundef %10286) #10
  %10288 = call ptr @__errno_location() #11
  %10289 = load i32, ptr %10288, align 4, !tbaa !5
  %10290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10277, ptr noundef @.str.2, i32 noundef %10278, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 480, ptr noundef %10281, ptr noundef %10284, ptr noundef %10287, i32 noundef %10289) #10
  br label %10308

10291:                                            ; preds = %10269, %10262
  %10292 = load i32, ptr %253, align 4, !tbaa !5
  %10293 = call ptr @__errno_location() #11
  store i32 %10292, ptr %10293, align 4, !tbaa !5
  %10294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10295 = load i32, ptr @test_count, align 4, !tbaa !5
  %10296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10297 = load i32, ptr %10296, align 4, !tbaa !5
  %10298 = call ptr @s2n_strerror(i32 noundef %10297, ptr noundef @.str.4)
  %10299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10300 = load i32, ptr %10299, align 4, !tbaa !5
  %10301 = call ptr @s2n_strerror_debug(i32 noundef %10300, ptr noundef @.str.4)
  %10302 = call ptr @__errno_location() #11
  %10303 = load i32, ptr %10302, align 4, !tbaa !5
  %10304 = call ptr @strerror(i32 noundef %10303) #10
  %10305 = call ptr @__errno_location() #11
  %10306 = load i32, ptr %10305, align 4, !tbaa !5
  %10307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10294, ptr noundef @.str.5, i32 noundef %10295, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 480, ptr noundef %10298, ptr noundef %10301, ptr noundef %10304, i32 noundef %10306) #10
  br label %10308

10308:                                            ; preds = %10291, %10274
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #10
  br label %10309

10309:                                            ; preds = %10308
  br label %10310

10310:                                            ; preds = %10309
  call void @exit(i32 noundef 1) #12
  unreachable

10311:                                            ; No predecessors!
  br label %10312

10312:                                            ; preds = %10311
  br label %10313

10313:                                            ; preds = %10312, %10254
  br label %10314

10314:                                            ; preds = %10313
  br label %10315

10315:                                            ; preds = %10314
  br label %10316

10316:                                            ; preds = %10315
  %10317 = load i32, ptr %249, align 4, !tbaa !5
  %10318 = add nsw i32 %10317, 1
  store i32 %10318, ptr %249, align 4, !tbaa !5
  br label %10050, !llvm.loop !33

10319:                                            ; preds = %10053
  call void @llvm.lifetime.start.p0(i64 8, ptr %254) #10
  %10320 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %10320, ptr %254, align 8, !tbaa !9
  br label %10321

10321:                                            ; preds = %10319
  %10322 = load i32, ptr @test_count, align 4, !tbaa !5
  %10323 = add nsw i32 %10322, 1
  store i32 %10323, ptr @test_count, align 4, !tbaa !5
  %10324 = load ptr, ptr %254, align 8, !tbaa !9
  %10325 = icmp eq ptr %10324, null
  br i1 %10325, label %10326, label %10379

10326:                                            ; preds = %10321
  br label %10327

10327:                                            ; preds = %10326
  br label %10328

10328:                                            ; preds = %10327
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #10
  %10329 = call ptr @__errno_location() #11
  %10330 = load i32, ptr %10329, align 4, !tbaa !5
  store i32 %10330, ptr %255, align 4, !tbaa !5
  %10331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10332 = call i32 @s2n_print_stacktrace(ptr noundef %10331)
  %10333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10334 = trunc i8 %10333 to i1
  br i1 %10334, label %10335, label %10357

10335:                                            ; preds = %10328
  %10336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10337 = call i32 @fileno(ptr noundef %10336) #10
  %10338 = call i32 @isatty(i32 noundef %10337) #10
  %10339 = icmp ne i32 %10338, 0
  br i1 %10339, label %10340, label %10357

10340:                                            ; preds = %10335
  %10341 = load i32, ptr %255, align 4, !tbaa !5
  %10342 = call ptr @__errno_location() #11
  store i32 %10341, ptr %10342, align 4, !tbaa !5
  %10343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10344 = load i32, ptr @test_count, align 4, !tbaa !5
  %10345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10346 = load i32, ptr %10345, align 4, !tbaa !5
  %10347 = call ptr @s2n_strerror(i32 noundef %10346, ptr noundef @.str.4)
  %10348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10349 = load i32, ptr %10348, align 4, !tbaa !5
  %10350 = call ptr @s2n_strerror_debug(i32 noundef %10349, ptr noundef @.str.4)
  %10351 = call ptr @__errno_location() #11
  %10352 = load i32, ptr %10351, align 4, !tbaa !5
  %10353 = call ptr @strerror(i32 noundef %10352) #10
  %10354 = call ptr @__errno_location() #11
  %10355 = load i32, ptr %10354, align 4, !tbaa !5
  %10356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10343, ptr noundef @.str.2, i32 noundef %10344, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 486, ptr noundef %10347, ptr noundef %10350, ptr noundef %10353, i32 noundef %10355) #10
  br label %10374

10357:                                            ; preds = %10335, %10328
  %10358 = load i32, ptr %255, align 4, !tbaa !5
  %10359 = call ptr @__errno_location() #11
  store i32 %10358, ptr %10359, align 4, !tbaa !5
  %10360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10361 = load i32, ptr @test_count, align 4, !tbaa !5
  %10362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10363 = load i32, ptr %10362, align 4, !tbaa !5
  %10364 = call ptr @s2n_strerror(i32 noundef %10363, ptr noundef @.str.4)
  %10365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10366 = load i32, ptr %10365, align 4, !tbaa !5
  %10367 = call ptr @s2n_strerror_debug(i32 noundef %10366, ptr noundef @.str.4)
  %10368 = call ptr @__errno_location() #11
  %10369 = load i32, ptr %10368, align 4, !tbaa !5
  %10370 = call ptr @strerror(i32 noundef %10369) #10
  %10371 = call ptr @__errno_location() #11
  %10372 = load i32, ptr %10371, align 4, !tbaa !5
  %10373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10360, ptr noundef @.str.5, i32 noundef %10361, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 486, ptr noundef %10364, ptr noundef %10367, ptr noundef %10370, i32 noundef %10372) #10
  br label %10374

10374:                                            ; preds = %10357, %10340
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #10
  br label %10375

10375:                                            ; preds = %10374
  br label %10376

10376:                                            ; preds = %10375
  call void @exit(i32 noundef 1) #12
  unreachable

10377:                                            ; No predecessors!
  br label %10378

10378:                                            ; preds = %10377
  br label %10379

10379:                                            ; preds = %10378, %10321
  br label %10380

10380:                                            ; preds = %10379
  br label %10381

10381:                                            ; preds = %10380
  br label %10382

10382:                                            ; preds = %10381
  %10383 = load i32, ptr @test_count, align 4, !tbaa !5
  %10384 = add nsw i32 %10383, 1
  store i32 %10384, ptr @test_count, align 4, !tbaa !5
  %10385 = load ptr, ptr %240, align 8, !tbaa !9
  %10386 = load ptr, ptr %254, align 8, !tbaa !9
  %10387 = call i32 @s2n_connection_get_peer_cert_chain(ptr noundef %10385, ptr noundef %10386)
  %10388 = icmp eq i32 %10387, -1
  br i1 %10388, label %10389, label %10442

10389:                                            ; preds = %10382
  br label %10390

10390:                                            ; preds = %10389
  br label %10391

10391:                                            ; preds = %10390
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #10
  %10392 = call ptr @__errno_location() #11
  %10393 = load i32, ptr %10392, align 4, !tbaa !5
  store i32 %10393, ptr %256, align 4, !tbaa !5
  %10394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10395 = call i32 @s2n_print_stacktrace(ptr noundef %10394)
  %10396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10397 = trunc i8 %10396 to i1
  br i1 %10397, label %10398, label %10420

10398:                                            ; preds = %10391
  %10399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10400 = call i32 @fileno(ptr noundef %10399) #10
  %10401 = call i32 @isatty(i32 noundef %10400) #10
  %10402 = icmp ne i32 %10401, 0
  br i1 %10402, label %10403, label %10420

10403:                                            ; preds = %10398
  %10404 = load i32, ptr %256, align 4, !tbaa !5
  %10405 = call ptr @__errno_location() #11
  store i32 %10404, ptr %10405, align 4, !tbaa !5
  %10406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10407 = load i32, ptr @test_count, align 4, !tbaa !5
  %10408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10409 = load i32, ptr %10408, align 4, !tbaa !5
  %10410 = call ptr @s2n_strerror(i32 noundef %10409, ptr noundef @.str.4)
  %10411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10412 = load i32, ptr %10411, align 4, !tbaa !5
  %10413 = call ptr @s2n_strerror_debug(i32 noundef %10412, ptr noundef @.str.4)
  %10414 = call ptr @__errno_location() #11
  %10415 = load i32, ptr %10414, align 4, !tbaa !5
  %10416 = call ptr @strerror(i32 noundef %10415) #10
  %10417 = call ptr @__errno_location() #11
  %10418 = load i32, ptr %10417, align 4, !tbaa !5
  %10419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10406, ptr noundef @.str.2, i32 noundef %10407, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 487, ptr noundef %10410, ptr noundef %10413, ptr noundef %10416, i32 noundef %10418) #10
  br label %10437

10420:                                            ; preds = %10398, %10391
  %10421 = load i32, ptr %256, align 4, !tbaa !5
  %10422 = call ptr @__errno_location() #11
  store i32 %10421, ptr %10422, align 4, !tbaa !5
  %10423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10424 = load i32, ptr @test_count, align 4, !tbaa !5
  %10425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10426 = load i32, ptr %10425, align 4, !tbaa !5
  %10427 = call ptr @s2n_strerror(i32 noundef %10426, ptr noundef @.str.4)
  %10428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10429 = load i32, ptr %10428, align 4, !tbaa !5
  %10430 = call ptr @s2n_strerror_debug(i32 noundef %10429, ptr noundef @.str.4)
  %10431 = call ptr @__errno_location() #11
  %10432 = load i32, ptr %10431, align 4, !tbaa !5
  %10433 = call ptr @strerror(i32 noundef %10432) #10
  %10434 = call ptr @__errno_location() #11
  %10435 = load i32, ptr %10434, align 4, !tbaa !5
  %10436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10423, ptr noundef @.str.5, i32 noundef %10424, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 487, ptr noundef %10427, ptr noundef %10430, ptr noundef %10433, i32 noundef %10435) #10
  br label %10437

10437:                                            ; preds = %10420, %10403
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #10
  br label %10438

10438:                                            ; preds = %10437
  br label %10439

10439:                                            ; preds = %10438
  call void @exit(i32 noundef 1) #12
  unreachable

10440:                                            ; No predecessors!
  br label %10441

10441:                                            ; preds = %10440
  br label %10442

10442:                                            ; preds = %10441, %10382
  br label %10443

10443:                                            ; preds = %10442
  br label %10444

10444:                                            ; preds = %10443
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #10
  store i32 0, ptr %257, align 4, !tbaa !5
  br label %10445

10445:                                            ; preds = %10444
  %10446 = load i32, ptr @test_count, align 4, !tbaa !5
  %10447 = add nsw i32 %10446, 1
  store i32 %10447, ptr @test_count, align 4, !tbaa !5
  %10448 = load ptr, ptr %254, align 8, !tbaa !9
  %10449 = call i32 @s2n_cert_chain_get_length(ptr noundef %10448, ptr noundef %257)
  %10450 = icmp eq i32 %10449, -1
  br i1 %10450, label %10451, label %10504

10451:                                            ; preds = %10445
  br label %10452

10452:                                            ; preds = %10451
  br label %10453

10453:                                            ; preds = %10452
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #10
  %10454 = call ptr @__errno_location() #11
  %10455 = load i32, ptr %10454, align 4, !tbaa !5
  store i32 %10455, ptr %258, align 4, !tbaa !5
  %10456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10457 = call i32 @s2n_print_stacktrace(ptr noundef %10456)
  %10458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10459 = trunc i8 %10458 to i1
  br i1 %10459, label %10460, label %10482

10460:                                            ; preds = %10453
  %10461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10462 = call i32 @fileno(ptr noundef %10461) #10
  %10463 = call i32 @isatty(i32 noundef %10462) #10
  %10464 = icmp ne i32 %10463, 0
  br i1 %10464, label %10465, label %10482

10465:                                            ; preds = %10460
  %10466 = load i32, ptr %258, align 4, !tbaa !5
  %10467 = call ptr @__errno_location() #11
  store i32 %10466, ptr %10467, align 4, !tbaa !5
  %10468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10469 = load i32, ptr @test_count, align 4, !tbaa !5
  %10470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10471 = load i32, ptr %10470, align 4, !tbaa !5
  %10472 = call ptr @s2n_strerror(i32 noundef %10471, ptr noundef @.str.4)
  %10473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10474 = load i32, ptr %10473, align 4, !tbaa !5
  %10475 = call ptr @s2n_strerror_debug(i32 noundef %10474, ptr noundef @.str.4)
  %10476 = call ptr @__errno_location() #11
  %10477 = load i32, ptr %10476, align 4, !tbaa !5
  %10478 = call ptr @strerror(i32 noundef %10477) #10
  %10479 = call ptr @__errno_location() #11
  %10480 = load i32, ptr %10479, align 4, !tbaa !5
  %10481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10468, ptr noundef @.str.2, i32 noundef %10469, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 490, ptr noundef %10472, ptr noundef %10475, ptr noundef %10478, i32 noundef %10480) #10
  br label %10499

10482:                                            ; preds = %10460, %10453
  %10483 = load i32, ptr %258, align 4, !tbaa !5
  %10484 = call ptr @__errno_location() #11
  store i32 %10483, ptr %10484, align 4, !tbaa !5
  %10485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10486 = load i32, ptr @test_count, align 4, !tbaa !5
  %10487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10488 = load i32, ptr %10487, align 4, !tbaa !5
  %10489 = call ptr @s2n_strerror(i32 noundef %10488, ptr noundef @.str.4)
  %10490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10491 = load i32, ptr %10490, align 4, !tbaa !5
  %10492 = call ptr @s2n_strerror_debug(i32 noundef %10491, ptr noundef @.str.4)
  %10493 = call ptr @__errno_location() #11
  %10494 = load i32, ptr %10493, align 4, !tbaa !5
  %10495 = call ptr @strerror(i32 noundef %10494) #10
  %10496 = call ptr @__errno_location() #11
  %10497 = load i32, ptr %10496, align 4, !tbaa !5
  %10498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10485, ptr noundef @.str.5, i32 noundef %10486, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 490, ptr noundef %10489, ptr noundef %10492, ptr noundef %10495, i32 noundef %10497) #10
  br label %10499

10499:                                            ; preds = %10482, %10465
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #10
  br label %10500

10500:                                            ; preds = %10499
  br label %10501

10501:                                            ; preds = %10500
  call void @exit(i32 noundef 1) #12
  unreachable

10502:                                            ; No predecessors!
  br label %10503

10503:                                            ; preds = %10502
  br label %10504

10504:                                            ; preds = %10503, %10445
  br label %10505

10505:                                            ; preds = %10504
  br label %10506

10506:                                            ; preds = %10505
  br label %10507

10507:                                            ; preds = %10506
  %10508 = load i32, ptr @test_count, align 4, !tbaa !5
  %10509 = add nsw i32 %10508, 1
  store i32 %10509, ptr @test_count, align 4, !tbaa !5
  %10510 = load i32, ptr %257, align 4, !tbaa !5
  %10511 = icmp ugt i32 %10510, 0
  br i1 %10511, label %10565, label %10512

10512:                                            ; preds = %10507
  br label %10513

10513:                                            ; preds = %10512
  br label %10514

10514:                                            ; preds = %10513
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #10
  %10515 = call ptr @__errno_location() #11
  %10516 = load i32, ptr %10515, align 4, !tbaa !5
  store i32 %10516, ptr %259, align 4, !tbaa !5
  %10517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10518 = call i32 @s2n_print_stacktrace(ptr noundef %10517)
  %10519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10520 = trunc i8 %10519 to i1
  br i1 %10520, label %10521, label %10543

10521:                                            ; preds = %10514
  %10522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10523 = call i32 @fileno(ptr noundef %10522) #10
  %10524 = call i32 @isatty(i32 noundef %10523) #10
  %10525 = icmp ne i32 %10524, 0
  br i1 %10525, label %10526, label %10543

10526:                                            ; preds = %10521
  %10527 = load i32, ptr %259, align 4, !tbaa !5
  %10528 = call ptr @__errno_location() #11
  store i32 %10527, ptr %10528, align 4, !tbaa !5
  %10529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10530 = load i32, ptr @test_count, align 4, !tbaa !5
  %10531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10532 = load i32, ptr %10531, align 4, !tbaa !5
  %10533 = call ptr @s2n_strerror(i32 noundef %10532, ptr noundef @.str.4)
  %10534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10535 = load i32, ptr %10534, align 4, !tbaa !5
  %10536 = call ptr @s2n_strerror_debug(i32 noundef %10535, ptr noundef @.str.4)
  %10537 = call ptr @__errno_location() #11
  %10538 = load i32, ptr %10537, align 4, !tbaa !5
  %10539 = call ptr @strerror(i32 noundef %10538) #10
  %10540 = call ptr @__errno_location() #11
  %10541 = load i32, ptr %10540, align 4, !tbaa !5
  %10542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10529, ptr noundef @.str.2, i32 noundef %10530, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 491, ptr noundef %10533, ptr noundef %10536, ptr noundef %10539, i32 noundef %10541) #10
  br label %10560

10543:                                            ; preds = %10521, %10514
  %10544 = load i32, ptr %259, align 4, !tbaa !5
  %10545 = call ptr @__errno_location() #11
  store i32 %10544, ptr %10545, align 4, !tbaa !5
  %10546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10547 = load i32, ptr @test_count, align 4, !tbaa !5
  %10548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10549 = load i32, ptr %10548, align 4, !tbaa !5
  %10550 = call ptr @s2n_strerror(i32 noundef %10549, ptr noundef @.str.4)
  %10551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10552 = load i32, ptr %10551, align 4, !tbaa !5
  %10553 = call ptr @s2n_strerror_debug(i32 noundef %10552, ptr noundef @.str.4)
  %10554 = call ptr @__errno_location() #11
  %10555 = load i32, ptr %10554, align 4, !tbaa !5
  %10556 = call ptr @strerror(i32 noundef %10555) #10
  %10557 = call ptr @__errno_location() #11
  %10558 = load i32, ptr %10557, align 4, !tbaa !5
  %10559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10546, ptr noundef @.str.5, i32 noundef %10547, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 491, ptr noundef %10550, ptr noundef %10553, ptr noundef %10556, i32 noundef %10558) #10
  br label %10560

10560:                                            ; preds = %10543, %10526
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #10
  br label %10561

10561:                                            ; preds = %10560
  br label %10562

10562:                                            ; preds = %10561
  call void @exit(i32 noundef 1) #12
  unreachable

10563:                                            ; No predecessors!
  br label %10564

10564:                                            ; preds = %10563
  br label %10565

10565:                                            ; preds = %10564, %10507
  br label %10566

10566:                                            ; preds = %10565
  br label %10567

10567:                                            ; preds = %10566
  call void @llvm.lifetime.start.p0(i64 8, ptr %260) #10
  %10568 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %235, i32 0, i32 2
  %10569 = load ptr, ptr %10568, align 8, !tbaa !34
  store ptr %10569, ptr %260, align 8, !tbaa !9
  br label %10570

10570:                                            ; preds = %10567
  %10571 = load i32, ptr @test_count, align 4, !tbaa !5
  %10572 = add nsw i32 %10571, 1
  store i32 %10572, ptr @test_count, align 4, !tbaa !5
  %10573 = load ptr, ptr %260, align 8, !tbaa !9
  %10574 = icmp eq ptr %10573, null
  br i1 %10574, label %10575, label %10628

10575:                                            ; preds = %10570
  br label %10576

10576:                                            ; preds = %10575
  br label %10577

10577:                                            ; preds = %10576
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #10
  %10578 = call ptr @__errno_location() #11
  %10579 = load i32, ptr %10578, align 4, !tbaa !5
  store i32 %10579, ptr %261, align 4, !tbaa !5
  %10580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10581 = call i32 @s2n_print_stacktrace(ptr noundef %10580)
  %10582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10583 = trunc i8 %10582 to i1
  br i1 %10583, label %10584, label %10606

10584:                                            ; preds = %10577
  %10585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10586 = call i32 @fileno(ptr noundef %10585) #10
  %10587 = call i32 @isatty(i32 noundef %10586) #10
  %10588 = icmp ne i32 %10587, 0
  br i1 %10588, label %10589, label %10606

10589:                                            ; preds = %10584
  %10590 = load i32, ptr %261, align 4, !tbaa !5
  %10591 = call ptr @__errno_location() #11
  store i32 %10590, ptr %10591, align 4, !tbaa !5
  %10592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10593 = load i32, ptr @test_count, align 4, !tbaa !5
  %10594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10595 = load i32, ptr %10594, align 4, !tbaa !5
  %10596 = call ptr @s2n_strerror(i32 noundef %10595, ptr noundef @.str.4)
  %10597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10598 = load i32, ptr %10597, align 4, !tbaa !5
  %10599 = call ptr @s2n_strerror_debug(i32 noundef %10598, ptr noundef @.str.4)
  %10600 = call ptr @__errno_location() #11
  %10601 = load i32, ptr %10600, align 4, !tbaa !5
  %10602 = call ptr @strerror(i32 noundef %10601) #10
  %10603 = call ptr @__errno_location() #11
  %10604 = load i32, ptr %10603, align 4, !tbaa !5
  %10605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10592, ptr noundef @.str.2, i32 noundef %10593, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 494, ptr noundef %10596, ptr noundef %10599, ptr noundef %10602, i32 noundef %10604) #10
  br label %10623

10606:                                            ; preds = %10584, %10577
  %10607 = load i32, ptr %261, align 4, !tbaa !5
  %10608 = call ptr @__errno_location() #11
  store i32 %10607, ptr %10608, align 4, !tbaa !5
  %10609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10610 = load i32, ptr @test_count, align 4, !tbaa !5
  %10611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10612 = load i32, ptr %10611, align 4, !tbaa !5
  %10613 = call ptr @s2n_strerror(i32 noundef %10612, ptr noundef @.str.4)
  %10614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10615 = load i32, ptr %10614, align 4, !tbaa !5
  %10616 = call ptr @s2n_strerror_debug(i32 noundef %10615, ptr noundef @.str.4)
  %10617 = call ptr @__errno_location() #11
  %10618 = load i32, ptr %10617, align 4, !tbaa !5
  %10619 = call ptr @strerror(i32 noundef %10618) #10
  %10620 = call ptr @__errno_location() #11
  %10621 = load i32, ptr %10620, align 4, !tbaa !5
  %10622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10609, ptr noundef @.str.5, i32 noundef %10610, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 494, ptr noundef %10613, ptr noundef %10616, ptr noundef %10619, i32 noundef %10621) #10
  br label %10623

10623:                                            ; preds = %10606, %10589
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #10
  br label %10624

10624:                                            ; preds = %10623
  br label %10625

10625:                                            ; preds = %10624
  call void @exit(i32 noundef 1) #12
  unreachable

10626:                                            ; No predecessors!
  br label %10627

10627:                                            ; preds = %10626
  br label %10628

10628:                                            ; preds = %10627, %10570
  br label %10629

10629:                                            ; preds = %10628
  br label %10630

10630:                                            ; preds = %10629
  %10631 = load i32, ptr %228, align 4, !tbaa !5
  %10632 = sext i32 %10631 to i64
  %10633 = getelementptr inbounds [2 x %struct.s2n_cert_validation_data], ptr %226, i64 0, i64 %10632
  %10634 = load i8, ptr %10633, align 16
  %10635 = lshr i8 %10634, 1
  %10636 = and i8 %10635, 1
  %10637 = zext i8 %10636 to i32
  %10638 = icmp ne i32 %10637, 0
  br i1 %10638, label %10639, label %10765

10639:                                            ; preds = %10630
  br label %10640

10640:                                            ; preds = %10639
  %10641 = load i32, ptr @test_count, align 4, !tbaa !5
  %10642 = add nsw i32 %10641, 1
  store i32 %10642, ptr @test_count, align 4, !tbaa !5
  %10643 = load ptr, ptr %260, align 8, !tbaa !9
  %10644 = call i32 @s2n_cert_validation_accept(ptr noundef %10643)
  %10645 = icmp eq i32 %10644, -1
  br i1 %10645, label %10646, label %10699

10646:                                            ; preds = %10640
  br label %10647

10647:                                            ; preds = %10646
  br label %10648

10648:                                            ; preds = %10647
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #10
  %10649 = call ptr @__errno_location() #11
  %10650 = load i32, ptr %10649, align 4, !tbaa !5
  store i32 %10650, ptr %262, align 4, !tbaa !5
  %10651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10652 = call i32 @s2n_print_stacktrace(ptr noundef %10651)
  %10653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10654 = trunc i8 %10653 to i1
  br i1 %10654, label %10655, label %10677

10655:                                            ; preds = %10648
  %10656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10657 = call i32 @fileno(ptr noundef %10656) #10
  %10658 = call i32 @isatty(i32 noundef %10657) #10
  %10659 = icmp ne i32 %10658, 0
  br i1 %10659, label %10660, label %10677

10660:                                            ; preds = %10655
  %10661 = load i32, ptr %262, align 4, !tbaa !5
  %10662 = call ptr @__errno_location() #11
  store i32 %10661, ptr %10662, align 4, !tbaa !5
  %10663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10664 = load i32, ptr @test_count, align 4, !tbaa !5
  %10665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10666 = load i32, ptr %10665, align 4, !tbaa !5
  %10667 = call ptr @s2n_strerror(i32 noundef %10666, ptr noundef @.str.4)
  %10668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10669 = load i32, ptr %10668, align 4, !tbaa !5
  %10670 = call ptr @s2n_strerror_debug(i32 noundef %10669, ptr noundef @.str.4)
  %10671 = call ptr @__errno_location() #11
  %10672 = load i32, ptr %10671, align 4, !tbaa !5
  %10673 = call ptr @strerror(i32 noundef %10672) #10
  %10674 = call ptr @__errno_location() #11
  %10675 = load i32, ptr %10674, align 4, !tbaa !5
  %10676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10663, ptr noundef @.str.2, i32 noundef %10664, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 497, ptr noundef %10667, ptr noundef %10670, ptr noundef %10673, i32 noundef %10675) #10
  br label %10694

10677:                                            ; preds = %10655, %10648
  %10678 = load i32, ptr %262, align 4, !tbaa !5
  %10679 = call ptr @__errno_location() #11
  store i32 %10678, ptr %10679, align 4, !tbaa !5
  %10680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10681 = load i32, ptr @test_count, align 4, !tbaa !5
  %10682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10683 = load i32, ptr %10682, align 4, !tbaa !5
  %10684 = call ptr @s2n_strerror(i32 noundef %10683, ptr noundef @.str.4)
  %10685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10686 = load i32, ptr %10685, align 4, !tbaa !5
  %10687 = call ptr @s2n_strerror_debug(i32 noundef %10686, ptr noundef @.str.4)
  %10688 = call ptr @__errno_location() #11
  %10689 = load i32, ptr %10688, align 4, !tbaa !5
  %10690 = call ptr @strerror(i32 noundef %10689) #10
  %10691 = call ptr @__errno_location() #11
  %10692 = load i32, ptr %10691, align 4, !tbaa !5
  %10693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10680, ptr noundef @.str.5, i32 noundef %10681, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 497, ptr noundef %10684, ptr noundef %10687, ptr noundef %10690, i32 noundef %10692) #10
  br label %10694

10694:                                            ; preds = %10677, %10660
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #10
  br label %10695

10695:                                            ; preds = %10694
  br label %10696

10696:                                            ; preds = %10695
  call void @exit(i32 noundef 1) #12
  unreachable

10697:                                            ; No predecessors!
  br label %10698

10698:                                            ; preds = %10697
  br label %10699

10699:                                            ; preds = %10698, %10640
  br label %10700

10700:                                            ; preds = %10699
  br label %10701

10701:                                            ; preds = %10700
  br label %10702

10702:                                            ; preds = %10701
  %10703 = load i32, ptr @test_count, align 4, !tbaa !5
  %10704 = add nsw i32 %10703, 1
  store i32 %10704, ptr @test_count, align 4, !tbaa !5
  %10705 = load ptr, ptr %237, align 8, !tbaa !9
  %10706 = load ptr, ptr %240, align 8, !tbaa !9
  %10707 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %10705, ptr noundef %10706)
  %10708 = icmp eq i32 %10707, -1
  br i1 %10708, label %10709, label %10762

10709:                                            ; preds = %10702
  br label %10710

10710:                                            ; preds = %10709
  br label %10711

10711:                                            ; preds = %10710
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #10
  %10712 = call ptr @__errno_location() #11
  %10713 = load i32, ptr %10712, align 4, !tbaa !5
  store i32 %10713, ptr %263, align 4, !tbaa !5
  %10714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10715 = call i32 @s2n_print_stacktrace(ptr noundef %10714)
  %10716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10717 = trunc i8 %10716 to i1
  br i1 %10717, label %10718, label %10740

10718:                                            ; preds = %10711
  %10719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10720 = call i32 @fileno(ptr noundef %10719) #10
  %10721 = call i32 @isatty(i32 noundef %10720) #10
  %10722 = icmp ne i32 %10721, 0
  br i1 %10722, label %10723, label %10740

10723:                                            ; preds = %10718
  %10724 = load i32, ptr %263, align 4, !tbaa !5
  %10725 = call ptr @__errno_location() #11
  store i32 %10724, ptr %10725, align 4, !tbaa !5
  %10726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10727 = load i32, ptr @test_count, align 4, !tbaa !5
  %10728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10729 = load i32, ptr %10728, align 4, !tbaa !5
  %10730 = call ptr @s2n_strerror(i32 noundef %10729, ptr noundef @.str.4)
  %10731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10732 = load i32, ptr %10731, align 4, !tbaa !5
  %10733 = call ptr @s2n_strerror_debug(i32 noundef %10732, ptr noundef @.str.4)
  %10734 = call ptr @__errno_location() #11
  %10735 = load i32, ptr %10734, align 4, !tbaa !5
  %10736 = call ptr @strerror(i32 noundef %10735) #10
  %10737 = call ptr @__errno_location() #11
  %10738 = load i32, ptr %10737, align 4, !tbaa !5
  %10739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10726, ptr noundef @.str.2, i32 noundef %10727, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 498, ptr noundef %10730, ptr noundef %10733, ptr noundef %10736, i32 noundef %10738) #10
  br label %10757

10740:                                            ; preds = %10718, %10711
  %10741 = load i32, ptr %263, align 4, !tbaa !5
  %10742 = call ptr @__errno_location() #11
  store i32 %10741, ptr %10742, align 4, !tbaa !5
  %10743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10744 = load i32, ptr @test_count, align 4, !tbaa !5
  %10745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10746 = load i32, ptr %10745, align 4, !tbaa !5
  %10747 = call ptr @s2n_strerror(i32 noundef %10746, ptr noundef @.str.4)
  %10748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10749 = load i32, ptr %10748, align 4, !tbaa !5
  %10750 = call ptr @s2n_strerror_debug(i32 noundef %10749, ptr noundef @.str.4)
  %10751 = call ptr @__errno_location() #11
  %10752 = load i32, ptr %10751, align 4, !tbaa !5
  %10753 = call ptr @strerror(i32 noundef %10752) #10
  %10754 = call ptr @__errno_location() #11
  %10755 = load i32, ptr %10754, align 4, !tbaa !5
  %10756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10743, ptr noundef @.str.5, i32 noundef %10744, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 498, ptr noundef %10747, ptr noundef %10750, ptr noundef %10753, i32 noundef %10755) #10
  br label %10757

10757:                                            ; preds = %10740, %10723
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #10
  br label %10758

10758:                                            ; preds = %10757
  br label %10759

10759:                                            ; preds = %10758
  call void @exit(i32 noundef 1) #12
  unreachable

10760:                                            ; No predecessors!
  br label %10761

10761:                                            ; preds = %10760
  br label %10762

10762:                                            ; preds = %10761, %10702
  br label %10763

10763:                                            ; preds = %10762
  br label %10764

10764:                                            ; preds = %10763
  br label %11027

10765:                                            ; preds = %10630
  br label %10766

10766:                                            ; preds = %10765
  %10767 = load i32, ptr @test_count, align 4, !tbaa !5
  %10768 = add nsw i32 %10767, 1
  store i32 %10768, ptr @test_count, align 4, !tbaa !5
  %10769 = load ptr, ptr %260, align 8, !tbaa !9
  %10770 = call i32 @s2n_cert_validation_reject(ptr noundef %10769)
  %10771 = icmp eq i32 %10770, -1
  br i1 %10771, label %10772, label %10825

10772:                                            ; preds = %10766
  br label %10773

10773:                                            ; preds = %10772
  br label %10774

10774:                                            ; preds = %10773
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #10
  %10775 = call ptr @__errno_location() #11
  %10776 = load i32, ptr %10775, align 4, !tbaa !5
  store i32 %10776, ptr %264, align 4, !tbaa !5
  %10777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10778 = call i32 @s2n_print_stacktrace(ptr noundef %10777)
  %10779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10780 = trunc i8 %10779 to i1
  br i1 %10780, label %10781, label %10803

10781:                                            ; preds = %10774
  %10782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10783 = call i32 @fileno(ptr noundef %10782) #10
  %10784 = call i32 @isatty(i32 noundef %10783) #10
  %10785 = icmp ne i32 %10784, 0
  br i1 %10785, label %10786, label %10803

10786:                                            ; preds = %10781
  %10787 = load i32, ptr %264, align 4, !tbaa !5
  %10788 = call ptr @__errno_location() #11
  store i32 %10787, ptr %10788, align 4, !tbaa !5
  %10789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10790 = load i32, ptr @test_count, align 4, !tbaa !5
  %10791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10792 = load i32, ptr %10791, align 4, !tbaa !5
  %10793 = call ptr @s2n_strerror(i32 noundef %10792, ptr noundef @.str.4)
  %10794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10795 = load i32, ptr %10794, align 4, !tbaa !5
  %10796 = call ptr @s2n_strerror_debug(i32 noundef %10795, ptr noundef @.str.4)
  %10797 = call ptr @__errno_location() #11
  %10798 = load i32, ptr %10797, align 4, !tbaa !5
  %10799 = call ptr @strerror(i32 noundef %10798) #10
  %10800 = call ptr @__errno_location() #11
  %10801 = load i32, ptr %10800, align 4, !tbaa !5
  %10802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10789, ptr noundef @.str.2, i32 noundef %10790, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 500, ptr noundef %10793, ptr noundef %10796, ptr noundef %10799, i32 noundef %10801) #10
  br label %10820

10803:                                            ; preds = %10781, %10774
  %10804 = load i32, ptr %264, align 4, !tbaa !5
  %10805 = call ptr @__errno_location() #11
  store i32 %10804, ptr %10805, align 4, !tbaa !5
  %10806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10807 = load i32, ptr @test_count, align 4, !tbaa !5
  %10808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10809 = load i32, ptr %10808, align 4, !tbaa !5
  %10810 = call ptr @s2n_strerror(i32 noundef %10809, ptr noundef @.str.4)
  %10811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10812 = load i32, ptr %10811, align 4, !tbaa !5
  %10813 = call ptr @s2n_strerror_debug(i32 noundef %10812, ptr noundef @.str.4)
  %10814 = call ptr @__errno_location() #11
  %10815 = load i32, ptr %10814, align 4, !tbaa !5
  %10816 = call ptr @strerror(i32 noundef %10815) #10
  %10817 = call ptr @__errno_location() #11
  %10818 = load i32, ptr %10817, align 4, !tbaa !5
  %10819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10806, ptr noundef @.str.5, i32 noundef %10807, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 500, ptr noundef %10810, ptr noundef %10813, ptr noundef %10816, i32 noundef %10818) #10
  br label %10820

10820:                                            ; preds = %10803, %10786
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #10
  br label %10821

10821:                                            ; preds = %10820
  br label %10822

10822:                                            ; preds = %10821
  call void @exit(i32 noundef 1) #12
  unreachable

10823:                                            ; No predecessors!
  br label %10824

10824:                                            ; preds = %10823
  br label %10825

10825:                                            ; preds = %10824, %10766
  br label %10826

10826:                                            ; preds = %10825
  br label %10827

10827:                                            ; preds = %10826
  br label %10828

10828:                                            ; preds = %10827
  br label %10829

10829:                                            ; preds = %10828
  br label %10830

10830:                                            ; preds = %10829
  %10831 = load i32, ptr @test_count, align 4, !tbaa !5
  %10832 = add nsw i32 %10831, 1
  store i32 %10832, ptr @test_count, align 4, !tbaa !5
  %10833 = load ptr, ptr %237, align 8, !tbaa !9
  %10834 = load ptr, ptr %240, align 8, !tbaa !9
  %10835 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %10833, ptr noundef %10834)
  %10836 = icmp eq i32 %10835, -1
  br i1 %10836, label %10890, label %10837

10837:                                            ; preds = %10830
  br label %10838

10838:                                            ; preds = %10837
  br label %10839

10839:                                            ; preds = %10838
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #10
  %10840 = call ptr @__errno_location() #11
  %10841 = load i32, ptr %10840, align 4, !tbaa !5
  store i32 %10841, ptr %265, align 4, !tbaa !5
  %10842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10843 = call i32 @s2n_print_stacktrace(ptr noundef %10842)
  %10844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10845 = trunc i8 %10844 to i1
  br i1 %10845, label %10846, label %10868

10846:                                            ; preds = %10839
  %10847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10848 = call i32 @fileno(ptr noundef %10847) #10
  %10849 = call i32 @isatty(i32 noundef %10848) #10
  %10850 = icmp ne i32 %10849, 0
  br i1 %10850, label %10851, label %10868

10851:                                            ; preds = %10846
  %10852 = load i32, ptr %265, align 4, !tbaa !5
  %10853 = call ptr @__errno_location() #11
  store i32 %10852, ptr %10853, align 4, !tbaa !5
  %10854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10855 = load i32, ptr @test_count, align 4, !tbaa !5
  %10856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10857 = load i32, ptr %10856, align 4, !tbaa !5
  %10858 = call ptr @s2n_strerror(i32 noundef %10857, ptr noundef @.str.4)
  %10859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10860 = load i32, ptr %10859, align 4, !tbaa !5
  %10861 = call ptr @s2n_strerror_debug(i32 noundef %10860, ptr noundef @.str.4)
  %10862 = call ptr @__errno_location() #11
  %10863 = load i32, ptr %10862, align 4, !tbaa !5
  %10864 = call ptr @strerror(i32 noundef %10863) #10
  %10865 = call ptr @__errno_location() #11
  %10866 = load i32, ptr %10865, align 4, !tbaa !5
  %10867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10854, ptr noundef @.str.2, i32 noundef %10855, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 502, ptr noundef %10858, ptr noundef %10861, ptr noundef %10864, i32 noundef %10866) #10
  br label %10885

10868:                                            ; preds = %10846, %10839
  %10869 = load i32, ptr %265, align 4, !tbaa !5
  %10870 = call ptr @__errno_location() #11
  store i32 %10869, ptr %10870, align 4, !tbaa !5
  %10871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10872 = load i32, ptr @test_count, align 4, !tbaa !5
  %10873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10874 = load i32, ptr %10873, align 4, !tbaa !5
  %10875 = call ptr @s2n_strerror(i32 noundef %10874, ptr noundef @.str.4)
  %10876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10877 = load i32, ptr %10876, align 4, !tbaa !5
  %10878 = call ptr @s2n_strerror_debug(i32 noundef %10877, ptr noundef @.str.4)
  %10879 = call ptr @__errno_location() #11
  %10880 = load i32, ptr %10879, align 4, !tbaa !5
  %10881 = call ptr @strerror(i32 noundef %10880) #10
  %10882 = call ptr @__errno_location() #11
  %10883 = load i32, ptr %10882, align 4, !tbaa !5
  %10884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10871, ptr noundef @.str.5, i32 noundef %10872, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 502, ptr noundef %10875, ptr noundef %10878, ptr noundef %10881, i32 noundef %10883) #10
  br label %10885

10885:                                            ; preds = %10868, %10851
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #10
  br label %10886

10886:                                            ; preds = %10885
  br label %10887

10887:                                            ; preds = %10886
  call void @exit(i32 noundef 1) #12
  unreachable

10888:                                            ; No predecessors!
  br label %10889

10889:                                            ; preds = %10888
  br label %10890

10890:                                            ; preds = %10889, %10830
  br label %10891

10891:                                            ; preds = %10890
  br label %10892

10892:                                            ; preds = %10891
  br label %10893

10893:                                            ; preds = %10892
  %10894 = load i32, ptr @test_count, align 4, !tbaa !5
  %10895 = add nsw i32 %10894, 1
  store i32 %10895, ptr @test_count, align 4, !tbaa !5
  %10896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10897 = load i32, ptr %10896, align 4, !tbaa !5
  %10898 = icmp eq i32 %10897, 335544373
  br i1 %10898, label %10952, label %10899

10899:                                            ; preds = %10893
  br label %10900

10900:                                            ; preds = %10899
  br label %10901

10901:                                            ; preds = %10900
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #10
  %10902 = call ptr @__errno_location() #11
  %10903 = load i32, ptr %10902, align 4, !tbaa !5
  store i32 %10903, ptr %266, align 4, !tbaa !5
  %10904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10905 = call i32 @s2n_print_stacktrace(ptr noundef %10904)
  %10906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10907 = trunc i8 %10906 to i1
  br i1 %10907, label %10908, label %10930

10908:                                            ; preds = %10901
  %10909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10910 = call i32 @fileno(ptr noundef %10909) #10
  %10911 = call i32 @isatty(i32 noundef %10910) #10
  %10912 = icmp ne i32 %10911, 0
  br i1 %10912, label %10913, label %10930

10913:                                            ; preds = %10908
  %10914 = load i32, ptr %266, align 4, !tbaa !5
  %10915 = call ptr @__errno_location() #11
  store i32 %10914, ptr %10915, align 4, !tbaa !5
  %10916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10917 = load i32, ptr @test_count, align 4, !tbaa !5
  %10918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10919 = load i32, ptr %10918, align 4, !tbaa !5
  %10920 = call ptr @s2n_strerror(i32 noundef %10919, ptr noundef @.str.4)
  %10921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10922 = load i32, ptr %10921, align 4, !tbaa !5
  %10923 = call ptr @s2n_strerror_debug(i32 noundef %10922, ptr noundef @.str.4)
  %10924 = call ptr @__errno_location() #11
  %10925 = load i32, ptr %10924, align 4, !tbaa !5
  %10926 = call ptr @strerror(i32 noundef %10925) #10
  %10927 = call ptr @__errno_location() #11
  %10928 = load i32, ptr %10927, align 4, !tbaa !5
  %10929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10916, ptr noundef @.str.2, i32 noundef %10917, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 502, ptr noundef %10920, ptr noundef %10923, ptr noundef %10926, i32 noundef %10928) #10
  br label %10947

10930:                                            ; preds = %10908, %10901
  %10931 = load i32, ptr %266, align 4, !tbaa !5
  %10932 = call ptr @__errno_location() #11
  store i32 %10931, ptr %10932, align 4, !tbaa !5
  %10933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10934 = load i32, ptr @test_count, align 4, !tbaa !5
  %10935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10936 = load i32, ptr %10935, align 4, !tbaa !5
  %10937 = call ptr @s2n_strerror(i32 noundef %10936, ptr noundef @.str.4)
  %10938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10939 = load i32, ptr %10938, align 4, !tbaa !5
  %10940 = call ptr @s2n_strerror_debug(i32 noundef %10939, ptr noundef @.str.4)
  %10941 = call ptr @__errno_location() #11
  %10942 = load i32, ptr %10941, align 4, !tbaa !5
  %10943 = call ptr @strerror(i32 noundef %10942) #10
  %10944 = call ptr @__errno_location() #11
  %10945 = load i32, ptr %10944, align 4, !tbaa !5
  %10946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10933, ptr noundef @.str.5, i32 noundef %10934, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 502, ptr noundef %10937, ptr noundef %10940, ptr noundef %10943, i32 noundef %10945) #10
  br label %10947

10947:                                            ; preds = %10930, %10913
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #10
  br label %10948

10948:                                            ; preds = %10947
  br label %10949

10949:                                            ; preds = %10948
  call void @exit(i32 noundef 1) #12
  unreachable

10950:                                            ; No predecessors!
  br label %10951

10951:                                            ; preds = %10950
  br label %10952

10952:                                            ; preds = %10951, %10893
  br label %10953

10953:                                            ; preds = %10952
  br label %10954

10954:                                            ; preds = %10953
  br label %10955

10955:                                            ; preds = %10954
  %10956 = load i32, ptr @test_count, align 4, !tbaa !5
  %10957 = add nsw i32 %10956, 1
  store i32 %10957, ptr @test_count, align 4, !tbaa !5
  %10958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10959 = load i32, ptr %10958, align 4, !tbaa !5
  %10960 = call ptr @s2n_strerror_debug(i32 noundef %10959, ptr noundef @.str.4)
  %10961 = icmp eq ptr %10960, null
  br i1 %10961, label %10962, label %11015

10962:                                            ; preds = %10955
  br label %10963

10963:                                            ; preds = %10962
  br label %10964

10964:                                            ; preds = %10963
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #10
  %10965 = call ptr @__errno_location() #11
  %10966 = load i32, ptr %10965, align 4, !tbaa !5
  store i32 %10966, ptr %267, align 4, !tbaa !5
  %10967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10968 = call i32 @s2n_print_stacktrace(ptr noundef %10967)
  %10969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10970 = trunc i8 %10969 to i1
  br i1 %10970, label %10971, label %10993

10971:                                            ; preds = %10964
  %10972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10973 = call i32 @fileno(ptr noundef %10972) #10
  %10974 = call i32 @isatty(i32 noundef %10973) #10
  %10975 = icmp ne i32 %10974, 0
  br i1 %10975, label %10976, label %10993

10976:                                            ; preds = %10971
  %10977 = load i32, ptr %267, align 4, !tbaa !5
  %10978 = call ptr @__errno_location() #11
  store i32 %10977, ptr %10978, align 4, !tbaa !5
  %10979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10980 = load i32, ptr @test_count, align 4, !tbaa !5
  %10981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10982 = load i32, ptr %10981, align 4, !tbaa !5
  %10983 = call ptr @s2n_strerror(i32 noundef %10982, ptr noundef @.str.4)
  %10984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10985 = load i32, ptr %10984, align 4, !tbaa !5
  %10986 = call ptr @s2n_strerror_debug(i32 noundef %10985, ptr noundef @.str.4)
  %10987 = call ptr @__errno_location() #11
  %10988 = load i32, ptr %10987, align 4, !tbaa !5
  %10989 = call ptr @strerror(i32 noundef %10988) #10
  %10990 = call ptr @__errno_location() #11
  %10991 = load i32, ptr %10990, align 4, !tbaa !5
  %10992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10979, ptr noundef @.str.2, i32 noundef %10980, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 502, ptr noundef %10983, ptr noundef %10986, ptr noundef %10989, i32 noundef %10991) #10
  br label %11010

10993:                                            ; preds = %10971, %10964
  %10994 = load i32, ptr %267, align 4, !tbaa !5
  %10995 = call ptr @__errno_location() #11
  store i32 %10994, ptr %10995, align 4, !tbaa !5
  %10996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10997 = load i32, ptr @test_count, align 4, !tbaa !5
  %10998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10999 = load i32, ptr %10998, align 4, !tbaa !5
  %11000 = call ptr @s2n_strerror(i32 noundef %10999, ptr noundef @.str.4)
  %11001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11002 = load i32, ptr %11001, align 4, !tbaa !5
  %11003 = call ptr @s2n_strerror_debug(i32 noundef %11002, ptr noundef @.str.4)
  %11004 = call ptr @__errno_location() #11
  %11005 = load i32, ptr %11004, align 4, !tbaa !5
  %11006 = call ptr @strerror(i32 noundef %11005) #10
  %11007 = call ptr @__errno_location() #11
  %11008 = load i32, ptr %11007, align 4, !tbaa !5
  %11009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10996, ptr noundef @.str.5, i32 noundef %10997, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 502, ptr noundef %11000, ptr noundef %11003, ptr noundef %11006, i32 noundef %11008) #10
  br label %11010

11010:                                            ; preds = %10993, %10976
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #10
  br label %11011

11011:                                            ; preds = %11010
  br label %11012

11012:                                            ; preds = %11011
  call void @exit(i32 noundef 1) #12
  unreachable

11013:                                            ; No predecessors!
  br label %11014

11014:                                            ; preds = %11013
  br label %11015

11015:                                            ; preds = %11014, %10955
  br label %11016

11016:                                            ; preds = %11015
  br label %11017

11017:                                            ; preds = %11016
  br label %11018

11018:                                            ; preds = %11017
  br label %11019

11019:                                            ; preds = %11018
  br label %11020

11020:                                            ; preds = %11019
  %11021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11021, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11022 = call ptr @__errno_location() #11
  store i32 0, ptr %11022, align 4, !tbaa !5
  br label %11023

11023:                                            ; preds = %11020
  br label %11024

11024:                                            ; preds = %11023
  br label %11025

11025:                                            ; preds = %11024
  br label %11026

11026:                                            ; preds = %11025
  br label %11027

11027:                                            ; preds = %11026, %10764
  br label %11028

11028:                                            ; preds = %11027
  %11029 = load i32, ptr @test_count, align 4, !tbaa !5
  %11030 = add nsw i32 %11029, 1
  store i32 %11030, ptr @test_count, align 4, !tbaa !5
  %11031 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %235, i32 0, i32 1
  %11032 = load i32, ptr %11031, align 4, !tbaa !27
  %11033 = icmp eq i32 %11032, 1
  br i1 %11033, label %11087, label %11034

11034:                                            ; preds = %11028
  br label %11035

11035:                                            ; preds = %11034
  br label %11036

11036:                                            ; preds = %11035
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #10
  %11037 = call ptr @__errno_location() #11
  %11038 = load i32, ptr %11037, align 4, !tbaa !5
  store i32 %11038, ptr %268, align 4, !tbaa !5
  %11039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11040 = call i32 @s2n_print_stacktrace(ptr noundef %11039)
  %11041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11042 = trunc i8 %11041 to i1
  br i1 %11042, label %11043, label %11065

11043:                                            ; preds = %11036
  %11044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11045 = call i32 @fileno(ptr noundef %11044) #10
  %11046 = call i32 @isatty(i32 noundef %11045) #10
  %11047 = icmp ne i32 %11046, 0
  br i1 %11047, label %11048, label %11065

11048:                                            ; preds = %11043
  %11049 = load i32, ptr %268, align 4, !tbaa !5
  %11050 = call ptr @__errno_location() #11
  store i32 %11049, ptr %11050, align 4, !tbaa !5
  %11051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11052 = load i32, ptr @test_count, align 4, !tbaa !5
  %11053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11054 = load i32, ptr %11053, align 4, !tbaa !5
  %11055 = call ptr @s2n_strerror(i32 noundef %11054, ptr noundef @.str.4)
  %11056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11057 = load i32, ptr %11056, align 4, !tbaa !5
  %11058 = call ptr @s2n_strerror_debug(i32 noundef %11057, ptr noundef @.str.4)
  %11059 = call ptr @__errno_location() #11
  %11060 = load i32, ptr %11059, align 4, !tbaa !5
  %11061 = call ptr @strerror(i32 noundef %11060) #10
  %11062 = call ptr @__errno_location() #11
  %11063 = load i32, ptr %11062, align 4, !tbaa !5
  %11064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11051, ptr noundef @.str.2, i32 noundef %11052, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 505, ptr noundef %11055, ptr noundef %11058, ptr noundef %11061, i32 noundef %11063) #10
  br label %11082

11065:                                            ; preds = %11043, %11036
  %11066 = load i32, ptr %268, align 4, !tbaa !5
  %11067 = call ptr @__errno_location() #11
  store i32 %11066, ptr %11067, align 4, !tbaa !5
  %11068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11069 = load i32, ptr @test_count, align 4, !tbaa !5
  %11070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11071 = load i32, ptr %11070, align 4, !tbaa !5
  %11072 = call ptr @s2n_strerror(i32 noundef %11071, ptr noundef @.str.4)
  %11073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11074 = load i32, ptr %11073, align 4, !tbaa !5
  %11075 = call ptr @s2n_strerror_debug(i32 noundef %11074, ptr noundef @.str.4)
  %11076 = call ptr @__errno_location() #11
  %11077 = load i32, ptr %11076, align 4, !tbaa !5
  %11078 = call ptr @strerror(i32 noundef %11077) #10
  %11079 = call ptr @__errno_location() #11
  %11080 = load i32, ptr %11079, align 4, !tbaa !5
  %11081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11068, ptr noundef @.str.5, i32 noundef %11069, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 505, ptr noundef %11072, ptr noundef %11075, ptr noundef %11078, i32 noundef %11080) #10
  br label %11082

11082:                                            ; preds = %11065, %11048
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #10
  br label %11083

11083:                                            ; preds = %11082
  br label %11084

11084:                                            ; preds = %11083
  call void @exit(i32 noundef 1) #12
  unreachable

11085:                                            ; No predecessors!
  br label %11086

11086:                                            ; preds = %11085
  br label %11087

11087:                                            ; preds = %11086, %11028
  br label %11088

11088:                                            ; preds = %11087
  br label %11089

11089:                                            ; preds = %11088
  call void @llvm.lifetime.end.p0(i64 8, ptr %260) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #10
  %11090 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %254)
  %11091 = getelementptr inbounds %struct.s2n_result, ptr %269, i32 0, i32 0
  store i32 %11090, ptr %11091, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #10
  %11092 = call i32 @s2n_io_pair_close(ptr noundef %245)
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #10
  %11093 = call i32 @s2n_connection_ptr_free(ptr noundef %240)
  %11094 = getelementptr inbounds %struct.s2n_result, ptr %270, i32 0, i32 0
  store i32 %11093, ptr %11094, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #10
  %11095 = call i32 @s2n_connection_ptr_free(ptr noundef %237)
  %11096 = getelementptr inbounds %struct.s2n_result, ptr %271, i32 0, i32 0
  store i32 %11095, ptr %11096, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %235) #10
  %11097 = call i32 @s2n_config_ptr_free(ptr noundef %230)
  %11098 = getelementptr inbounds %struct.s2n_result, ptr %272, i32 0, i32 0
  store i32 %11097, ptr %11098, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #10
  br label %11099

11099:                                            ; preds = %11089
  %11100 = load i32, ptr %229, align 4, !tbaa !5
  %11101 = add nsw i32 %11100, 1
  store i32 %11101, ptr %229, align 4, !tbaa !5
  br label %9167, !llvm.loop !35

11102:                                            ; preds = %9171
  br label %11103

11103:                                            ; preds = %11102
  %11104 = load i32, ptr %228, align 4, !tbaa !5
  %11105 = add nsw i32 %11104, 1
  store i32 %11105, ptr %228, align 4, !tbaa !5
  br label %9161, !llvm.loop !36

11106:                                            ; preds = %9165
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #10
  store i32 0, ptr %273, align 4, !tbaa !5
  br label %11107

11107:                                            ; preds = %13301, %11106
  %11108 = load i32, ptr %273, align 4, !tbaa !5
  %11109 = sext i32 %11108 to i64
  %11110 = icmp ult i64 %11109, 2
  br i1 %11110, label %11112, label %11111

11111:                                            ; preds = %11107
  store i32 1116, ptr %184, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #10
  br label %13304

11112:                                            ; preds = %11107
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #10
  store i32 0, ptr %274, align 4, !tbaa !5
  br label %11113

11113:                                            ; preds = %13297, %11112
  %11114 = load i32, ptr %274, align 4, !tbaa !5
  %11115 = sext i32 %11114 to i64
  %11116 = icmp ult i64 %11115, 2
  br i1 %11116, label %11118, label %11117

11117:                                            ; preds = %11113
  store i32 1119, ptr %184, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #10
  br label %13300

11118:                                            ; preds = %11113
  call void @llvm.lifetime.start.p0(i64 8, ptr %275) #10
  %11119 = call ptr @s2n_config_new()
  store ptr %11119, ptr %275, align 8, !tbaa !9
  br label %11120

11120:                                            ; preds = %11118
  %11121 = load i32, ptr @test_count, align 4, !tbaa !5
  %11122 = add nsw i32 %11121, 1
  store i32 %11122, ptr @test_count, align 4, !tbaa !5
  %11123 = load ptr, ptr %275, align 8, !tbaa !9
  %11124 = icmp eq ptr %11123, null
  br i1 %11124, label %11125, label %11178

11125:                                            ; preds = %11120
  br label %11126

11126:                                            ; preds = %11125
  br label %11127

11127:                                            ; preds = %11126
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #10
  %11128 = call ptr @__errno_location() #11
  %11129 = load i32, ptr %11128, align 4, !tbaa !5
  store i32 %11129, ptr %276, align 4, !tbaa !5
  %11130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11131 = call i32 @s2n_print_stacktrace(ptr noundef %11130)
  %11132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11133 = trunc i8 %11132 to i1
  br i1 %11133, label %11134, label %11156

11134:                                            ; preds = %11127
  %11135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11136 = call i32 @fileno(ptr noundef %11135) #10
  %11137 = call i32 @isatty(i32 noundef %11136) #10
  %11138 = icmp ne i32 %11137, 0
  br i1 %11138, label %11139, label %11156

11139:                                            ; preds = %11134
  %11140 = load i32, ptr %276, align 4, !tbaa !5
  %11141 = call ptr @__errno_location() #11
  store i32 %11140, ptr %11141, align 4, !tbaa !5
  %11142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11143 = load i32, ptr @test_count, align 4, !tbaa !5
  %11144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11145 = load i32, ptr %11144, align 4, !tbaa !5
  %11146 = call ptr @s2n_strerror(i32 noundef %11145, ptr noundef @.str.4)
  %11147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11148 = load i32, ptr %11147, align 4, !tbaa !5
  %11149 = call ptr @s2n_strerror_debug(i32 noundef %11148, ptr noundef @.str.4)
  %11150 = call ptr @__errno_location() #11
  %11151 = load i32, ptr %11150, align 4, !tbaa !5
  %11152 = call ptr @strerror(i32 noundef %11151) #10
  %11153 = call ptr @__errno_location() #11
  %11154 = load i32, ptr %11153, align 4, !tbaa !5
  %11155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11142, ptr noundef @.str.2, i32 noundef %11143, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 513, ptr noundef %11146, ptr noundef %11149, ptr noundef %11152, i32 noundef %11154) #10
  br label %11173

11156:                                            ; preds = %11134, %11127
  %11157 = load i32, ptr %276, align 4, !tbaa !5
  %11158 = call ptr @__errno_location() #11
  store i32 %11157, ptr %11158, align 4, !tbaa !5
  %11159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11160 = load i32, ptr @test_count, align 4, !tbaa !5
  %11161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11162 = load i32, ptr %11161, align 4, !tbaa !5
  %11163 = call ptr @s2n_strerror(i32 noundef %11162, ptr noundef @.str.4)
  %11164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11165 = load i32, ptr %11164, align 4, !tbaa !5
  %11166 = call ptr @s2n_strerror_debug(i32 noundef %11165, ptr noundef @.str.4)
  %11167 = call ptr @__errno_location() #11
  %11168 = load i32, ptr %11167, align 4, !tbaa !5
  %11169 = call ptr @strerror(i32 noundef %11168) #10
  %11170 = call ptr @__errno_location() #11
  %11171 = load i32, ptr %11170, align 4, !tbaa !5
  %11172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11159, ptr noundef @.str.5, i32 noundef %11160, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 513, ptr noundef %11163, ptr noundef %11166, ptr noundef %11169, i32 noundef %11171) #10
  br label %11173

11173:                                            ; preds = %11156, %11139
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #10
  br label %11174

11174:                                            ; preds = %11173
  br label %11175

11175:                                            ; preds = %11174
  call void @exit(i32 noundef 1) #12
  unreachable

11176:                                            ; No predecessors!
  br label %11177

11177:                                            ; preds = %11176
  br label %11178

11178:                                            ; preds = %11177, %11120
  br label %11179

11179:                                            ; preds = %11178
  br label %11180

11180:                                            ; preds = %11179
  br label %11181

11181:                                            ; preds = %11180
  %11182 = load i32, ptr @test_count, align 4, !tbaa !5
  %11183 = add nsw i32 %11182, 1
  store i32 %11183, ptr @test_count, align 4, !tbaa !5
  %11184 = load ptr, ptr %275, align 8, !tbaa !9
  %11185 = load ptr, ptr %45, align 8, !tbaa !9
  %11186 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %11184, ptr noundef %11185)
  %11187 = icmp eq i32 %11186, -1
  br i1 %11187, label %11188, label %11241

11188:                                            ; preds = %11181
  br label %11189

11189:                                            ; preds = %11188
  br label %11190

11190:                                            ; preds = %11189
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #10
  %11191 = call ptr @__errno_location() #11
  %11192 = load i32, ptr %11191, align 4, !tbaa !5
  store i32 %11192, ptr %277, align 4, !tbaa !5
  %11193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11194 = call i32 @s2n_print_stacktrace(ptr noundef %11193)
  %11195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11196 = trunc i8 %11195 to i1
  br i1 %11196, label %11197, label %11219

11197:                                            ; preds = %11190
  %11198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11199 = call i32 @fileno(ptr noundef %11198) #10
  %11200 = call i32 @isatty(i32 noundef %11199) #10
  %11201 = icmp ne i32 %11200, 0
  br i1 %11201, label %11202, label %11219

11202:                                            ; preds = %11197
  %11203 = load i32, ptr %277, align 4, !tbaa !5
  %11204 = call ptr @__errno_location() #11
  store i32 %11203, ptr %11204, align 4, !tbaa !5
  %11205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11206 = load i32, ptr @test_count, align 4, !tbaa !5
  %11207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11208 = load i32, ptr %11207, align 4, !tbaa !5
  %11209 = call ptr @s2n_strerror(i32 noundef %11208, ptr noundef @.str.4)
  %11210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11211 = load i32, ptr %11210, align 4, !tbaa !5
  %11212 = call ptr @s2n_strerror_debug(i32 noundef %11211, ptr noundef @.str.4)
  %11213 = call ptr @__errno_location() #11
  %11214 = load i32, ptr %11213, align 4, !tbaa !5
  %11215 = call ptr @strerror(i32 noundef %11214) #10
  %11216 = call ptr @__errno_location() #11
  %11217 = load i32, ptr %11216, align 4, !tbaa !5
  %11218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11205, ptr noundef @.str.2, i32 noundef %11206, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 514, ptr noundef %11209, ptr noundef %11212, ptr noundef %11215, i32 noundef %11217) #10
  br label %11236

11219:                                            ; preds = %11197, %11190
  %11220 = load i32, ptr %277, align 4, !tbaa !5
  %11221 = call ptr @__errno_location() #11
  store i32 %11220, ptr %11221, align 4, !tbaa !5
  %11222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11223 = load i32, ptr @test_count, align 4, !tbaa !5
  %11224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11225 = load i32, ptr %11224, align 4, !tbaa !5
  %11226 = call ptr @s2n_strerror(i32 noundef %11225, ptr noundef @.str.4)
  %11227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11228 = load i32, ptr %11227, align 4, !tbaa !5
  %11229 = call ptr @s2n_strerror_debug(i32 noundef %11228, ptr noundef @.str.4)
  %11230 = call ptr @__errno_location() #11
  %11231 = load i32, ptr %11230, align 4, !tbaa !5
  %11232 = call ptr @strerror(i32 noundef %11231) #10
  %11233 = call ptr @__errno_location() #11
  %11234 = load i32, ptr %11233, align 4, !tbaa !5
  %11235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11222, ptr noundef @.str.5, i32 noundef %11223, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 514, ptr noundef %11226, ptr noundef %11229, ptr noundef %11232, i32 noundef %11234) #10
  br label %11236

11236:                                            ; preds = %11219, %11202
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #10
  br label %11237

11237:                                            ; preds = %11236
  br label %11238

11238:                                            ; preds = %11237
  call void @exit(i32 noundef 1) #12
  unreachable

11239:                                            ; No predecessors!
  br label %11240

11240:                                            ; preds = %11239
  br label %11241

11241:                                            ; preds = %11240, %11181
  br label %11242

11242:                                            ; preds = %11241
  br label %11243

11243:                                            ; preds = %11242
  br label %11244

11244:                                            ; preds = %11243
  %11245 = load i32, ptr @test_count, align 4, !tbaa !5
  %11246 = add nsw i32 %11245, 1
  store i32 %11246, ptr @test_count, align 4, !tbaa !5
  %11247 = load ptr, ptr %275, align 8, !tbaa !9
  %11248 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %11247, ptr noundef @.str.23, ptr noundef null)
  %11249 = icmp eq i32 %11248, -1
  br i1 %11249, label %11250, label %11303

11250:                                            ; preds = %11244
  br label %11251

11251:                                            ; preds = %11250
  br label %11252

11252:                                            ; preds = %11251
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #10
  %11253 = call ptr @__errno_location() #11
  %11254 = load i32, ptr %11253, align 4, !tbaa !5
  store i32 %11254, ptr %278, align 4, !tbaa !5
  %11255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11256 = call i32 @s2n_print_stacktrace(ptr noundef %11255)
  %11257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11258 = trunc i8 %11257 to i1
  br i1 %11258, label %11259, label %11281

11259:                                            ; preds = %11252
  %11260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11261 = call i32 @fileno(ptr noundef %11260) #10
  %11262 = call i32 @isatty(i32 noundef %11261) #10
  %11263 = icmp ne i32 %11262, 0
  br i1 %11263, label %11264, label %11281

11264:                                            ; preds = %11259
  %11265 = load i32, ptr %278, align 4, !tbaa !5
  %11266 = call ptr @__errno_location() #11
  store i32 %11265, ptr %11266, align 4, !tbaa !5
  %11267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11268 = load i32, ptr @test_count, align 4, !tbaa !5
  %11269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11270 = load i32, ptr %11269, align 4, !tbaa !5
  %11271 = call ptr @s2n_strerror(i32 noundef %11270, ptr noundef @.str.4)
  %11272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11273 = load i32, ptr %11272, align 4, !tbaa !5
  %11274 = call ptr @s2n_strerror_debug(i32 noundef %11273, ptr noundef @.str.4)
  %11275 = call ptr @__errno_location() #11
  %11276 = load i32, ptr %11275, align 4, !tbaa !5
  %11277 = call ptr @strerror(i32 noundef %11276) #10
  %11278 = call ptr @__errno_location() #11
  %11279 = load i32, ptr %11278, align 4, !tbaa !5
  %11280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11267, ptr noundef @.str.2, i32 noundef %11268, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 515, ptr noundef %11271, ptr noundef %11274, ptr noundef %11277, i32 noundef %11279) #10
  br label %11298

11281:                                            ; preds = %11259, %11252
  %11282 = load i32, ptr %278, align 4, !tbaa !5
  %11283 = call ptr @__errno_location() #11
  store i32 %11282, ptr %11283, align 4, !tbaa !5
  %11284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11285 = load i32, ptr @test_count, align 4, !tbaa !5
  %11286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11287 = load i32, ptr %11286, align 4, !tbaa !5
  %11288 = call ptr @s2n_strerror(i32 noundef %11287, ptr noundef @.str.4)
  %11289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11290 = load i32, ptr %11289, align 4, !tbaa !5
  %11291 = call ptr @s2n_strerror_debug(i32 noundef %11290, ptr noundef @.str.4)
  %11292 = call ptr @__errno_location() #11
  %11293 = load i32, ptr %11292, align 4, !tbaa !5
  %11294 = call ptr @strerror(i32 noundef %11293) #10
  %11295 = call ptr @__errno_location() #11
  %11296 = load i32, ptr %11295, align 4, !tbaa !5
  %11297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11284, ptr noundef @.str.5, i32 noundef %11285, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 515, ptr noundef %11288, ptr noundef %11291, ptr noundef %11294, i32 noundef %11296) #10
  br label %11298

11298:                                            ; preds = %11281, %11264
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #10
  br label %11299

11299:                                            ; preds = %11298
  br label %11300

11300:                                            ; preds = %11299
  call void @exit(i32 noundef 1) #12
  unreachable

11301:                                            ; No predecessors!
  br label %11302

11302:                                            ; preds = %11301
  br label %11303

11303:                                            ; preds = %11302, %11244
  br label %11304

11304:                                            ; preds = %11303
  br label %11305

11305:                                            ; preds = %11304
  br label %11306

11306:                                            ; preds = %11305
  %11307 = load i32, ptr @test_count, align 4, !tbaa !5
  %11308 = add nsw i32 %11307, 1
  store i32 %11308, ptr @test_count, align 4, !tbaa !5
  %11309 = load ptr, ptr %275, align 8, !tbaa !9
  %11310 = load i32, ptr %274, align 4, !tbaa !5
  %11311 = sext i32 %11310 to i64
  %11312 = getelementptr inbounds [2 x ptr], ptr %227, i64 0, i64 %11311
  %11313 = load ptr, ptr %11312, align 8, !tbaa !9
  %11314 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %11309, ptr noundef %11313)
  %11315 = icmp eq i32 %11314, -1
  br i1 %11315, label %11316, label %11369

11316:                                            ; preds = %11306
  br label %11317

11317:                                            ; preds = %11316
  br label %11318

11318:                                            ; preds = %11317
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #10
  %11319 = call ptr @__errno_location() #11
  %11320 = load i32, ptr %11319, align 4, !tbaa !5
  store i32 %11320, ptr %279, align 4, !tbaa !5
  %11321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11322 = call i32 @s2n_print_stacktrace(ptr noundef %11321)
  %11323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11324 = trunc i8 %11323 to i1
  br i1 %11324, label %11325, label %11347

11325:                                            ; preds = %11318
  %11326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11327 = call i32 @fileno(ptr noundef %11326) #10
  %11328 = call i32 @isatty(i32 noundef %11327) #10
  %11329 = icmp ne i32 %11328, 0
  br i1 %11329, label %11330, label %11347

11330:                                            ; preds = %11325
  %11331 = load i32, ptr %279, align 4, !tbaa !5
  %11332 = call ptr @__errno_location() #11
  store i32 %11331, ptr %11332, align 4, !tbaa !5
  %11333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11334 = load i32, ptr @test_count, align 4, !tbaa !5
  %11335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11336 = load i32, ptr %11335, align 4, !tbaa !5
  %11337 = call ptr @s2n_strerror(i32 noundef %11336, ptr noundef @.str.4)
  %11338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11339 = load i32, ptr %11338, align 4, !tbaa !5
  %11340 = call ptr @s2n_strerror_debug(i32 noundef %11339, ptr noundef @.str.4)
  %11341 = call ptr @__errno_location() #11
  %11342 = load i32, ptr %11341, align 4, !tbaa !5
  %11343 = call ptr @strerror(i32 noundef %11342) #10
  %11344 = call ptr @__errno_location() #11
  %11345 = load i32, ptr %11344, align 4, !tbaa !5
  %11346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11333, ptr noundef @.str.2, i32 noundef %11334, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 516, ptr noundef %11337, ptr noundef %11340, ptr noundef %11343, i32 noundef %11345) #10
  br label %11364

11347:                                            ; preds = %11325, %11318
  %11348 = load i32, ptr %279, align 4, !tbaa !5
  %11349 = call ptr @__errno_location() #11
  store i32 %11348, ptr %11349, align 4, !tbaa !5
  %11350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11351 = load i32, ptr @test_count, align 4, !tbaa !5
  %11352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11353 = load i32, ptr %11352, align 4, !tbaa !5
  %11354 = call ptr @s2n_strerror(i32 noundef %11353, ptr noundef @.str.4)
  %11355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11356 = load i32, ptr %11355, align 4, !tbaa !5
  %11357 = call ptr @s2n_strerror_debug(i32 noundef %11356, ptr noundef @.str.4)
  %11358 = call ptr @__errno_location() #11
  %11359 = load i32, ptr %11358, align 4, !tbaa !5
  %11360 = call ptr @strerror(i32 noundef %11359) #10
  %11361 = call ptr @__errno_location() #11
  %11362 = load i32, ptr %11361, align 4, !tbaa !5
  %11363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11350, ptr noundef @.str.5, i32 noundef %11351, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 516, ptr noundef %11354, ptr noundef %11357, ptr noundef %11360, i32 noundef %11362) #10
  br label %11364

11364:                                            ; preds = %11347, %11330
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #10
  br label %11365

11365:                                            ; preds = %11364
  br label %11366

11366:                                            ; preds = %11365
  call void @exit(i32 noundef 1) #12
  unreachable

11367:                                            ; No predecessors!
  br label %11368

11368:                                            ; preds = %11367
  br label %11369

11369:                                            ; preds = %11368, %11306
  br label %11370

11370:                                            ; preds = %11369
  br label %11371

11371:                                            ; preds = %11370
  br label %11372

11372:                                            ; preds = %11371
  %11373 = load i32, ptr @test_count, align 4, !tbaa !5
  %11374 = add nsw i32 %11373, 1
  store i32 %11374, ptr @test_count, align 4, !tbaa !5
  %11375 = load ptr, ptr %275, align 8, !tbaa !9
  %11376 = call i32 @s2n_config_set_client_auth_type(ptr noundef %11375, i32 noundef 1)
  %11377 = icmp eq i32 %11376, -1
  br i1 %11377, label %11378, label %11431

11378:                                            ; preds = %11372
  br label %11379

11379:                                            ; preds = %11378
  br label %11380

11380:                                            ; preds = %11379
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #10
  %11381 = call ptr @__errno_location() #11
  %11382 = load i32, ptr %11381, align 4, !tbaa !5
  store i32 %11382, ptr %280, align 4, !tbaa !5
  %11383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11384 = call i32 @s2n_print_stacktrace(ptr noundef %11383)
  %11385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11386 = trunc i8 %11385 to i1
  br i1 %11386, label %11387, label %11409

11387:                                            ; preds = %11380
  %11388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11389 = call i32 @fileno(ptr noundef %11388) #10
  %11390 = call i32 @isatty(i32 noundef %11389) #10
  %11391 = icmp ne i32 %11390, 0
  br i1 %11391, label %11392, label %11409

11392:                                            ; preds = %11387
  %11393 = load i32, ptr %280, align 4, !tbaa !5
  %11394 = call ptr @__errno_location() #11
  store i32 %11393, ptr %11394, align 4, !tbaa !5
  %11395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11396 = load i32, ptr @test_count, align 4, !tbaa !5
  %11397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11398 = load i32, ptr %11397, align 4, !tbaa !5
  %11399 = call ptr @s2n_strerror(i32 noundef %11398, ptr noundef @.str.4)
  %11400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11401 = load i32, ptr %11400, align 4, !tbaa !5
  %11402 = call ptr @s2n_strerror_debug(i32 noundef %11401, ptr noundef @.str.4)
  %11403 = call ptr @__errno_location() #11
  %11404 = load i32, ptr %11403, align 4, !tbaa !5
  %11405 = call ptr @strerror(i32 noundef %11404) #10
  %11406 = call ptr @__errno_location() #11
  %11407 = load i32, ptr %11406, align 4, !tbaa !5
  %11408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11395, ptr noundef @.str.2, i32 noundef %11396, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 517, ptr noundef %11399, ptr noundef %11402, ptr noundef %11405, i32 noundef %11407) #10
  br label %11426

11409:                                            ; preds = %11387, %11380
  %11410 = load i32, ptr %280, align 4, !tbaa !5
  %11411 = call ptr @__errno_location() #11
  store i32 %11410, ptr %11411, align 4, !tbaa !5
  %11412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11413 = load i32, ptr @test_count, align 4, !tbaa !5
  %11414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11415 = load i32, ptr %11414, align 4, !tbaa !5
  %11416 = call ptr @s2n_strerror(i32 noundef %11415, ptr noundef @.str.4)
  %11417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11418 = load i32, ptr %11417, align 4, !tbaa !5
  %11419 = call ptr @s2n_strerror_debug(i32 noundef %11418, ptr noundef @.str.4)
  %11420 = call ptr @__errno_location() #11
  %11421 = load i32, ptr %11420, align 4, !tbaa !5
  %11422 = call ptr @strerror(i32 noundef %11421) #10
  %11423 = call ptr @__errno_location() #11
  %11424 = load i32, ptr %11423, align 4, !tbaa !5
  %11425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11412, ptr noundef @.str.5, i32 noundef %11413, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 517, ptr noundef %11416, ptr noundef %11419, ptr noundef %11422, i32 noundef %11424) #10
  br label %11426

11426:                                            ; preds = %11409, %11392
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #10
  br label %11427

11427:                                            ; preds = %11426
  br label %11428

11428:                                            ; preds = %11427
  call void @exit(i32 noundef 1) #12
  unreachable

11429:                                            ; No predecessors!
  br label %11430

11430:                                            ; preds = %11429
  br label %11431

11431:                                            ; preds = %11430, %11372
  br label %11432

11432:                                            ; preds = %11431
  br label %11433

11433:                                            ; preds = %11432
  call void @llvm.lifetime.start.p0(i64 16, ptr %281) #10
  %11434 = load i32, ptr %273, align 4, !tbaa !5
  %11435 = sext i32 %11434 to i64
  %11436 = getelementptr inbounds [2 x %struct.s2n_cert_validation_data], ptr %226, i64 0, i64 %11435
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %281, ptr align 16 %11436, i64 16, i1 false), !tbaa.struct !18
  br label %11437

11437:                                            ; preds = %11433
  %11438 = load i32, ptr @test_count, align 4, !tbaa !5
  %11439 = add nsw i32 %11438, 1
  store i32 %11439, ptr @test_count, align 4, !tbaa !5
  %11440 = load ptr, ptr %275, align 8, !tbaa !9
  %11441 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %11440, ptr noundef @s2n_test_cert_validation_callback_self_talk_server, ptr noundef %281)
  %11442 = icmp eq i32 %11441, -1
  br i1 %11442, label %11443, label %11496

11443:                                            ; preds = %11437
  br label %11444

11444:                                            ; preds = %11443
  br label %11445

11445:                                            ; preds = %11444
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #10
  %11446 = call ptr @__errno_location() #11
  %11447 = load i32, ptr %11446, align 4, !tbaa !5
  store i32 %11447, ptr %282, align 4, !tbaa !5
  %11448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11449 = call i32 @s2n_print_stacktrace(ptr noundef %11448)
  %11450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11451 = trunc i8 %11450 to i1
  br i1 %11451, label %11452, label %11474

11452:                                            ; preds = %11445
  %11453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11454 = call i32 @fileno(ptr noundef %11453) #10
  %11455 = call i32 @isatty(i32 noundef %11454) #10
  %11456 = icmp ne i32 %11455, 0
  br i1 %11456, label %11457, label %11474

11457:                                            ; preds = %11452
  %11458 = load i32, ptr %282, align 4, !tbaa !5
  %11459 = call ptr @__errno_location() #11
  store i32 %11458, ptr %11459, align 4, !tbaa !5
  %11460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11461 = load i32, ptr @test_count, align 4, !tbaa !5
  %11462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11463 = load i32, ptr %11462, align 4, !tbaa !5
  %11464 = call ptr @s2n_strerror(i32 noundef %11463, ptr noundef @.str.4)
  %11465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11466 = load i32, ptr %11465, align 4, !tbaa !5
  %11467 = call ptr @s2n_strerror_debug(i32 noundef %11466, ptr noundef @.str.4)
  %11468 = call ptr @__errno_location() #11
  %11469 = load i32, ptr %11468, align 4, !tbaa !5
  %11470 = call ptr @strerror(i32 noundef %11469) #10
  %11471 = call ptr @__errno_location() #11
  %11472 = load i32, ptr %11471, align 4, !tbaa !5
  %11473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11460, ptr noundef @.str.2, i32 noundef %11461, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 521, ptr noundef %11464, ptr noundef %11467, ptr noundef %11470, i32 noundef %11472) #10
  br label %11491

11474:                                            ; preds = %11452, %11445
  %11475 = load i32, ptr %282, align 4, !tbaa !5
  %11476 = call ptr @__errno_location() #11
  store i32 %11475, ptr %11476, align 4, !tbaa !5
  %11477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11478 = load i32, ptr @test_count, align 4, !tbaa !5
  %11479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11480 = load i32, ptr %11479, align 4, !tbaa !5
  %11481 = call ptr @s2n_strerror(i32 noundef %11480, ptr noundef @.str.4)
  %11482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11483 = load i32, ptr %11482, align 4, !tbaa !5
  %11484 = call ptr @s2n_strerror_debug(i32 noundef %11483, ptr noundef @.str.4)
  %11485 = call ptr @__errno_location() #11
  %11486 = load i32, ptr %11485, align 4, !tbaa !5
  %11487 = call ptr @strerror(i32 noundef %11486) #10
  %11488 = call ptr @__errno_location() #11
  %11489 = load i32, ptr %11488, align 4, !tbaa !5
  %11490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11477, ptr noundef @.str.5, i32 noundef %11478, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 521, ptr noundef %11481, ptr noundef %11484, ptr noundef %11487, i32 noundef %11489) #10
  br label %11491

11491:                                            ; preds = %11474, %11457
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #10
  br label %11492

11492:                                            ; preds = %11491
  br label %11493

11493:                                            ; preds = %11492
  call void @exit(i32 noundef 1) #12
  unreachable

11494:                                            ; No predecessors!
  br label %11495

11495:                                            ; preds = %11494
  br label %11496

11496:                                            ; preds = %11495, %11437
  br label %11497

11497:                                            ; preds = %11496
  br label %11498

11498:                                            ; preds = %11497
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #10
  %11499 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11499, ptr %283, align 8, !tbaa !9
  br label %11500

11500:                                            ; preds = %11498
  %11501 = load i32, ptr @test_count, align 4, !tbaa !5
  %11502 = add nsw i32 %11501, 1
  store i32 %11502, ptr @test_count, align 4, !tbaa !5
  %11503 = load ptr, ptr %283, align 8, !tbaa !9
  %11504 = icmp eq ptr %11503, null
  br i1 %11504, label %11505, label %11558

11505:                                            ; preds = %11500
  br label %11506

11506:                                            ; preds = %11505
  br label %11507

11507:                                            ; preds = %11506
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #10
  %11508 = call ptr @__errno_location() #11
  %11509 = load i32, ptr %11508, align 4, !tbaa !5
  store i32 %11509, ptr %284, align 4, !tbaa !5
  %11510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11511 = call i32 @s2n_print_stacktrace(ptr noundef %11510)
  %11512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11513 = trunc i8 %11512 to i1
  br i1 %11513, label %11514, label %11536

11514:                                            ; preds = %11507
  %11515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11516 = call i32 @fileno(ptr noundef %11515) #10
  %11517 = call i32 @isatty(i32 noundef %11516) #10
  %11518 = icmp ne i32 %11517, 0
  br i1 %11518, label %11519, label %11536

11519:                                            ; preds = %11514
  %11520 = load i32, ptr %284, align 4, !tbaa !5
  %11521 = call ptr @__errno_location() #11
  store i32 %11520, ptr %11521, align 4, !tbaa !5
  %11522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11523 = load i32, ptr @test_count, align 4, !tbaa !5
  %11524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11525 = load i32, ptr %11524, align 4, !tbaa !5
  %11526 = call ptr @s2n_strerror(i32 noundef %11525, ptr noundef @.str.4)
  %11527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11528 = load i32, ptr %11527, align 4, !tbaa !5
  %11529 = call ptr @s2n_strerror_debug(i32 noundef %11528, ptr noundef @.str.4)
  %11530 = call ptr @__errno_location() #11
  %11531 = load i32, ptr %11530, align 4, !tbaa !5
  %11532 = call ptr @strerror(i32 noundef %11531) #10
  %11533 = call ptr @__errno_location() #11
  %11534 = load i32, ptr %11533, align 4, !tbaa !5
  %11535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11522, ptr noundef @.str.2, i32 noundef %11523, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 524, ptr noundef %11526, ptr noundef %11529, ptr noundef %11532, i32 noundef %11534) #10
  br label %11553

11536:                                            ; preds = %11514, %11507
  %11537 = load i32, ptr %284, align 4, !tbaa !5
  %11538 = call ptr @__errno_location() #11
  store i32 %11537, ptr %11538, align 4, !tbaa !5
  %11539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11540 = load i32, ptr @test_count, align 4, !tbaa !5
  %11541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11542 = load i32, ptr %11541, align 4, !tbaa !5
  %11543 = call ptr @s2n_strerror(i32 noundef %11542, ptr noundef @.str.4)
  %11544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11545 = load i32, ptr %11544, align 4, !tbaa !5
  %11546 = call ptr @s2n_strerror_debug(i32 noundef %11545, ptr noundef @.str.4)
  %11547 = call ptr @__errno_location() #11
  %11548 = load i32, ptr %11547, align 4, !tbaa !5
  %11549 = call ptr @strerror(i32 noundef %11548) #10
  %11550 = call ptr @__errno_location() #11
  %11551 = load i32, ptr %11550, align 4, !tbaa !5
  %11552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11539, ptr noundef @.str.5, i32 noundef %11540, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 524, ptr noundef %11543, ptr noundef %11546, ptr noundef %11549, i32 noundef %11551) #10
  br label %11553

11553:                                            ; preds = %11536, %11519
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #10
  br label %11554

11554:                                            ; preds = %11553
  br label %11555

11555:                                            ; preds = %11554
  call void @exit(i32 noundef 1) #12
  unreachable

11556:                                            ; No predecessors!
  br label %11557

11557:                                            ; preds = %11556
  br label %11558

11558:                                            ; preds = %11557, %11500
  br label %11559

11559:                                            ; preds = %11558
  br label %11560

11560:                                            ; preds = %11559
  br label %11561

11561:                                            ; preds = %11560
  %11562 = load i32, ptr @test_count, align 4, !tbaa !5
  %11563 = add nsw i32 %11562, 1
  store i32 %11563, ptr @test_count, align 4, !tbaa !5
  %11564 = load ptr, ptr %283, align 8, !tbaa !9
  %11565 = load ptr, ptr %275, align 8, !tbaa !9
  %11566 = call i32 @s2n_connection_set_config(ptr noundef %11564, ptr noundef %11565)
  %11567 = icmp eq i32 %11566, -1
  br i1 %11567, label %11568, label %11621

11568:                                            ; preds = %11561
  br label %11569

11569:                                            ; preds = %11568
  br label %11570

11570:                                            ; preds = %11569
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #10
  %11571 = call ptr @__errno_location() #11
  %11572 = load i32, ptr %11571, align 4, !tbaa !5
  store i32 %11572, ptr %285, align 4, !tbaa !5
  %11573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11574 = call i32 @s2n_print_stacktrace(ptr noundef %11573)
  %11575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11576 = trunc i8 %11575 to i1
  br i1 %11576, label %11577, label %11599

11577:                                            ; preds = %11570
  %11578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11579 = call i32 @fileno(ptr noundef %11578) #10
  %11580 = call i32 @isatty(i32 noundef %11579) #10
  %11581 = icmp ne i32 %11580, 0
  br i1 %11581, label %11582, label %11599

11582:                                            ; preds = %11577
  %11583 = load i32, ptr %285, align 4, !tbaa !5
  %11584 = call ptr @__errno_location() #11
  store i32 %11583, ptr %11584, align 4, !tbaa !5
  %11585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11586 = load i32, ptr @test_count, align 4, !tbaa !5
  %11587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11588 = load i32, ptr %11587, align 4, !tbaa !5
  %11589 = call ptr @s2n_strerror(i32 noundef %11588, ptr noundef @.str.4)
  %11590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11591 = load i32, ptr %11590, align 4, !tbaa !5
  %11592 = call ptr @s2n_strerror_debug(i32 noundef %11591, ptr noundef @.str.4)
  %11593 = call ptr @__errno_location() #11
  %11594 = load i32, ptr %11593, align 4, !tbaa !5
  %11595 = call ptr @strerror(i32 noundef %11594) #10
  %11596 = call ptr @__errno_location() #11
  %11597 = load i32, ptr %11596, align 4, !tbaa !5
  %11598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11585, ptr noundef @.str.2, i32 noundef %11586, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 525, ptr noundef %11589, ptr noundef %11592, ptr noundef %11595, i32 noundef %11597) #10
  br label %11616

11599:                                            ; preds = %11577, %11570
  %11600 = load i32, ptr %285, align 4, !tbaa !5
  %11601 = call ptr @__errno_location() #11
  store i32 %11600, ptr %11601, align 4, !tbaa !5
  %11602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11603 = load i32, ptr @test_count, align 4, !tbaa !5
  %11604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11605 = load i32, ptr %11604, align 4, !tbaa !5
  %11606 = call ptr @s2n_strerror(i32 noundef %11605, ptr noundef @.str.4)
  %11607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11608 = load i32, ptr %11607, align 4, !tbaa !5
  %11609 = call ptr @s2n_strerror_debug(i32 noundef %11608, ptr noundef @.str.4)
  %11610 = call ptr @__errno_location() #11
  %11611 = load i32, ptr %11610, align 4, !tbaa !5
  %11612 = call ptr @strerror(i32 noundef %11611) #10
  %11613 = call ptr @__errno_location() #11
  %11614 = load i32, ptr %11613, align 4, !tbaa !5
  %11615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11602, ptr noundef @.str.5, i32 noundef %11603, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 525, ptr noundef %11606, ptr noundef %11609, ptr noundef %11612, i32 noundef %11614) #10
  br label %11616

11616:                                            ; preds = %11599, %11582
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #10
  br label %11617

11617:                                            ; preds = %11616
  br label %11618

11618:                                            ; preds = %11617
  call void @exit(i32 noundef 1) #12
  unreachable

11619:                                            ; No predecessors!
  br label %11620

11620:                                            ; preds = %11619
  br label %11621

11621:                                            ; preds = %11620, %11561
  br label %11622

11622:                                            ; preds = %11621
  br label %11623

11623:                                            ; preds = %11622
  br label %11624

11624:                                            ; preds = %11623
  %11625 = load i32, ptr @test_count, align 4, !tbaa !5
  %11626 = add nsw i32 %11625, 1
  store i32 %11626, ptr @test_count, align 4, !tbaa !5
  %11627 = load ptr, ptr %283, align 8, !tbaa !9
  %11628 = call i32 @s2n_connection_set_blinding(ptr noundef %11627, i32 noundef 1)
  %11629 = icmp eq i32 %11628, -1
  br i1 %11629, label %11630, label %11683

11630:                                            ; preds = %11624
  br label %11631

11631:                                            ; preds = %11630
  br label %11632

11632:                                            ; preds = %11631
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #10
  %11633 = call ptr @__errno_location() #11
  %11634 = load i32, ptr %11633, align 4, !tbaa !5
  store i32 %11634, ptr %286, align 4, !tbaa !5
  %11635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11636 = call i32 @s2n_print_stacktrace(ptr noundef %11635)
  %11637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11638 = trunc i8 %11637 to i1
  br i1 %11638, label %11639, label %11661

11639:                                            ; preds = %11632
  %11640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11641 = call i32 @fileno(ptr noundef %11640) #10
  %11642 = call i32 @isatty(i32 noundef %11641) #10
  %11643 = icmp ne i32 %11642, 0
  br i1 %11643, label %11644, label %11661

11644:                                            ; preds = %11639
  %11645 = load i32, ptr %286, align 4, !tbaa !5
  %11646 = call ptr @__errno_location() #11
  store i32 %11645, ptr %11646, align 4, !tbaa !5
  %11647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11648 = load i32, ptr @test_count, align 4, !tbaa !5
  %11649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11650 = load i32, ptr %11649, align 4, !tbaa !5
  %11651 = call ptr @s2n_strerror(i32 noundef %11650, ptr noundef @.str.4)
  %11652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11653 = load i32, ptr %11652, align 4, !tbaa !5
  %11654 = call ptr @s2n_strerror_debug(i32 noundef %11653, ptr noundef @.str.4)
  %11655 = call ptr @__errno_location() #11
  %11656 = load i32, ptr %11655, align 4, !tbaa !5
  %11657 = call ptr @strerror(i32 noundef %11656) #10
  %11658 = call ptr @__errno_location() #11
  %11659 = load i32, ptr %11658, align 4, !tbaa !5
  %11660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11647, ptr noundef @.str.2, i32 noundef %11648, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 526, ptr noundef %11651, ptr noundef %11654, ptr noundef %11657, i32 noundef %11659) #10
  br label %11678

11661:                                            ; preds = %11639, %11632
  %11662 = load i32, ptr %286, align 4, !tbaa !5
  %11663 = call ptr @__errno_location() #11
  store i32 %11662, ptr %11663, align 4, !tbaa !5
  %11664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11665 = load i32, ptr @test_count, align 4, !tbaa !5
  %11666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11667 = load i32, ptr %11666, align 4, !tbaa !5
  %11668 = call ptr @s2n_strerror(i32 noundef %11667, ptr noundef @.str.4)
  %11669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11670 = load i32, ptr %11669, align 4, !tbaa !5
  %11671 = call ptr @s2n_strerror_debug(i32 noundef %11670, ptr noundef @.str.4)
  %11672 = call ptr @__errno_location() #11
  %11673 = load i32, ptr %11672, align 4, !tbaa !5
  %11674 = call ptr @strerror(i32 noundef %11673) #10
  %11675 = call ptr @__errno_location() #11
  %11676 = load i32, ptr %11675, align 4, !tbaa !5
  %11677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11664, ptr noundef @.str.5, i32 noundef %11665, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 526, ptr noundef %11668, ptr noundef %11671, ptr noundef %11674, i32 noundef %11676) #10
  br label %11678

11678:                                            ; preds = %11661, %11644
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #10
  br label %11679

11679:                                            ; preds = %11678
  br label %11680

11680:                                            ; preds = %11679
  call void @exit(i32 noundef 1) #12
  unreachable

11681:                                            ; No predecessors!
  br label %11682

11682:                                            ; preds = %11681
  br label %11683

11683:                                            ; preds = %11682, %11624
  br label %11684

11684:                                            ; preds = %11683
  br label %11685

11685:                                            ; preds = %11684
  call void @llvm.lifetime.start.p0(i64 8, ptr %287) #10
  %11686 = call ptr @s2n_config_new()
  store ptr %11686, ptr %287, align 8, !tbaa !9
  br label %11687

11687:                                            ; preds = %11685
  %11688 = load i32, ptr @test_count, align 4, !tbaa !5
  %11689 = add nsw i32 %11688, 1
  store i32 %11689, ptr @test_count, align 4, !tbaa !5
  %11690 = load ptr, ptr %287, align 8, !tbaa !9
  %11691 = icmp eq ptr %11690, null
  br i1 %11691, label %11692, label %11745

11692:                                            ; preds = %11687
  br label %11693

11693:                                            ; preds = %11692
  br label %11694

11694:                                            ; preds = %11693
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #10
  %11695 = call ptr @__errno_location() #11
  %11696 = load i32, ptr %11695, align 4, !tbaa !5
  store i32 %11696, ptr %288, align 4, !tbaa !5
  %11697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11698 = call i32 @s2n_print_stacktrace(ptr noundef %11697)
  %11699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11700 = trunc i8 %11699 to i1
  br i1 %11700, label %11701, label %11723

11701:                                            ; preds = %11694
  %11702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11703 = call i32 @fileno(ptr noundef %11702) #10
  %11704 = call i32 @isatty(i32 noundef %11703) #10
  %11705 = icmp ne i32 %11704, 0
  br i1 %11705, label %11706, label %11723

11706:                                            ; preds = %11701
  %11707 = load i32, ptr %288, align 4, !tbaa !5
  %11708 = call ptr @__errno_location() #11
  store i32 %11707, ptr %11708, align 4, !tbaa !5
  %11709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11710 = load i32, ptr @test_count, align 4, !tbaa !5
  %11711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11712 = load i32, ptr %11711, align 4, !tbaa !5
  %11713 = call ptr @s2n_strerror(i32 noundef %11712, ptr noundef @.str.4)
  %11714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11715 = load i32, ptr %11714, align 4, !tbaa !5
  %11716 = call ptr @s2n_strerror_debug(i32 noundef %11715, ptr noundef @.str.4)
  %11717 = call ptr @__errno_location() #11
  %11718 = load i32, ptr %11717, align 4, !tbaa !5
  %11719 = call ptr @strerror(i32 noundef %11718) #10
  %11720 = call ptr @__errno_location() #11
  %11721 = load i32, ptr %11720, align 4, !tbaa !5
  %11722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11709, ptr noundef @.str.2, i32 noundef %11710, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 529, ptr noundef %11713, ptr noundef %11716, ptr noundef %11719, i32 noundef %11721) #10
  br label %11740

11723:                                            ; preds = %11701, %11694
  %11724 = load i32, ptr %288, align 4, !tbaa !5
  %11725 = call ptr @__errno_location() #11
  store i32 %11724, ptr %11725, align 4, !tbaa !5
  %11726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11727 = load i32, ptr @test_count, align 4, !tbaa !5
  %11728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11729 = load i32, ptr %11728, align 4, !tbaa !5
  %11730 = call ptr @s2n_strerror(i32 noundef %11729, ptr noundef @.str.4)
  %11731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11732 = load i32, ptr %11731, align 4, !tbaa !5
  %11733 = call ptr @s2n_strerror_debug(i32 noundef %11732, ptr noundef @.str.4)
  %11734 = call ptr @__errno_location() #11
  %11735 = load i32, ptr %11734, align 4, !tbaa !5
  %11736 = call ptr @strerror(i32 noundef %11735) #10
  %11737 = call ptr @__errno_location() #11
  %11738 = load i32, ptr %11737, align 4, !tbaa !5
  %11739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11726, ptr noundef @.str.5, i32 noundef %11727, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 529, ptr noundef %11730, ptr noundef %11733, ptr noundef %11736, i32 noundef %11738) #10
  br label %11740

11740:                                            ; preds = %11723, %11706
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #10
  br label %11741

11741:                                            ; preds = %11740
  br label %11742

11742:                                            ; preds = %11741
  call void @exit(i32 noundef 1) #12
  unreachable

11743:                                            ; No predecessors!
  br label %11744

11744:                                            ; preds = %11743
  br label %11745

11745:                                            ; preds = %11744, %11687
  br label %11746

11746:                                            ; preds = %11745
  br label %11747

11747:                                            ; preds = %11746
  br label %11748

11748:                                            ; preds = %11747
  %11749 = load i32, ptr @test_count, align 4, !tbaa !5
  %11750 = add nsw i32 %11749, 1
  store i32 %11750, ptr @test_count, align 4, !tbaa !5
  %11751 = load ptr, ptr %287, align 8, !tbaa !9
  %11752 = load ptr, ptr %45, align 8, !tbaa !9
  %11753 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %11751, ptr noundef %11752)
  %11754 = icmp eq i32 %11753, -1
  br i1 %11754, label %11755, label %11808

11755:                                            ; preds = %11748
  br label %11756

11756:                                            ; preds = %11755
  br label %11757

11757:                                            ; preds = %11756
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #10
  %11758 = call ptr @__errno_location() #11
  %11759 = load i32, ptr %11758, align 4, !tbaa !5
  store i32 %11759, ptr %289, align 4, !tbaa !5
  %11760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11761 = call i32 @s2n_print_stacktrace(ptr noundef %11760)
  %11762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11763 = trunc i8 %11762 to i1
  br i1 %11763, label %11764, label %11786

11764:                                            ; preds = %11757
  %11765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11766 = call i32 @fileno(ptr noundef %11765) #10
  %11767 = call i32 @isatty(i32 noundef %11766) #10
  %11768 = icmp ne i32 %11767, 0
  br i1 %11768, label %11769, label %11786

11769:                                            ; preds = %11764
  %11770 = load i32, ptr %289, align 4, !tbaa !5
  %11771 = call ptr @__errno_location() #11
  store i32 %11770, ptr %11771, align 4, !tbaa !5
  %11772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11773 = load i32, ptr @test_count, align 4, !tbaa !5
  %11774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11775 = load i32, ptr %11774, align 4, !tbaa !5
  %11776 = call ptr @s2n_strerror(i32 noundef %11775, ptr noundef @.str.4)
  %11777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11778 = load i32, ptr %11777, align 4, !tbaa !5
  %11779 = call ptr @s2n_strerror_debug(i32 noundef %11778, ptr noundef @.str.4)
  %11780 = call ptr @__errno_location() #11
  %11781 = load i32, ptr %11780, align 4, !tbaa !5
  %11782 = call ptr @strerror(i32 noundef %11781) #10
  %11783 = call ptr @__errno_location() #11
  %11784 = load i32, ptr %11783, align 4, !tbaa !5
  %11785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11772, ptr noundef @.str.2, i32 noundef %11773, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11776, ptr noundef %11779, ptr noundef %11782, i32 noundef %11784) #10
  br label %11803

11786:                                            ; preds = %11764, %11757
  %11787 = load i32, ptr %289, align 4, !tbaa !5
  %11788 = call ptr @__errno_location() #11
  store i32 %11787, ptr %11788, align 4, !tbaa !5
  %11789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11790 = load i32, ptr @test_count, align 4, !tbaa !5
  %11791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11792 = load i32, ptr %11791, align 4, !tbaa !5
  %11793 = call ptr @s2n_strerror(i32 noundef %11792, ptr noundef @.str.4)
  %11794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11795 = load i32, ptr %11794, align 4, !tbaa !5
  %11796 = call ptr @s2n_strerror_debug(i32 noundef %11795, ptr noundef @.str.4)
  %11797 = call ptr @__errno_location() #11
  %11798 = load i32, ptr %11797, align 4, !tbaa !5
  %11799 = call ptr @strerror(i32 noundef %11798) #10
  %11800 = call ptr @__errno_location() #11
  %11801 = load i32, ptr %11800, align 4, !tbaa !5
  %11802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11789, ptr noundef @.str.5, i32 noundef %11790, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11793, ptr noundef %11796, ptr noundef %11799, i32 noundef %11801) #10
  br label %11803

11803:                                            ; preds = %11786, %11769
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #10
  br label %11804

11804:                                            ; preds = %11803
  br label %11805

11805:                                            ; preds = %11804
  call void @exit(i32 noundef 1) #12
  unreachable

11806:                                            ; No predecessors!
  br label %11807

11807:                                            ; preds = %11806
  br label %11808

11808:                                            ; preds = %11807, %11748
  br label %11809

11809:                                            ; preds = %11808
  br label %11810

11810:                                            ; preds = %11809
  br label %11811

11811:                                            ; preds = %11810
  %11812 = load i32, ptr @test_count, align 4, !tbaa !5
  %11813 = add nsw i32 %11812, 1
  store i32 %11813, ptr @test_count, align 4, !tbaa !5
  %11814 = load ptr, ptr %287, align 8, !tbaa !9
  %11815 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %11814, ptr noundef @.str.23, ptr noundef null)
  %11816 = icmp eq i32 %11815, -1
  br i1 %11816, label %11817, label %11870

11817:                                            ; preds = %11811
  br label %11818

11818:                                            ; preds = %11817
  br label %11819

11819:                                            ; preds = %11818
  call void @llvm.lifetime.start.p0(i64 4, ptr %290) #10
  %11820 = call ptr @__errno_location() #11
  %11821 = load i32, ptr %11820, align 4, !tbaa !5
  store i32 %11821, ptr %290, align 4, !tbaa !5
  %11822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11823 = call i32 @s2n_print_stacktrace(ptr noundef %11822)
  %11824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11825 = trunc i8 %11824 to i1
  br i1 %11825, label %11826, label %11848

11826:                                            ; preds = %11819
  %11827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11828 = call i32 @fileno(ptr noundef %11827) #10
  %11829 = call i32 @isatty(i32 noundef %11828) #10
  %11830 = icmp ne i32 %11829, 0
  br i1 %11830, label %11831, label %11848

11831:                                            ; preds = %11826
  %11832 = load i32, ptr %290, align 4, !tbaa !5
  %11833 = call ptr @__errno_location() #11
  store i32 %11832, ptr %11833, align 4, !tbaa !5
  %11834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11835 = load i32, ptr @test_count, align 4, !tbaa !5
  %11836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11837 = load i32, ptr %11836, align 4, !tbaa !5
  %11838 = call ptr @s2n_strerror(i32 noundef %11837, ptr noundef @.str.4)
  %11839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11840 = load i32, ptr %11839, align 4, !tbaa !5
  %11841 = call ptr @s2n_strerror_debug(i32 noundef %11840, ptr noundef @.str.4)
  %11842 = call ptr @__errno_location() #11
  %11843 = load i32, ptr %11842, align 4, !tbaa !5
  %11844 = call ptr @strerror(i32 noundef %11843) #10
  %11845 = call ptr @__errno_location() #11
  %11846 = load i32, ptr %11845, align 4, !tbaa !5
  %11847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11834, ptr noundef @.str.2, i32 noundef %11835, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 531, ptr noundef %11838, ptr noundef %11841, ptr noundef %11844, i32 noundef %11846) #10
  br label %11865

11848:                                            ; preds = %11826, %11819
  %11849 = load i32, ptr %290, align 4, !tbaa !5
  %11850 = call ptr @__errno_location() #11
  store i32 %11849, ptr %11850, align 4, !tbaa !5
  %11851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11852 = load i32, ptr @test_count, align 4, !tbaa !5
  %11853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11854 = load i32, ptr %11853, align 4, !tbaa !5
  %11855 = call ptr @s2n_strerror(i32 noundef %11854, ptr noundef @.str.4)
  %11856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11857 = load i32, ptr %11856, align 4, !tbaa !5
  %11858 = call ptr @s2n_strerror_debug(i32 noundef %11857, ptr noundef @.str.4)
  %11859 = call ptr @__errno_location() #11
  %11860 = load i32, ptr %11859, align 4, !tbaa !5
  %11861 = call ptr @strerror(i32 noundef %11860) #10
  %11862 = call ptr @__errno_location() #11
  %11863 = load i32, ptr %11862, align 4, !tbaa !5
  %11864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11851, ptr noundef @.str.5, i32 noundef %11852, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 531, ptr noundef %11855, ptr noundef %11858, ptr noundef %11861, i32 noundef %11863) #10
  br label %11865

11865:                                            ; preds = %11848, %11831
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #10
  br label %11866

11866:                                            ; preds = %11865
  br label %11867

11867:                                            ; preds = %11866
  call void @exit(i32 noundef 1) #12
  unreachable

11868:                                            ; No predecessors!
  br label %11869

11869:                                            ; preds = %11868
  br label %11870

11870:                                            ; preds = %11869, %11811
  br label %11871

11871:                                            ; preds = %11870
  br label %11872

11872:                                            ; preds = %11871
  br label %11873

11873:                                            ; preds = %11872
  %11874 = load i32, ptr @test_count, align 4, !tbaa !5
  %11875 = add nsw i32 %11874, 1
  store i32 %11875, ptr @test_count, align 4, !tbaa !5
  %11876 = load ptr, ptr %287, align 8, !tbaa !9
  %11877 = load i32, ptr %274, align 4, !tbaa !5
  %11878 = sext i32 %11877 to i64
  %11879 = getelementptr inbounds [2 x ptr], ptr %227, i64 0, i64 %11878
  %11880 = load ptr, ptr %11879, align 8, !tbaa !9
  %11881 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %11876, ptr noundef %11880)
  %11882 = icmp eq i32 %11881, -1
  br i1 %11882, label %11883, label %11936

11883:                                            ; preds = %11873
  br label %11884

11884:                                            ; preds = %11883
  br label %11885

11885:                                            ; preds = %11884
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #10
  %11886 = call ptr @__errno_location() #11
  %11887 = load i32, ptr %11886, align 4, !tbaa !5
  store i32 %11887, ptr %291, align 4, !tbaa !5
  %11888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11889 = call i32 @s2n_print_stacktrace(ptr noundef %11888)
  %11890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11891 = trunc i8 %11890 to i1
  br i1 %11891, label %11892, label %11914

11892:                                            ; preds = %11885
  %11893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11894 = call i32 @fileno(ptr noundef %11893) #10
  %11895 = call i32 @isatty(i32 noundef %11894) #10
  %11896 = icmp ne i32 %11895, 0
  br i1 %11896, label %11897, label %11914

11897:                                            ; preds = %11892
  %11898 = load i32, ptr %291, align 4, !tbaa !5
  %11899 = call ptr @__errno_location() #11
  store i32 %11898, ptr %11899, align 4, !tbaa !5
  %11900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11901 = load i32, ptr @test_count, align 4, !tbaa !5
  %11902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11903 = load i32, ptr %11902, align 4, !tbaa !5
  %11904 = call ptr @s2n_strerror(i32 noundef %11903, ptr noundef @.str.4)
  %11905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11906 = load i32, ptr %11905, align 4, !tbaa !5
  %11907 = call ptr @s2n_strerror_debug(i32 noundef %11906, ptr noundef @.str.4)
  %11908 = call ptr @__errno_location() #11
  %11909 = load i32, ptr %11908, align 4, !tbaa !5
  %11910 = call ptr @strerror(i32 noundef %11909) #10
  %11911 = call ptr @__errno_location() #11
  %11912 = load i32, ptr %11911, align 4, !tbaa !5
  %11913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11900, ptr noundef @.str.2, i32 noundef %11901, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 532, ptr noundef %11904, ptr noundef %11907, ptr noundef %11910, i32 noundef %11912) #10
  br label %11931

11914:                                            ; preds = %11892, %11885
  %11915 = load i32, ptr %291, align 4, !tbaa !5
  %11916 = call ptr @__errno_location() #11
  store i32 %11915, ptr %11916, align 4, !tbaa !5
  %11917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11918 = load i32, ptr @test_count, align 4, !tbaa !5
  %11919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11920 = load i32, ptr %11919, align 4, !tbaa !5
  %11921 = call ptr @s2n_strerror(i32 noundef %11920, ptr noundef @.str.4)
  %11922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11923 = load i32, ptr %11922, align 4, !tbaa !5
  %11924 = call ptr @s2n_strerror_debug(i32 noundef %11923, ptr noundef @.str.4)
  %11925 = call ptr @__errno_location() #11
  %11926 = load i32, ptr %11925, align 4, !tbaa !5
  %11927 = call ptr @strerror(i32 noundef %11926) #10
  %11928 = call ptr @__errno_location() #11
  %11929 = load i32, ptr %11928, align 4, !tbaa !5
  %11930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11917, ptr noundef @.str.5, i32 noundef %11918, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 532, ptr noundef %11921, ptr noundef %11924, ptr noundef %11927, i32 noundef %11929) #10
  br label %11931

11931:                                            ; preds = %11914, %11897
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #10
  br label %11932

11932:                                            ; preds = %11931
  br label %11933

11933:                                            ; preds = %11932
  call void @exit(i32 noundef 1) #12
  unreachable

11934:                                            ; No predecessors!
  br label %11935

11935:                                            ; preds = %11934
  br label %11936

11936:                                            ; preds = %11935, %11873
  br label %11937

11937:                                            ; preds = %11936
  br label %11938

11938:                                            ; preds = %11937
  br label %11939

11939:                                            ; preds = %11938
  %11940 = load i32, ptr @test_count, align 4, !tbaa !5
  %11941 = add nsw i32 %11940, 1
  store i32 %11941, ptr @test_count, align 4, !tbaa !5
  %11942 = load ptr, ptr %287, align 8, !tbaa !9
  %11943 = call i32 @s2n_config_set_client_auth_type(ptr noundef %11942, i32 noundef 2)
  %11944 = icmp eq i32 %11943, -1
  br i1 %11944, label %11945, label %11998

11945:                                            ; preds = %11939
  br label %11946

11946:                                            ; preds = %11945
  br label %11947

11947:                                            ; preds = %11946
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #10
  %11948 = call ptr @__errno_location() #11
  %11949 = load i32, ptr %11948, align 4, !tbaa !5
  store i32 %11949, ptr %292, align 4, !tbaa !5
  %11950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11951 = call i32 @s2n_print_stacktrace(ptr noundef %11950)
  %11952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11953 = trunc i8 %11952 to i1
  br i1 %11953, label %11954, label %11976

11954:                                            ; preds = %11947
  %11955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11956 = call i32 @fileno(ptr noundef %11955) #10
  %11957 = call i32 @isatty(i32 noundef %11956) #10
  %11958 = icmp ne i32 %11957, 0
  br i1 %11958, label %11959, label %11976

11959:                                            ; preds = %11954
  %11960 = load i32, ptr %292, align 4, !tbaa !5
  %11961 = call ptr @__errno_location() #11
  store i32 %11960, ptr %11961, align 4, !tbaa !5
  %11962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11963 = load i32, ptr @test_count, align 4, !tbaa !5
  %11964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11965 = load i32, ptr %11964, align 4, !tbaa !5
  %11966 = call ptr @s2n_strerror(i32 noundef %11965, ptr noundef @.str.4)
  %11967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11968 = load i32, ptr %11967, align 4, !tbaa !5
  %11969 = call ptr @s2n_strerror_debug(i32 noundef %11968, ptr noundef @.str.4)
  %11970 = call ptr @__errno_location() #11
  %11971 = load i32, ptr %11970, align 4, !tbaa !5
  %11972 = call ptr @strerror(i32 noundef %11971) #10
  %11973 = call ptr @__errno_location() #11
  %11974 = load i32, ptr %11973, align 4, !tbaa !5
  %11975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11962, ptr noundef @.str.2, i32 noundef %11963, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 533, ptr noundef %11966, ptr noundef %11969, ptr noundef %11972, i32 noundef %11974) #10
  br label %11993

11976:                                            ; preds = %11954, %11947
  %11977 = load i32, ptr %292, align 4, !tbaa !5
  %11978 = call ptr @__errno_location() #11
  store i32 %11977, ptr %11978, align 4, !tbaa !5
  %11979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11980 = load i32, ptr @test_count, align 4, !tbaa !5
  %11981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11982 = load i32, ptr %11981, align 4, !tbaa !5
  %11983 = call ptr @s2n_strerror(i32 noundef %11982, ptr noundef @.str.4)
  %11984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11985 = load i32, ptr %11984, align 4, !tbaa !5
  %11986 = call ptr @s2n_strerror_debug(i32 noundef %11985, ptr noundef @.str.4)
  %11987 = call ptr @__errno_location() #11
  %11988 = load i32, ptr %11987, align 4, !tbaa !5
  %11989 = call ptr @strerror(i32 noundef %11988) #10
  %11990 = call ptr @__errno_location() #11
  %11991 = load i32, ptr %11990, align 4, !tbaa !5
  %11992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11979, ptr noundef @.str.5, i32 noundef %11980, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 533, ptr noundef %11983, ptr noundef %11986, ptr noundef %11989, i32 noundef %11991) #10
  br label %11993

11993:                                            ; preds = %11976, %11959
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #10
  br label %11994

11994:                                            ; preds = %11993
  br label %11995

11995:                                            ; preds = %11994
  call void @exit(i32 noundef 1) #12
  unreachable

11996:                                            ; No predecessors!
  br label %11997

11997:                                            ; preds = %11996
  br label %11998

11998:                                            ; preds = %11997, %11939
  br label %11999

11999:                                            ; preds = %11998
  br label %12000

12000:                                            ; preds = %11999
  call void @llvm.lifetime.start.p0(i64 8, ptr %293) #10
  %12001 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %12001, ptr %293, align 8, !tbaa !9
  br label %12002

12002:                                            ; preds = %12000
  %12003 = load i32, ptr @test_count, align 4, !tbaa !5
  %12004 = add nsw i32 %12003, 1
  store i32 %12004, ptr @test_count, align 4, !tbaa !5
  %12005 = load ptr, ptr %293, align 8, !tbaa !9
  %12006 = icmp eq ptr %12005, null
  br i1 %12006, label %12007, label %12060

12007:                                            ; preds = %12002
  br label %12008

12008:                                            ; preds = %12007
  br label %12009

12009:                                            ; preds = %12008
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #10
  %12010 = call ptr @__errno_location() #11
  %12011 = load i32, ptr %12010, align 4, !tbaa !5
  store i32 %12011, ptr %294, align 4, !tbaa !5
  %12012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12013 = call i32 @s2n_print_stacktrace(ptr noundef %12012)
  %12014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12015 = trunc i8 %12014 to i1
  br i1 %12015, label %12016, label %12038

12016:                                            ; preds = %12009
  %12017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12018 = call i32 @fileno(ptr noundef %12017) #10
  %12019 = call i32 @isatty(i32 noundef %12018) #10
  %12020 = icmp ne i32 %12019, 0
  br i1 %12020, label %12021, label %12038

12021:                                            ; preds = %12016
  %12022 = load i32, ptr %294, align 4, !tbaa !5
  %12023 = call ptr @__errno_location() #11
  store i32 %12022, ptr %12023, align 4, !tbaa !5
  %12024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12025 = load i32, ptr @test_count, align 4, !tbaa !5
  %12026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12027 = load i32, ptr %12026, align 4, !tbaa !5
  %12028 = call ptr @s2n_strerror(i32 noundef %12027, ptr noundef @.str.4)
  %12029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12030 = load i32, ptr %12029, align 4, !tbaa !5
  %12031 = call ptr @s2n_strerror_debug(i32 noundef %12030, ptr noundef @.str.4)
  %12032 = call ptr @__errno_location() #11
  %12033 = load i32, ptr %12032, align 4, !tbaa !5
  %12034 = call ptr @strerror(i32 noundef %12033) #10
  %12035 = call ptr @__errno_location() #11
  %12036 = load i32, ptr %12035, align 4, !tbaa !5
  %12037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12024, ptr noundef @.str.2, i32 noundef %12025, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 536, ptr noundef %12028, ptr noundef %12031, ptr noundef %12034, i32 noundef %12036) #10
  br label %12055

12038:                                            ; preds = %12016, %12009
  %12039 = load i32, ptr %294, align 4, !tbaa !5
  %12040 = call ptr @__errno_location() #11
  store i32 %12039, ptr %12040, align 4, !tbaa !5
  %12041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12042 = load i32, ptr @test_count, align 4, !tbaa !5
  %12043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12044 = load i32, ptr %12043, align 4, !tbaa !5
  %12045 = call ptr @s2n_strerror(i32 noundef %12044, ptr noundef @.str.4)
  %12046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12047 = load i32, ptr %12046, align 4, !tbaa !5
  %12048 = call ptr @s2n_strerror_debug(i32 noundef %12047, ptr noundef @.str.4)
  %12049 = call ptr @__errno_location() #11
  %12050 = load i32, ptr %12049, align 4, !tbaa !5
  %12051 = call ptr @strerror(i32 noundef %12050) #10
  %12052 = call ptr @__errno_location() #11
  %12053 = load i32, ptr %12052, align 4, !tbaa !5
  %12054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12041, ptr noundef @.str.5, i32 noundef %12042, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 536, ptr noundef %12045, ptr noundef %12048, ptr noundef %12051, i32 noundef %12053) #10
  br label %12055

12055:                                            ; preds = %12038, %12021
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #10
  br label %12056

12056:                                            ; preds = %12055
  br label %12057

12057:                                            ; preds = %12056
  call void @exit(i32 noundef 1) #12
  unreachable

12058:                                            ; No predecessors!
  br label %12059

12059:                                            ; preds = %12058
  br label %12060

12060:                                            ; preds = %12059, %12002
  br label %12061

12061:                                            ; preds = %12060
  br label %12062

12062:                                            ; preds = %12061
  br label %12063

12063:                                            ; preds = %12062
  %12064 = load i32, ptr @test_count, align 4, !tbaa !5
  %12065 = add nsw i32 %12064, 1
  store i32 %12065, ptr @test_count, align 4, !tbaa !5
  %12066 = load ptr, ptr %293, align 8, !tbaa !9
  %12067 = load ptr, ptr %287, align 8, !tbaa !9
  %12068 = call i32 @s2n_connection_set_config(ptr noundef %12066, ptr noundef %12067)
  %12069 = icmp eq i32 %12068, -1
  br i1 %12069, label %12070, label %12123

12070:                                            ; preds = %12063
  br label %12071

12071:                                            ; preds = %12070
  br label %12072

12072:                                            ; preds = %12071
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #10
  %12073 = call ptr @__errno_location() #11
  %12074 = load i32, ptr %12073, align 4, !tbaa !5
  store i32 %12074, ptr %295, align 4, !tbaa !5
  %12075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12076 = call i32 @s2n_print_stacktrace(ptr noundef %12075)
  %12077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12078 = trunc i8 %12077 to i1
  br i1 %12078, label %12079, label %12101

12079:                                            ; preds = %12072
  %12080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12081 = call i32 @fileno(ptr noundef %12080) #10
  %12082 = call i32 @isatty(i32 noundef %12081) #10
  %12083 = icmp ne i32 %12082, 0
  br i1 %12083, label %12084, label %12101

12084:                                            ; preds = %12079
  %12085 = load i32, ptr %295, align 4, !tbaa !5
  %12086 = call ptr @__errno_location() #11
  store i32 %12085, ptr %12086, align 4, !tbaa !5
  %12087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12088 = load i32, ptr @test_count, align 4, !tbaa !5
  %12089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12090 = load i32, ptr %12089, align 4, !tbaa !5
  %12091 = call ptr @s2n_strerror(i32 noundef %12090, ptr noundef @.str.4)
  %12092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12093 = load i32, ptr %12092, align 4, !tbaa !5
  %12094 = call ptr @s2n_strerror_debug(i32 noundef %12093, ptr noundef @.str.4)
  %12095 = call ptr @__errno_location() #11
  %12096 = load i32, ptr %12095, align 4, !tbaa !5
  %12097 = call ptr @strerror(i32 noundef %12096) #10
  %12098 = call ptr @__errno_location() #11
  %12099 = load i32, ptr %12098, align 4, !tbaa !5
  %12100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12087, ptr noundef @.str.2, i32 noundef %12088, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 537, ptr noundef %12091, ptr noundef %12094, ptr noundef %12097, i32 noundef %12099) #10
  br label %12118

12101:                                            ; preds = %12079, %12072
  %12102 = load i32, ptr %295, align 4, !tbaa !5
  %12103 = call ptr @__errno_location() #11
  store i32 %12102, ptr %12103, align 4, !tbaa !5
  %12104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12105 = load i32, ptr @test_count, align 4, !tbaa !5
  %12106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12107 = load i32, ptr %12106, align 4, !tbaa !5
  %12108 = call ptr @s2n_strerror(i32 noundef %12107, ptr noundef @.str.4)
  %12109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12110 = load i32, ptr %12109, align 4, !tbaa !5
  %12111 = call ptr @s2n_strerror_debug(i32 noundef %12110, ptr noundef @.str.4)
  %12112 = call ptr @__errno_location() #11
  %12113 = load i32, ptr %12112, align 4, !tbaa !5
  %12114 = call ptr @strerror(i32 noundef %12113) #10
  %12115 = call ptr @__errno_location() #11
  %12116 = load i32, ptr %12115, align 4, !tbaa !5
  %12117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12104, ptr noundef @.str.5, i32 noundef %12105, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 537, ptr noundef %12108, ptr noundef %12111, ptr noundef %12114, i32 noundef %12116) #10
  br label %12118

12118:                                            ; preds = %12101, %12084
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #10
  br label %12119

12119:                                            ; preds = %12118
  br label %12120

12120:                                            ; preds = %12119
  call void @exit(i32 noundef 1) #12
  unreachable

12121:                                            ; No predecessors!
  br label %12122

12122:                                            ; preds = %12121
  br label %12123

12123:                                            ; preds = %12122, %12063
  br label %12124

12124:                                            ; preds = %12123
  br label %12125

12125:                                            ; preds = %12124
  br label %12126

12126:                                            ; preds = %12125
  %12127 = load i32, ptr @test_count, align 4, !tbaa !5
  %12128 = add nsw i32 %12127, 1
  store i32 %12128, ptr @test_count, align 4, !tbaa !5
  %12129 = load ptr, ptr %293, align 8, !tbaa !9
  %12130 = call i32 @s2n_set_server_name(ptr noundef %12129, ptr noundef @.str.35)
  %12131 = icmp eq i32 %12130, -1
  br i1 %12131, label %12132, label %12185

12132:                                            ; preds = %12126
  br label %12133

12133:                                            ; preds = %12132
  br label %12134

12134:                                            ; preds = %12133
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #10
  %12135 = call ptr @__errno_location() #11
  %12136 = load i32, ptr %12135, align 4, !tbaa !5
  store i32 %12136, ptr %296, align 4, !tbaa !5
  %12137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12138 = call i32 @s2n_print_stacktrace(ptr noundef %12137)
  %12139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12140 = trunc i8 %12139 to i1
  br i1 %12140, label %12141, label %12163

12141:                                            ; preds = %12134
  %12142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12143 = call i32 @fileno(ptr noundef %12142) #10
  %12144 = call i32 @isatty(i32 noundef %12143) #10
  %12145 = icmp ne i32 %12144, 0
  br i1 %12145, label %12146, label %12163

12146:                                            ; preds = %12141
  %12147 = load i32, ptr %296, align 4, !tbaa !5
  %12148 = call ptr @__errno_location() #11
  store i32 %12147, ptr %12148, align 4, !tbaa !5
  %12149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12150 = load i32, ptr @test_count, align 4, !tbaa !5
  %12151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12152 = load i32, ptr %12151, align 4, !tbaa !5
  %12153 = call ptr @s2n_strerror(i32 noundef %12152, ptr noundef @.str.4)
  %12154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12155 = load i32, ptr %12154, align 4, !tbaa !5
  %12156 = call ptr @s2n_strerror_debug(i32 noundef %12155, ptr noundef @.str.4)
  %12157 = call ptr @__errno_location() #11
  %12158 = load i32, ptr %12157, align 4, !tbaa !5
  %12159 = call ptr @strerror(i32 noundef %12158) #10
  %12160 = call ptr @__errno_location() #11
  %12161 = load i32, ptr %12160, align 4, !tbaa !5
  %12162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12149, ptr noundef @.str.2, i32 noundef %12150, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 538, ptr noundef %12153, ptr noundef %12156, ptr noundef %12159, i32 noundef %12161) #10
  br label %12180

12163:                                            ; preds = %12141, %12134
  %12164 = load i32, ptr %296, align 4, !tbaa !5
  %12165 = call ptr @__errno_location() #11
  store i32 %12164, ptr %12165, align 4, !tbaa !5
  %12166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12167 = load i32, ptr @test_count, align 4, !tbaa !5
  %12168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12169 = load i32, ptr %12168, align 4, !tbaa !5
  %12170 = call ptr @s2n_strerror(i32 noundef %12169, ptr noundef @.str.4)
  %12171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12172 = load i32, ptr %12171, align 4, !tbaa !5
  %12173 = call ptr @s2n_strerror_debug(i32 noundef %12172, ptr noundef @.str.4)
  %12174 = call ptr @__errno_location() #11
  %12175 = load i32, ptr %12174, align 4, !tbaa !5
  %12176 = call ptr @strerror(i32 noundef %12175) #10
  %12177 = call ptr @__errno_location() #11
  %12178 = load i32, ptr %12177, align 4, !tbaa !5
  %12179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12166, ptr noundef @.str.5, i32 noundef %12167, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 538, ptr noundef %12170, ptr noundef %12173, ptr noundef %12176, i32 noundef %12178) #10
  br label %12180

12180:                                            ; preds = %12163, %12146
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #10
  br label %12181

12181:                                            ; preds = %12180
  br label %12182

12182:                                            ; preds = %12181
  call void @exit(i32 noundef 1) #12
  unreachable

12183:                                            ; No predecessors!
  br label %12184

12184:                                            ; preds = %12183
  br label %12185

12185:                                            ; preds = %12184, %12126
  br label %12186

12186:                                            ; preds = %12185
  br label %12187

12187:                                            ; preds = %12186
  call void @llvm.lifetime.start.p0(i64 8, ptr %297) #10
  call void @llvm.memset.p0.i64(ptr align 4 %297, i8 0, i64 8, i1 false)
  br label %12188

12188:                                            ; preds = %12187
  %12189 = load i32, ptr @test_count, align 4, !tbaa !5
  %12190 = add nsw i32 %12189, 1
  store i32 %12190, ptr @test_count, align 4, !tbaa !5
  %12191 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %297)
  %12192 = icmp eq i32 %12191, -1
  br i1 %12192, label %12193, label %12246

12193:                                            ; preds = %12188
  br label %12194

12194:                                            ; preds = %12193
  br label %12195

12195:                                            ; preds = %12194
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #10
  %12196 = call ptr @__errno_location() #11
  %12197 = load i32, ptr %12196, align 4, !tbaa !5
  store i32 %12197, ptr %298, align 4, !tbaa !5
  %12198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12199 = call i32 @s2n_print_stacktrace(ptr noundef %12198)
  %12200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12201 = trunc i8 %12200 to i1
  br i1 %12201, label %12202, label %12224

12202:                                            ; preds = %12195
  %12203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12204 = call i32 @fileno(ptr noundef %12203) #10
  %12205 = call i32 @isatty(i32 noundef %12204) #10
  %12206 = icmp ne i32 %12205, 0
  br i1 %12206, label %12207, label %12224

12207:                                            ; preds = %12202
  %12208 = load i32, ptr %298, align 4, !tbaa !5
  %12209 = call ptr @__errno_location() #11
  store i32 %12208, ptr %12209, align 4, !tbaa !5
  %12210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12211 = load i32, ptr @test_count, align 4, !tbaa !5
  %12212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12213 = load i32, ptr %12212, align 4, !tbaa !5
  %12214 = call ptr @s2n_strerror(i32 noundef %12213, ptr noundef @.str.4)
  %12215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12216 = load i32, ptr %12215, align 4, !tbaa !5
  %12217 = call ptr @s2n_strerror_debug(i32 noundef %12216, ptr noundef @.str.4)
  %12218 = call ptr @__errno_location() #11
  %12219 = load i32, ptr %12218, align 4, !tbaa !5
  %12220 = call ptr @strerror(i32 noundef %12219) #10
  %12221 = call ptr @__errno_location() #11
  %12222 = load i32, ptr %12221, align 4, !tbaa !5
  %12223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12210, ptr noundef @.str.2, i32 noundef %12211, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 541, ptr noundef %12214, ptr noundef %12217, ptr noundef %12220, i32 noundef %12222) #10
  br label %12241

12224:                                            ; preds = %12202, %12195
  %12225 = load i32, ptr %298, align 4, !tbaa !5
  %12226 = call ptr @__errno_location() #11
  store i32 %12225, ptr %12226, align 4, !tbaa !5
  %12227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12228 = load i32, ptr @test_count, align 4, !tbaa !5
  %12229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12230 = load i32, ptr %12229, align 4, !tbaa !5
  %12231 = call ptr @s2n_strerror(i32 noundef %12230, ptr noundef @.str.4)
  %12232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12233 = load i32, ptr %12232, align 4, !tbaa !5
  %12234 = call ptr @s2n_strerror_debug(i32 noundef %12233, ptr noundef @.str.4)
  %12235 = call ptr @__errno_location() #11
  %12236 = load i32, ptr %12235, align 4, !tbaa !5
  %12237 = call ptr @strerror(i32 noundef %12236) #10
  %12238 = call ptr @__errno_location() #11
  %12239 = load i32, ptr %12238, align 4, !tbaa !5
  %12240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12227, ptr noundef @.str.5, i32 noundef %12228, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 541, ptr noundef %12231, ptr noundef %12234, ptr noundef %12237, i32 noundef %12239) #10
  br label %12241

12241:                                            ; preds = %12224, %12207
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #10
  br label %12242

12242:                                            ; preds = %12241
  br label %12243

12243:                                            ; preds = %12242
  call void @exit(i32 noundef 1) #12
  unreachable

12244:                                            ; No predecessors!
  br label %12245

12245:                                            ; preds = %12244
  br label %12246

12246:                                            ; preds = %12245, %12188
  br label %12247

12247:                                            ; preds = %12246
  br label %12248

12248:                                            ; preds = %12247
  br label %12249

12249:                                            ; preds = %12248
  %12250 = load i32, ptr @test_count, align 4, !tbaa !5
  %12251 = add nsw i32 %12250, 1
  store i32 %12251, ptr @test_count, align 4, !tbaa !5
  %12252 = load ptr, ptr %293, align 8, !tbaa !9
  %12253 = call i32 @s2n_connection_set_io_pair(ptr noundef %12252, ptr noundef %297)
  %12254 = icmp eq i32 %12253, -1
  br i1 %12254, label %12255, label %12308

12255:                                            ; preds = %12249
  br label %12256

12256:                                            ; preds = %12255
  br label %12257

12257:                                            ; preds = %12256
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #10
  %12258 = call ptr @__errno_location() #11
  %12259 = load i32, ptr %12258, align 4, !tbaa !5
  store i32 %12259, ptr %299, align 4, !tbaa !5
  %12260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12261 = call i32 @s2n_print_stacktrace(ptr noundef %12260)
  %12262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12263 = trunc i8 %12262 to i1
  br i1 %12263, label %12264, label %12286

12264:                                            ; preds = %12257
  %12265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12266 = call i32 @fileno(ptr noundef %12265) #10
  %12267 = call i32 @isatty(i32 noundef %12266) #10
  %12268 = icmp ne i32 %12267, 0
  br i1 %12268, label %12269, label %12286

12269:                                            ; preds = %12264
  %12270 = load i32, ptr %299, align 4, !tbaa !5
  %12271 = call ptr @__errno_location() #11
  store i32 %12270, ptr %12271, align 4, !tbaa !5
  %12272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12273 = load i32, ptr @test_count, align 4, !tbaa !5
  %12274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12275 = load i32, ptr %12274, align 4, !tbaa !5
  %12276 = call ptr @s2n_strerror(i32 noundef %12275, ptr noundef @.str.4)
  %12277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12278 = load i32, ptr %12277, align 4, !tbaa !5
  %12279 = call ptr @s2n_strerror_debug(i32 noundef %12278, ptr noundef @.str.4)
  %12280 = call ptr @__errno_location() #11
  %12281 = load i32, ptr %12280, align 4, !tbaa !5
  %12282 = call ptr @strerror(i32 noundef %12281) #10
  %12283 = call ptr @__errno_location() #11
  %12284 = load i32, ptr %12283, align 4, !tbaa !5
  %12285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12272, ptr noundef @.str.2, i32 noundef %12273, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 542, ptr noundef %12276, ptr noundef %12279, ptr noundef %12282, i32 noundef %12284) #10
  br label %12303

12286:                                            ; preds = %12264, %12257
  %12287 = load i32, ptr %299, align 4, !tbaa !5
  %12288 = call ptr @__errno_location() #11
  store i32 %12287, ptr %12288, align 4, !tbaa !5
  %12289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12290 = load i32, ptr @test_count, align 4, !tbaa !5
  %12291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12292 = load i32, ptr %12291, align 4, !tbaa !5
  %12293 = call ptr @s2n_strerror(i32 noundef %12292, ptr noundef @.str.4)
  %12294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12295 = load i32, ptr %12294, align 4, !tbaa !5
  %12296 = call ptr @s2n_strerror_debug(i32 noundef %12295, ptr noundef @.str.4)
  %12297 = call ptr @__errno_location() #11
  %12298 = load i32, ptr %12297, align 4, !tbaa !5
  %12299 = call ptr @strerror(i32 noundef %12298) #10
  %12300 = call ptr @__errno_location() #11
  %12301 = load i32, ptr %12300, align 4, !tbaa !5
  %12302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12289, ptr noundef @.str.5, i32 noundef %12290, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 542, ptr noundef %12293, ptr noundef %12296, ptr noundef %12299, i32 noundef %12301) #10
  br label %12303

12303:                                            ; preds = %12286, %12269
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #10
  br label %12304

12304:                                            ; preds = %12303
  br label %12305

12305:                                            ; preds = %12304
  call void @exit(i32 noundef 1) #12
  unreachable

12306:                                            ; No predecessors!
  br label %12307

12307:                                            ; preds = %12306
  br label %12308

12308:                                            ; preds = %12307, %12249
  br label %12309

12309:                                            ; preds = %12308
  br label %12310

12310:                                            ; preds = %12309
  br label %12311

12311:                                            ; preds = %12310
  %12312 = load i32, ptr @test_count, align 4, !tbaa !5
  %12313 = add nsw i32 %12312, 1
  store i32 %12313, ptr @test_count, align 4, !tbaa !5
  %12314 = load ptr, ptr %283, align 8, !tbaa !9
  %12315 = call i32 @s2n_connection_set_io_pair(ptr noundef %12314, ptr noundef %297)
  %12316 = icmp eq i32 %12315, -1
  br i1 %12316, label %12317, label %12370

12317:                                            ; preds = %12311
  br label %12318

12318:                                            ; preds = %12317
  br label %12319

12319:                                            ; preds = %12318
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #10
  %12320 = call ptr @__errno_location() #11
  %12321 = load i32, ptr %12320, align 4, !tbaa !5
  store i32 %12321, ptr %300, align 4, !tbaa !5
  %12322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12323 = call i32 @s2n_print_stacktrace(ptr noundef %12322)
  %12324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12325 = trunc i8 %12324 to i1
  br i1 %12325, label %12326, label %12348

12326:                                            ; preds = %12319
  %12327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12328 = call i32 @fileno(ptr noundef %12327) #10
  %12329 = call i32 @isatty(i32 noundef %12328) #10
  %12330 = icmp ne i32 %12329, 0
  br i1 %12330, label %12331, label %12348

12331:                                            ; preds = %12326
  %12332 = load i32, ptr %300, align 4, !tbaa !5
  %12333 = call ptr @__errno_location() #11
  store i32 %12332, ptr %12333, align 4, !tbaa !5
  %12334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12335 = load i32, ptr @test_count, align 4, !tbaa !5
  %12336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12337 = load i32, ptr %12336, align 4, !tbaa !5
  %12338 = call ptr @s2n_strerror(i32 noundef %12337, ptr noundef @.str.4)
  %12339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12340 = load i32, ptr %12339, align 4, !tbaa !5
  %12341 = call ptr @s2n_strerror_debug(i32 noundef %12340, ptr noundef @.str.4)
  %12342 = call ptr @__errno_location() #11
  %12343 = load i32, ptr %12342, align 4, !tbaa !5
  %12344 = call ptr @strerror(i32 noundef %12343) #10
  %12345 = call ptr @__errno_location() #11
  %12346 = load i32, ptr %12345, align 4, !tbaa !5
  %12347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12334, ptr noundef @.str.2, i32 noundef %12335, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 543, ptr noundef %12338, ptr noundef %12341, ptr noundef %12344, i32 noundef %12346) #10
  br label %12365

12348:                                            ; preds = %12326, %12319
  %12349 = load i32, ptr %300, align 4, !tbaa !5
  %12350 = call ptr @__errno_location() #11
  store i32 %12349, ptr %12350, align 4, !tbaa !5
  %12351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12352 = load i32, ptr @test_count, align 4, !tbaa !5
  %12353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12354 = load i32, ptr %12353, align 4, !tbaa !5
  %12355 = call ptr @s2n_strerror(i32 noundef %12354, ptr noundef @.str.4)
  %12356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12357 = load i32, ptr %12356, align 4, !tbaa !5
  %12358 = call ptr @s2n_strerror_debug(i32 noundef %12357, ptr noundef @.str.4)
  %12359 = call ptr @__errno_location() #11
  %12360 = load i32, ptr %12359, align 4, !tbaa !5
  %12361 = call ptr @strerror(i32 noundef %12360) #10
  %12362 = call ptr @__errno_location() #11
  %12363 = load i32, ptr %12362, align 4, !tbaa !5
  %12364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12351, ptr noundef @.str.5, i32 noundef %12352, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 543, ptr noundef %12355, ptr noundef %12358, ptr noundef %12361, i32 noundef %12363) #10
  br label %12365

12365:                                            ; preds = %12348, %12331
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #10
  br label %12366

12366:                                            ; preds = %12365
  br label %12367

12367:                                            ; preds = %12366
  call void @exit(i32 noundef 1) #12
  unreachable

12368:                                            ; No predecessors!
  br label %12369

12369:                                            ; preds = %12368
  br label %12370

12370:                                            ; preds = %12369, %12311
  br label %12371

12371:                                            ; preds = %12370
  br label %12372

12372:                                            ; preds = %12371
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #10
  store i32 0, ptr %301, align 4, !tbaa !5
  br label %12373

12373:                                            ; preds = %12639, %12372
  %12374 = load i32, ptr %301, align 4, !tbaa !5
  %12375 = icmp slt i32 %12374, 3
  br i1 %12375, label %12377, label %12376

12376:                                            ; preds = %12373
  store i32 1242, ptr %184, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #10
  br label %12642

12377:                                            ; preds = %12373
  br label %12378

12378:                                            ; preds = %12377
  br label %12379

12379:                                            ; preds = %12378
  br label %12380

12380:                                            ; preds = %12379
  %12381 = load i32, ptr @test_count, align 4, !tbaa !5
  %12382 = add nsw i32 %12381, 1
  store i32 %12382, ptr @test_count, align 4, !tbaa !5
  %12383 = load ptr, ptr %283, align 8, !tbaa !9
  %12384 = load ptr, ptr %293, align 8, !tbaa !9
  %12385 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %12383, ptr noundef %12384)
  %12386 = icmp eq i32 %12385, -1
  br i1 %12386, label %12440, label %12387

12387:                                            ; preds = %12380
  br label %12388

12388:                                            ; preds = %12387
  br label %12389

12389:                                            ; preds = %12388
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #10
  %12390 = call ptr @__errno_location() #11
  %12391 = load i32, ptr %12390, align 4, !tbaa !5
  store i32 %12391, ptr %302, align 4, !tbaa !5
  %12392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12393 = call i32 @s2n_print_stacktrace(ptr noundef %12392)
  %12394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12395 = trunc i8 %12394 to i1
  br i1 %12395, label %12396, label %12418

12396:                                            ; preds = %12389
  %12397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12398 = call i32 @fileno(ptr noundef %12397) #10
  %12399 = call i32 @isatty(i32 noundef %12398) #10
  %12400 = icmp ne i32 %12399, 0
  br i1 %12400, label %12401, label %12418

12401:                                            ; preds = %12396
  %12402 = load i32, ptr %302, align 4, !tbaa !5
  %12403 = call ptr @__errno_location() #11
  store i32 %12402, ptr %12403, align 4, !tbaa !5
  %12404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12405 = load i32, ptr @test_count, align 4, !tbaa !5
  %12406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12407 = load i32, ptr %12406, align 4, !tbaa !5
  %12408 = call ptr @s2n_strerror(i32 noundef %12407, ptr noundef @.str.4)
  %12409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12410 = load i32, ptr %12409, align 4, !tbaa !5
  %12411 = call ptr @s2n_strerror_debug(i32 noundef %12410, ptr noundef @.str.4)
  %12412 = call ptr @__errno_location() #11
  %12413 = load i32, ptr %12412, align 4, !tbaa !5
  %12414 = call ptr @strerror(i32 noundef %12413) #10
  %12415 = call ptr @__errno_location() #11
  %12416 = load i32, ptr %12415, align 4, !tbaa !5
  %12417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12404, ptr noundef @.str.2, i32 noundef %12405, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 547, ptr noundef %12408, ptr noundef %12411, ptr noundef %12414, i32 noundef %12416) #10
  br label %12435

12418:                                            ; preds = %12396, %12389
  %12419 = load i32, ptr %302, align 4, !tbaa !5
  %12420 = call ptr @__errno_location() #11
  store i32 %12419, ptr %12420, align 4, !tbaa !5
  %12421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12422 = load i32, ptr @test_count, align 4, !tbaa !5
  %12423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12424 = load i32, ptr %12423, align 4, !tbaa !5
  %12425 = call ptr @s2n_strerror(i32 noundef %12424, ptr noundef @.str.4)
  %12426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12427 = load i32, ptr %12426, align 4, !tbaa !5
  %12428 = call ptr @s2n_strerror_debug(i32 noundef %12427, ptr noundef @.str.4)
  %12429 = call ptr @__errno_location() #11
  %12430 = load i32, ptr %12429, align 4, !tbaa !5
  %12431 = call ptr @strerror(i32 noundef %12430) #10
  %12432 = call ptr @__errno_location() #11
  %12433 = load i32, ptr %12432, align 4, !tbaa !5
  %12434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12421, ptr noundef @.str.5, i32 noundef %12422, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 547, ptr noundef %12425, ptr noundef %12428, ptr noundef %12431, i32 noundef %12433) #10
  br label %12435

12435:                                            ; preds = %12418, %12401
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #10
  br label %12436

12436:                                            ; preds = %12435
  br label %12437

12437:                                            ; preds = %12436
  call void @exit(i32 noundef 1) #12
  unreachable

12438:                                            ; No predecessors!
  br label %12439

12439:                                            ; preds = %12438
  br label %12440

12440:                                            ; preds = %12439, %12380
  br label %12441

12441:                                            ; preds = %12440
  br label %12442

12442:                                            ; preds = %12441
  br label %12443

12443:                                            ; preds = %12442
  %12444 = load i32, ptr @test_count, align 4, !tbaa !5
  %12445 = add nsw i32 %12444, 1
  store i32 %12445, ptr @test_count, align 4, !tbaa !5
  %12446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12447 = load i32, ptr %12446, align 4, !tbaa !5
  %12448 = icmp eq i32 %12447, 201326593
  br i1 %12448, label %12502, label %12449

12449:                                            ; preds = %12443
  br label %12450

12450:                                            ; preds = %12449
  br label %12451

12451:                                            ; preds = %12450
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #10
  %12452 = call ptr @__errno_location() #11
  %12453 = load i32, ptr %12452, align 4, !tbaa !5
  store i32 %12453, ptr %303, align 4, !tbaa !5
  %12454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12455 = call i32 @s2n_print_stacktrace(ptr noundef %12454)
  %12456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12457 = trunc i8 %12456 to i1
  br i1 %12457, label %12458, label %12480

12458:                                            ; preds = %12451
  %12459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12460 = call i32 @fileno(ptr noundef %12459) #10
  %12461 = call i32 @isatty(i32 noundef %12460) #10
  %12462 = icmp ne i32 %12461, 0
  br i1 %12462, label %12463, label %12480

12463:                                            ; preds = %12458
  %12464 = load i32, ptr %303, align 4, !tbaa !5
  %12465 = call ptr @__errno_location() #11
  store i32 %12464, ptr %12465, align 4, !tbaa !5
  %12466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12467 = load i32, ptr @test_count, align 4, !tbaa !5
  %12468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12469 = load i32, ptr %12468, align 4, !tbaa !5
  %12470 = call ptr @s2n_strerror(i32 noundef %12469, ptr noundef @.str.4)
  %12471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12472 = load i32, ptr %12471, align 4, !tbaa !5
  %12473 = call ptr @s2n_strerror_debug(i32 noundef %12472, ptr noundef @.str.4)
  %12474 = call ptr @__errno_location() #11
  %12475 = load i32, ptr %12474, align 4, !tbaa !5
  %12476 = call ptr @strerror(i32 noundef %12475) #10
  %12477 = call ptr @__errno_location() #11
  %12478 = load i32, ptr %12477, align 4, !tbaa !5
  %12479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12466, ptr noundef @.str.2, i32 noundef %12467, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 547, ptr noundef %12470, ptr noundef %12473, ptr noundef %12476, i32 noundef %12478) #10
  br label %12497

12480:                                            ; preds = %12458, %12451
  %12481 = load i32, ptr %303, align 4, !tbaa !5
  %12482 = call ptr @__errno_location() #11
  store i32 %12481, ptr %12482, align 4, !tbaa !5
  %12483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12484 = load i32, ptr @test_count, align 4, !tbaa !5
  %12485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12486 = load i32, ptr %12485, align 4, !tbaa !5
  %12487 = call ptr @s2n_strerror(i32 noundef %12486, ptr noundef @.str.4)
  %12488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12489 = load i32, ptr %12488, align 4, !tbaa !5
  %12490 = call ptr @s2n_strerror_debug(i32 noundef %12489, ptr noundef @.str.4)
  %12491 = call ptr @__errno_location() #11
  %12492 = load i32, ptr %12491, align 4, !tbaa !5
  %12493 = call ptr @strerror(i32 noundef %12492) #10
  %12494 = call ptr @__errno_location() #11
  %12495 = load i32, ptr %12494, align 4, !tbaa !5
  %12496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12483, ptr noundef @.str.5, i32 noundef %12484, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 547, ptr noundef %12487, ptr noundef %12490, ptr noundef %12493, i32 noundef %12495) #10
  br label %12497

12497:                                            ; preds = %12480, %12463
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #10
  br label %12498

12498:                                            ; preds = %12497
  br label %12499

12499:                                            ; preds = %12498
  call void @exit(i32 noundef 1) #12
  unreachable

12500:                                            ; No predecessors!
  br label %12501

12501:                                            ; preds = %12500
  br label %12502

12502:                                            ; preds = %12501, %12443
  br label %12503

12503:                                            ; preds = %12502
  br label %12504

12504:                                            ; preds = %12503
  br label %12505

12505:                                            ; preds = %12504
  %12506 = load i32, ptr @test_count, align 4, !tbaa !5
  %12507 = add nsw i32 %12506, 1
  store i32 %12507, ptr @test_count, align 4, !tbaa !5
  %12508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12509 = load i32, ptr %12508, align 4, !tbaa !5
  %12510 = call ptr @s2n_strerror_debug(i32 noundef %12509, ptr noundef @.str.4)
  %12511 = icmp eq ptr %12510, null
  br i1 %12511, label %12512, label %12565

12512:                                            ; preds = %12505
  br label %12513

12513:                                            ; preds = %12512
  br label %12514

12514:                                            ; preds = %12513
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #10
  %12515 = call ptr @__errno_location() #11
  %12516 = load i32, ptr %12515, align 4, !tbaa !5
  store i32 %12516, ptr %304, align 4, !tbaa !5
  %12517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12518 = call i32 @s2n_print_stacktrace(ptr noundef %12517)
  %12519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12520 = trunc i8 %12519 to i1
  br i1 %12520, label %12521, label %12543

12521:                                            ; preds = %12514
  %12522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12523 = call i32 @fileno(ptr noundef %12522) #10
  %12524 = call i32 @isatty(i32 noundef %12523) #10
  %12525 = icmp ne i32 %12524, 0
  br i1 %12525, label %12526, label %12543

12526:                                            ; preds = %12521
  %12527 = load i32, ptr %304, align 4, !tbaa !5
  %12528 = call ptr @__errno_location() #11
  store i32 %12527, ptr %12528, align 4, !tbaa !5
  %12529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12530 = load i32, ptr @test_count, align 4, !tbaa !5
  %12531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12532 = load i32, ptr %12531, align 4, !tbaa !5
  %12533 = call ptr @s2n_strerror(i32 noundef %12532, ptr noundef @.str.4)
  %12534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12535 = load i32, ptr %12534, align 4, !tbaa !5
  %12536 = call ptr @s2n_strerror_debug(i32 noundef %12535, ptr noundef @.str.4)
  %12537 = call ptr @__errno_location() #11
  %12538 = load i32, ptr %12537, align 4, !tbaa !5
  %12539 = call ptr @strerror(i32 noundef %12538) #10
  %12540 = call ptr @__errno_location() #11
  %12541 = load i32, ptr %12540, align 4, !tbaa !5
  %12542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12529, ptr noundef @.str.2, i32 noundef %12530, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 547, ptr noundef %12533, ptr noundef %12536, ptr noundef %12539, i32 noundef %12541) #10
  br label %12560

12543:                                            ; preds = %12521, %12514
  %12544 = load i32, ptr %304, align 4, !tbaa !5
  %12545 = call ptr @__errno_location() #11
  store i32 %12544, ptr %12545, align 4, !tbaa !5
  %12546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12547 = load i32, ptr @test_count, align 4, !tbaa !5
  %12548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12549 = load i32, ptr %12548, align 4, !tbaa !5
  %12550 = call ptr @s2n_strerror(i32 noundef %12549, ptr noundef @.str.4)
  %12551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12552 = load i32, ptr %12551, align 4, !tbaa !5
  %12553 = call ptr @s2n_strerror_debug(i32 noundef %12552, ptr noundef @.str.4)
  %12554 = call ptr @__errno_location() #11
  %12555 = load i32, ptr %12554, align 4, !tbaa !5
  %12556 = call ptr @strerror(i32 noundef %12555) #10
  %12557 = call ptr @__errno_location() #11
  %12558 = load i32, ptr %12557, align 4, !tbaa !5
  %12559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12546, ptr noundef @.str.5, i32 noundef %12547, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 547, ptr noundef %12550, ptr noundef %12553, ptr noundef %12556, i32 noundef %12558) #10
  br label %12560

12560:                                            ; preds = %12543, %12526
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #10
  br label %12561

12561:                                            ; preds = %12560
  br label %12562

12562:                                            ; preds = %12561
  call void @exit(i32 noundef 1) #12
  unreachable

12563:                                            ; No predecessors!
  br label %12564

12564:                                            ; preds = %12563
  br label %12565

12565:                                            ; preds = %12564, %12505
  br label %12566

12566:                                            ; preds = %12565
  br label %12567

12567:                                            ; preds = %12566
  br label %12568

12568:                                            ; preds = %12567
  br label %12569

12569:                                            ; preds = %12568
  br label %12570

12570:                                            ; preds = %12569
  %12571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12571, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12572 = call ptr @__errno_location() #11
  store i32 0, ptr %12572, align 4, !tbaa !5
  br label %12573

12573:                                            ; preds = %12570
  br label %12574

12574:                                            ; preds = %12573
  br label %12575

12575:                                            ; preds = %12574
  br label %12576

12576:                                            ; preds = %12575
  br label %12577

12577:                                            ; preds = %12576
  %12578 = load i32, ptr @test_count, align 4, !tbaa !5
  %12579 = add nsw i32 %12578, 1
  store i32 %12579, ptr @test_count, align 4, !tbaa !5
  %12580 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %281, i32 0, i32 1
  %12581 = load i32, ptr %12580, align 4, !tbaa !27
  %12582 = icmp eq i32 %12581, 1
  br i1 %12582, label %12636, label %12583

12583:                                            ; preds = %12577
  br label %12584

12584:                                            ; preds = %12583
  br label %12585

12585:                                            ; preds = %12584
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #10
  %12586 = call ptr @__errno_location() #11
  %12587 = load i32, ptr %12586, align 4, !tbaa !5
  store i32 %12587, ptr %305, align 4, !tbaa !5
  %12588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12589 = call i32 @s2n_print_stacktrace(ptr noundef %12588)
  %12590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12591 = trunc i8 %12590 to i1
  br i1 %12591, label %12592, label %12614

12592:                                            ; preds = %12585
  %12593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12594 = call i32 @fileno(ptr noundef %12593) #10
  %12595 = call i32 @isatty(i32 noundef %12594) #10
  %12596 = icmp ne i32 %12595, 0
  br i1 %12596, label %12597, label %12614

12597:                                            ; preds = %12592
  %12598 = load i32, ptr %305, align 4, !tbaa !5
  %12599 = call ptr @__errno_location() #11
  store i32 %12598, ptr %12599, align 4, !tbaa !5
  %12600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12601 = load i32, ptr @test_count, align 4, !tbaa !5
  %12602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12603 = load i32, ptr %12602, align 4, !tbaa !5
  %12604 = call ptr @s2n_strerror(i32 noundef %12603, ptr noundef @.str.4)
  %12605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12606 = load i32, ptr %12605, align 4, !tbaa !5
  %12607 = call ptr @s2n_strerror_debug(i32 noundef %12606, ptr noundef @.str.4)
  %12608 = call ptr @__errno_location() #11
  %12609 = load i32, ptr %12608, align 4, !tbaa !5
  %12610 = call ptr @strerror(i32 noundef %12609) #10
  %12611 = call ptr @__errno_location() #11
  %12612 = load i32, ptr %12611, align 4, !tbaa !5
  %12613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12600, ptr noundef @.str.2, i32 noundef %12601, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 548, ptr noundef %12604, ptr noundef %12607, ptr noundef %12610, i32 noundef %12612) #10
  br label %12631

12614:                                            ; preds = %12592, %12585
  %12615 = load i32, ptr %305, align 4, !tbaa !5
  %12616 = call ptr @__errno_location() #11
  store i32 %12615, ptr %12616, align 4, !tbaa !5
  %12617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12618 = load i32, ptr @test_count, align 4, !tbaa !5
  %12619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12620 = load i32, ptr %12619, align 4, !tbaa !5
  %12621 = call ptr @s2n_strerror(i32 noundef %12620, ptr noundef @.str.4)
  %12622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12623 = load i32, ptr %12622, align 4, !tbaa !5
  %12624 = call ptr @s2n_strerror_debug(i32 noundef %12623, ptr noundef @.str.4)
  %12625 = call ptr @__errno_location() #11
  %12626 = load i32, ptr %12625, align 4, !tbaa !5
  %12627 = call ptr @strerror(i32 noundef %12626) #10
  %12628 = call ptr @__errno_location() #11
  %12629 = load i32, ptr %12628, align 4, !tbaa !5
  %12630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12617, ptr noundef @.str.5, i32 noundef %12618, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 548, ptr noundef %12621, ptr noundef %12624, ptr noundef %12627, i32 noundef %12629) #10
  br label %12631

12631:                                            ; preds = %12614, %12597
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #10
  br label %12632

12632:                                            ; preds = %12631
  br label %12633

12633:                                            ; preds = %12632
  call void @exit(i32 noundef 1) #12
  unreachable

12634:                                            ; No predecessors!
  br label %12635

12635:                                            ; preds = %12634
  br label %12636

12636:                                            ; preds = %12635, %12577
  br label %12637

12637:                                            ; preds = %12636
  br label %12638

12638:                                            ; preds = %12637
  br label %12639

12639:                                            ; preds = %12638
  %12640 = load i32, ptr %301, align 4, !tbaa !5
  %12641 = add nsw i32 %12640, 1
  store i32 %12641, ptr %301, align 4, !tbaa !5
  br label %12373, !llvm.loop !37

12642:                                            ; preds = %12376
  call void @llvm.lifetime.start.p0(i64 8, ptr %306) #10
  store ptr null, ptr %306, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #10
  store i32 0, ptr %307, align 4, !tbaa !5
  br label %12643

12643:                                            ; preds = %12642
  %12644 = load i32, ptr @test_count, align 4, !tbaa !5
  %12645 = add nsw i32 %12644, 1
  store i32 %12645, ptr @test_count, align 4, !tbaa !5
  %12646 = load ptr, ptr %283, align 8, !tbaa !9
  %12647 = call i32 @s2n_connection_get_client_cert_chain(ptr noundef %12646, ptr noundef %306, ptr noundef %307)
  %12648 = icmp eq i32 %12647, -1
  br i1 %12648, label %12649, label %12702

12649:                                            ; preds = %12643
  br label %12650

12650:                                            ; preds = %12649
  br label %12651

12651:                                            ; preds = %12650
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #10
  %12652 = call ptr @__errno_location() #11
  %12653 = load i32, ptr %12652, align 4, !tbaa !5
  store i32 %12653, ptr %308, align 4, !tbaa !5
  %12654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12655 = call i32 @s2n_print_stacktrace(ptr noundef %12654)
  %12656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12657 = trunc i8 %12656 to i1
  br i1 %12657, label %12658, label %12680

12658:                                            ; preds = %12651
  %12659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12660 = call i32 @fileno(ptr noundef %12659) #10
  %12661 = call i32 @isatty(i32 noundef %12660) #10
  %12662 = icmp ne i32 %12661, 0
  br i1 %12662, label %12663, label %12680

12663:                                            ; preds = %12658
  %12664 = load i32, ptr %308, align 4, !tbaa !5
  %12665 = call ptr @__errno_location() #11
  store i32 %12664, ptr %12665, align 4, !tbaa !5
  %12666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12667 = load i32, ptr @test_count, align 4, !tbaa !5
  %12668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12669 = load i32, ptr %12668, align 4, !tbaa !5
  %12670 = call ptr @s2n_strerror(i32 noundef %12669, ptr noundef @.str.4)
  %12671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12672 = load i32, ptr %12671, align 4, !tbaa !5
  %12673 = call ptr @s2n_strerror_debug(i32 noundef %12672, ptr noundef @.str.4)
  %12674 = call ptr @__errno_location() #11
  %12675 = load i32, ptr %12674, align 4, !tbaa !5
  %12676 = call ptr @strerror(i32 noundef %12675) #10
  %12677 = call ptr @__errno_location() #11
  %12678 = load i32, ptr %12677, align 4, !tbaa !5
  %12679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12666, ptr noundef @.str.2, i32 noundef %12667, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 554, ptr noundef %12670, ptr noundef %12673, ptr noundef %12676, i32 noundef %12678) #10
  br label %12697

12680:                                            ; preds = %12658, %12651
  %12681 = load i32, ptr %308, align 4, !tbaa !5
  %12682 = call ptr @__errno_location() #11
  store i32 %12681, ptr %12682, align 4, !tbaa !5
  %12683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12684 = load i32, ptr @test_count, align 4, !tbaa !5
  %12685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12686 = load i32, ptr %12685, align 4, !tbaa !5
  %12687 = call ptr @s2n_strerror(i32 noundef %12686, ptr noundef @.str.4)
  %12688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12689 = load i32, ptr %12688, align 4, !tbaa !5
  %12690 = call ptr @s2n_strerror_debug(i32 noundef %12689, ptr noundef @.str.4)
  %12691 = call ptr @__errno_location() #11
  %12692 = load i32, ptr %12691, align 4, !tbaa !5
  %12693 = call ptr @strerror(i32 noundef %12692) #10
  %12694 = call ptr @__errno_location() #11
  %12695 = load i32, ptr %12694, align 4, !tbaa !5
  %12696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12683, ptr noundef @.str.5, i32 noundef %12684, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 554, ptr noundef %12687, ptr noundef %12690, ptr noundef %12693, i32 noundef %12695) #10
  br label %12697

12697:                                            ; preds = %12680, %12663
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #10
  br label %12698

12698:                                            ; preds = %12697
  br label %12699

12699:                                            ; preds = %12698
  call void @exit(i32 noundef 1) #12
  unreachable

12700:                                            ; No predecessors!
  br label %12701

12701:                                            ; preds = %12700
  br label %12702

12702:                                            ; preds = %12701, %12643
  br label %12703

12703:                                            ; preds = %12702
  br label %12704

12704:                                            ; preds = %12703
  br label %12705

12705:                                            ; preds = %12704
  %12706 = load i32, ptr @test_count, align 4, !tbaa !5
  %12707 = add nsw i32 %12706, 1
  store i32 %12707, ptr @test_count, align 4, !tbaa !5
  %12708 = load i32, ptr %307, align 4, !tbaa !5
  %12709 = icmp ugt i32 %12708, 0
  br i1 %12709, label %12763, label %12710

12710:                                            ; preds = %12705
  br label %12711

12711:                                            ; preds = %12710
  br label %12712

12712:                                            ; preds = %12711
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #10
  %12713 = call ptr @__errno_location() #11
  %12714 = load i32, ptr %12713, align 4, !tbaa !5
  store i32 %12714, ptr %309, align 4, !tbaa !5
  %12715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12716 = call i32 @s2n_print_stacktrace(ptr noundef %12715)
  %12717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12718 = trunc i8 %12717 to i1
  br i1 %12718, label %12719, label %12741

12719:                                            ; preds = %12712
  %12720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12721 = call i32 @fileno(ptr noundef %12720) #10
  %12722 = call i32 @isatty(i32 noundef %12721) #10
  %12723 = icmp ne i32 %12722, 0
  br i1 %12723, label %12724, label %12741

12724:                                            ; preds = %12719
  %12725 = load i32, ptr %309, align 4, !tbaa !5
  %12726 = call ptr @__errno_location() #11
  store i32 %12725, ptr %12726, align 4, !tbaa !5
  %12727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12728 = load i32, ptr @test_count, align 4, !tbaa !5
  %12729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12730 = load i32, ptr %12729, align 4, !tbaa !5
  %12731 = call ptr @s2n_strerror(i32 noundef %12730, ptr noundef @.str.4)
  %12732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12733 = load i32, ptr %12732, align 4, !tbaa !5
  %12734 = call ptr @s2n_strerror_debug(i32 noundef %12733, ptr noundef @.str.4)
  %12735 = call ptr @__errno_location() #11
  %12736 = load i32, ptr %12735, align 4, !tbaa !5
  %12737 = call ptr @strerror(i32 noundef %12736) #10
  %12738 = call ptr @__errno_location() #11
  %12739 = load i32, ptr %12738, align 4, !tbaa !5
  %12740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12727, ptr noundef @.str.2, i32 noundef %12728, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 556, ptr noundef %12731, ptr noundef %12734, ptr noundef %12737, i32 noundef %12739) #10
  br label %12758

12741:                                            ; preds = %12719, %12712
  %12742 = load i32, ptr %309, align 4, !tbaa !5
  %12743 = call ptr @__errno_location() #11
  store i32 %12742, ptr %12743, align 4, !tbaa !5
  %12744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12745 = load i32, ptr @test_count, align 4, !tbaa !5
  %12746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12747 = load i32, ptr %12746, align 4, !tbaa !5
  %12748 = call ptr @s2n_strerror(i32 noundef %12747, ptr noundef @.str.4)
  %12749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12750 = load i32, ptr %12749, align 4, !tbaa !5
  %12751 = call ptr @s2n_strerror_debug(i32 noundef %12750, ptr noundef @.str.4)
  %12752 = call ptr @__errno_location() #11
  %12753 = load i32, ptr %12752, align 4, !tbaa !5
  %12754 = call ptr @strerror(i32 noundef %12753) #10
  %12755 = call ptr @__errno_location() #11
  %12756 = load i32, ptr %12755, align 4, !tbaa !5
  %12757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12744, ptr noundef @.str.5, i32 noundef %12745, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 556, ptr noundef %12748, ptr noundef %12751, ptr noundef %12754, i32 noundef %12756) #10
  br label %12758

12758:                                            ; preds = %12741, %12724
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #10
  br label %12759

12759:                                            ; preds = %12758
  br label %12760

12760:                                            ; preds = %12759
  call void @exit(i32 noundef 1) #12
  unreachable

12761:                                            ; No predecessors!
  br label %12762

12762:                                            ; preds = %12761
  br label %12763

12763:                                            ; preds = %12762, %12705
  br label %12764

12764:                                            ; preds = %12763
  br label %12765

12765:                                            ; preds = %12764
  call void @llvm.lifetime.start.p0(i64 8, ptr %310) #10
  %12766 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %281, i32 0, i32 2
  %12767 = load ptr, ptr %12766, align 8, !tbaa !34
  store ptr %12767, ptr %310, align 8, !tbaa !9
  br label %12768

12768:                                            ; preds = %12765
  %12769 = load i32, ptr @test_count, align 4, !tbaa !5
  %12770 = add nsw i32 %12769, 1
  store i32 %12770, ptr @test_count, align 4, !tbaa !5
  %12771 = load ptr, ptr %310, align 8, !tbaa !9
  %12772 = icmp eq ptr %12771, null
  br i1 %12772, label %12773, label %12826

12773:                                            ; preds = %12768
  br label %12774

12774:                                            ; preds = %12773
  br label %12775

12775:                                            ; preds = %12774
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #10
  %12776 = call ptr @__errno_location() #11
  %12777 = load i32, ptr %12776, align 4, !tbaa !5
  store i32 %12777, ptr %311, align 4, !tbaa !5
  %12778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12779 = call i32 @s2n_print_stacktrace(ptr noundef %12778)
  %12780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12781 = trunc i8 %12780 to i1
  br i1 %12781, label %12782, label %12804

12782:                                            ; preds = %12775
  %12783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12784 = call i32 @fileno(ptr noundef %12783) #10
  %12785 = call i32 @isatty(i32 noundef %12784) #10
  %12786 = icmp ne i32 %12785, 0
  br i1 %12786, label %12787, label %12804

12787:                                            ; preds = %12782
  %12788 = load i32, ptr %311, align 4, !tbaa !5
  %12789 = call ptr @__errno_location() #11
  store i32 %12788, ptr %12789, align 4, !tbaa !5
  %12790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12791 = load i32, ptr @test_count, align 4, !tbaa !5
  %12792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12793 = load i32, ptr %12792, align 4, !tbaa !5
  %12794 = call ptr @s2n_strerror(i32 noundef %12793, ptr noundef @.str.4)
  %12795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12796 = load i32, ptr %12795, align 4, !tbaa !5
  %12797 = call ptr @s2n_strerror_debug(i32 noundef %12796, ptr noundef @.str.4)
  %12798 = call ptr @__errno_location() #11
  %12799 = load i32, ptr %12798, align 4, !tbaa !5
  %12800 = call ptr @strerror(i32 noundef %12799) #10
  %12801 = call ptr @__errno_location() #11
  %12802 = load i32, ptr %12801, align 4, !tbaa !5
  %12803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12790, ptr noundef @.str.2, i32 noundef %12791, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 559, ptr noundef %12794, ptr noundef %12797, ptr noundef %12800, i32 noundef %12802) #10
  br label %12821

12804:                                            ; preds = %12782, %12775
  %12805 = load i32, ptr %311, align 4, !tbaa !5
  %12806 = call ptr @__errno_location() #11
  store i32 %12805, ptr %12806, align 4, !tbaa !5
  %12807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12808 = load i32, ptr @test_count, align 4, !tbaa !5
  %12809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12810 = load i32, ptr %12809, align 4, !tbaa !5
  %12811 = call ptr @s2n_strerror(i32 noundef %12810, ptr noundef @.str.4)
  %12812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12813 = load i32, ptr %12812, align 4, !tbaa !5
  %12814 = call ptr @s2n_strerror_debug(i32 noundef %12813, ptr noundef @.str.4)
  %12815 = call ptr @__errno_location() #11
  %12816 = load i32, ptr %12815, align 4, !tbaa !5
  %12817 = call ptr @strerror(i32 noundef %12816) #10
  %12818 = call ptr @__errno_location() #11
  %12819 = load i32, ptr %12818, align 4, !tbaa !5
  %12820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12807, ptr noundef @.str.5, i32 noundef %12808, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 559, ptr noundef %12811, ptr noundef %12814, ptr noundef %12817, i32 noundef %12819) #10
  br label %12821

12821:                                            ; preds = %12804, %12787
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #10
  br label %12822

12822:                                            ; preds = %12821
  br label %12823

12823:                                            ; preds = %12822
  call void @exit(i32 noundef 1) #12
  unreachable

12824:                                            ; No predecessors!
  br label %12825

12825:                                            ; preds = %12824
  br label %12826

12826:                                            ; preds = %12825, %12768
  br label %12827

12827:                                            ; preds = %12826
  br label %12828

12828:                                            ; preds = %12827
  %12829 = load i32, ptr %273, align 4, !tbaa !5
  %12830 = sext i32 %12829 to i64
  %12831 = getelementptr inbounds [2 x %struct.s2n_cert_validation_data], ptr %226, i64 0, i64 %12830
  %12832 = load i8, ptr %12831, align 16
  %12833 = lshr i8 %12832, 1
  %12834 = and i8 %12833, 1
  %12835 = zext i8 %12834 to i32
  %12836 = icmp ne i32 %12835, 0
  br i1 %12836, label %12837, label %12963

12837:                                            ; preds = %12828
  br label %12838

12838:                                            ; preds = %12837
  %12839 = load i32, ptr @test_count, align 4, !tbaa !5
  %12840 = add nsw i32 %12839, 1
  store i32 %12840, ptr @test_count, align 4, !tbaa !5
  %12841 = load ptr, ptr %310, align 8, !tbaa !9
  %12842 = call i32 @s2n_cert_validation_accept(ptr noundef %12841)
  %12843 = icmp eq i32 %12842, -1
  br i1 %12843, label %12844, label %12897

12844:                                            ; preds = %12838
  br label %12845

12845:                                            ; preds = %12844
  br label %12846

12846:                                            ; preds = %12845
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #10
  %12847 = call ptr @__errno_location() #11
  %12848 = load i32, ptr %12847, align 4, !tbaa !5
  store i32 %12848, ptr %312, align 4, !tbaa !5
  %12849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12850 = call i32 @s2n_print_stacktrace(ptr noundef %12849)
  %12851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12852 = trunc i8 %12851 to i1
  br i1 %12852, label %12853, label %12875

12853:                                            ; preds = %12846
  %12854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12855 = call i32 @fileno(ptr noundef %12854) #10
  %12856 = call i32 @isatty(i32 noundef %12855) #10
  %12857 = icmp ne i32 %12856, 0
  br i1 %12857, label %12858, label %12875

12858:                                            ; preds = %12853
  %12859 = load i32, ptr %312, align 4, !tbaa !5
  %12860 = call ptr @__errno_location() #11
  store i32 %12859, ptr %12860, align 4, !tbaa !5
  %12861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12862 = load i32, ptr @test_count, align 4, !tbaa !5
  %12863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12864 = load i32, ptr %12863, align 4, !tbaa !5
  %12865 = call ptr @s2n_strerror(i32 noundef %12864, ptr noundef @.str.4)
  %12866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12867 = load i32, ptr %12866, align 4, !tbaa !5
  %12868 = call ptr @s2n_strerror_debug(i32 noundef %12867, ptr noundef @.str.4)
  %12869 = call ptr @__errno_location() #11
  %12870 = load i32, ptr %12869, align 4, !tbaa !5
  %12871 = call ptr @strerror(i32 noundef %12870) #10
  %12872 = call ptr @__errno_location() #11
  %12873 = load i32, ptr %12872, align 4, !tbaa !5
  %12874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12861, ptr noundef @.str.2, i32 noundef %12862, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 562, ptr noundef %12865, ptr noundef %12868, ptr noundef %12871, i32 noundef %12873) #10
  br label %12892

12875:                                            ; preds = %12853, %12846
  %12876 = load i32, ptr %312, align 4, !tbaa !5
  %12877 = call ptr @__errno_location() #11
  store i32 %12876, ptr %12877, align 4, !tbaa !5
  %12878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12879 = load i32, ptr @test_count, align 4, !tbaa !5
  %12880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12881 = load i32, ptr %12880, align 4, !tbaa !5
  %12882 = call ptr @s2n_strerror(i32 noundef %12881, ptr noundef @.str.4)
  %12883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12884 = load i32, ptr %12883, align 4, !tbaa !5
  %12885 = call ptr @s2n_strerror_debug(i32 noundef %12884, ptr noundef @.str.4)
  %12886 = call ptr @__errno_location() #11
  %12887 = load i32, ptr %12886, align 4, !tbaa !5
  %12888 = call ptr @strerror(i32 noundef %12887) #10
  %12889 = call ptr @__errno_location() #11
  %12890 = load i32, ptr %12889, align 4, !tbaa !5
  %12891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12878, ptr noundef @.str.5, i32 noundef %12879, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 562, ptr noundef %12882, ptr noundef %12885, ptr noundef %12888, i32 noundef %12890) #10
  br label %12892

12892:                                            ; preds = %12875, %12858
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #10
  br label %12893

12893:                                            ; preds = %12892
  br label %12894

12894:                                            ; preds = %12893
  call void @exit(i32 noundef 1) #12
  unreachable

12895:                                            ; No predecessors!
  br label %12896

12896:                                            ; preds = %12895
  br label %12897

12897:                                            ; preds = %12896, %12838
  br label %12898

12898:                                            ; preds = %12897
  br label %12899

12899:                                            ; preds = %12898
  br label %12900

12900:                                            ; preds = %12899
  %12901 = load i32, ptr @test_count, align 4, !tbaa !5
  %12902 = add nsw i32 %12901, 1
  store i32 %12902, ptr @test_count, align 4, !tbaa !5
  %12903 = load ptr, ptr %283, align 8, !tbaa !9
  %12904 = load ptr, ptr %293, align 8, !tbaa !9
  %12905 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %12903, ptr noundef %12904)
  %12906 = icmp eq i32 %12905, -1
  br i1 %12906, label %12907, label %12960

12907:                                            ; preds = %12900
  br label %12908

12908:                                            ; preds = %12907
  br label %12909

12909:                                            ; preds = %12908
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #10
  %12910 = call ptr @__errno_location() #11
  %12911 = load i32, ptr %12910, align 4, !tbaa !5
  store i32 %12911, ptr %313, align 4, !tbaa !5
  %12912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12913 = call i32 @s2n_print_stacktrace(ptr noundef %12912)
  %12914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12915 = trunc i8 %12914 to i1
  br i1 %12915, label %12916, label %12938

12916:                                            ; preds = %12909
  %12917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12918 = call i32 @fileno(ptr noundef %12917) #10
  %12919 = call i32 @isatty(i32 noundef %12918) #10
  %12920 = icmp ne i32 %12919, 0
  br i1 %12920, label %12921, label %12938

12921:                                            ; preds = %12916
  %12922 = load i32, ptr %313, align 4, !tbaa !5
  %12923 = call ptr @__errno_location() #11
  store i32 %12922, ptr %12923, align 4, !tbaa !5
  %12924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12925 = load i32, ptr @test_count, align 4, !tbaa !5
  %12926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12927 = load i32, ptr %12926, align 4, !tbaa !5
  %12928 = call ptr @s2n_strerror(i32 noundef %12927, ptr noundef @.str.4)
  %12929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12930 = load i32, ptr %12929, align 4, !tbaa !5
  %12931 = call ptr @s2n_strerror_debug(i32 noundef %12930, ptr noundef @.str.4)
  %12932 = call ptr @__errno_location() #11
  %12933 = load i32, ptr %12932, align 4, !tbaa !5
  %12934 = call ptr @strerror(i32 noundef %12933) #10
  %12935 = call ptr @__errno_location() #11
  %12936 = load i32, ptr %12935, align 4, !tbaa !5
  %12937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12924, ptr noundef @.str.2, i32 noundef %12925, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 563, ptr noundef %12928, ptr noundef %12931, ptr noundef %12934, i32 noundef %12936) #10
  br label %12955

12938:                                            ; preds = %12916, %12909
  %12939 = load i32, ptr %313, align 4, !tbaa !5
  %12940 = call ptr @__errno_location() #11
  store i32 %12939, ptr %12940, align 4, !tbaa !5
  %12941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12942 = load i32, ptr @test_count, align 4, !tbaa !5
  %12943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12944 = load i32, ptr %12943, align 4, !tbaa !5
  %12945 = call ptr @s2n_strerror(i32 noundef %12944, ptr noundef @.str.4)
  %12946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12947 = load i32, ptr %12946, align 4, !tbaa !5
  %12948 = call ptr @s2n_strerror_debug(i32 noundef %12947, ptr noundef @.str.4)
  %12949 = call ptr @__errno_location() #11
  %12950 = load i32, ptr %12949, align 4, !tbaa !5
  %12951 = call ptr @strerror(i32 noundef %12950) #10
  %12952 = call ptr @__errno_location() #11
  %12953 = load i32, ptr %12952, align 4, !tbaa !5
  %12954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12941, ptr noundef @.str.5, i32 noundef %12942, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 563, ptr noundef %12945, ptr noundef %12948, ptr noundef %12951, i32 noundef %12953) #10
  br label %12955

12955:                                            ; preds = %12938, %12921
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #10
  br label %12956

12956:                                            ; preds = %12955
  br label %12957

12957:                                            ; preds = %12956
  call void @exit(i32 noundef 1) #12
  unreachable

12958:                                            ; No predecessors!
  br label %12959

12959:                                            ; preds = %12958
  br label %12960

12960:                                            ; preds = %12959, %12900
  br label %12961

12961:                                            ; preds = %12960
  br label %12962

12962:                                            ; preds = %12961
  br label %13225

12963:                                            ; preds = %12828
  br label %12964

12964:                                            ; preds = %12963
  %12965 = load i32, ptr @test_count, align 4, !tbaa !5
  %12966 = add nsw i32 %12965, 1
  store i32 %12966, ptr @test_count, align 4, !tbaa !5
  %12967 = load ptr, ptr %310, align 8, !tbaa !9
  %12968 = call i32 @s2n_cert_validation_reject(ptr noundef %12967)
  %12969 = icmp eq i32 %12968, -1
  br i1 %12969, label %12970, label %13023

12970:                                            ; preds = %12964
  br label %12971

12971:                                            ; preds = %12970
  br label %12972

12972:                                            ; preds = %12971
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #10
  %12973 = call ptr @__errno_location() #11
  %12974 = load i32, ptr %12973, align 4, !tbaa !5
  store i32 %12974, ptr %314, align 4, !tbaa !5
  %12975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12976 = call i32 @s2n_print_stacktrace(ptr noundef %12975)
  %12977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12978 = trunc i8 %12977 to i1
  br i1 %12978, label %12979, label %13001

12979:                                            ; preds = %12972
  %12980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12981 = call i32 @fileno(ptr noundef %12980) #10
  %12982 = call i32 @isatty(i32 noundef %12981) #10
  %12983 = icmp ne i32 %12982, 0
  br i1 %12983, label %12984, label %13001

12984:                                            ; preds = %12979
  %12985 = load i32, ptr %314, align 4, !tbaa !5
  %12986 = call ptr @__errno_location() #11
  store i32 %12985, ptr %12986, align 4, !tbaa !5
  %12987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12988 = load i32, ptr @test_count, align 4, !tbaa !5
  %12989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12990 = load i32, ptr %12989, align 4, !tbaa !5
  %12991 = call ptr @s2n_strerror(i32 noundef %12990, ptr noundef @.str.4)
  %12992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12993 = load i32, ptr %12992, align 4, !tbaa !5
  %12994 = call ptr @s2n_strerror_debug(i32 noundef %12993, ptr noundef @.str.4)
  %12995 = call ptr @__errno_location() #11
  %12996 = load i32, ptr %12995, align 4, !tbaa !5
  %12997 = call ptr @strerror(i32 noundef %12996) #10
  %12998 = call ptr @__errno_location() #11
  %12999 = load i32, ptr %12998, align 4, !tbaa !5
  %13000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12987, ptr noundef @.str.2, i32 noundef %12988, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 565, ptr noundef %12991, ptr noundef %12994, ptr noundef %12997, i32 noundef %12999) #10
  br label %13018

13001:                                            ; preds = %12979, %12972
  %13002 = load i32, ptr %314, align 4, !tbaa !5
  %13003 = call ptr @__errno_location() #11
  store i32 %13002, ptr %13003, align 4, !tbaa !5
  %13004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13005 = load i32, ptr @test_count, align 4, !tbaa !5
  %13006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13007 = load i32, ptr %13006, align 4, !tbaa !5
  %13008 = call ptr @s2n_strerror(i32 noundef %13007, ptr noundef @.str.4)
  %13009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13010 = load i32, ptr %13009, align 4, !tbaa !5
  %13011 = call ptr @s2n_strerror_debug(i32 noundef %13010, ptr noundef @.str.4)
  %13012 = call ptr @__errno_location() #11
  %13013 = load i32, ptr %13012, align 4, !tbaa !5
  %13014 = call ptr @strerror(i32 noundef %13013) #10
  %13015 = call ptr @__errno_location() #11
  %13016 = load i32, ptr %13015, align 4, !tbaa !5
  %13017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13004, ptr noundef @.str.5, i32 noundef %13005, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 565, ptr noundef %13008, ptr noundef %13011, ptr noundef %13014, i32 noundef %13016) #10
  br label %13018

13018:                                            ; preds = %13001, %12984
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #10
  br label %13019

13019:                                            ; preds = %13018
  br label %13020

13020:                                            ; preds = %13019
  call void @exit(i32 noundef 1) #12
  unreachable

13021:                                            ; No predecessors!
  br label %13022

13022:                                            ; preds = %13021
  br label %13023

13023:                                            ; preds = %13022, %12964
  br label %13024

13024:                                            ; preds = %13023
  br label %13025

13025:                                            ; preds = %13024
  br label %13026

13026:                                            ; preds = %13025
  br label %13027

13027:                                            ; preds = %13026
  br label %13028

13028:                                            ; preds = %13027
  %13029 = load i32, ptr @test_count, align 4, !tbaa !5
  %13030 = add nsw i32 %13029, 1
  store i32 %13030, ptr @test_count, align 4, !tbaa !5
  %13031 = load ptr, ptr %283, align 8, !tbaa !9
  %13032 = load ptr, ptr %293, align 8, !tbaa !9
  %13033 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %13031, ptr noundef %13032)
  %13034 = icmp eq i32 %13033, -1
  br i1 %13034, label %13088, label %13035

13035:                                            ; preds = %13028
  br label %13036

13036:                                            ; preds = %13035
  br label %13037

13037:                                            ; preds = %13036
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #10
  %13038 = call ptr @__errno_location() #11
  %13039 = load i32, ptr %13038, align 4, !tbaa !5
  store i32 %13039, ptr %315, align 4, !tbaa !5
  %13040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13041 = call i32 @s2n_print_stacktrace(ptr noundef %13040)
  %13042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13043 = trunc i8 %13042 to i1
  br i1 %13043, label %13044, label %13066

13044:                                            ; preds = %13037
  %13045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13046 = call i32 @fileno(ptr noundef %13045) #10
  %13047 = call i32 @isatty(i32 noundef %13046) #10
  %13048 = icmp ne i32 %13047, 0
  br i1 %13048, label %13049, label %13066

13049:                                            ; preds = %13044
  %13050 = load i32, ptr %315, align 4, !tbaa !5
  %13051 = call ptr @__errno_location() #11
  store i32 %13050, ptr %13051, align 4, !tbaa !5
  %13052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13053 = load i32, ptr @test_count, align 4, !tbaa !5
  %13054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13055 = load i32, ptr %13054, align 4, !tbaa !5
  %13056 = call ptr @s2n_strerror(i32 noundef %13055, ptr noundef @.str.4)
  %13057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13058 = load i32, ptr %13057, align 4, !tbaa !5
  %13059 = call ptr @s2n_strerror_debug(i32 noundef %13058, ptr noundef @.str.4)
  %13060 = call ptr @__errno_location() #11
  %13061 = load i32, ptr %13060, align 4, !tbaa !5
  %13062 = call ptr @strerror(i32 noundef %13061) #10
  %13063 = call ptr @__errno_location() #11
  %13064 = load i32, ptr %13063, align 4, !tbaa !5
  %13065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13052, ptr noundef @.str.2, i32 noundef %13053, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 567, ptr noundef %13056, ptr noundef %13059, ptr noundef %13062, i32 noundef %13064) #10
  br label %13083

13066:                                            ; preds = %13044, %13037
  %13067 = load i32, ptr %315, align 4, !tbaa !5
  %13068 = call ptr @__errno_location() #11
  store i32 %13067, ptr %13068, align 4, !tbaa !5
  %13069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13070 = load i32, ptr @test_count, align 4, !tbaa !5
  %13071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13072 = load i32, ptr %13071, align 4, !tbaa !5
  %13073 = call ptr @s2n_strerror(i32 noundef %13072, ptr noundef @.str.4)
  %13074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13075 = load i32, ptr %13074, align 4, !tbaa !5
  %13076 = call ptr @s2n_strerror_debug(i32 noundef %13075, ptr noundef @.str.4)
  %13077 = call ptr @__errno_location() #11
  %13078 = load i32, ptr %13077, align 4, !tbaa !5
  %13079 = call ptr @strerror(i32 noundef %13078) #10
  %13080 = call ptr @__errno_location() #11
  %13081 = load i32, ptr %13080, align 4, !tbaa !5
  %13082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13069, ptr noundef @.str.5, i32 noundef %13070, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 567, ptr noundef %13073, ptr noundef %13076, ptr noundef %13079, i32 noundef %13081) #10
  br label %13083

13083:                                            ; preds = %13066, %13049
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #10
  br label %13084

13084:                                            ; preds = %13083
  br label %13085

13085:                                            ; preds = %13084
  call void @exit(i32 noundef 1) #12
  unreachable

13086:                                            ; No predecessors!
  br label %13087

13087:                                            ; preds = %13086
  br label %13088

13088:                                            ; preds = %13087, %13028
  br label %13089

13089:                                            ; preds = %13088
  br label %13090

13090:                                            ; preds = %13089
  br label %13091

13091:                                            ; preds = %13090
  %13092 = load i32, ptr @test_count, align 4, !tbaa !5
  %13093 = add nsw i32 %13092, 1
  store i32 %13093, ptr @test_count, align 4, !tbaa !5
  %13094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13095 = load i32, ptr %13094, align 4, !tbaa !5
  %13096 = icmp eq i32 %13095, 335544373
  br i1 %13096, label %13150, label %13097

13097:                                            ; preds = %13091
  br label %13098

13098:                                            ; preds = %13097
  br label %13099

13099:                                            ; preds = %13098
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #10
  %13100 = call ptr @__errno_location() #11
  %13101 = load i32, ptr %13100, align 4, !tbaa !5
  store i32 %13101, ptr %316, align 4, !tbaa !5
  %13102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13103 = call i32 @s2n_print_stacktrace(ptr noundef %13102)
  %13104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13105 = trunc i8 %13104 to i1
  br i1 %13105, label %13106, label %13128

13106:                                            ; preds = %13099
  %13107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13108 = call i32 @fileno(ptr noundef %13107) #10
  %13109 = call i32 @isatty(i32 noundef %13108) #10
  %13110 = icmp ne i32 %13109, 0
  br i1 %13110, label %13111, label %13128

13111:                                            ; preds = %13106
  %13112 = load i32, ptr %316, align 4, !tbaa !5
  %13113 = call ptr @__errno_location() #11
  store i32 %13112, ptr %13113, align 4, !tbaa !5
  %13114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13115 = load i32, ptr @test_count, align 4, !tbaa !5
  %13116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13117 = load i32, ptr %13116, align 4, !tbaa !5
  %13118 = call ptr @s2n_strerror(i32 noundef %13117, ptr noundef @.str.4)
  %13119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13120 = load i32, ptr %13119, align 4, !tbaa !5
  %13121 = call ptr @s2n_strerror_debug(i32 noundef %13120, ptr noundef @.str.4)
  %13122 = call ptr @__errno_location() #11
  %13123 = load i32, ptr %13122, align 4, !tbaa !5
  %13124 = call ptr @strerror(i32 noundef %13123) #10
  %13125 = call ptr @__errno_location() #11
  %13126 = load i32, ptr %13125, align 4, !tbaa !5
  %13127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13114, ptr noundef @.str.2, i32 noundef %13115, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 567, ptr noundef %13118, ptr noundef %13121, ptr noundef %13124, i32 noundef %13126) #10
  br label %13145

13128:                                            ; preds = %13106, %13099
  %13129 = load i32, ptr %316, align 4, !tbaa !5
  %13130 = call ptr @__errno_location() #11
  store i32 %13129, ptr %13130, align 4, !tbaa !5
  %13131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13132 = load i32, ptr @test_count, align 4, !tbaa !5
  %13133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13134 = load i32, ptr %13133, align 4, !tbaa !5
  %13135 = call ptr @s2n_strerror(i32 noundef %13134, ptr noundef @.str.4)
  %13136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13137 = load i32, ptr %13136, align 4, !tbaa !5
  %13138 = call ptr @s2n_strerror_debug(i32 noundef %13137, ptr noundef @.str.4)
  %13139 = call ptr @__errno_location() #11
  %13140 = load i32, ptr %13139, align 4, !tbaa !5
  %13141 = call ptr @strerror(i32 noundef %13140) #10
  %13142 = call ptr @__errno_location() #11
  %13143 = load i32, ptr %13142, align 4, !tbaa !5
  %13144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13131, ptr noundef @.str.5, i32 noundef %13132, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 567, ptr noundef %13135, ptr noundef %13138, ptr noundef %13141, i32 noundef %13143) #10
  br label %13145

13145:                                            ; preds = %13128, %13111
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #10
  br label %13146

13146:                                            ; preds = %13145
  br label %13147

13147:                                            ; preds = %13146
  call void @exit(i32 noundef 1) #12
  unreachable

13148:                                            ; No predecessors!
  br label %13149

13149:                                            ; preds = %13148
  br label %13150

13150:                                            ; preds = %13149, %13091
  br label %13151

13151:                                            ; preds = %13150
  br label %13152

13152:                                            ; preds = %13151
  br label %13153

13153:                                            ; preds = %13152
  %13154 = load i32, ptr @test_count, align 4, !tbaa !5
  %13155 = add nsw i32 %13154, 1
  store i32 %13155, ptr @test_count, align 4, !tbaa !5
  %13156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13157 = load i32, ptr %13156, align 4, !tbaa !5
  %13158 = call ptr @s2n_strerror_debug(i32 noundef %13157, ptr noundef @.str.4)
  %13159 = icmp eq ptr %13158, null
  br i1 %13159, label %13160, label %13213

13160:                                            ; preds = %13153
  br label %13161

13161:                                            ; preds = %13160
  br label %13162

13162:                                            ; preds = %13161
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #10
  %13163 = call ptr @__errno_location() #11
  %13164 = load i32, ptr %13163, align 4, !tbaa !5
  store i32 %13164, ptr %317, align 4, !tbaa !5
  %13165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13166 = call i32 @s2n_print_stacktrace(ptr noundef %13165)
  %13167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13168 = trunc i8 %13167 to i1
  br i1 %13168, label %13169, label %13191

13169:                                            ; preds = %13162
  %13170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13171 = call i32 @fileno(ptr noundef %13170) #10
  %13172 = call i32 @isatty(i32 noundef %13171) #10
  %13173 = icmp ne i32 %13172, 0
  br i1 %13173, label %13174, label %13191

13174:                                            ; preds = %13169
  %13175 = load i32, ptr %317, align 4, !tbaa !5
  %13176 = call ptr @__errno_location() #11
  store i32 %13175, ptr %13176, align 4, !tbaa !5
  %13177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13178 = load i32, ptr @test_count, align 4, !tbaa !5
  %13179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13180 = load i32, ptr %13179, align 4, !tbaa !5
  %13181 = call ptr @s2n_strerror(i32 noundef %13180, ptr noundef @.str.4)
  %13182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13183 = load i32, ptr %13182, align 4, !tbaa !5
  %13184 = call ptr @s2n_strerror_debug(i32 noundef %13183, ptr noundef @.str.4)
  %13185 = call ptr @__errno_location() #11
  %13186 = load i32, ptr %13185, align 4, !tbaa !5
  %13187 = call ptr @strerror(i32 noundef %13186) #10
  %13188 = call ptr @__errno_location() #11
  %13189 = load i32, ptr %13188, align 4, !tbaa !5
  %13190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13177, ptr noundef @.str.2, i32 noundef %13178, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 567, ptr noundef %13181, ptr noundef %13184, ptr noundef %13187, i32 noundef %13189) #10
  br label %13208

13191:                                            ; preds = %13169, %13162
  %13192 = load i32, ptr %317, align 4, !tbaa !5
  %13193 = call ptr @__errno_location() #11
  store i32 %13192, ptr %13193, align 4, !tbaa !5
  %13194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13195 = load i32, ptr @test_count, align 4, !tbaa !5
  %13196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13197 = load i32, ptr %13196, align 4, !tbaa !5
  %13198 = call ptr @s2n_strerror(i32 noundef %13197, ptr noundef @.str.4)
  %13199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13200 = load i32, ptr %13199, align 4, !tbaa !5
  %13201 = call ptr @s2n_strerror_debug(i32 noundef %13200, ptr noundef @.str.4)
  %13202 = call ptr @__errno_location() #11
  %13203 = load i32, ptr %13202, align 4, !tbaa !5
  %13204 = call ptr @strerror(i32 noundef %13203) #10
  %13205 = call ptr @__errno_location() #11
  %13206 = load i32, ptr %13205, align 4, !tbaa !5
  %13207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13194, ptr noundef @.str.5, i32 noundef %13195, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 567, ptr noundef %13198, ptr noundef %13201, ptr noundef %13204, i32 noundef %13206) #10
  br label %13208

13208:                                            ; preds = %13191, %13174
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #10
  br label %13209

13209:                                            ; preds = %13208
  br label %13210

13210:                                            ; preds = %13209
  call void @exit(i32 noundef 1) #12
  unreachable

13211:                                            ; No predecessors!
  br label %13212

13212:                                            ; preds = %13211
  br label %13213

13213:                                            ; preds = %13212, %13153
  br label %13214

13214:                                            ; preds = %13213
  br label %13215

13215:                                            ; preds = %13214
  br label %13216

13216:                                            ; preds = %13215
  br label %13217

13217:                                            ; preds = %13216
  br label %13218

13218:                                            ; preds = %13217
  %13219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %13219, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %13220 = call ptr @__errno_location() #11
  store i32 0, ptr %13220, align 4, !tbaa !5
  br label %13221

13221:                                            ; preds = %13218
  br label %13222

13222:                                            ; preds = %13221
  br label %13223

13223:                                            ; preds = %13222
  br label %13224

13224:                                            ; preds = %13223
  br label %13225

13225:                                            ; preds = %13224, %12962
  br label %13226

13226:                                            ; preds = %13225
  %13227 = load i32, ptr @test_count, align 4, !tbaa !5
  %13228 = add nsw i32 %13227, 1
  store i32 %13228, ptr @test_count, align 4, !tbaa !5
  %13229 = getelementptr inbounds %struct.s2n_cert_validation_data, ptr %281, i32 0, i32 1
  %13230 = load i32, ptr %13229, align 4, !tbaa !27
  %13231 = icmp eq i32 %13230, 1
  br i1 %13231, label %13285, label %13232

13232:                                            ; preds = %13226
  br label %13233

13233:                                            ; preds = %13232
  br label %13234

13234:                                            ; preds = %13233
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #10
  %13235 = call ptr @__errno_location() #11
  %13236 = load i32, ptr %13235, align 4, !tbaa !5
  store i32 %13236, ptr %318, align 4, !tbaa !5
  %13237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13238 = call i32 @s2n_print_stacktrace(ptr noundef %13237)
  %13239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13240 = trunc i8 %13239 to i1
  br i1 %13240, label %13241, label %13263

13241:                                            ; preds = %13234
  %13242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13243 = call i32 @fileno(ptr noundef %13242) #10
  %13244 = call i32 @isatty(i32 noundef %13243) #10
  %13245 = icmp ne i32 %13244, 0
  br i1 %13245, label %13246, label %13263

13246:                                            ; preds = %13241
  %13247 = load i32, ptr %318, align 4, !tbaa !5
  %13248 = call ptr @__errno_location() #11
  store i32 %13247, ptr %13248, align 4, !tbaa !5
  %13249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13250 = load i32, ptr @test_count, align 4, !tbaa !5
  %13251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13252 = load i32, ptr %13251, align 4, !tbaa !5
  %13253 = call ptr @s2n_strerror(i32 noundef %13252, ptr noundef @.str.4)
  %13254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13255 = load i32, ptr %13254, align 4, !tbaa !5
  %13256 = call ptr @s2n_strerror_debug(i32 noundef %13255, ptr noundef @.str.4)
  %13257 = call ptr @__errno_location() #11
  %13258 = load i32, ptr %13257, align 4, !tbaa !5
  %13259 = call ptr @strerror(i32 noundef %13258) #10
  %13260 = call ptr @__errno_location() #11
  %13261 = load i32, ptr %13260, align 4, !tbaa !5
  %13262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13249, ptr noundef @.str.2, i32 noundef %13250, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 570, ptr noundef %13253, ptr noundef %13256, ptr noundef %13259, i32 noundef %13261) #10
  br label %13280

13263:                                            ; preds = %13241, %13234
  %13264 = load i32, ptr %318, align 4, !tbaa !5
  %13265 = call ptr @__errno_location() #11
  store i32 %13264, ptr %13265, align 4, !tbaa !5
  %13266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13267 = load i32, ptr @test_count, align 4, !tbaa !5
  %13268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13269 = load i32, ptr %13268, align 4, !tbaa !5
  %13270 = call ptr @s2n_strerror(i32 noundef %13269, ptr noundef @.str.4)
  %13271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13272 = load i32, ptr %13271, align 4, !tbaa !5
  %13273 = call ptr @s2n_strerror_debug(i32 noundef %13272, ptr noundef @.str.4)
  %13274 = call ptr @__errno_location() #11
  %13275 = load i32, ptr %13274, align 4, !tbaa !5
  %13276 = call ptr @strerror(i32 noundef %13275) #10
  %13277 = call ptr @__errno_location() #11
  %13278 = load i32, ptr %13277, align 4, !tbaa !5
  %13279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13266, ptr noundef @.str.5, i32 noundef %13267, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 570, ptr noundef %13270, ptr noundef %13273, ptr noundef %13276, i32 noundef %13278) #10
  br label %13280

13280:                                            ; preds = %13263, %13246
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #10
  br label %13281

13281:                                            ; preds = %13280
  br label %13282

13282:                                            ; preds = %13281
  call void @exit(i32 noundef 1) #12
  unreachable

13283:                                            ; No predecessors!
  br label %13284

13284:                                            ; preds = %13283
  br label %13285

13285:                                            ; preds = %13284, %13226
  br label %13286

13286:                                            ; preds = %13285
  br label %13287

13287:                                            ; preds = %13286
  call void @llvm.lifetime.end.p0(i64 8, ptr %310) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #10
  %13288 = call i32 @s2n_io_pair_close(ptr noundef %297)
  call void @llvm.lifetime.end.p0(i64 8, ptr %297) #10
  %13289 = call i32 @s2n_connection_ptr_free(ptr noundef %293)
  %13290 = getelementptr inbounds %struct.s2n_result, ptr %319, i32 0, i32 0
  store i32 %13289, ptr %13290, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %293) #10
  %13291 = call i32 @s2n_config_ptr_free(ptr noundef %287)
  %13292 = getelementptr inbounds %struct.s2n_result, ptr %320, i32 0, i32 0
  store i32 %13291, ptr %13292, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #10
  %13293 = call i32 @s2n_connection_ptr_free(ptr noundef %283)
  %13294 = getelementptr inbounds %struct.s2n_result, ptr %321, i32 0, i32 0
  store i32 %13293, ptr %13294, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %281) #10
  %13295 = call i32 @s2n_config_ptr_free(ptr noundef %275)
  %13296 = getelementptr inbounds %struct.s2n_result, ptr %322, i32 0, i32 0
  store i32 %13295, ptr %13296, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #10
  br label %13297

13297:                                            ; preds = %13287
  %13298 = load i32, ptr %274, align 4, !tbaa !5
  %13299 = add nsw i32 %13298, 1
  store i32 %13299, ptr %274, align 4, !tbaa !5
  br label %11113, !llvm.loop !38

13300:                                            ; preds = %11117
  br label %13301

13301:                                            ; preds = %13300
  %13302 = load i32, ptr %273, align 4, !tbaa !5
  %13303 = add nsw i32 %13302, 1
  store i32 %13303, ptr %273, align 4, !tbaa !5
  br label %11107, !llvm.loop !39

13304:                                            ; preds = %11111
  call void @llvm.lifetime.end.p0(i64 16, ptr %227) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr %47) #10
  %13305 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %45)
  %13306 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  store i32 %13305, ptr %13306, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  br label %13307

13307:                                            ; preds = %13304
  br label %13308

13308:                                            ; preds = %13307
  %13309 = call i32 @s2n_cleanup()
  %13310 = icmp eq i32 %13309, -1
  br i1 %13310, label %13311, label %13362

13311:                                            ; preds = %13308
  br label %13312

13312:                                            ; preds = %13311
  br label %13313

13313:                                            ; preds = %13312
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #10
  %13314 = call ptr @__errno_location() #11
  %13315 = load i32, ptr %13314, align 4, !tbaa !5
  store i32 %13315, ptr %324, align 4, !tbaa !5
  %13316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13317 = call i32 @s2n_print_stacktrace(ptr noundef %13316)
  %13318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13319 = trunc i8 %13318 to i1
  br i1 %13319, label %13320, label %13342

13320:                                            ; preds = %13313
  %13321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13322 = call i32 @fileno(ptr noundef %13321) #10
  %13323 = call i32 @isatty(i32 noundef %13322) #10
  %13324 = icmp ne i32 %13323, 0
  br i1 %13324, label %13325, label %13342

13325:                                            ; preds = %13320
  %13326 = load i32, ptr %324, align 4, !tbaa !5
  %13327 = call ptr @__errno_location() #11
  store i32 %13326, ptr %13327, align 4, !tbaa !5
  %13328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13329 = load i32, ptr @test_count, align 4, !tbaa !5
  %13330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13331 = load i32, ptr %13330, align 4, !tbaa !5
  %13332 = call ptr @s2n_strerror(i32 noundef %13331, ptr noundef @.str.4)
  %13333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13334 = load i32, ptr %13333, align 4, !tbaa !5
  %13335 = call ptr @s2n_strerror_debug(i32 noundef %13334, ptr noundef @.str.4)
  %13336 = call ptr @__errno_location() #11
  %13337 = load i32, ptr %13336, align 4, !tbaa !5
  %13338 = call ptr @strerror(i32 noundef %13337) #10
  %13339 = call ptr @__errno_location() #11
  %13340 = load i32, ptr %13339, align 4, !tbaa !5
  %13341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13328, ptr noundef @.str.2, i32 noundef %13329, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 575, ptr noundef %13332, ptr noundef %13335, ptr noundef %13338, i32 noundef %13340) #10
  br label %13359

13342:                                            ; preds = %13320, %13313
  %13343 = load i32, ptr %324, align 4, !tbaa !5
  %13344 = call ptr @__errno_location() #11
  store i32 %13343, ptr %13344, align 4, !tbaa !5
  %13345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13346 = load i32, ptr @test_count, align 4, !tbaa !5
  %13347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13348 = load i32, ptr %13347, align 4, !tbaa !5
  %13349 = call ptr @s2n_strerror(i32 noundef %13348, ptr noundef @.str.4)
  %13350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13351 = load i32, ptr %13350, align 4, !tbaa !5
  %13352 = call ptr @s2n_strerror_debug(i32 noundef %13351, ptr noundef @.str.4)
  %13353 = call ptr @__errno_location() #11
  %13354 = load i32, ptr %13353, align 4, !tbaa !5
  %13355 = call ptr @strerror(i32 noundef %13354) #10
  %13356 = call ptr @__errno_location() #11
  %13357 = load i32, ptr %13356, align 4, !tbaa !5
  %13358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13345, ptr noundef @.str.5, i32 noundef %13346, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 575, ptr noundef %13349, ptr noundef %13352, ptr noundef %13355, i32 noundef %13357) #10
  br label %13359

13359:                                            ; preds = %13342, %13325
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #10
  br label %13360

13360:                                            ; preds = %13359
  call void @exit(i32 noundef 1) #12
  unreachable

13361:                                            ; No predecessors!
  br label %13362

13362:                                            ; preds = %13361, %13308
  br label %13363

13363:                                            ; preds = %13362
  br label %13364

13364:                                            ; preds = %13363
  br label %13365

13365:                                            ; preds = %13364
  %13366 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %13367 = icmp eq i32 %13366, -1
  br i1 %13367, label %13368, label %13419

13368:                                            ; preds = %13365
  br label %13369

13369:                                            ; preds = %13368
  br label %13370

13370:                                            ; preds = %13369
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #10
  %13371 = call ptr @__errno_location() #11
  %13372 = load i32, ptr %13371, align 4, !tbaa !5
  store i32 %13372, ptr %325, align 4, !tbaa !5
  %13373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13374 = call i32 @s2n_print_stacktrace(ptr noundef %13373)
  %13375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13376 = trunc i8 %13375 to i1
  br i1 %13376, label %13377, label %13399

13377:                                            ; preds = %13370
  %13378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13379 = call i32 @fileno(ptr noundef %13378) #10
  %13380 = call i32 @isatty(i32 noundef %13379) #10
  %13381 = icmp ne i32 %13380, 0
  br i1 %13381, label %13382, label %13399

13382:                                            ; preds = %13377
  %13383 = load i32, ptr %325, align 4, !tbaa !5
  %13384 = call ptr @__errno_location() #11
  store i32 %13383, ptr %13384, align 4, !tbaa !5
  %13385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13386 = load i32, ptr @test_count, align 4, !tbaa !5
  %13387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13388 = load i32, ptr %13387, align 4, !tbaa !5
  %13389 = call ptr @s2n_strerror(i32 noundef %13388, ptr noundef @.str.4)
  %13390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13391 = load i32, ptr %13390, align 4, !tbaa !5
  %13392 = call ptr @s2n_strerror_debug(i32 noundef %13391, ptr noundef @.str.4)
  %13393 = call ptr @__errno_location() #11
  %13394 = load i32, ptr %13393, align 4, !tbaa !5
  %13395 = call ptr @strerror(i32 noundef %13394) #10
  %13396 = call ptr @__errno_location() #11
  %13397 = load i32, ptr %13396, align 4, !tbaa !5
  %13398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13385, ptr noundef @.str.2, i32 noundef %13386, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 575, ptr noundef %13389, ptr noundef %13392, ptr noundef %13395, i32 noundef %13397) #10
  br label %13416

13399:                                            ; preds = %13377, %13370
  %13400 = load i32, ptr %325, align 4, !tbaa !5
  %13401 = call ptr @__errno_location() #11
  store i32 %13400, ptr %13401, align 4, !tbaa !5
  %13402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13403 = load i32, ptr @test_count, align 4, !tbaa !5
  %13404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13405 = load i32, ptr %13404, align 4, !tbaa !5
  %13406 = call ptr @s2n_strerror(i32 noundef %13405, ptr noundef @.str.4)
  %13407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13408 = load i32, ptr %13407, align 4, !tbaa !5
  %13409 = call ptr @s2n_strerror_debug(i32 noundef %13408, ptr noundef @.str.4)
  %13410 = call ptr @__errno_location() #11
  %13411 = load i32, ptr %13410, align 4, !tbaa !5
  %13412 = call ptr @strerror(i32 noundef %13411) #10
  %13413 = call ptr @__errno_location() #11
  %13414 = load i32, ptr %13413, align 4, !tbaa !5
  %13415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13402, ptr noundef @.str.5, i32 noundef %13403, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 575, ptr noundef %13406, ptr noundef %13409, ptr noundef %13412, i32 noundef %13414) #10
  br label %13416

13416:                                            ; preds = %13399, %13382
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #10
  br label %13417

13417:                                            ; preds = %13416
  call void @exit(i32 noundef 1) #12
  unreachable

13418:                                            ; No predecessors!
  br label %13419

13419:                                            ; preds = %13418, %13365
  br label %13420

13420:                                            ; preds = %13419
  %13421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13422 = trunc i8 %13421 to i1
  br i1 %13422, label %13423, label %13439

13423:                                            ; preds = %13420
  %13424 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13425 = call i32 @fileno(ptr noundef %13424) #10
  %13426 = call i32 @isatty(i32 noundef %13425) #10
  %13427 = icmp ne i32 %13426, 0
  br i1 %13427, label %13428, label %13439

13428:                                            ; preds = %13423
  %13429 = load i32, ptr @test_count, align 4, !tbaa !5
  %13430 = icmp ne i32 %13429, 0
  br i1 %13430, label %13431, label %13435

13431:                                            ; preds = %13428
  %13432 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13433 = load i32, ptr @test_count, align 4, !tbaa !5
  %13434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13432, ptr noundef @.str.108, i32 noundef %13433) #10
  br label %13438

13435:                                            ; preds = %13428
  %13436 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13436, ptr noundef @.str.109) #10
  br label %13438

13438:                                            ; preds = %13435, %13431
  br label %13450

13439:                                            ; preds = %13423, %13420
  %13440 = load i32, ptr @test_count, align 4, !tbaa !5
  %13441 = icmp ne i32 %13440, 0
  br i1 %13441, label %13442, label %13446

13442:                                            ; preds = %13439
  %13443 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13444 = load i32, ptr @test_count, align 4, !tbaa !5
  %13445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13443, ptr noundef @.str.110, i32 noundef %13444) #10
  br label %13449

13446:                                            ; preds = %13439
  %13447 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13447, ptr noundef @.str.111) #10
  br label %13449

13449:                                            ; preds = %13446, %13442
  br label %13450

13450:                                            ; preds = %13449, %13438
  store i32 0, ptr %3, align 4
  br label %13452

13451:                                            ; No predecessors!
  br label %13452

13452:                                            ; preds = %13451, %13450
  %13453 = load i32, ptr %3, align 4
  ret i32 %13453
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_cert_validation_accept(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_cert_validation_reject(ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

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

declare void @s2n_x509_trust_store_wipe(ptr noundef) #2

declare void @s2n_x509_trust_store_init_empty(ptr noundef) #2

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #2

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

declare i32 @s2n_x509_validator_wipe(ptr noundef) #2

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_cert_validation_callback(ptr noundef, ptr noundef, ptr noundef) #0

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #9

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

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

declare i32 @s2n_pkey_free(ptr noundef) #2

declare i32 @s2n_pkey_zero_init(ptr noundef) #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) #9

declare i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef) #2

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_cert_validation_callback_self_talk(ptr noundef, ptr noundef, ptr noundef) #0

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

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_cert_validation_callback_self_talk_server(ptr noundef, ptr noundef, ptr noundef) #0

declare zeroext i8 @s2n_x509_ocsp_stapling_supported() #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_read_test_pem_and_len(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_cert_validation_callback_self_talk_ocsp(ptr noundef, ptr noundef, ptr noundef) #0

declare ptr @s2n_cert_chain_and_key_new() #2

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

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

declare i32 @s2n_connection_get_client_cert_chain(ptr noundef, ptr noundef, 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: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { inlinehint 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 #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
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 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = !{i64 0, i64 1, !19, i64 4, i64 4, !5, i64 8, i64 8, !9}
!19 = !{!7, !7, i64 0}
!20 = !{!21, !6, i64 28}
!21 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = !{!21, !6, i64 24}
!24 = !{!25, !6, i64 16}
!25 = !{!"", !26, i64 0, !6, i64 16}
!26 = !{!"s2n_cert_validation_data", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 4, !10, i64 8}
!27 = !{!26, !6, i64 4}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = distinct !{!33, !16}
!34 = !{!26, !10, i64 8}
!35 = distinct !{!35, !16}
!36 = distinct !{!36, !16}
!37 = distinct !{!37, !16}
!38 = distinct !{!38, !16}
!39 = distinct !{!39, !16}


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

%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.anon = type { %struct.s2n_cert_validation_data, i32 }
%struct.s2n_cert_validation_data = type { i8, i32, ptr }
%struct.s2n_x509_trust_store = type { ptr, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_test_io_pair = type { i32, i32 }

@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 [92 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [64 x i8], align 1
@__const.main.info = external hidden unnamed_addr constant %struct.s2n_cert_validation_info, align 4
@.str.12 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [36 x i8], align 1
@__const.main.info.15 = external hidden unnamed_addr constant %struct.s2n_cert_validation_info, align 4
@.str.16 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [36 x i8], align 1
@__const.main.info.18 = external hidden unnamed_addr constant %struct.s2n_cert_validation_info, align 4
@.str.19 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [59 x i8], align 1
@__const.main.info.22 = external hidden unnamed_addr constant %struct.s2n_cert_validation_info, align 4
@.str.23 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [200 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant [4 x %struct.anon], align 16
@.str.26 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [78 x i8], align 1
@__const.main.async_test_cases = external hidden unnamed_addr constant [2 x %struct.s2n_cert_validation_data], align 16
@__const.main.versions = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.92 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.111 = 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_cert_validation_info, align 4
  %4 = alloca %struct.s2n_cert_validation_info, align 4
  %5 = alloca %struct.s2n_cert_validation_info, align 4
  %6 = alloca %struct.s2n_cert_validation_info, align 4
  %7 = alloca ptr, align 8
  %8 = alloca %struct.s2n_x509_trust_store, align 8
  %9 = alloca [12000 x i8], align 16
  %10 = alloca %struct.s2n_x509_validator, align 8
  %11 = alloca ptr, align 8
  %12 = alloca %struct.s2n_cert_validation_data, align 8
  %13 = alloca ptr, align 8
  %14 = alloca %struct.s2n_stuffer, align 8
  %15 = alloca %struct.s2n_pkey, align 8
  %16 = alloca i32, align 4
  %17 = alloca %struct.s2n_x509_trust_store, align 8
  %18 = alloca [12000 x i8], align 16
  %19 = alloca %struct.s2n_x509_validator, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %struct.s2n_cert_validation_data, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %struct.s2n_stuffer, align 8
  %24 = alloca %struct.s2n_pkey, align 8
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca %struct.s2n_cert_validation_data, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca %struct.s2n_test_io_pair, align 8
  %31 = alloca ptr, align 8
  %32 = alloca %struct.s2n_cert_validation_data, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca %struct.s2n_test_io_pair, align 8
  %37 = alloca [12000 x i8], align 16
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %struct.s2n_cert_validation_data, align 8
  %44 = alloca ptr, align 8
  %45 = alloca %struct.s2n_test_io_pair, align 8
  %46 = alloca ptr, align 8
  %47 = alloca %struct.s2n_cert_validation_data, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca %struct.s2n_test_io_pair, align 8
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca %struct.s2n_cert_validation_data, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %struct.s2n_test_io_pair, align 8
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %61 = load ptr, ptr @stdout, align 8, !tbaa !9
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %61, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %63 = load ptr, ptr @stdout, align 8, !tbaa !9
  %64 = tail call i32 @fflush(ptr noundef %63)
  %65 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %66 = icmp eq i32 %65, -1
  br i1 %66, label %67, label %91

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

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

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

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

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

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

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

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

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

120:                                              ; preds = %91
  %121 = tail call i32 @s2n_init() #11
  %122 = icmp eq i32 %121, -1
  br i1 %122, label %123, label %147

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

130:                                              ; preds = %123
  %131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %132 = tail call i32 @fileno(ptr noundef %131) #11
  %133 = tail call i32 @isatty(i32 noundef %132) #11
  %.not753 = icmp eq i32 %133, 0
  br i1 %.not753, label %134, label %135

134:                                              ; preds = %130, %123
  br label %135

135:                                              ; preds = %130, %134
  %.str.5.sink834 = phi ptr [ @.str.5, %134 ], [ @.str.2, %130 ]
  store i32 %125, ptr %124, align 4, !tbaa !5
  %136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %137 = load i32, ptr @test_count, align 4, !tbaa !5
  %138 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = tail call ptr @s2n_strerror(i32 noundef %139, ptr noundef nonnull @.str.4) #11
  %141 = load i32, ptr %138, align 4, !tbaa !5
  %142 = tail call ptr @s2n_strerror_debug(i32 noundef %141, ptr noundef nonnull @.str.4) #11
  %143 = load i32, ptr %124, align 4, !tbaa !5
  %144 = tail call ptr @strerror(i32 noundef %143) #11
  %145 = load i32, ptr %124, align 4, !tbaa !5
  %146 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %136, ptr noundef nonnull %.str.5.sink834, i32 noundef %137, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %140, ptr noundef %142, ptr noundef %144, i32 noundef %145) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

147:                                              ; preds = %120
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  store i32 %149, ptr @test_count, align 4, !tbaa !5
  %150 = tail call i32 @s2n_cert_validation_accept(ptr noundef null) #11
  %151 = icmp eq i32 %150, -1
  br i1 %151, label %176, label %152

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

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

163:                                              ; preds = %159, %152
  br label %164

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

176:                                              ; preds = %147
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = add nsw i32 %177, 1
  store i32 %178, ptr @test_count, align 4, !tbaa !5
  %179 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = icmp eq i32 %180, 402653193
  br i1 %181, label %205, label %182

182:                                              ; preds = %176
  %183 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %192 = tail call i32 @isatty(i32 noundef %191) #11
  %.not539 = icmp eq i32 %192, 0
  br i1 %.not539, label %193, label %194

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

194:                                              ; preds = %189, %193
  %.str.5.sink856 = 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 = load i32, ptr %179, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror(i32 noundef %197, ptr noundef nonnull @.str.4) #11
  %199 = load i32, ptr %179, align 4, !tbaa !5
  %200 = tail call ptr @s2n_strerror_debug(i32 noundef %199, ptr noundef nonnull @.str.4) #11
  %201 = load i32, ptr %183, align 4, !tbaa !5
  %202 = tail call ptr @strerror(i32 noundef %201) #11
  %203 = load i32, ptr %183, align 4, !tbaa !5
  %204 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull %.str.5.sink856, i32 noundef %196, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %198, ptr noundef %200, ptr noundef %202, i32 noundef %203) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

205:                                              ; preds = %176
  %206 = add nsw i32 %177, 2
  store i32 %206, ptr @test_count, align 4, !tbaa !5
  %207 = tail call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #11
  %208 = icmp eq ptr %207, null
  br i1 %208, label %209, label %232

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

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

220:                                              ; preds = %216, %209
  br label %221

221:                                              ; preds = %216, %220
  %.str.5.sink865 = phi ptr [ @.str.5, %220 ], [ @.str.2, %216 ]
  store i32 %211, ptr %210, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = load i32, ptr @test_count, align 4, !tbaa !5
  %224 = load i32, ptr %179, align 4, !tbaa !5
  %225 = tail call ptr @s2n_strerror(i32 noundef %224, ptr noundef nonnull @.str.4) #11
  %226 = load i32, ptr %179, align 4, !tbaa !5
  %227 = tail call ptr @s2n_strerror_debug(i32 noundef %226, ptr noundef nonnull @.str.4) #11
  %228 = load i32, ptr %210, align 4, !tbaa !5
  %229 = tail call ptr @strerror(i32 noundef %228) #11
  %230 = load i32, ptr %210, align 4, !tbaa !5
  %231 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %222, ptr noundef nonnull %.str.5.sink865, i32 noundef %223, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %225, ptr noundef %227, ptr noundef %229, i32 noundef %230) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

232:                                              ; preds = %205
  store i32 0, ptr %179, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #11
  %233 = tail call ptr @__errno_location() #12
  store i32 0, ptr %233, align 4, !tbaa !5
  %234 = load i32, ptr @test_count, align 4, !tbaa !5
  %235 = add nsw i32 %234, 1
  store i32 %235, ptr @test_count, align 4, !tbaa !5
  %236 = tail call i32 @s2n_cert_validation_reject(ptr noundef null) #11
  %237 = icmp eq i32 %236, -1
  br i1 %237, label %260, label %238

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

244:                                              ; preds = %238
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = tail call i32 @fileno(ptr noundef %245) #11
  %247 = tail call i32 @isatty(i32 noundef %246) #11
  %.not540 = icmp eq i32 %247, 0
  br i1 %.not540, label %248, label %249

248:                                              ; preds = %244, %238
  br label %249

249:                                              ; preds = %244, %248
  %.str.5.sink874 = phi ptr [ @.str.5, %248 ], [ @.str.2, %244 ]
  store i32 %239, ptr %233, align 4, !tbaa !5
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = load i32, ptr %179, align 4, !tbaa !5
  %253 = tail call ptr @s2n_strerror(i32 noundef %252, ptr noundef nonnull @.str.4) #11
  %254 = load i32, ptr %179, align 4, !tbaa !5
  %255 = tail call ptr @s2n_strerror_debug(i32 noundef %254, ptr noundef nonnull @.str.4) #11
  %256 = load i32, ptr %233, align 4, !tbaa !5
  %257 = tail call ptr @strerror(i32 noundef %256) #11
  %258 = load i32, ptr %233, align 4, !tbaa !5
  %259 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %250, ptr noundef nonnull %.str.5.sink874, i32 noundef %251, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %253, ptr noundef %255, ptr noundef %257, i32 noundef %258) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

260:                                              ; preds = %232
  %261 = load i32, ptr @test_count, align 4, !tbaa !5
  %262 = add nsw i32 %261, 1
  store i32 %262, ptr @test_count, align 4, !tbaa !5
  %263 = load i32, ptr %179, align 4, !tbaa !5
  %264 = icmp eq i32 %263, 402653193
  br i1 %264, label %287, label %265

265:                                              ; preds = %260
  %266 = load i32, ptr %233, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = tail call i32 @s2n_print_stacktrace(ptr noundef %267) #11
  %269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %270 = trunc nuw i8 %269 to i1
  br i1 %270, label %271, label %275

271:                                              ; preds = %265
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = tail call i32 @fileno(ptr noundef %272) #11
  %274 = tail call i32 @isatty(i32 noundef %273) #11
  %.not541 = icmp eq i32 %274, 0
  br i1 %.not541, label %275, label %276

275:                                              ; preds = %271, %265
  br label %276

276:                                              ; preds = %271, %275
  %.str.5.sink883 = phi ptr [ @.str.5, %275 ], [ @.str.2, %271 ]
  store i32 %266, ptr %233, align 4, !tbaa !5
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = load i32, ptr %179, align 4, !tbaa !5
  %280 = tail call ptr @s2n_strerror(i32 noundef %279, ptr noundef nonnull @.str.4) #11
  %281 = load i32, ptr %179, align 4, !tbaa !5
  %282 = tail call ptr @s2n_strerror_debug(i32 noundef %281, ptr noundef nonnull @.str.4) #11
  %283 = load i32, ptr %233, align 4, !tbaa !5
  %284 = tail call ptr @strerror(i32 noundef %283) #11
  %285 = load i32, ptr %233, align 4, !tbaa !5
  %286 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %277, ptr noundef nonnull %.str.5.sink883, i32 noundef %278, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %280, ptr noundef %282, ptr noundef %284, i32 noundef %285) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

287:                                              ; preds = %260
  %288 = add nsw i32 %261, 2
  store i32 %288, ptr @test_count, align 4, !tbaa !5
  %289 = tail call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #11
  %290 = icmp eq ptr %289, null
  br i1 %290, label %291, label %313

291:                                              ; preds = %287
  %292 = load i32, ptr %233, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = tail call i32 @s2n_print_stacktrace(ptr noundef %293) #11
  %295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %296 = trunc nuw i8 %295 to i1
  br i1 %296, label %297, label %301

297:                                              ; preds = %291
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = tail call i32 @fileno(ptr noundef %298) #11
  %300 = tail call i32 @isatty(i32 noundef %299) #11
  %.not751 = icmp eq i32 %300, 0
  br i1 %.not751, label %301, label %302

301:                                              ; preds = %297, %291
  br label %302

302:                                              ; preds = %297, %301
  %.str.5.sink892 = phi ptr [ @.str.5, %301 ], [ @.str.2, %297 ]
  store i32 %292, ptr %233, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = load i32, ptr %179, align 4, !tbaa !5
  %306 = tail call ptr @s2n_strerror(i32 noundef %305, ptr noundef nonnull @.str.4) #11
  %307 = load i32, ptr %179, align 4, !tbaa !5
  %308 = tail call ptr @s2n_strerror_debug(i32 noundef %307, ptr noundef nonnull @.str.4) #11
  %309 = load i32, ptr %233, align 4, !tbaa !5
  %310 = tail call ptr @strerror(i32 noundef %309) #11
  %311 = load i32, ptr %233, align 4, !tbaa !5
  %312 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %303, ptr noundef nonnull %.str.5.sink892, i32 noundef %304, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %306, ptr noundef %308, ptr noundef %310, i32 noundef %311) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

313:                                              ; preds = %287
  store i32 0, ptr %179, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #11
  %314 = load i32, ptr @__const.main.info, align 4
  store i32 %314, ptr %3, align 4
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr @test_count, align 4, !tbaa !5
  %317 = call i32 @s2n_cert_validation_accept(ptr noundef nonnull %3) #11
  %318 = icmp eq i32 %317, -1
  br i1 %318, label %319, label %341

319:                                              ; preds = %313
  %320 = load i32, ptr %233, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = call i32 @s2n_print_stacktrace(ptr noundef %321) #11
  %323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %324 = trunc nuw i8 %323 to i1
  br i1 %324, label %325, label %329

325:                                              ; preds = %319
  %326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %327 = call i32 @fileno(ptr noundef %326) #11
  %328 = call i32 @isatty(i32 noundef %327) #11
  %.not750 = icmp eq i32 %328, 0
  br i1 %.not750, label %329, label %330

329:                                              ; preds = %325, %319
  br label %330

330:                                              ; preds = %325, %329
  %.str.5.sink901 = phi ptr [ @.str.5, %329 ], [ @.str.2, %325 ]
  store i32 %320, ptr %233, align 4, !tbaa !5
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = load i32, ptr @test_count, align 4, !tbaa !5
  %333 = load i32, ptr %179, align 4, !tbaa !5
  %334 = call ptr @s2n_strerror(i32 noundef %333, ptr noundef nonnull @.str.4) #11
  %335 = load i32, ptr %179, align 4, !tbaa !5
  %336 = call ptr @s2n_strerror_debug(i32 noundef %335, ptr noundef nonnull @.str.4) #11
  %337 = load i32, ptr %233, align 4, !tbaa !5
  %338 = call ptr @strerror(i32 noundef %337) #11
  %339 = load i32, ptr %233, align 4, !tbaa !5
  %340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %331, ptr noundef nonnull %.str.5.sink901, i32 noundef %332, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %334, ptr noundef %336, ptr noundef %338, i32 noundef %339) #13
  call void @exit(i32 noundef 1) #14
  unreachable

341:                                              ; preds = %313
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr @test_count, align 4, !tbaa !5
  %344 = load i8, ptr %3, align 4
  %345 = and i8 %344, 1
  %.not542 = icmp eq i8 %345, 0
  br i1 %.not542, label %346, label %368

346:                                              ; preds = %341
  %347 = load i32, ptr %233, align 4, !tbaa !5
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = call i32 @s2n_print_stacktrace(ptr noundef %348) #11
  %350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %351 = trunc nuw i8 %350 to i1
  br i1 %351, label %352, label %356

352:                                              ; preds = %346
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @fileno(ptr noundef %353) #11
  %355 = call i32 @isatty(i32 noundef %354) #11
  %.not543 = icmp eq i32 %355, 0
  br i1 %.not543, label %356, label %357

356:                                              ; preds = %352, %346
  br label %357

357:                                              ; preds = %352, %356
  %.str.5.sink910 = phi ptr [ @.str.5, %356 ], [ @.str.2, %352 ]
  store i32 %347, ptr %233, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = load i32, ptr %179, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror(i32 noundef %360, ptr noundef nonnull @.str.4) #11
  %362 = load i32, ptr %179, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror_debug(i32 noundef %362, ptr noundef nonnull @.str.4) #11
  %364 = load i32, ptr %233, align 4, !tbaa !5
  %365 = call ptr @strerror(i32 noundef %364) #11
  %366 = load i32, ptr %233, align 4, !tbaa !5
  %367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef nonnull %.str.5.sink910, i32 noundef %359, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %361, ptr noundef %363, ptr noundef %365, i32 noundef %366) #13
  call void @exit(i32 noundef 1) #14
  unreachable

368:                                              ; preds = %341
  %369 = add nsw i32 %342, 2
  store i32 %369, ptr @test_count, align 4, !tbaa !5
  %370 = and i8 %344, 2
  %.not544 = icmp eq i8 %370, 0
  br i1 %.not544, label %371, label %393

371:                                              ; preds = %368
  %372 = load i32, ptr %233, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = call i32 @s2n_print_stacktrace(ptr noundef %373) #11
  %375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %376 = trunc nuw i8 %375 to i1
  br i1 %376, label %377, label %381

377:                                              ; preds = %371
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @fileno(ptr noundef %378) #11
  %380 = call i32 @isatty(i32 noundef %379) #11
  %.not545 = icmp eq i32 %380, 0
  br i1 %.not545, label %381, label %382

381:                                              ; preds = %377, %371
  br label %382

382:                                              ; preds = %377, %381
  %.str.5.sink919 = phi ptr [ @.str.5, %381 ], [ @.str.2, %377 ]
  store i32 %372, ptr %233, align 4, !tbaa !5
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = load i32, ptr @test_count, align 4, !tbaa !5
  %385 = load i32, ptr %179, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror(i32 noundef %385, ptr noundef nonnull @.str.4) #11
  %387 = load i32, ptr %179, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror_debug(i32 noundef %387, ptr noundef nonnull @.str.4) #11
  %389 = load i32, ptr %233, align 4, !tbaa !5
  %390 = call ptr @strerror(i32 noundef %389) #11
  %391 = load i32, ptr %233, align 4, !tbaa !5
  %392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %383, ptr noundef nonnull %.str.5.sink919, i32 noundef %384, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %386, ptr noundef %388, ptr noundef %390, i32 noundef %391) #13
  call void @exit(i32 noundef 1) #14
  unreachable

393:                                              ; preds = %368
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #11
  %394 = load i32, ptr @__const.main.info.15, align 4
  store i32 %394, ptr %4, align 4
  %395 = add nsw i32 %342, 3
  store i32 %395, ptr @test_count, align 4, !tbaa !5
  %396 = call i32 @s2n_cert_validation_reject(ptr noundef nonnull %4) #11
  %397 = icmp eq i32 %396, -1
  br i1 %397, label %398, label %420

398:                                              ; preds = %393
  %399 = load i32, ptr %233, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @s2n_print_stacktrace(ptr noundef %400) #11
  %402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %403 = trunc nuw i8 %402 to i1
  br i1 %403, label %404, label %408

404:                                              ; preds = %398
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = call i32 @fileno(ptr noundef %405) #11
  %407 = call i32 @isatty(i32 noundef %406) #11
  %.not749 = icmp eq i32 %407, 0
  br i1 %.not749, label %408, label %409

408:                                              ; preds = %404, %398
  br label %409

409:                                              ; preds = %404, %408
  %.str.5.sink928 = phi ptr [ @.str.5, %408 ], [ @.str.2, %404 ]
  store i32 %399, ptr %233, align 4, !tbaa !5
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = load i32, ptr %179, align 4, !tbaa !5
  %413 = call ptr @s2n_strerror(i32 noundef %412, ptr noundef nonnull @.str.4) #11
  %414 = load i32, ptr %179, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror_debug(i32 noundef %414, ptr noundef nonnull @.str.4) #11
  %416 = load i32, ptr %233, align 4, !tbaa !5
  %417 = call ptr @strerror(i32 noundef %416) #11
  %418 = load i32, ptr %233, align 4, !tbaa !5
  %419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %410, ptr noundef nonnull %.str.5.sink928, i32 noundef %411, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %413, ptr noundef %415, ptr noundef %417, i32 noundef %418) #13
  call void @exit(i32 noundef 1) #14
  unreachable

420:                                              ; preds = %393
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr @test_count, align 4, !tbaa !5
  %423 = load i8, ptr %4, align 4
  %424 = and i8 %423, 1
  %.not546 = icmp eq i8 %424, 0
  br i1 %.not546, label %425, label %447

425:                                              ; preds = %420
  %426 = load i32, ptr %233, align 4, !tbaa !5
  %427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %428 = call i32 @s2n_print_stacktrace(ptr noundef %427) #11
  %429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %430 = trunc nuw i8 %429 to i1
  br i1 %430, label %431, label %435

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

435:                                              ; preds = %431, %425
  br label %436

436:                                              ; preds = %431, %435
  %.str.5.sink937 = phi ptr [ @.str.5, %435 ], [ @.str.2, %431 ]
  store i32 %426, ptr %233, align 4, !tbaa !5
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = load i32, ptr %179, align 4, !tbaa !5
  %440 = call ptr @s2n_strerror(i32 noundef %439, ptr noundef nonnull @.str.4) #11
  %441 = load i32, ptr %179, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror_debug(i32 noundef %441, ptr noundef nonnull @.str.4) #11
  %443 = load i32, ptr %233, align 4, !tbaa !5
  %444 = call ptr @strerror(i32 noundef %443) #11
  %445 = load i32, ptr %233, align 4, !tbaa !5
  %446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %437, ptr noundef nonnull %.str.5.sink937, i32 noundef %438, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %440, ptr noundef %442, ptr noundef %444, i32 noundef %445) #13
  call void @exit(i32 noundef 1) #14
  unreachable

447:                                              ; preds = %420
  %448 = add nsw i32 %421, 2
  store i32 %448, ptr @test_count, align 4, !tbaa !5
  %449 = and i8 %423, 2
  %450 = icmp eq i8 %449, 0
  br i1 %450, label %473, label %451

451:                                              ; preds = %447
  %452 = load i32, ptr %233, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @s2n_print_stacktrace(ptr noundef %453) #11
  %455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %456 = trunc nuw i8 %455 to i1
  br i1 %456, label %457, label %461

457:                                              ; preds = %451
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @fileno(ptr noundef %458) #11
  %460 = call i32 @isatty(i32 noundef %459) #11
  %.not548 = icmp eq i32 %460, 0
  br i1 %.not548, label %461, label %462

461:                                              ; preds = %457, %451
  br label %462

462:                                              ; preds = %457, %461
  %.str.5.sink946 = phi ptr [ @.str.5, %461 ], [ @.str.2, %457 ]
  store i32 %452, ptr %233, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = load i32, ptr %179, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror(i32 noundef %465, ptr noundef nonnull @.str.4) #11
  %467 = load i32, ptr %179, align 4, !tbaa !5
  %468 = call ptr @s2n_strerror_debug(i32 noundef %467, ptr noundef nonnull @.str.4) #11
  %469 = load i32, ptr %233, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #11
  %471 = load i32, ptr %233, align 4, !tbaa !5
  %472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef nonnull %.str.5.sink946, i32 noundef %464, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %466, ptr noundef %468, ptr noundef %470, i32 noundef %471) #13
  call void @exit(i32 noundef 1) #14
  unreachable

473:                                              ; preds = %447
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #11
  %474 = load i32, ptr @__const.main.info.18, align 4
  store i32 %474, ptr %5, align 4
  %475 = add nsw i32 %421, 3
  store i32 %475, ptr @test_count, align 4, !tbaa !5
  %476 = call i32 @s2n_cert_validation_accept(ptr noundef nonnull %5) #11
  %477 = icmp eq i32 %476, -1
  br i1 %477, label %478, label %.preheader766

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

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

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

489:                                              ; preds = %484, %488
  %.str.5.sink955 = phi ptr [ @.str.5, %488 ], [ @.str.2, %484 ]
  store i32 %479, ptr %233, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = load i32, ptr %179, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror(i32 noundef %492, ptr noundef nonnull @.str.4) #11
  %494 = load i32, ptr %179, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef nonnull @.str.4) #11
  %496 = load i32, ptr %233, align 4, !tbaa !5
  %497 = call ptr @strerror(i32 noundef %496) #11
  %498 = load i32, ptr %233, align 4, !tbaa !5
  %499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %490, ptr noundef nonnull %.str.5.sink955, i32 noundef %491, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %493, ptr noundef %495, ptr noundef %497, i32 noundef %498) #13
  call void @exit(i32 noundef 1) #14
  unreachable

500:                                              ; preds = %664
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr @test_count, align 4, !tbaa !5
  %503 = load i8, ptr %5, align 4
  %504 = and i8 %503, 1
  %.not549 = icmp eq i8 %504, 0
  br i1 %.not549, label %666, label %688

.preheader766:                                    ; preds = %473, %664
  %.0767 = phi i32 [ %665, %664 ], [ 0, %473 ]
  %505 = load i32, ptr @test_count, align 4, !tbaa !5
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr @test_count, align 4, !tbaa !5
  %507 = call i32 @s2n_cert_validation_accept(ptr noundef nonnull %5) #11
  %508 = icmp eq i32 %507, -1
  br i1 %508, label %531, label %509

509:                                              ; preds = %.preheader766
  %510 = load i32, ptr %233, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @s2n_print_stacktrace(ptr noundef %511) #11
  %513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %514 = trunc nuw i8 %513 to i1
  br i1 %514, label %515, label %519

515:                                              ; preds = %509
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @fileno(ptr noundef %516) #11
  %518 = call i32 @isatty(i32 noundef %517) #11
  %.not742 = icmp eq i32 %518, 0
  br i1 %.not742, label %519, label %520

519:                                              ; preds = %515, %509
  br label %520

520:                                              ; preds = %515, %519
  %.str.5.sink964 = phi ptr [ @.str.5, %519 ], [ @.str.2, %515 ]
  store i32 %510, ptr %233, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = load i32, ptr %179, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror(i32 noundef %523, ptr noundef nonnull @.str.4) #11
  %525 = load i32, ptr %179, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef nonnull @.str.4) #11
  %527 = load i32, ptr %233, align 4, !tbaa !5
  %528 = call ptr @strerror(i32 noundef %527) #11
  %529 = load i32, ptr %233, align 4, !tbaa !5
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %521, ptr noundef nonnull %.str.5.sink964, i32 noundef %522, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %524, ptr noundef %526, ptr noundef %528, i32 noundef %529) #13
  call void @exit(i32 noundef 1) #14
  unreachable

531:                                              ; preds = %.preheader766
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr @test_count, align 4, !tbaa !5
  %534 = load i32, ptr %179, align 4, !tbaa !5
  %535 = icmp eq i32 %534, 469762112
  br i1 %535, label %558, label %536

536:                                              ; preds = %531
  %537 = load i32, ptr %233, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = call i32 @s2n_print_stacktrace(ptr noundef %538) #11
  %540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %541 = trunc nuw i8 %540 to i1
  br i1 %541, label %542, label %546

542:                                              ; preds = %536
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = call i32 @fileno(ptr noundef %543) #11
  %545 = call i32 @isatty(i32 noundef %544) #11
  %.not743 = icmp eq i32 %545, 0
  br i1 %.not743, label %546, label %547

546:                                              ; preds = %542, %536
  br label %547

547:                                              ; preds = %542, %546
  %.str.5.sink973 = phi ptr [ @.str.5, %546 ], [ @.str.2, %542 ]
  store i32 %537, ptr %233, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = load i32, ptr %179, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror(i32 noundef %550, ptr noundef nonnull @.str.4) #11
  %552 = load i32, ptr %179, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror_debug(i32 noundef %552, ptr noundef nonnull @.str.4) #11
  %554 = load i32, ptr %233, align 4, !tbaa !5
  %555 = call ptr @strerror(i32 noundef %554) #11
  %556 = load i32, ptr %233, align 4, !tbaa !5
  %557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %548, ptr noundef nonnull %.str.5.sink973, i32 noundef %549, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %551, ptr noundef %553, ptr noundef %555, i32 noundef %556) #13
  call void @exit(i32 noundef 1) #14
  unreachable

558:                                              ; preds = %531
  %559 = add nsw i32 %532, 2
  store i32 %559, ptr @test_count, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #11
  %561 = icmp eq ptr %560, null
  br i1 %561, label %562, label %584

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

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

572:                                              ; preds = %568, %562
  br label %573

573:                                              ; preds = %568, %572
  %.str.5.sink982 = phi ptr [ @.str.5, %572 ], [ @.str.2, %568 ]
  store i32 %563, ptr %233, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = load i32, ptr %179, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror(i32 noundef %576, ptr noundef nonnull @.str.4) #11
  %578 = load i32, ptr %179, align 4, !tbaa !5
  %579 = call ptr @s2n_strerror_debug(i32 noundef %578, ptr noundef nonnull @.str.4) #11
  %580 = load i32, ptr %233, align 4, !tbaa !5
  %581 = call ptr @strerror(i32 noundef %580) #11
  %582 = load i32, ptr %233, align 4, !tbaa !5
  %583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %574, ptr noundef nonnull %.str.5.sink982, i32 noundef %575, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %577, ptr noundef %579, ptr noundef %581, i32 noundef %582) #13
  call void @exit(i32 noundef 1) #14
  unreachable

584:                                              ; preds = %558
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %585 = load i32, ptr @test_count, align 4, !tbaa !5
  %586 = add nsw i32 %585, 1
  store i32 %586, ptr @test_count, align 4, !tbaa !5
  %587 = call i32 @s2n_cert_validation_reject(ptr noundef nonnull %5) #11
  %588 = icmp eq i32 %587, -1
  br i1 %588, label %611, label %589

589:                                              ; preds = %584
  %590 = load i32, ptr %233, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = call i32 @s2n_print_stacktrace(ptr noundef %591) #11
  %593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %594 = trunc nuw i8 %593 to i1
  br i1 %594, label %595, label %599

595:                                              ; preds = %589
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 @fileno(ptr noundef %596) #11
  %598 = call i32 @isatty(i32 noundef %597) #11
  %.not744 = icmp eq i32 %598, 0
  br i1 %.not744, label %599, label %600

599:                                              ; preds = %595, %589
  br label %600

600:                                              ; preds = %595, %599
  %.str.5.sink991 = phi ptr [ @.str.5, %599 ], [ @.str.2, %595 ]
  store i32 %590, ptr %233, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = load i32, ptr %179, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror(i32 noundef %603, ptr noundef nonnull @.str.4) #11
  %605 = load i32, ptr %179, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef nonnull @.str.4) #11
  %607 = load i32, ptr %233, align 4, !tbaa !5
  %608 = call ptr @strerror(i32 noundef %607) #11
  %609 = load i32, ptr %233, align 4, !tbaa !5
  %610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef nonnull %.str.5.sink991, i32 noundef %602, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %604, ptr noundef %606, ptr noundef %608, i32 noundef %609) #13
  call void @exit(i32 noundef 1) #14
  unreachable

611:                                              ; preds = %584
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = add nsw i32 %612, 1
  store i32 %613, ptr @test_count, align 4, !tbaa !5
  %614 = load i32, ptr %179, align 4, !tbaa !5
  %615 = icmp eq i32 %614, 469762112
  br i1 %615, label %638, label %616

616:                                              ; preds = %611
  %617 = load i32, ptr %233, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @s2n_print_stacktrace(ptr noundef %618) #11
  %620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %621 = trunc nuw i8 %620 to i1
  br i1 %621, label %622, label %626

622:                                              ; preds = %616
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @fileno(ptr noundef %623) #11
  %625 = call i32 @isatty(i32 noundef %624) #11
  %.not745 = icmp eq i32 %625, 0
  br i1 %.not745, label %626, label %627

626:                                              ; preds = %622, %616
  br label %627

627:                                              ; preds = %622, %626
  %.str.5.sink1000 = phi ptr [ @.str.5, %626 ], [ @.str.2, %622 ]
  store i32 %617, ptr %233, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = load i32, ptr %179, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror(i32 noundef %630, ptr noundef nonnull @.str.4) #11
  %632 = load i32, ptr %179, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef nonnull @.str.4) #11
  %634 = load i32, ptr %233, align 4, !tbaa !5
  %635 = call ptr @strerror(i32 noundef %634) #11
  %636 = load i32, ptr %233, align 4, !tbaa !5
  %637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef nonnull %.str.5.sink1000, i32 noundef %629, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %631, ptr noundef %633, ptr noundef %635, i32 noundef %636) #13
  call void @exit(i32 noundef 1) #14
  unreachable

638:                                              ; preds = %611
  %639 = add nsw i32 %612, 2
  store i32 %639, ptr @test_count, align 4, !tbaa !5
  %640 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #11
  %641 = icmp eq ptr %640, null
  br i1 %641, label %642, label %664

642:                                              ; preds = %638
  %643 = load i32, ptr %233, align 4, !tbaa !5
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = call i32 @s2n_print_stacktrace(ptr noundef %644) #11
  %646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %647 = trunc nuw i8 %646 to i1
  br i1 %647, label %648, label %652

648:                                              ; preds = %642
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = call i32 @fileno(ptr noundef %649) #11
  %651 = call i32 @isatty(i32 noundef %650) #11
  %.not746 = icmp eq i32 %651, 0
  br i1 %.not746, label %652, label %653

652:                                              ; preds = %648, %642
  br label %653

653:                                              ; preds = %648, %652
  %.str.5.sink1009 = phi ptr [ @.str.5, %652 ], [ @.str.2, %648 ]
  store i32 %643, ptr %233, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = load i32, ptr %179, align 4, !tbaa !5
  %657 = call ptr @s2n_strerror(i32 noundef %656, ptr noundef nonnull @.str.4) #11
  %658 = load i32, ptr %179, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef nonnull @.str.4) #11
  %660 = load i32, ptr %233, align 4, !tbaa !5
  %661 = call ptr @strerror(i32 noundef %660) #11
  %662 = load i32, ptr %233, align 4, !tbaa !5
  %663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef nonnull %.str.5.sink1009, i32 noundef %655, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %657, ptr noundef %659, ptr noundef %661, i32 noundef %662) #13
  call void @exit(i32 noundef 1) #14
  unreachable

664:                                              ; preds = %638
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %665 = add nuw nsw i32 %.0767, 1
  %exitcond.not = icmp eq i32 %665, 10
  br i1 %exitcond.not, label %500, label %.preheader766, !llvm.loop !15

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

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

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

677:                                              ; preds = %672, %676
  %.str.5.sink1018 = phi ptr [ @.str.5, %676 ], [ @.str.2, %672 ]
  store i32 %667, ptr %233, align 4, !tbaa !5
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = load i32, ptr @test_count, align 4, !tbaa !5
  %680 = load i32, ptr %179, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror(i32 noundef %680, ptr noundef nonnull @.str.4) #11
  %682 = load i32, ptr %179, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror_debug(i32 noundef %682, ptr noundef nonnull @.str.4) #11
  %684 = load i32, ptr %233, align 4, !tbaa !5
  %685 = call ptr @strerror(i32 noundef %684) #11
  %686 = load i32, ptr %233, align 4, !tbaa !5
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %678, ptr noundef nonnull %.str.5.sink1018, i32 noundef %679, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %681, ptr noundef %683, ptr noundef %685, i32 noundef %686) #13
  call void @exit(i32 noundef 1) #14
  unreachable

688:                                              ; preds = %500
  %689 = add nsw i32 %501, 2
  store i32 %689, ptr @test_count, align 4, !tbaa !5
  %690 = and i8 %503, 2
  %.not551 = icmp eq i8 %690, 0
  br i1 %.not551, label %691, label %713

691:                                              ; preds = %688
  %692 = load i32, ptr %233, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = call i32 @s2n_print_stacktrace(ptr noundef %693) #11
  %695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %696 = trunc nuw i8 %695 to i1
  br i1 %696, label %697, label %701

697:                                              ; preds = %691
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = call i32 @fileno(ptr noundef %698) #11
  %700 = call i32 @isatty(i32 noundef %699) #11
  %.not552 = icmp eq i32 %700, 0
  br i1 %.not552, label %701, label %702

701:                                              ; preds = %697, %691
  br label %702

702:                                              ; preds = %697, %701
  %.str.5.sink1027 = phi ptr [ @.str.5, %701 ], [ @.str.2, %697 ]
  store i32 %692, ptr %233, align 4, !tbaa !5
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = load i32, ptr %179, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror(i32 noundef %705, ptr noundef nonnull @.str.4) #11
  %707 = load i32, ptr %179, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror_debug(i32 noundef %707, ptr noundef nonnull @.str.4) #11
  %709 = load i32, ptr %233, align 4, !tbaa !5
  %710 = call ptr @strerror(i32 noundef %709) #11
  %711 = load i32, ptr %233, align 4, !tbaa !5
  %712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %703, ptr noundef nonnull %.str.5.sink1027, i32 noundef %704, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %706, ptr noundef %708, ptr noundef %710, i32 noundef %711) #13
  call void @exit(i32 noundef 1) #14
  unreachable

713:                                              ; preds = %688
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #11
  %714 = load i32, ptr @__const.main.info.22, align 4
  store i32 %714, ptr %6, align 4
  %715 = add nsw i32 %501, 3
  store i32 %715, ptr @test_count, align 4, !tbaa !5
  %716 = call i32 @s2n_cert_validation_reject(ptr noundef nonnull %6) #11
  %717 = icmp eq i32 %716, -1
  br i1 %717, label %718, label %.preheader765

718:                                              ; preds = %713
  %719 = load i32, ptr %233, align 4, !tbaa !5
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = call i32 @s2n_print_stacktrace(ptr noundef %720) #11
  %722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %723 = trunc nuw i8 %722 to i1
  br i1 %723, label %724, label %728

724:                                              ; preds = %718
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = call i32 @fileno(ptr noundef %725) #11
  %727 = call i32 @isatty(i32 noundef %726) #11
  %.not741 = icmp eq i32 %727, 0
  br i1 %.not741, label %728, label %729

728:                                              ; preds = %724, %718
  br label %729

729:                                              ; preds = %724, %728
  %.str.5.sink1036 = phi ptr [ @.str.5, %728 ], [ @.str.2, %724 ]
  store i32 %719, ptr %233, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = load i32, ptr %179, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror(i32 noundef %732, ptr noundef nonnull @.str.4) #11
  %734 = load i32, ptr %179, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror_debug(i32 noundef %734, ptr noundef nonnull @.str.4) #11
  %736 = load i32, ptr %233, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #11
  %738 = load i32, ptr %233, align 4, !tbaa !5
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef nonnull %.str.5.sink1036, i32 noundef %731, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %733, ptr noundef %735, ptr noundef %737, i32 noundef %738) #13
  call void @exit(i32 noundef 1) #14
  unreachable

740:                                              ; preds = %904
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr @test_count, align 4, !tbaa !5
  %743 = load i8, ptr %6, align 4
  %744 = and i8 %743, 1
  %.not553 = icmp eq i8 %744, 0
  br i1 %.not553, label %906, label %928

.preheader765:                                    ; preds = %713, %904
  %.0507768 = phi i32 [ %905, %904 ], [ 0, %713 ]
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = call i32 @s2n_cert_validation_reject(ptr noundef nonnull %6) #11
  %748 = icmp eq i32 %747, -1
  br i1 %748, label %771, label %749

749:                                              ; preds = %.preheader765
  %750 = load i32, ptr %233, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = call i32 @s2n_print_stacktrace(ptr noundef %751) #11
  %753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %754 = trunc nuw i8 %753 to i1
  br i1 %754, label %755, label %759

755:                                              ; preds = %749
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @fileno(ptr noundef %756) #11
  %758 = call i32 @isatty(i32 noundef %757) #11
  %.not735 = icmp eq i32 %758, 0
  br i1 %.not735, label %759, label %760

759:                                              ; preds = %755, %749
  br label %760

760:                                              ; preds = %755, %759
  %.str.5.sink1045 = phi ptr [ @.str.5, %759 ], [ @.str.2, %755 ]
  store i32 %750, ptr %233, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = load i32, ptr %179, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror(i32 noundef %763, ptr noundef nonnull @.str.4) #11
  %765 = load i32, ptr %179, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror_debug(i32 noundef %765, ptr noundef nonnull @.str.4) #11
  %767 = load i32, ptr %233, align 4, !tbaa !5
  %768 = call ptr @strerror(i32 noundef %767) #11
  %769 = load i32, ptr %233, align 4, !tbaa !5
  %770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef nonnull %.str.5.sink1045, i32 noundef %762, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %764, ptr noundef %766, ptr noundef %768, i32 noundef %769) #13
  call void @exit(i32 noundef 1) #14
  unreachable

771:                                              ; preds = %.preheader765
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = add nsw i32 %772, 1
  store i32 %773, ptr @test_count, align 4, !tbaa !5
  %774 = load i32, ptr %179, align 4, !tbaa !5
  %775 = icmp eq i32 %774, 469762112
  br i1 %775, label %798, label %776

776:                                              ; preds = %771
  %777 = load i32, ptr %233, align 4, !tbaa !5
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = call i32 @s2n_print_stacktrace(ptr noundef %778) #11
  %780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %781 = trunc nuw i8 %780 to i1
  br i1 %781, label %782, label %786

782:                                              ; preds = %776
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = call i32 @fileno(ptr noundef %783) #11
  %785 = call i32 @isatty(i32 noundef %784) #11
  %.not736 = icmp eq i32 %785, 0
  br i1 %.not736, label %786, label %787

786:                                              ; preds = %782, %776
  br label %787

787:                                              ; preds = %782, %786
  %.str.5.sink1054 = phi ptr [ @.str.5, %786 ], [ @.str.2, %782 ]
  store i32 %777, ptr %233, align 4, !tbaa !5
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = load i32, ptr @test_count, align 4, !tbaa !5
  %790 = load i32, ptr %179, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror(i32 noundef %790, ptr noundef nonnull @.str.4) #11
  %792 = load i32, ptr %179, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror_debug(i32 noundef %792, ptr noundef nonnull @.str.4) #11
  %794 = load i32, ptr %233, align 4, !tbaa !5
  %795 = call ptr @strerror(i32 noundef %794) #11
  %796 = load i32, ptr %233, align 4, !tbaa !5
  %797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %788, ptr noundef nonnull %.str.5.sink1054, i32 noundef %789, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %791, ptr noundef %793, ptr noundef %795, i32 noundef %796) #13
  call void @exit(i32 noundef 1) #14
  unreachable

798:                                              ; preds = %771
  %799 = add nsw i32 %772, 2
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #11
  %801 = icmp eq ptr %800, null
  br i1 %801, label %802, label %824

802:                                              ; preds = %798
  %803 = load i32, ptr %233, align 4, !tbaa !5
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = call i32 @s2n_print_stacktrace(ptr noundef %804) #11
  %806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %807 = trunc nuw i8 %806 to i1
  br i1 %807, label %808, label %812

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

812:                                              ; preds = %808, %802
  br label %813

813:                                              ; preds = %808, %812
  %.str.5.sink1063 = phi ptr [ @.str.5, %812 ], [ @.str.2, %808 ]
  store i32 %803, ptr %233, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = load i32, ptr @test_count, align 4, !tbaa !5
  %816 = load i32, ptr %179, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror(i32 noundef %816, ptr noundef nonnull @.str.4) #11
  %818 = load i32, ptr %179, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef nonnull @.str.4) #11
  %820 = load i32, ptr %233, align 4, !tbaa !5
  %821 = call ptr @strerror(i32 noundef %820) #11
  %822 = load i32, ptr %233, align 4, !tbaa !5
  %823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %814, ptr noundef nonnull %.str.5.sink1063, i32 noundef %815, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %817, ptr noundef %819, ptr noundef %821, i32 noundef %822) #13
  call void @exit(i32 noundef 1) #14
  unreachable

824:                                              ; preds = %798
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = add nsw i32 %825, 1
  store i32 %826, ptr @test_count, align 4, !tbaa !5
  %827 = call i32 @s2n_cert_validation_accept(ptr noundef nonnull %6) #11
  %828 = icmp eq i32 %827, -1
  br i1 %828, label %851, label %829

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

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

839:                                              ; preds = %835, %829
  br label %840

840:                                              ; preds = %835, %839
  %.str.5.sink1072 = phi ptr [ @.str.5, %839 ], [ @.str.2, %835 ]
  store i32 %830, ptr %233, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = load i32, ptr %179, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror(i32 noundef %843, ptr noundef nonnull @.str.4) #11
  %845 = load i32, ptr %179, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror_debug(i32 noundef %845, ptr noundef nonnull @.str.4) #11
  %847 = load i32, ptr %233, align 4, !tbaa !5
  %848 = call ptr @strerror(i32 noundef %847) #11
  %849 = load i32, ptr %233, align 4, !tbaa !5
  %850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %841, ptr noundef nonnull %.str.5.sink1072, i32 noundef %842, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %844, ptr noundef %846, ptr noundef %848, i32 noundef %849) #13
  call void @exit(i32 noundef 1) #14
  unreachable

851:                                              ; preds = %824
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = add nsw i32 %852, 1
  store i32 %853, ptr @test_count, align 4, !tbaa !5
  %854 = load i32, ptr %179, align 4, !tbaa !5
  %855 = icmp eq i32 %854, 469762112
  br i1 %855, label %878, label %856

856:                                              ; preds = %851
  %857 = load i32, ptr %233, align 4, !tbaa !5
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = call i32 @s2n_print_stacktrace(ptr noundef %858) #11
  %860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %861 = trunc nuw i8 %860 to i1
  br i1 %861, label %862, label %866

862:                                              ; preds = %856
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = call i32 @fileno(ptr noundef %863) #11
  %865 = call i32 @isatty(i32 noundef %864) #11
  %.not738 = icmp eq i32 %865, 0
  br i1 %.not738, label %866, label %867

866:                                              ; preds = %862, %856
  br label %867

867:                                              ; preds = %862, %866
  %.str.5.sink1081 = phi ptr [ @.str.5, %866 ], [ @.str.2, %862 ]
  store i32 %857, ptr %233, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = load i32, ptr %179, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror(i32 noundef %870, ptr noundef nonnull @.str.4) #11
  %872 = load i32, ptr %179, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror_debug(i32 noundef %872, ptr noundef nonnull @.str.4) #11
  %874 = load i32, ptr %233, align 4, !tbaa !5
  %875 = call ptr @strerror(i32 noundef %874) #11
  %876 = load i32, ptr %233, align 4, !tbaa !5
  %877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %868, ptr noundef nonnull %.str.5.sink1081, i32 noundef %869, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %871, ptr noundef %873, ptr noundef %875, i32 noundef %876) #13
  call void @exit(i32 noundef 1) #14
  unreachable

878:                                              ; preds = %851
  %879 = add nsw i32 %852, 2
  store i32 %879, ptr @test_count, align 4, !tbaa !5
  %880 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #11
  %881 = icmp eq ptr %880, null
  br i1 %881, label %882, label %904

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

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

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

893:                                              ; preds = %888, %892
  %.str.5.sink1090 = phi ptr [ @.str.5, %892 ], [ @.str.2, %888 ]
  store i32 %883, ptr %233, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = load i32, ptr %179, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef nonnull @.str.4) #11
  %898 = load i32, ptr %179, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef nonnull @.str.4) #11
  %900 = load i32, ptr %233, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #11
  %902 = load i32, ptr %233, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef nonnull %.str.5.sink1090, i32 noundef %895, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %897, ptr noundef %899, ptr noundef %901, i32 noundef %902) #13
  call void @exit(i32 noundef 1) #14
  unreachable

904:                                              ; preds = %878
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %905 = add nuw nsw i32 %.0507768, 1
  %exitcond780.not = icmp eq i32 %905, 10
  br i1 %exitcond780.not, label %740, label %.preheader765, !llvm.loop !17

906:                                              ; preds = %740
  %907 = load i32, ptr %233, align 4, !tbaa !5
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = call i32 @s2n_print_stacktrace(ptr noundef %908) #11
  %910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %911 = trunc nuw i8 %910 to i1
  br i1 %911, label %912, label %916

912:                                              ; preds = %906
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @fileno(ptr noundef %913) #11
  %915 = call i32 @isatty(i32 noundef %914) #11
  %.not554 = icmp eq i32 %915, 0
  br i1 %.not554, label %916, label %917

916:                                              ; preds = %912, %906
  br label %917

917:                                              ; preds = %912, %916
  %.str.5.sink1099 = phi ptr [ @.str.5, %916 ], [ @.str.2, %912 ]
  store i32 %907, ptr %233, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = load i32, ptr %179, align 4, !tbaa !5
  %921 = call ptr @s2n_strerror(i32 noundef %920, ptr noundef nonnull @.str.4) #11
  %922 = load i32, ptr %179, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror_debug(i32 noundef %922, ptr noundef nonnull @.str.4) #11
  %924 = load i32, ptr %233, align 4, !tbaa !5
  %925 = call ptr @strerror(i32 noundef %924) #11
  %926 = load i32, ptr %233, align 4, !tbaa !5
  %927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %918, ptr noundef nonnull %.str.5.sink1099, i32 noundef %919, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %921, ptr noundef %923, ptr noundef %925, i32 noundef %926) #13
  call void @exit(i32 noundef 1) #14
  unreachable

928:                                              ; preds = %740
  %929 = add nsw i32 %741, 2
  store i32 %929, ptr @test_count, align 4, !tbaa !5
  %930 = and i8 %743, 2
  %931 = icmp eq i8 %930, 0
  br i1 %931, label %954, label %932

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

938:                                              ; preds = %932
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = call i32 @fileno(ptr noundef %939) #11
  %941 = call i32 @isatty(i32 noundef %940) #11
  %.not555 = icmp eq i32 %941, 0
  br i1 %.not555, label %942, label %943

942:                                              ; preds = %938, %932
  br label %943

943:                                              ; preds = %938, %942
  %.str.5.sink1108 = phi ptr [ @.str.5, %942 ], [ @.str.2, %938 ]
  store i32 %933, ptr %233, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = load i32, ptr %179, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror(i32 noundef %946, ptr noundef nonnull @.str.4) #11
  %948 = load i32, ptr %179, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror_debug(i32 noundef %948, ptr noundef nonnull @.str.4) #11
  %950 = load i32, ptr %233, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #11
  %952 = load i32, ptr %233, align 4, !tbaa !5
  %953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %944, ptr noundef nonnull %.str.5.sink1108, i32 noundef %945, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %947, ptr noundef %949, ptr noundef %951, i32 noundef %952) #13
  call void @exit(i32 noundef 1) #14
  unreachable

954:                                              ; preds = %928
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  store ptr null, ptr %7, align 8, !tbaa !9
  %955 = add nsw i32 %741, 3
  store i32 %955, ptr @test_count, align 4, !tbaa !5
  %956 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %7, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.24) #11
  %957 = icmp eq i32 %956, -1
  br i1 %957, label %961, label %.preheader764

.preheader764:                                    ; preds = %954
  %958 = getelementptr inbounds i8, ptr %14, i64 28
  %959 = getelementptr inbounds i8, ptr %14, i64 24
  %960 = getelementptr inbounds i8, ptr %12, i64 4
  br label %986

961:                                              ; preds = %954
  %962 = load i32, ptr %233, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @s2n_print_stacktrace(ptr noundef %963) #11
  %965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %966 = trunc nuw i8 %965 to i1
  br i1 %966, label %967, label %971

967:                                              ; preds = %961
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = call i32 @fileno(ptr noundef %968) #11
  %970 = call i32 @isatty(i32 noundef %969) #11
  %.not734 = icmp eq i32 %970, 0
  br i1 %.not734, label %971, label %972

971:                                              ; preds = %967, %961
  br label %972

972:                                              ; preds = %967, %971
  %.str.5.sink1117 = phi ptr [ @.str.5, %971 ], [ @.str.2, %967 ]
  store i32 %962, ptr %233, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = load i32, ptr %179, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror(i32 noundef %975, ptr noundef nonnull @.str.4) #11
  %977 = load i32, ptr %179, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror_debug(i32 noundef %977, ptr noundef nonnull @.str.4) #11
  %979 = load i32, ptr %233, align 4, !tbaa !5
  %980 = call ptr @strerror(i32 noundef %979) #11
  %981 = load i32, ptr %233, align 4, !tbaa !5
  %982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %973, ptr noundef nonnull %.str.5.sink1117, i32 noundef %974, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %976, ptr noundef %978, ptr noundef %980, i32 noundef %981) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader763:                                    ; preds = %1452
  %983 = getelementptr inbounds i8, ptr %23, i64 28
  %984 = getelementptr inbounds i8, ptr %23, i64 24
  %985 = getelementptr inbounds i8, ptr %21, i64 4
  br label %1459

986:                                              ; preds = %.preheader764, %1452
  %indvars.iv = phi i64 [ 0, %.preheader764 ], [ %indvars.iv.next, %1452 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %8, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %9) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %9, i8 0, i64 12000, i1 false)
  %987 = load i32, ptr @test_count, align 4, !tbaa !5
  %988 = add nsw i32 %987, 1
  store i32 %988, ptr @test_count, align 4, !tbaa !5
  %989 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.23, ptr noundef nonnull %9, i64 noundef 12000) #11
  %990 = icmp eq i32 %989, -1
  br i1 %990, label %991, label %1013

991:                                              ; preds = %986
  %992 = load i32, ptr %233, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = call i32 @s2n_print_stacktrace(ptr noundef %993) #11
  %995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %996 = trunc nuw i8 %995 to i1
  br i1 %996, label %997, label %1001

997:                                              ; preds = %991
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = call i32 @fileno(ptr noundef %998) #11
  %1000 = call i32 @isatty(i32 noundef %999) #11
  %.not733 = icmp eq i32 %1000, 0
  br i1 %.not733, label %1001, label %1002

1001:                                             ; preds = %997, %991
  br label %1002

1002:                                             ; preds = %997, %1001
  %.str.5.sink1126 = phi ptr [ @.str.5, %1001 ], [ @.str.2, %997 ]
  store i32 %992, ptr %233, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = load i32, ptr %179, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror(i32 noundef %1005, ptr noundef nonnull @.str.4) #11
  %1007 = load i32, ptr %179, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror_debug(i32 noundef %1007, ptr noundef nonnull @.str.4) #11
  %1009 = load i32, ptr %233, align 4, !tbaa !5
  %1010 = call ptr @strerror(i32 noundef %1009) #11
  %1011 = load i32, ptr %233, align 4, !tbaa !5
  %1012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1003, ptr noundef nonnull %.str.5.sink1126, i32 noundef %1004, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1006, ptr noundef %1008, ptr noundef %1010, i32 noundef %1011) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1013:                                             ; preds = %986
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr @test_count, align 4, !tbaa !5
  %1016 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef nonnull %8, ptr noundef nonnull %9) #11
  %1017 = icmp eq i32 %1016, -1
  br i1 %1017, label %1018, label %1040

1018:                                             ; preds = %1013
  %1019 = load i32, ptr %233, align 4, !tbaa !5
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = call i32 @s2n_print_stacktrace(ptr noundef %1020) #11
  %1022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1023 = trunc nuw i8 %1022 to i1
  br i1 %1023, label %1024, label %1028

1024:                                             ; preds = %1018
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = call i32 @fileno(ptr noundef %1025) #11
  %1027 = call i32 @isatty(i32 noundef %1026) #11
  %.not732 = icmp eq i32 %1027, 0
  br i1 %.not732, label %1028, label %1029

1028:                                             ; preds = %1024, %1018
  br label %1029

1029:                                             ; preds = %1024, %1028
  %.str.5.sink1135 = phi ptr [ @.str.5, %1028 ], [ @.str.2, %1024 ]
  store i32 %1019, ptr %233, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = load i32, ptr %179, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror(i32 noundef %1032, ptr noundef nonnull @.str.4) #11
  %1034 = load i32, ptr %179, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror_debug(i32 noundef %1034, ptr noundef nonnull @.str.4) #11
  %1036 = load i32, ptr %233, align 4, !tbaa !5
  %1037 = call ptr @strerror(i32 noundef %1036) #11
  %1038 = load i32, ptr %233, align 4, !tbaa !5
  %1039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1030, ptr noundef nonnull %.str.5.sink1135, i32 noundef %1031, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1033, ptr noundef %1035, ptr noundef %1037, i32 noundef %1038) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1040:                                             ; preds = %1013
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %10) #11
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = add nsw i32 %1041, 1
  store i32 %1042, ptr @test_count, align 4, !tbaa !5
  %1043 = call i32 @s2n_x509_validator_init(ptr noundef nonnull %10, ptr noundef nonnull %8, i8 noundef zeroext 0) #11
  %1044 = icmp eq i32 %1043, -1
  br i1 %1044, label %1045, label %1067

1045:                                             ; preds = %1040
  %1046 = load i32, ptr %233, align 4, !tbaa !5
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = call i32 @s2n_print_stacktrace(ptr noundef %1047) #11
  %1049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1050 = trunc nuw i8 %1049 to i1
  br i1 %1050, label %1051, label %1055

1051:                                             ; preds = %1045
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @fileno(ptr noundef %1052) #11
  %1054 = call i32 @isatty(i32 noundef %1053) #11
  %.not731 = icmp eq i32 %1054, 0
  br i1 %.not731, label %1055, label %1056

1055:                                             ; preds = %1051, %1045
  br label %1056

1056:                                             ; preds = %1051, %1055
  %.str.5.sink1144 = phi ptr [ @.str.5, %1055 ], [ @.str.2, %1051 ]
  store i32 %1046, ptr %233, align 4, !tbaa !5
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = load i32, ptr @test_count, align 4, !tbaa !5
  %1059 = load i32, ptr %179, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror(i32 noundef %1059, ptr noundef nonnull @.str.4) #11
  %1061 = load i32, ptr %179, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror_debug(i32 noundef %1061, ptr noundef nonnull @.str.4) #11
  %1063 = load i32, ptr %233, align 4, !tbaa !5
  %1064 = call ptr @strerror(i32 noundef %1063) #11
  %1065 = load i32, ptr %233, align 4, !tbaa !5
  %1066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1057, ptr noundef nonnull %.str.5.sink1144, i32 noundef %1058, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1060, ptr noundef %1062, ptr noundef %1064, i32 noundef %1065) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1067:                                             ; preds = %1040
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  %1068 = call ptr @s2n_config_new() #11
  store ptr %1068, ptr %11, align 8, !tbaa !9
  %1069 = load i32, ptr @test_count, align 4, !tbaa !5
  %1070 = add nsw i32 %1069, 1
  store i32 %1070, ptr @test_count, align 4, !tbaa !5
  %1071 = icmp eq ptr %1068, null
  br i1 %1071, label %1072, label %1094

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

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

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

1083:                                             ; preds = %1078, %1082
  %.str.5.sink1153 = phi ptr [ @.str.5, %1082 ], [ @.str.2, %1078 ]
  store i32 %1073, ptr %233, align 4, !tbaa !5
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = load i32, ptr %179, align 4, !tbaa !5
  %1087 = call ptr @s2n_strerror(i32 noundef %1086, ptr noundef nonnull @.str.4) #11
  %1088 = load i32, ptr %179, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror_debug(i32 noundef %1088, ptr noundef nonnull @.str.4) #11
  %1090 = load i32, ptr %233, align 4, !tbaa !5
  %1091 = call ptr @strerror(i32 noundef %1090) #11
  %1092 = load i32, ptr %233, align 4, !tbaa !5
  %1093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1084, ptr noundef nonnull %.str.5.sink1153, i32 noundef %1085, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1087, ptr noundef %1089, ptr noundef %1091, i32 noundef %1092) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1094:                                             ; preds = %1067
  %1095 = add nsw i32 %1069, 2
  store i32 %1095, ptr @test_count, align 4, !tbaa !5
  %1096 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1068, ptr noundef nonnull @.str.30) #11
  %1097 = icmp eq i32 %1096, -1
  br i1 %1097, label %1098, label %1120

1098:                                             ; preds = %1094
  %1099 = load i32, ptr %233, align 4, !tbaa !5
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @s2n_print_stacktrace(ptr noundef %1100) #11
  %1102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1103 = trunc nuw i8 %1102 to i1
  br i1 %1103, label %1104, label %1108

1104:                                             ; preds = %1098
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = call i32 @fileno(ptr noundef %1105) #11
  %1107 = call i32 @isatty(i32 noundef %1106) #11
  %.not729 = icmp eq i32 %1107, 0
  br i1 %.not729, label %1108, label %1109

1108:                                             ; preds = %1104, %1098
  br label %1109

1109:                                             ; preds = %1104, %1108
  %.str.5.sink1162 = phi ptr [ @.str.5, %1108 ], [ @.str.2, %1104 ]
  store i32 %1099, ptr %233, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = load i32, ptr %179, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror(i32 noundef %1112, ptr noundef nonnull @.str.4) #11
  %1114 = load i32, ptr %179, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror_debug(i32 noundef %1114, ptr noundef nonnull @.str.4) #11
  %1116 = load i32, ptr %233, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #11
  %1118 = load i32, ptr %233, align 4, !tbaa !5
  %1119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef nonnull %.str.5.sink1162, i32 noundef %1111, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %1113, ptr noundef %1115, ptr noundef %1117, i32 noundef %1118) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1120:                                             ; preds = %1094
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #11
  %1121 = getelementptr inbounds [4 x %struct.anon], ptr @__const.main.test_cases, i64 0, i64 %indvars.iv
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(16) %1121, i64 16, i1 false), !tbaa.struct !18
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = add nsw i32 %1122, 1
  store i32 %1123, ptr @test_count, align 4, !tbaa !5
  %1124 = load ptr, ptr %11, align 8, !tbaa !9
  %1125 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %1124, ptr noundef nonnull @s2n_test_cert_validation_callback, ptr noundef nonnull %12) #11
  %1126 = icmp eq i32 %1125, -1
  br i1 %1126, label %1127, label %1149

1127:                                             ; preds = %1120
  %1128 = load i32, ptr %233, align 4, !tbaa !5
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @s2n_print_stacktrace(ptr noundef %1129) #11
  %1131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1132 = trunc nuw i8 %1131 to i1
  br i1 %1132, label %1133, label %1137

1133:                                             ; preds = %1127
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = call i32 @fileno(ptr noundef %1134) #11
  %1136 = call i32 @isatty(i32 noundef %1135) #11
  %.not728 = icmp eq i32 %1136, 0
  br i1 %.not728, label %1137, label %1138

1137:                                             ; preds = %1133, %1127
  br label %1138

1138:                                             ; preds = %1133, %1137
  %.str.5.sink1171 = phi ptr [ @.str.5, %1137 ], [ @.str.2, %1133 ]
  store i32 %1128, ptr %233, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = load i32, ptr %179, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror(i32 noundef %1141, ptr noundef nonnull @.str.4) #11
  %1143 = load i32, ptr %179, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror_debug(i32 noundef %1143, ptr noundef nonnull @.str.4) #11
  %1145 = load i32, ptr %233, align 4, !tbaa !5
  %1146 = call ptr @strerror(i32 noundef %1145) #11
  %1147 = load i32, ptr %233, align 4, !tbaa !5
  %1148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1139, ptr noundef nonnull %.str.5.sink1171, i32 noundef %1140, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %1142, ptr noundef %1144, ptr noundef %1146, i32 noundef %1147) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1149:                                             ; preds = %1120
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  %1150 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1150, ptr %13, align 8, !tbaa !9
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 1
  store i32 %1152, ptr @test_count, align 4, !tbaa !5
  %1153 = icmp eq ptr %1150, null
  br i1 %1153, label %1154, label %1176

1154:                                             ; preds = %1149
  %1155 = load i32, ptr %233, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = call i32 @s2n_print_stacktrace(ptr noundef %1156) #11
  %1158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1159 = trunc nuw i8 %1158 to i1
  br i1 %1159, label %1160, label %1164

1160:                                             ; preds = %1154
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @fileno(ptr noundef %1161) #11
  %1163 = call i32 @isatty(i32 noundef %1162) #11
  %.not727 = icmp eq i32 %1163, 0
  br i1 %.not727, label %1164, label %1165

1164:                                             ; preds = %1160, %1154
  br label %1165

1165:                                             ; preds = %1160, %1164
  %.str.5.sink1180 = phi ptr [ @.str.5, %1164 ], [ @.str.2, %1160 ]
  store i32 %1155, ptr %233, align 4, !tbaa !5
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %1168 = load i32, ptr %179, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror(i32 noundef %1168, ptr noundef nonnull @.str.4) #11
  %1170 = load i32, ptr %179, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror_debug(i32 noundef %1170, ptr noundef nonnull @.str.4) #11
  %1172 = load i32, ptr %233, align 4, !tbaa !5
  %1173 = call ptr @strerror(i32 noundef %1172) #11
  %1174 = load i32, ptr %233, align 4, !tbaa !5
  %1175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1166, ptr noundef nonnull %.str.5.sink1180, i32 noundef %1167, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %1169, ptr noundef %1171, ptr noundef %1173, i32 noundef %1174) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1176:                                             ; preds = %1149
  %1177 = add nsw i32 %1151, 2
  store i32 %1177, ptr @test_count, align 4, !tbaa !5
  %1178 = load ptr, ptr %11, align 8, !tbaa !9
  %1179 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1150, ptr noundef %1178) #11
  %1180 = icmp eq i32 %1179, -1
  br i1 %1180, label %1181, label %1203

1181:                                             ; preds = %1176
  %1182 = load i32, ptr %233, align 4, !tbaa !5
  %1183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1184 = call i32 @s2n_print_stacktrace(ptr noundef %1183) #11
  %1185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1186 = trunc nuw i8 %1185 to i1
  br i1 %1186, label %1187, label %1191

1187:                                             ; preds = %1181
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @fileno(ptr noundef %1188) #11
  %1190 = call i32 @isatty(i32 noundef %1189) #11
  %.not726 = icmp eq i32 %1190, 0
  br i1 %.not726, label %1191, label %1192

1191:                                             ; preds = %1187, %1181
  br label %1192

1192:                                             ; preds = %1187, %1191
  %.str.5.sink1189 = phi ptr [ @.str.5, %1191 ], [ @.str.2, %1187 ]
  store i32 %1182, ptr %233, align 4, !tbaa !5
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = load i32, ptr %179, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror(i32 noundef %1195, ptr noundef nonnull @.str.4) #11
  %1197 = load i32, ptr %179, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror_debug(i32 noundef %1197, ptr noundef nonnull @.str.4) #11
  %1199 = load i32, ptr %233, align 4, !tbaa !5
  %1200 = call ptr @strerror(i32 noundef %1199) #11
  %1201 = load i32, ptr %233, align 4, !tbaa !5
  %1202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1193, ptr noundef nonnull %.str.5.sink1189, i32 noundef %1194, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1196, ptr noundef %1198, ptr noundef %1200, i32 noundef %1201) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1203:                                             ; preds = %1176
  %1204 = load i32, ptr @test_count, align 4, !tbaa !5
  %1205 = add nsw i32 %1204, 1
  store i32 %1205, ptr @test_count, align 4, !tbaa !5
  %1206 = load ptr, ptr %13, align 8, !tbaa !9
  %1207 = call i32 @s2n_set_server_name(ptr noundef %1206, ptr noundef nonnull @.str.35) #11
  %1208 = icmp eq i32 %1207, -1
  br i1 %1208, label %1209, label %1231

1209:                                             ; preds = %1203
  %1210 = load i32, ptr %233, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = call i32 @s2n_print_stacktrace(ptr noundef %1211) #11
  %1213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1214 = trunc nuw i8 %1213 to i1
  br i1 %1214, label %1215, label %1219

1215:                                             ; preds = %1209
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = call i32 @fileno(ptr noundef %1216) #11
  %1218 = call i32 @isatty(i32 noundef %1217) #11
  %.not725 = icmp eq i32 %1218, 0
  br i1 %.not725, label %1219, label %1220

1219:                                             ; preds = %1215, %1209
  br label %1220

1220:                                             ; preds = %1215, %1219
  %.str.5.sink1198 = phi ptr [ @.str.5, %1219 ], [ @.str.2, %1215 ]
  store i32 %1210, ptr %233, align 4, !tbaa !5
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = load i32, ptr @test_count, align 4, !tbaa !5
  %1223 = load i32, ptr %179, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror(i32 noundef %1223, ptr noundef nonnull @.str.4) #11
  %1225 = load i32, ptr %179, align 4, !tbaa !5
  %1226 = call ptr @s2n_strerror_debug(i32 noundef %1225, ptr noundef nonnull @.str.4) #11
  %1227 = load i32, ptr %233, align 4, !tbaa !5
  %1228 = call ptr @strerror(i32 noundef %1227) #11
  %1229 = load i32, ptr %233, align 4, !tbaa !5
  %1230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1221, ptr noundef nonnull %.str.5.sink1198, i32 noundef %1222, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %1224, ptr noundef %1226, ptr noundef %1228, i32 noundef %1229) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1231:                                             ; preds = %1203
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %14, i8 0, i64 40, i1 false)
  %1232 = load i32, ptr @test_count, align 4, !tbaa !5
  %1233 = add nsw i32 %1232, 1
  store i32 %1233, ptr @test_count, align 4, !tbaa !5
  %1234 = load ptr, ptr %13, align 8, !tbaa !9
  %1235 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %1234, ptr noundef nonnull @.str.23, ptr noundef nonnull %14) #11
  %1236 = call zeroext i1 @s2n_result_is_ok(i32 %1235)
  br i1 %1236, label %1259, label %1237

1237:                                             ; preds = %1231
  %1238 = load i32, ptr %233, align 4, !tbaa !5
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = call i32 @s2n_print_stacktrace(ptr noundef %1239) #11
  %1241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1242 = trunc nuw i8 %1241 to i1
  br i1 %1242, label %1243, label %1247

1243:                                             ; preds = %1237
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = call i32 @fileno(ptr noundef %1244) #11
  %1246 = call i32 @isatty(i32 noundef %1245) #11
  %.not717 = icmp eq i32 %1246, 0
  br i1 %.not717, label %1247, label %1248

1247:                                             ; preds = %1243, %1237
  br label %1248

1248:                                             ; preds = %1243, %1247
  %.str.5.sink1207 = phi ptr [ @.str.5, %1247 ], [ @.str.2, %1243 ]
  store i32 %1238, ptr %233, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = load i32, ptr %179, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror(i32 noundef %1251, ptr noundef nonnull @.str.4) #11
  %1253 = load i32, ptr %179, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror_debug(i32 noundef %1253, ptr noundef nonnull @.str.4) #11
  %1255 = load i32, ptr %233, align 4, !tbaa !5
  %1256 = call ptr @strerror(i32 noundef %1255) #11
  %1257 = load i32, ptr %233, align 4, !tbaa !5
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1249, ptr noundef nonnull %.str.5.sink1207, i32 noundef %1250, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1252, ptr noundef %1254, ptr noundef %1256, i32 noundef %1257) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1259:                                             ; preds = %1231
  %1260 = load i32, ptr %958, align 4, !tbaa !20
  %1261 = load i32, ptr %959, align 8, !tbaa !23
  %1262 = sub i32 %1260, %1261
  %1263 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %14, i32 noundef %1262) #11
  %1264 = load i32, ptr @test_count, align 4, !tbaa !5
  %1265 = add nsw i32 %1264, 1
  store i32 %1265, ptr @test_count, align 4, !tbaa !5
  %1266 = icmp eq ptr %1263, null
  br i1 %1266, label %1267, label %1289

1267:                                             ; preds = %1259
  %1268 = load i32, ptr %233, align 4, !tbaa !5
  %1269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1270 = call i32 @s2n_print_stacktrace(ptr noundef %1269) #11
  %1271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1272 = trunc nuw i8 %1271 to i1
  br i1 %1272, label %1273, label %1277

1273:                                             ; preds = %1267
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = call i32 @fileno(ptr noundef %1274) #11
  %1276 = call i32 @isatty(i32 noundef %1275) #11
  %.not724 = icmp eq i32 %1276, 0
  br i1 %.not724, label %1277, label %1278

1277:                                             ; preds = %1273, %1267
  br label %1278

1278:                                             ; preds = %1273, %1277
  %.str.5.sink1216 = phi ptr [ @.str.5, %1277 ], [ @.str.2, %1273 ]
  store i32 %1268, ptr %233, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = load i32, ptr %179, align 4, !tbaa !5
  %1282 = call ptr @s2n_strerror(i32 noundef %1281, ptr noundef nonnull @.str.4) #11
  %1283 = load i32, ptr %179, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror_debug(i32 noundef %1283, ptr noundef nonnull @.str.4) #11
  %1285 = load i32, ptr %233, align 4, !tbaa !5
  %1286 = call ptr @strerror(i32 noundef %1285) #11
  %1287 = load i32, ptr %233, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1279, ptr noundef nonnull %.str.5.sink1216, i32 noundef %1280, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1282, ptr noundef %1284, ptr noundef %1286, i32 noundef %1287) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1289:                                             ; preds = %1259
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %15) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %15, i8 0, i64 48, i1 false)
  %1290 = add nsw i32 %1264, 2
  store i32 %1290, ptr @test_count, align 4, !tbaa !5
  %1291 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %15) #11
  %1292 = icmp eq i32 %1291, -1
  br i1 %1292, label %1293, label %1315

1293:                                             ; preds = %1289
  %1294 = load i32, ptr %233, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = call i32 @s2n_print_stacktrace(ptr noundef %1295) #11
  %1297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1298 = trunc nuw i8 %1297 to i1
  br i1 %1298, label %1299, label %1303

1299:                                             ; preds = %1293
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = call i32 @fileno(ptr noundef %1300) #11
  %1302 = call i32 @isatty(i32 noundef %1301) #11
  %.not723 = icmp eq i32 %1302, 0
  br i1 %.not723, label %1303, label %1304

1303:                                             ; preds = %1299, %1293
  br label %1304

1304:                                             ; preds = %1299, %1303
  %.str.5.sink1225 = phi ptr [ @.str.5, %1303 ], [ @.str.2, %1299 ]
  store i32 %1294, ptr %233, align 4, !tbaa !5
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = load i32, ptr %179, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror(i32 noundef %1307, ptr noundef nonnull @.str.4) #11
  %1309 = load i32, ptr %179, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef nonnull @.str.4) #11
  %1311 = load i32, ptr %233, align 4, !tbaa !5
  %1312 = call ptr @strerror(i32 noundef %1311) #11
  %1313 = load i32, ptr %233, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1305, ptr noundef nonnull %.str.5.sink1225, i32 noundef %1306, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1308, ptr noundef %1310, ptr noundef %1312, i32 noundef %1313) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1315:                                             ; preds = %1289
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #11
  store i32 -1, ptr %16, align 4, !tbaa !5
  %1316 = getelementptr inbounds i8, ptr %1121, i64 16
  %1317 = load i32, ptr %1316, align 8, !tbaa !24
  %1318 = icmp eq i32 %1317, 0
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = load ptr, ptr %13, align 8, !tbaa !9
  %1322 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %10, ptr noundef %1321, ptr noundef nonnull %1263, i32 noundef %1262, ptr noundef nonnull %16, ptr noundef nonnull %15) #11
  br i1 %1318, label %1323, label %1347

1323:                                             ; preds = %1315
  %1324 = call zeroext i1 @s2n_result_is_ok(i32 %1322)
  br i1 %1324, label %1425, label %1325

1325:                                             ; preds = %1323
  %1326 = load i32, ptr %233, align 4, !tbaa !5
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @s2n_print_stacktrace(ptr noundef %1327) #11
  %1329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1330 = trunc nuw i8 %1329 to i1
  br i1 %1330, label %1331, label %1335

1331:                                             ; preds = %1325
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = call i32 @fileno(ptr noundef %1332) #11
  %1334 = call i32 @isatty(i32 noundef %1333) #11
  %.not721 = icmp eq i32 %1334, 0
  br i1 %.not721, label %1335, label %1336

1335:                                             ; preds = %1331, %1325
  br label %1336

1336:                                             ; preds = %1331, %1335
  %.str.5.sink1234 = phi ptr [ @.str.5, %1335 ], [ @.str.2, %1331 ]
  store i32 %1326, ptr %233, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = load i32, ptr %179, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef nonnull @.str.4) #11
  %1341 = load i32, ptr %179, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror_debug(i32 noundef %1341, ptr noundef nonnull @.str.4) #11
  %1343 = load i32, ptr %233, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #11
  %1345 = load i32, ptr %233, align 4, !tbaa !5
  %1346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef nonnull %.str.5.sink1234, i32 noundef %1338, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1340, ptr noundef %1342, ptr noundef %1344, i32 noundef %1345) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1347:                                             ; preds = %1315
  %1348 = call zeroext i1 @s2n_result_is_error(i32 %1322)
  br i1 %1348, label %1371, label %1349

1349:                                             ; preds = %1347
  %1350 = load i32, ptr %233, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @s2n_print_stacktrace(ptr noundef %1351) #11
  %1353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1354 = trunc nuw i8 %1353 to i1
  br i1 %1354, label %1355, label %1359

1355:                                             ; preds = %1349
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = call i32 @fileno(ptr noundef %1356) #11
  %1358 = call i32 @isatty(i32 noundef %1357) #11
  %.not718 = icmp eq i32 %1358, 0
  br i1 %.not718, label %1359, label %1360

1359:                                             ; preds = %1355, %1349
  br label %1360

1360:                                             ; preds = %1355, %1359
  %.str.5.sink1243 = phi ptr [ @.str.5, %1359 ], [ @.str.2, %1355 ]
  store i32 %1350, ptr %233, align 4, !tbaa !5
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = load i32, ptr @test_count, align 4, !tbaa !5
  %1363 = load i32, ptr %179, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror(i32 noundef %1363, ptr noundef nonnull @.str.4) #11
  %1365 = load i32, ptr %179, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror_debug(i32 noundef %1365, ptr noundef nonnull @.str.4) #11
  %1367 = load i32, ptr %233, align 4, !tbaa !5
  %1368 = call ptr @strerror(i32 noundef %1367) #11
  %1369 = load i32, ptr %233, align 4, !tbaa !5
  %1370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1361, ptr noundef nonnull %.str.5.sink1243, i32 noundef %1362, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1364, ptr noundef %1366, ptr noundef %1368, i32 noundef %1369) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1371:                                             ; preds = %1347
  %1372 = load i32, ptr @test_count, align 4, !tbaa !5
  %1373 = add nsw i32 %1372, 1
  store i32 %1373, ptr @test_count, align 4, !tbaa !5
  %1374 = load i32, ptr %179, align 4, !tbaa !5
  %1375 = icmp eq i32 %1374, %1317
  br i1 %1375, label %1398, label %1376

1376:                                             ; preds = %1371
  %1377 = load i32, ptr %233, align 4, !tbaa !5
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = call i32 @s2n_print_stacktrace(ptr noundef %1378) #11
  %1380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1381 = trunc nuw i8 %1380 to i1
  br i1 %1381, label %1382, label %1386

1382:                                             ; preds = %1376
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = call i32 @fileno(ptr noundef %1383) #11
  %1385 = call i32 @isatty(i32 noundef %1384) #11
  %.not719 = icmp eq i32 %1385, 0
  br i1 %.not719, label %1386, label %1387

1386:                                             ; preds = %1382, %1376
  br label %1387

1387:                                             ; preds = %1382, %1386
  %.str.5.sink1252 = phi ptr [ @.str.5, %1386 ], [ @.str.2, %1382 ]
  store i32 %1377, ptr %233, align 4, !tbaa !5
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = load i32, ptr @test_count, align 4, !tbaa !5
  %1390 = load i32, ptr %179, align 4, !tbaa !5
  %1391 = call ptr @s2n_strerror(i32 noundef %1390, ptr noundef nonnull @.str.4) #11
  %1392 = load i32, ptr %179, align 4, !tbaa !5
  %1393 = call ptr @s2n_strerror_debug(i32 noundef %1392, ptr noundef nonnull @.str.4) #11
  %1394 = load i32, ptr %233, align 4, !tbaa !5
  %1395 = call ptr @strerror(i32 noundef %1394) #11
  %1396 = load i32, ptr %233, align 4, !tbaa !5
  %1397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1388, ptr noundef nonnull %.str.5.sink1252, i32 noundef %1389, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1391, ptr noundef %1393, ptr noundef %1395, i32 noundef %1396) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1398:                                             ; preds = %1371
  %1399 = add nsw i32 %1372, 2
  store i32 %1399, ptr @test_count, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror_debug(i32 noundef %1317, ptr noundef nonnull @.str.4) #11
  %1401 = icmp eq ptr %1400, null
  br i1 %1401, label %1402, label %1424

1402:                                             ; preds = %1398
  %1403 = load i32, ptr %233, align 4, !tbaa !5
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = call i32 @s2n_print_stacktrace(ptr noundef %1404) #11
  %1406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1407 = trunc nuw i8 %1406 to i1
  br i1 %1407, label %1408, label %1412

1408:                                             ; preds = %1402
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = call i32 @fileno(ptr noundef %1409) #11
  %1411 = call i32 @isatty(i32 noundef %1410) #11
  %.not720 = icmp eq i32 %1411, 0
  br i1 %.not720, label %1412, label %1413

1412:                                             ; preds = %1408, %1402
  br label %1413

1413:                                             ; preds = %1408, %1412
  %.str.5.sink1261 = phi ptr [ @.str.5, %1412 ], [ @.str.2, %1408 ]
  store i32 %1403, ptr %233, align 4, !tbaa !5
  %1414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1415 = load i32, ptr @test_count, align 4, !tbaa !5
  %1416 = load i32, ptr %179, align 4, !tbaa !5
  %1417 = call ptr @s2n_strerror(i32 noundef %1416, ptr noundef nonnull @.str.4) #11
  %1418 = load i32, ptr %179, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror_debug(i32 noundef %1418, ptr noundef nonnull @.str.4) #11
  %1420 = load i32, ptr %233, align 4, !tbaa !5
  %1421 = call ptr @strerror(i32 noundef %1420) #11
  %1422 = load i32, ptr %233, align 4, !tbaa !5
  %1423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1414, ptr noundef nonnull %.str.5.sink1261, i32 noundef %1415, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1417, ptr noundef %1419, ptr noundef %1421, i32 noundef %1422) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1424:                                             ; preds = %1398
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  br label %1425

1425:                                             ; preds = %1424, %1323
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = add nsw i32 %1426, 1
  store i32 %1427, ptr @test_count, align 4, !tbaa !5
  %1428 = load i32, ptr %960, align 4, !tbaa !27
  %1429 = icmp eq i32 %1428, 1
  br i1 %1429, label %1452, label %1430

1430:                                             ; preds = %1425
  %1431 = load i32, ptr %233, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = call i32 @s2n_print_stacktrace(ptr noundef %1432) #11
  %1434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1435 = trunc nuw i8 %1434 to i1
  br i1 %1435, label %1436, label %1440

1436:                                             ; preds = %1430
  %1437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1438 = call i32 @fileno(ptr noundef %1437) #11
  %1439 = call i32 @isatty(i32 noundef %1438) #11
  %.not722 = icmp eq i32 %1439, 0
  br i1 %.not722, label %1440, label %1441

1440:                                             ; preds = %1436, %1430
  br label %1441

1441:                                             ; preds = %1436, %1440
  %.str.5.sink1270 = phi ptr [ @.str.5, %1440 ], [ @.str.2, %1436 ]
  store i32 %1431, ptr %233, align 4, !tbaa !5
  %1442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1443 = load i32, ptr @test_count, align 4, !tbaa !5
  %1444 = load i32, ptr %179, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror(i32 noundef %1444, ptr noundef nonnull @.str.4) #11
  %1446 = load i32, ptr %179, align 4, !tbaa !5
  %1447 = call ptr @s2n_strerror_debug(i32 noundef %1446, ptr noundef nonnull @.str.4) #11
  %1448 = load i32, ptr %233, align 4, !tbaa !5
  %1449 = call ptr @strerror(i32 noundef %1448) #11
  %1450 = load i32, ptr %233, align 4, !tbaa !5
  %1451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1442, ptr noundef nonnull %.str.5.sink1270, i32 noundef %1443, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %1445, ptr noundef %1447, ptr noundef %1449, i32 noundef %1450) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1452:                                             ; preds = %1425
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #11
  %1453 = call i32 @s2n_pkey_free(ptr noundef nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %15) #11
  %1454 = call i32 @s2n_stuffer_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #11
  %1455 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #11
  %1456 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  %1457 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %9) #11
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #11
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond782.not = icmp eq i64 %indvars.iv.next, 4
  br i1 %exitcond782.not, label %.preheader763, label %986, !llvm.loop !28

.preheader762:                                    ; preds = %1897
  %1458 = getelementptr inbounds i8, ptr %27, i64 4
  br label %1904

1459:                                             ; preds = %.preheader763, %1897
  %indvars.iv783 = phi i64 [ 0, %.preheader763 ], [ %indvars.iv.next784, %1897 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, i8 0, i64 16, i1 false)
  call void @s2n_x509_trust_store_init_empty(ptr noundef nonnull %17) #11
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %18) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %18, i8 0, i64 12000, i1 false)
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = add nsw i32 %1460, 1
  store i32 %1461, ptr @test_count, align 4, !tbaa !5
  %1462 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.23, ptr noundef nonnull %18, i64 noundef 12000) #11
  %1463 = icmp eq i32 %1462, -1
  br i1 %1463, label %1464, label %1486

1464:                                             ; preds = %1459
  %1465 = load i32, ptr %233, align 4, !tbaa !5
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = call i32 @s2n_print_stacktrace(ptr noundef %1466) #11
  %1468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1469 = trunc nuw i8 %1468 to i1
  br i1 %1469, label %1470, label %1474

1470:                                             ; preds = %1464
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = call i32 @fileno(ptr noundef %1471) #11
  %1473 = call i32 @isatty(i32 noundef %1472) #11
  %.not716 = icmp eq i32 %1473, 0
  br i1 %.not716, label %1474, label %1475

1474:                                             ; preds = %1470, %1464
  br label %1475

1475:                                             ; preds = %1470, %1474
  %.str.5.sink1279 = phi ptr [ @.str.5, %1474 ], [ @.str.2, %1470 ]
  store i32 %1465, ptr %233, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = load i32, ptr %179, align 4, !tbaa !5
  %1479 = call ptr @s2n_strerror(i32 noundef %1478, ptr noundef nonnull @.str.4) #11
  %1480 = load i32, ptr %179, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror_debug(i32 noundef %1480, ptr noundef nonnull @.str.4) #11
  %1482 = load i32, ptr %233, align 4, !tbaa !5
  %1483 = call ptr @strerror(i32 noundef %1482) #11
  %1484 = load i32, ptr %233, align 4, !tbaa !5
  %1485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1476, ptr noundef nonnull %.str.5.sink1279, i32 noundef %1477, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %1479, ptr noundef %1481, ptr noundef %1483, i32 noundef %1484) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1486:                                             ; preds = %1459
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = add nsw i32 %1487, 1
  store i32 %1488, ptr @test_count, align 4, !tbaa !5
  %1489 = call i32 @s2n_x509_trust_store_add_pem(ptr noundef nonnull %17, ptr noundef nonnull %18) #11
  %1490 = icmp eq i32 %1489, -1
  br i1 %1490, label %1491, label %1513

1491:                                             ; preds = %1486
  %1492 = load i32, ptr %233, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @s2n_print_stacktrace(ptr noundef %1493) #11
  %1495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1496 = trunc nuw i8 %1495 to i1
  br i1 %1496, label %1497, label %1501

1497:                                             ; preds = %1491
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = call i32 @fileno(ptr noundef %1498) #11
  %1500 = call i32 @isatty(i32 noundef %1499) #11
  %.not715 = icmp eq i32 %1500, 0
  br i1 %.not715, label %1501, label %1502

1501:                                             ; preds = %1497, %1491
  br label %1502

1502:                                             ; preds = %1497, %1501
  %.str.5.sink1288 = phi ptr [ @.str.5, %1501 ], [ @.str.2, %1497 ]
  store i32 %1492, ptr %233, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = load i32, ptr %179, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror(i32 noundef %1505, ptr noundef nonnull @.str.4) #11
  %1507 = load i32, ptr %179, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror_debug(i32 noundef %1507, ptr noundef nonnull @.str.4) #11
  %1509 = load i32, ptr %233, align 4, !tbaa !5
  %1510 = call ptr @strerror(i32 noundef %1509) #11
  %1511 = load i32, ptr %233, align 4, !tbaa !5
  %1512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1503, ptr noundef nonnull %.str.5.sink1288, i32 noundef %1504, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %1506, ptr noundef %1508, ptr noundef %1510, i32 noundef %1511) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1513:                                             ; preds = %1486
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %19) #11
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = add nsw i32 %1514, 1
  store i32 %1515, ptr @test_count, align 4, !tbaa !5
  %1516 = call i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef nonnull %19) #11
  %1517 = icmp eq i32 %1516, -1
  br i1 %1517, label %1518, label %1540

1518:                                             ; preds = %1513
  %1519 = load i32, ptr %233, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = call i32 @s2n_print_stacktrace(ptr noundef %1520) #11
  %1522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1523 = trunc nuw i8 %1522 to i1
  br i1 %1523, label %1524, label %1528

1524:                                             ; preds = %1518
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @fileno(ptr noundef %1525) #11
  %1527 = call i32 @isatty(i32 noundef %1526) #11
  %.not714 = icmp eq i32 %1527, 0
  br i1 %.not714, label %1528, label %1529

1528:                                             ; preds = %1524, %1518
  br label %1529

1529:                                             ; preds = %1524, %1528
  %.str.5.sink1297 = phi ptr [ @.str.5, %1528 ], [ @.str.2, %1524 ]
  store i32 %1519, ptr %233, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = load i32, ptr %179, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror(i32 noundef %1532, ptr noundef nonnull @.str.4) #11
  %1534 = load i32, ptr %179, align 4, !tbaa !5
  %1535 = call ptr @s2n_strerror_debug(i32 noundef %1534, ptr noundef nonnull @.str.4) #11
  %1536 = load i32, ptr %233, align 4, !tbaa !5
  %1537 = call ptr @strerror(i32 noundef %1536) #11
  %1538 = load i32, ptr %233, align 4, !tbaa !5
  %1539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1530, ptr noundef nonnull %.str.5.sink1297, i32 noundef %1531, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %1533, ptr noundef %1535, ptr noundef %1537, i32 noundef %1538) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1540:                                             ; preds = %1513
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  %1541 = call ptr @s2n_config_new() #11
  store ptr %1541, ptr %20, align 8, !tbaa !9
  %1542 = load i32, ptr @test_count, align 4, !tbaa !5
  %1543 = add nsw i32 %1542, 1
  store i32 %1543, ptr @test_count, align 4, !tbaa !5
  %1544 = icmp eq ptr %1541, null
  br i1 %1544, label %1545, label %1567

1545:                                             ; preds = %1540
  %1546 = load i32, ptr %233, align 4, !tbaa !5
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @s2n_print_stacktrace(ptr noundef %1547) #11
  %1549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1550 = trunc nuw i8 %1549 to i1
  br i1 %1550, label %1551, label %1555

1551:                                             ; preds = %1545
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @fileno(ptr noundef %1552) #11
  %1554 = call i32 @isatty(i32 noundef %1553) #11
  %.not713 = icmp eq i32 %1554, 0
  br i1 %.not713, label %1555, label %1556

1555:                                             ; preds = %1551, %1545
  br label %1556

1556:                                             ; preds = %1551, %1555
  %.str.5.sink1306 = phi ptr [ @.str.5, %1555 ], [ @.str.2, %1551 ]
  store i32 %1546, ptr %233, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = load i32, ptr @test_count, align 4, !tbaa !5
  %1559 = load i32, ptr %179, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror(i32 noundef %1559, ptr noundef nonnull @.str.4) #11
  %1561 = load i32, ptr %179, align 4, !tbaa !5
  %1562 = call ptr @s2n_strerror_debug(i32 noundef %1561, ptr noundef nonnull @.str.4) #11
  %1563 = load i32, ptr %233, align 4, !tbaa !5
  %1564 = call ptr @strerror(i32 noundef %1563) #11
  %1565 = load i32, ptr %233, align 4, !tbaa !5
  %1566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1557, ptr noundef nonnull %.str.5.sink1306, i32 noundef %1558, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %1560, ptr noundef %1562, ptr noundef %1564, i32 noundef %1565) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1567:                                             ; preds = %1540
  %1568 = add nsw i32 %1542, 2
  store i32 %1568, ptr @test_count, align 4, !tbaa !5
  %1569 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1541, ptr noundef nonnull @.str.30) #11
  %1570 = icmp eq i32 %1569, -1
  br i1 %1570, label %1571, label %1593

1571:                                             ; preds = %1567
  %1572 = load i32, ptr %233, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = call i32 @s2n_print_stacktrace(ptr noundef %1573) #11
  %1575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1576 = trunc nuw i8 %1575 to i1
  br i1 %1576, label %1577, label %1581

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

1581:                                             ; preds = %1577, %1571
  br label %1582

1582:                                             ; preds = %1577, %1581
  %.str.5.sink1315 = phi ptr [ @.str.5, %1581 ], [ @.str.2, %1577 ]
  store i32 %1572, ptr %233, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = load i32, ptr %179, align 4, !tbaa !5
  %1586 = call ptr @s2n_strerror(i32 noundef %1585, ptr noundef nonnull @.str.4) #11
  %1587 = load i32, ptr %179, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef nonnull @.str.4) #11
  %1589 = load i32, ptr %233, align 4, !tbaa !5
  %1590 = call ptr @strerror(i32 noundef %1589) #11
  %1591 = load i32, ptr %233, align 4, !tbaa !5
  %1592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1583, ptr noundef nonnull %.str.5.sink1315, i32 noundef %1584, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %1586, ptr noundef %1588, ptr noundef %1590, i32 noundef %1591) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1593:                                             ; preds = %1567
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #11
  %1594 = getelementptr inbounds [4 x %struct.anon], ptr @__const.main.test_cases, i64 0, i64 %indvars.iv783
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 8 dereferenceable(16) %1594, i64 16, i1 false), !tbaa.struct !18
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = add nsw i32 %1595, 1
  store i32 %1596, ptr @test_count, align 4, !tbaa !5
  %1597 = load ptr, ptr %20, align 8, !tbaa !9
  %1598 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %1597, ptr noundef nonnull @s2n_test_cert_validation_callback, ptr noundef nonnull %21) #11
  %1599 = icmp eq i32 %1598, -1
  br i1 %1599, label %1600, label %1622

1600:                                             ; preds = %1593
  %1601 = load i32, ptr %233, align 4, !tbaa !5
  %1602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1603 = call i32 @s2n_print_stacktrace(ptr noundef %1602) #11
  %1604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1605 = trunc nuw i8 %1604 to i1
  br i1 %1605, label %1606, label %1610

1606:                                             ; preds = %1600
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = call i32 @fileno(ptr noundef %1607) #11
  %1609 = call i32 @isatty(i32 noundef %1608) #11
  %.not711 = icmp eq i32 %1609, 0
  br i1 %.not711, label %1610, label %1611

1610:                                             ; preds = %1606, %1600
  br label %1611

1611:                                             ; preds = %1606, %1610
  %.str.5.sink1324 = phi ptr [ @.str.5, %1610 ], [ @.str.2, %1606 ]
  store i32 %1601, ptr %233, align 4, !tbaa !5
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = load i32, ptr @test_count, align 4, !tbaa !5
  %1614 = load i32, ptr %179, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror(i32 noundef %1614, ptr noundef nonnull @.str.4) #11
  %1616 = load i32, ptr %179, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror_debug(i32 noundef %1616, ptr noundef nonnull @.str.4) #11
  %1618 = load i32, ptr %233, align 4, !tbaa !5
  %1619 = call ptr @strerror(i32 noundef %1618) #11
  %1620 = load i32, ptr %233, align 4, !tbaa !5
  %1621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1612, ptr noundef nonnull %.str.5.sink1324, i32 noundef %1613, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %1615, ptr noundef %1617, ptr noundef %1619, i32 noundef %1620) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1622:                                             ; preds = %1593
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %1623 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1623, ptr %22, align 8, !tbaa !9
  %1624 = load i32, ptr @test_count, align 4, !tbaa !5
  %1625 = add nsw i32 %1624, 1
  store i32 %1625, ptr @test_count, align 4, !tbaa !5
  %1626 = icmp eq ptr %1623, null
  br i1 %1626, label %1627, label %1649

1627:                                             ; preds = %1622
  %1628 = load i32, ptr %233, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = call i32 @s2n_print_stacktrace(ptr noundef %1629) #11
  %1631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1632 = trunc nuw i8 %1631 to i1
  br i1 %1632, label %1633, label %1637

1633:                                             ; preds = %1627
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @fileno(ptr noundef %1634) #11
  %1636 = call i32 @isatty(i32 noundef %1635) #11
  %.not710 = icmp eq i32 %1636, 0
  br i1 %.not710, label %1637, label %1638

1637:                                             ; preds = %1633, %1627
  br label %1638

1638:                                             ; preds = %1633, %1637
  %.str.5.sink1333 = phi ptr [ @.str.5, %1637 ], [ @.str.2, %1633 ]
  store i32 %1628, ptr %233, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = load i32, ptr %179, align 4, !tbaa !5
  %1642 = call ptr @s2n_strerror(i32 noundef %1641, ptr noundef nonnull @.str.4) #11
  %1643 = load i32, ptr %179, align 4, !tbaa !5
  %1644 = call ptr @s2n_strerror_debug(i32 noundef %1643, ptr noundef nonnull @.str.4) #11
  %1645 = load i32, ptr %233, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #11
  %1647 = load i32, ptr %233, align 4, !tbaa !5
  %1648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1639, ptr noundef nonnull %.str.5.sink1333, i32 noundef %1640, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %1642, ptr noundef %1644, ptr noundef %1646, i32 noundef %1647) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1649:                                             ; preds = %1622
  %1650 = add nsw i32 %1624, 2
  store i32 %1650, ptr @test_count, align 4, !tbaa !5
  %1651 = load ptr, ptr %20, align 8, !tbaa !9
  %1652 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1623, ptr noundef %1651) #11
  %1653 = icmp eq i32 %1652, -1
  br i1 %1653, label %1654, label %1676

1654:                                             ; preds = %1649
  %1655 = load i32, ptr %233, align 4, !tbaa !5
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = call i32 @s2n_print_stacktrace(ptr noundef %1656) #11
  %1658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1659 = trunc nuw i8 %1658 to i1
  br i1 %1659, label %1660, label %1664

1660:                                             ; preds = %1654
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = call i32 @fileno(ptr noundef %1661) #11
  %1663 = call i32 @isatty(i32 noundef %1662) #11
  %.not709 = icmp eq i32 %1663, 0
  br i1 %.not709, label %1664, label %1665

1664:                                             ; preds = %1660, %1654
  br label %1665

1665:                                             ; preds = %1660, %1664
  %.str.5.sink1342 = phi ptr [ @.str.5, %1664 ], [ @.str.2, %1660 ]
  store i32 %1655, ptr %233, align 4, !tbaa !5
  %1666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = load i32, ptr %179, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror(i32 noundef %1668, ptr noundef nonnull @.str.4) #11
  %1670 = load i32, ptr %179, align 4, !tbaa !5
  %1671 = call ptr @s2n_strerror_debug(i32 noundef %1670, ptr noundef nonnull @.str.4) #11
  %1672 = load i32, ptr %233, align 4, !tbaa !5
  %1673 = call ptr @strerror(i32 noundef %1672) #11
  %1674 = load i32, ptr %233, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1666, ptr noundef nonnull %.str.5.sink1342, i32 noundef %1667, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %1669, ptr noundef %1671, ptr noundef %1673, i32 noundef %1674) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1676:                                             ; preds = %1649
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %23) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %23, i8 0, i64 40, i1 false)
  %1677 = load i32, ptr @test_count, align 4, !tbaa !5
  %1678 = add nsw i32 %1677, 1
  store i32 %1678, ptr @test_count, align 4, !tbaa !5
  %1679 = load ptr, ptr %22, align 8, !tbaa !9
  %1680 = call i32 @s2n_test_cert_chain_data_from_pem(ptr noundef %1679, ptr noundef nonnull @.str.23, ptr noundef nonnull %23) #11
  %1681 = call zeroext i1 @s2n_result_is_ok(i32 %1680)
  br i1 %1681, label %1704, label %1682

1682:                                             ; preds = %1676
  %1683 = load i32, ptr %233, align 4, !tbaa !5
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = call i32 @s2n_print_stacktrace(ptr noundef %1684) #11
  %1686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1687 = trunc nuw i8 %1686 to i1
  br i1 %1687, label %1688, label %1692

1688:                                             ; preds = %1682
  %1689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1690 = call i32 @fileno(ptr noundef %1689) #11
  %1691 = call i32 @isatty(i32 noundef %1690) #11
  %.not701 = icmp eq i32 %1691, 0
  br i1 %.not701, label %1692, label %1693

1692:                                             ; preds = %1688, %1682
  br label %1693

1693:                                             ; preds = %1688, %1692
  %.str.5.sink1351 = phi ptr [ @.str.5, %1692 ], [ @.str.2, %1688 ]
  store i32 %1683, ptr %233, align 4, !tbaa !5
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = load i32, ptr @test_count, align 4, !tbaa !5
  %1696 = load i32, ptr %179, align 4, !tbaa !5
  %1697 = call ptr @s2n_strerror(i32 noundef %1696, ptr noundef nonnull @.str.4) #11
  %1698 = load i32, ptr %179, align 4, !tbaa !5
  %1699 = call ptr @s2n_strerror_debug(i32 noundef %1698, ptr noundef nonnull @.str.4) #11
  %1700 = load i32, ptr %233, align 4, !tbaa !5
  %1701 = call ptr @strerror(i32 noundef %1700) #11
  %1702 = load i32, ptr %233, align 4, !tbaa !5
  %1703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1694, ptr noundef nonnull %.str.5.sink1351, i32 noundef %1695, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %1697, ptr noundef %1699, ptr noundef %1701, i32 noundef %1702) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1704:                                             ; preds = %1676
  %1705 = load i32, ptr %983, align 4, !tbaa !20
  %1706 = load i32, ptr %984, align 8, !tbaa !23
  %1707 = sub i32 %1705, %1706
  %1708 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %23, i32 noundef %1707) #11
  %1709 = load i32, ptr @test_count, align 4, !tbaa !5
  %1710 = add nsw i32 %1709, 1
  store i32 %1710, ptr @test_count, align 4, !tbaa !5
  %1711 = icmp eq ptr %1708, null
  br i1 %1711, label %1712, label %1734

1712:                                             ; preds = %1704
  %1713 = load i32, ptr %233, align 4, !tbaa !5
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = call i32 @s2n_print_stacktrace(ptr noundef %1714) #11
  %1716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1717 = trunc nuw i8 %1716 to i1
  br i1 %1717, label %1718, label %1722

1718:                                             ; preds = %1712
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @fileno(ptr noundef %1719) #11
  %1721 = call i32 @isatty(i32 noundef %1720) #11
  %.not708 = icmp eq i32 %1721, 0
  br i1 %.not708, label %1722, label %1723

1722:                                             ; preds = %1718, %1712
  br label %1723

1723:                                             ; preds = %1718, %1722
  %.str.5.sink1360 = phi ptr [ @.str.5, %1722 ], [ @.str.2, %1718 ]
  store i32 %1713, ptr %233, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = load i32, ptr @test_count, align 4, !tbaa !5
  %1726 = load i32, ptr %179, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror(i32 noundef %1726, ptr noundef nonnull @.str.4) #11
  %1728 = load i32, ptr %179, align 4, !tbaa !5
  %1729 = call ptr @s2n_strerror_debug(i32 noundef %1728, ptr noundef nonnull @.str.4) #11
  %1730 = load i32, ptr %233, align 4, !tbaa !5
  %1731 = call ptr @strerror(i32 noundef %1730) #11
  %1732 = load i32, ptr %233, align 4, !tbaa !5
  %1733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1724, ptr noundef nonnull %.str.5.sink1360, i32 noundef %1725, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %1727, ptr noundef %1729, ptr noundef %1731, i32 noundef %1732) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1734:                                             ; preds = %1704
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %24) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %24, i8 0, i64 48, i1 false)
  %1735 = add nsw i32 %1709, 2
  store i32 %1735, ptr @test_count, align 4, !tbaa !5
  %1736 = call i32 @s2n_pkey_zero_init(ptr noundef nonnull %24) #11
  %1737 = icmp eq i32 %1736, -1
  br i1 %1737, label %1738, label %1760

1738:                                             ; preds = %1734
  %1739 = load i32, ptr %233, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @s2n_print_stacktrace(ptr noundef %1740) #11
  %1742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1743 = trunc nuw i8 %1742 to i1
  br i1 %1743, label %1744, label %1748

1744:                                             ; preds = %1738
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @fileno(ptr noundef %1745) #11
  %1747 = call i32 @isatty(i32 noundef %1746) #11
  %.not707 = icmp eq i32 %1747, 0
  br i1 %.not707, label %1748, label %1749

1748:                                             ; preds = %1744, %1738
  br label %1749

1749:                                             ; preds = %1744, %1748
  %.str.5.sink1369 = phi ptr [ @.str.5, %1748 ], [ @.str.2, %1744 ]
  store i32 %1739, ptr %233, align 4, !tbaa !5
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = load i32, ptr @test_count, align 4, !tbaa !5
  %1752 = load i32, ptr %179, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror(i32 noundef %1752, ptr noundef nonnull @.str.4) #11
  %1754 = load i32, ptr %179, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror_debug(i32 noundef %1754, ptr noundef nonnull @.str.4) #11
  %1756 = load i32, ptr %233, align 4, !tbaa !5
  %1757 = call ptr @strerror(i32 noundef %1756) #11
  %1758 = load i32, ptr %233, align 4, !tbaa !5
  %1759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1750, ptr noundef nonnull %.str.5.sink1369, i32 noundef %1751, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %1753, ptr noundef %1755, ptr noundef %1757, i32 noundef %1758) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1760:                                             ; preds = %1734
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #11
  store i32 -1, ptr %25, align 4, !tbaa !5
  %1761 = getelementptr inbounds i8, ptr %1594, i64 16
  %1762 = load i32, ptr %1761, align 8, !tbaa !24
  %1763 = icmp eq i32 %1762, 0
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = add nsw i32 %1764, 1
  store i32 %1765, ptr @test_count, align 4, !tbaa !5
  %1766 = load ptr, ptr %22, align 8, !tbaa !9
  %1767 = call i32 @s2n_x509_validator_validate_cert_chain(ptr noundef nonnull %19, ptr noundef %1766, ptr noundef nonnull %1708, i32 noundef %1707, ptr noundef nonnull %25, ptr noundef nonnull %24) #11
  br i1 %1763, label %1768, label %1792

1768:                                             ; preds = %1760
  %1769 = call zeroext i1 @s2n_result_is_ok(i32 %1767)
  br i1 %1769, label %1870, label %1770

1770:                                             ; preds = %1768
  %1771 = load i32, ptr %233, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = call i32 @s2n_print_stacktrace(ptr noundef %1772) #11
  %1774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1775 = trunc nuw i8 %1774 to i1
  br i1 %1775, label %1776, label %1780

1776:                                             ; preds = %1770
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @fileno(ptr noundef %1777) #11
  %1779 = call i32 @isatty(i32 noundef %1778) #11
  %.not705 = icmp eq i32 %1779, 0
  br i1 %.not705, label %1780, label %1781

1780:                                             ; preds = %1776, %1770
  br label %1781

1781:                                             ; preds = %1776, %1780
  %.str.5.sink1378 = phi ptr [ @.str.5, %1780 ], [ @.str.2, %1776 ]
  store i32 %1771, ptr %233, align 4, !tbaa !5
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = load i32, ptr %179, align 4, !tbaa !5
  %1785 = call ptr @s2n_strerror(i32 noundef %1784, ptr noundef nonnull @.str.4) #11
  %1786 = load i32, ptr %179, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror_debug(i32 noundef %1786, ptr noundef nonnull @.str.4) #11
  %1788 = load i32, ptr %233, align 4, !tbaa !5
  %1789 = call ptr @strerror(i32 noundef %1788) #11
  %1790 = load i32, ptr %233, align 4, !tbaa !5
  %1791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1782, ptr noundef nonnull %.str.5.sink1378, i32 noundef %1783, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %1785, ptr noundef %1787, ptr noundef %1789, i32 noundef %1790) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1792:                                             ; preds = %1760
  %1793 = call zeroext i1 @s2n_result_is_error(i32 %1767)
  br i1 %1793, label %1816, label %1794

1794:                                             ; preds = %1792
  %1795 = load i32, ptr %233, align 4, !tbaa !5
  %1796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1797 = call i32 @s2n_print_stacktrace(ptr noundef %1796) #11
  %1798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1799 = trunc nuw i8 %1798 to i1
  br i1 %1799, label %1800, label %1804

1800:                                             ; preds = %1794
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = call i32 @fileno(ptr noundef %1801) #11
  %1803 = call i32 @isatty(i32 noundef %1802) #11
  %.not702 = icmp eq i32 %1803, 0
  br i1 %.not702, label %1804, label %1805

1804:                                             ; preds = %1800, %1794
  br label %1805

1805:                                             ; preds = %1800, %1804
  %.str.5.sink1387 = phi ptr [ @.str.5, %1804 ], [ @.str.2, %1800 ]
  store i32 %1795, ptr %233, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = load i32, ptr %179, align 4, !tbaa !5
  %1809 = call ptr @s2n_strerror(i32 noundef %1808, ptr noundef nonnull @.str.4) #11
  %1810 = load i32, ptr %179, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror_debug(i32 noundef %1810, ptr noundef nonnull @.str.4) #11
  %1812 = load i32, ptr %233, align 4, !tbaa !5
  %1813 = call ptr @strerror(i32 noundef %1812) #11
  %1814 = load i32, ptr %233, align 4, !tbaa !5
  %1815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1806, ptr noundef nonnull %.str.5.sink1387, i32 noundef %1807, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %1809, ptr noundef %1811, ptr noundef %1813, i32 noundef %1814) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1816:                                             ; preds = %1792
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = add nsw i32 %1817, 1
  store i32 %1818, ptr @test_count, align 4, !tbaa !5
  %1819 = load i32, ptr %179, align 4, !tbaa !5
  %1820 = icmp eq i32 %1819, %1762
  br i1 %1820, label %1843, label %1821

1821:                                             ; preds = %1816
  %1822 = load i32, ptr %233, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @s2n_print_stacktrace(ptr noundef %1823) #11
  %1825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1826 = trunc nuw i8 %1825 to i1
  br i1 %1826, label %1827, label %1831

1827:                                             ; preds = %1821
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = call i32 @fileno(ptr noundef %1828) #11
  %1830 = call i32 @isatty(i32 noundef %1829) #11
  %.not703 = icmp eq i32 %1830, 0
  br i1 %.not703, label %1831, label %1832

1831:                                             ; preds = %1827, %1821
  br label %1832

1832:                                             ; preds = %1827, %1831
  %.str.5.sink1396 = phi ptr [ @.str.5, %1831 ], [ @.str.2, %1827 ]
  store i32 %1822, ptr %233, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = load i32, ptr %179, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror(i32 noundef %1835, ptr noundef nonnull @.str.4) #11
  %1837 = load i32, ptr %179, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef nonnull @.str.4) #11
  %1839 = load i32, ptr %233, align 4, !tbaa !5
  %1840 = call ptr @strerror(i32 noundef %1839) #11
  %1841 = load i32, ptr %233, align 4, !tbaa !5
  %1842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1833, ptr noundef nonnull %.str.5.sink1396, i32 noundef %1834, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %1836, ptr noundef %1838, ptr noundef %1840, i32 noundef %1841) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1843:                                             ; preds = %1816
  %1844 = add nsw i32 %1817, 2
  store i32 %1844, ptr @test_count, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror_debug(i32 noundef %1762, ptr noundef nonnull @.str.4) #11
  %1846 = icmp eq ptr %1845, null
  br i1 %1846, label %1847, label %1869

1847:                                             ; preds = %1843
  %1848 = load i32, ptr %233, align 4, !tbaa !5
  %1849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1850 = call i32 @s2n_print_stacktrace(ptr noundef %1849) #11
  %1851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1852 = trunc nuw i8 %1851 to i1
  br i1 %1852, label %1853, label %1857

1853:                                             ; preds = %1847
  %1854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1855 = call i32 @fileno(ptr noundef %1854) #11
  %1856 = call i32 @isatty(i32 noundef %1855) #11
  %.not704 = icmp eq i32 %1856, 0
  br i1 %.not704, label %1857, label %1858

1857:                                             ; preds = %1853, %1847
  br label %1858

1858:                                             ; preds = %1853, %1857
  %.str.5.sink1405 = phi ptr [ @.str.5, %1857 ], [ @.str.2, %1853 ]
  store i32 %1848, ptr %233, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = load i32, ptr @test_count, align 4, !tbaa !5
  %1861 = load i32, ptr %179, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef nonnull @.str.4) #11
  %1863 = load i32, ptr %179, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror_debug(i32 noundef %1863, ptr noundef nonnull @.str.4) #11
  %1865 = load i32, ptr %233, align 4, !tbaa !5
  %1866 = call ptr @strerror(i32 noundef %1865) #11
  %1867 = load i32, ptr %233, align 4, !tbaa !5
  %1868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1859, ptr noundef nonnull %.str.5.sink1405, i32 noundef %1860, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %1862, ptr noundef %1864, ptr noundef %1866, i32 noundef %1867) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1869:                                             ; preds = %1843
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  br label %1870

1870:                                             ; preds = %1869, %1768
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = add nsw i32 %1871, 1
  store i32 %1872, ptr @test_count, align 4, !tbaa !5
  %1873 = load i32, ptr %985, align 4, !tbaa !27
  %1874 = icmp eq i32 %1873, 1
  br i1 %1874, label %1897, label %1875

1875:                                             ; preds = %1870
  %1876 = load i32, ptr %233, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = call i32 @s2n_print_stacktrace(ptr noundef %1877) #11
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc nuw i8 %1879 to i1
  br i1 %1880, label %1881, label %1885

1881:                                             ; preds = %1875
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #11
  %1884 = call i32 @isatty(i32 noundef %1883) #11
  %.not706 = icmp eq i32 %1884, 0
  br i1 %.not706, label %1885, label %1886

1885:                                             ; preds = %1881, %1875
  br label %1886

1886:                                             ; preds = %1881, %1885
  %.str.5.sink1414 = phi ptr [ @.str.5, %1885 ], [ @.str.2, %1881 ]
  store i32 %1876, ptr %233, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = load i32, ptr %179, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror(i32 noundef %1889, ptr noundef nonnull @.str.4) #11
  %1891 = load i32, ptr %179, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror_debug(i32 noundef %1891, ptr noundef nonnull @.str.4) #11
  %1893 = load i32, ptr %233, align 4, !tbaa !5
  %1894 = call ptr @strerror(i32 noundef %1893) #11
  %1895 = load i32, ptr %233, align 4, !tbaa !5
  %1896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef nonnull %.str.5.sink1414, i32 noundef %1888, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %1890, ptr noundef %1892, ptr noundef %1894, i32 noundef %1895) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1897:                                             ; preds = %1870
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #11
  %1898 = call i32 @s2n_pkey_free(ptr noundef nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #11
  %1899 = call i32 @s2n_stuffer_free(ptr noundef nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #11
  %1900 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #11
  %1901 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  %1902 = call i32 @s2n_x509_validator_wipe(ptr noundef nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %18) #11
  call void @s2n_x509_trust_store_wipe(ptr noundef nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #11
  %indvars.iv.next784 = add nuw nsw i64 %indvars.iv783, 1
  %exitcond786.not = icmp eq i64 %indvars.iv.next784, 4
  br i1 %exitcond786.not, label %.preheader762, label %1459, !llvm.loop !29

.preheader761:                                    ; preds = %2427
  %1903 = getelementptr inbounds i8, ptr %32, i64 4
  br label %2433

1904:                                             ; preds = %.preheader762, %2427
  %indvars.iv787 = phi i64 [ 0, %.preheader762 ], [ %indvars.iv.next788, %2427 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #11
  %1905 = call ptr @s2n_config_new() #11
  store ptr %1905, ptr %26, align 8, !tbaa !9
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = add nsw i32 %1906, 1
  store i32 %1907, ptr @test_count, align 4, !tbaa !5
  %1908 = icmp eq ptr %1905, null
  br i1 %1908, label %1909, label %1931

1909:                                             ; preds = %1904
  %1910 = load i32, ptr %233, align 4, !tbaa !5
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = call i32 @s2n_print_stacktrace(ptr noundef %1911) #11
  %1913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1914 = trunc nuw i8 %1913 to i1
  br i1 %1914, label %1915, label %1919

1915:                                             ; preds = %1909
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = call i32 @fileno(ptr noundef %1916) #11
  %1918 = call i32 @isatty(i32 noundef %1917) #11
  %.not700 = icmp eq i32 %1918, 0
  br i1 %.not700, label %1919, label %1920

1919:                                             ; preds = %1915, %1909
  br label %1920

1920:                                             ; preds = %1915, %1919
  %.str.5.sink1423 = phi ptr [ @.str.5, %1919 ], [ @.str.2, %1915 ]
  store i32 %1910, ptr %233, align 4, !tbaa !5
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = load i32, ptr @test_count, align 4, !tbaa !5
  %1923 = load i32, ptr %179, align 4, !tbaa !5
  %1924 = call ptr @s2n_strerror(i32 noundef %1923, ptr noundef nonnull @.str.4) #11
  %1925 = load i32, ptr %179, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror_debug(i32 noundef %1925, ptr noundef nonnull @.str.4) #11
  %1927 = load i32, ptr %233, align 4, !tbaa !5
  %1928 = call ptr @strerror(i32 noundef %1927) #11
  %1929 = load i32, ptr %233, align 4, !tbaa !5
  %1930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1921, ptr noundef nonnull %.str.5.sink1423, i32 noundef %1922, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %1924, ptr noundef %1926, ptr noundef %1928, i32 noundef %1929) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1931:                                             ; preds = %1904
  %1932 = add nsw i32 %1906, 2
  store i32 %1932, ptr @test_count, align 4, !tbaa !5
  %1933 = load ptr, ptr %7, align 8, !tbaa !9
  %1934 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1905, ptr noundef %1933) #11
  %1935 = icmp eq i32 %1934, -1
  br i1 %1935, label %1936, label %1958

1936:                                             ; preds = %1931
  %1937 = load i32, ptr %233, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = call i32 @s2n_print_stacktrace(ptr noundef %1938) #11
  %1940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1941 = trunc nuw i8 %1940 to i1
  br i1 %1941, label %1942, label %1946

1942:                                             ; preds = %1936
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = call i32 @fileno(ptr noundef %1943) #11
  %1945 = call i32 @isatty(i32 noundef %1944) #11
  %.not699 = icmp eq i32 %1945, 0
  br i1 %.not699, label %1946, label %1947

1946:                                             ; preds = %1942, %1936
  br label %1947

1947:                                             ; preds = %1942, %1946
  %.str.5.sink1432 = phi ptr [ @.str.5, %1946 ], [ @.str.2, %1942 ]
  store i32 %1937, ptr %233, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = load i32, ptr %179, align 4, !tbaa !5
  %1951 = call ptr @s2n_strerror(i32 noundef %1950, ptr noundef nonnull @.str.4) #11
  %1952 = load i32, ptr %179, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror_debug(i32 noundef %1952, ptr noundef nonnull @.str.4) #11
  %1954 = load i32, ptr %233, align 4, !tbaa !5
  %1955 = call ptr @strerror(i32 noundef %1954) #11
  %1956 = load i32, ptr %233, align 4, !tbaa !5
  %1957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1948, ptr noundef nonnull %.str.5.sink1432, i32 noundef %1949, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %1951, ptr noundef %1953, ptr noundef %1955, i32 noundef %1956) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1958:                                             ; preds = %1931
  %1959 = load i32, ptr @test_count, align 4, !tbaa !5
  %1960 = add nsw i32 %1959, 1
  store i32 %1960, ptr @test_count, align 4, !tbaa !5
  %1961 = load ptr, ptr %26, align 8, !tbaa !9
  %1962 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %1961, ptr noundef nonnull @.str.23, ptr noundef null) #11
  %1963 = icmp eq i32 %1962, -1
  br i1 %1963, label %1964, label %1986

1964:                                             ; preds = %1958
  %1965 = load i32, ptr %233, align 4, !tbaa !5
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = call i32 @s2n_print_stacktrace(ptr noundef %1966) #11
  %1968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1969 = trunc nuw i8 %1968 to i1
  br i1 %1969, label %1970, label %1974

1970:                                             ; preds = %1964
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = call i32 @fileno(ptr noundef %1971) #11
  %1973 = call i32 @isatty(i32 noundef %1972) #11
  %.not698 = icmp eq i32 %1973, 0
  br i1 %.not698, label %1974, label %1975

1974:                                             ; preds = %1970, %1964
  br label %1975

1975:                                             ; preds = %1970, %1974
  %.str.5.sink1441 = phi ptr [ @.str.5, %1974 ], [ @.str.2, %1970 ]
  store i32 %1965, ptr %233, align 4, !tbaa !5
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = load i32, ptr @test_count, align 4, !tbaa !5
  %1978 = load i32, ptr %179, align 4, !tbaa !5
  %1979 = call ptr @s2n_strerror(i32 noundef %1978, ptr noundef nonnull @.str.4) #11
  %1980 = load i32, ptr %179, align 4, !tbaa !5
  %1981 = call ptr @s2n_strerror_debug(i32 noundef %1980, ptr noundef nonnull @.str.4) #11
  %1982 = load i32, ptr %233, align 4, !tbaa !5
  %1983 = call ptr @strerror(i32 noundef %1982) #11
  %1984 = load i32, ptr %233, align 4, !tbaa !5
  %1985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1976, ptr noundef nonnull %.str.5.sink1441, i32 noundef %1977, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %1979, ptr noundef %1981, ptr noundef %1983, i32 noundef %1984) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1986:                                             ; preds = %1958
  %1987 = load i32, ptr @test_count, align 4, !tbaa !5
  %1988 = add nsw i32 %1987, 1
  store i32 %1988, ptr @test_count, align 4, !tbaa !5
  %1989 = load ptr, ptr %26, align 8, !tbaa !9
  %1990 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1989, ptr noundef nonnull @.str.30) #11
  %1991 = icmp eq i32 %1990, -1
  br i1 %1991, label %1992, label %2014

1992:                                             ; preds = %1986
  %1993 = load i32, ptr %233, align 4, !tbaa !5
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @s2n_print_stacktrace(ptr noundef %1994) #11
  %1996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1997 = trunc nuw i8 %1996 to i1
  br i1 %1997, label %1998, label %2002

1998:                                             ; preds = %1992
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = call i32 @fileno(ptr noundef %1999) #11
  %2001 = call i32 @isatty(i32 noundef %2000) #11
  %.not697 = icmp eq i32 %2001, 0
  br i1 %.not697, label %2002, label %2003

2002:                                             ; preds = %1998, %1992
  br label %2003

2003:                                             ; preds = %1998, %2002
  %.str.5.sink1450 = phi ptr [ @.str.5, %2002 ], [ @.str.2, %1998 ]
  store i32 %1993, ptr %233, align 4, !tbaa !5
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = load i32, ptr %179, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror(i32 noundef %2006, ptr noundef nonnull @.str.4) #11
  %2008 = load i32, ptr %179, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror_debug(i32 noundef %2008, ptr noundef nonnull @.str.4) #11
  %2010 = load i32, ptr %233, align 4, !tbaa !5
  %2011 = call ptr @strerror(i32 noundef %2010) #11
  %2012 = load i32, ptr %233, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2004, ptr noundef nonnull %.str.5.sink1450, i32 noundef %2005, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %2007, ptr noundef %2009, ptr noundef %2011, i32 noundef %2012) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2014:                                             ; preds = %1986
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #11
  %2015 = getelementptr inbounds [4 x %struct.anon], ptr @__const.main.test_cases, i64 0, i64 %indvars.iv787
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %2015, i64 16, i1 false), !tbaa.struct !18
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = add nsw i32 %2016, 1
  store i32 %2017, ptr @test_count, align 4, !tbaa !5
  %2018 = load ptr, ptr %26, align 8, !tbaa !9
  %2019 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %2018, ptr noundef nonnull @s2n_test_cert_validation_callback_self_talk, ptr noundef nonnull %27) #11
  %2020 = icmp eq i32 %2019, -1
  br i1 %2020, label %2021, label %2043

2021:                                             ; preds = %2014
  %2022 = load i32, ptr %233, align 4, !tbaa !5
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = call i32 @s2n_print_stacktrace(ptr noundef %2023) #11
  %2025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2026 = trunc nuw i8 %2025 to i1
  br i1 %2026, label %2027, label %2031

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

2031:                                             ; preds = %2027, %2021
  br label %2032

2032:                                             ; preds = %2027, %2031
  %.str.5.sink1459 = phi ptr [ @.str.5, %2031 ], [ @.str.2, %2027 ]
  store i32 %2022, ptr %233, align 4, !tbaa !5
  %2033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2034 = load i32, ptr @test_count, align 4, !tbaa !5
  %2035 = load i32, ptr %179, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror(i32 noundef %2035, ptr noundef nonnull @.str.4) #11
  %2037 = load i32, ptr %179, align 4, !tbaa !5
  %2038 = call ptr @s2n_strerror_debug(i32 noundef %2037, ptr noundef nonnull @.str.4) #11
  %2039 = load i32, ptr %233, align 4, !tbaa !5
  %2040 = call ptr @strerror(i32 noundef %2039) #11
  %2041 = load i32, ptr %233, align 4, !tbaa !5
  %2042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2033, ptr noundef nonnull %.str.5.sink1459, i32 noundef %2034, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2036, ptr noundef %2038, ptr noundef %2040, i32 noundef %2041) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2043:                                             ; preds = %2014
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #11
  %2044 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2044, ptr %28, align 8, !tbaa !9
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = add nsw i32 %2045, 1
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = icmp eq ptr %2044, null
  br i1 %2047, label %2048, label %2070

2048:                                             ; preds = %2043
  %2049 = load i32, ptr %233, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = call i32 @s2n_print_stacktrace(ptr noundef %2050) #11
  %2052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2053 = trunc nuw i8 %2052 to i1
  br i1 %2053, label %2054, label %2058

2054:                                             ; preds = %2048
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @fileno(ptr noundef %2055) #11
  %2057 = call i32 @isatty(i32 noundef %2056) #11
  %.not695 = icmp eq i32 %2057, 0
  br i1 %.not695, label %2058, label %2059

2058:                                             ; preds = %2054, %2048
  br label %2059

2059:                                             ; preds = %2054, %2058
  %.str.5.sink1468 = phi ptr [ @.str.5, %2058 ], [ @.str.2, %2054 ]
  store i32 %2049, ptr %233, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = load i32, ptr %179, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror(i32 noundef %2062, ptr noundef nonnull @.str.4) #11
  %2064 = load i32, ptr %179, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror_debug(i32 noundef %2064, ptr noundef nonnull @.str.4) #11
  %2066 = load i32, ptr %233, align 4, !tbaa !5
  %2067 = call ptr @strerror(i32 noundef %2066) #11
  %2068 = load i32, ptr %233, align 4, !tbaa !5
  %2069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2060, ptr noundef nonnull %.str.5.sink1468, i32 noundef %2061, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2063, ptr noundef %2065, ptr noundef %2067, i32 noundef %2068) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2070:                                             ; preds = %2043
  %2071 = add nsw i32 %2045, 2
  store i32 %2071, ptr @test_count, align 4, !tbaa !5
  %2072 = load ptr, ptr %26, align 8, !tbaa !9
  %2073 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2044, ptr noundef %2072) #11
  %2074 = icmp eq i32 %2073, -1
  br i1 %2074, label %2075, label %2097

2075:                                             ; preds = %2070
  %2076 = load i32, ptr %233, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @s2n_print_stacktrace(ptr noundef %2077) #11
  %2079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2080 = trunc nuw i8 %2079 to i1
  br i1 %2080, label %2081, label %2085

2081:                                             ; preds = %2075
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = call i32 @fileno(ptr noundef %2082) #11
  %2084 = call i32 @isatty(i32 noundef %2083) #11
  %.not694 = icmp eq i32 %2084, 0
  br i1 %.not694, label %2085, label %2086

2085:                                             ; preds = %2081, %2075
  br label %2086

2086:                                             ; preds = %2081, %2085
  %.str.5.sink1477 = phi ptr [ @.str.5, %2085 ], [ @.str.2, %2081 ]
  store i32 %2076, ptr %233, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = load i32, ptr %179, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror(i32 noundef %2089, ptr noundef nonnull @.str.4) #11
  %2091 = load i32, ptr %179, align 4, !tbaa !5
  %2092 = call ptr @s2n_strerror_debug(i32 noundef %2091, ptr noundef nonnull @.str.4) #11
  %2093 = load i32, ptr %233, align 4, !tbaa !5
  %2094 = call ptr @strerror(i32 noundef %2093) #11
  %2095 = load i32, ptr %233, align 4, !tbaa !5
  %2096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef nonnull %.str.5.sink1477, i32 noundef %2088, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2090, ptr noundef %2092, ptr noundef %2094, i32 noundef %2095) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2097:                                             ; preds = %2070
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  %2098 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %2098, ptr %29, align 8, !tbaa !9
  %2099 = load i32, ptr @test_count, align 4, !tbaa !5
  %2100 = add nsw i32 %2099, 1
  store i32 %2100, ptr @test_count, align 4, !tbaa !5
  %2101 = icmp eq ptr %2098, null
  br i1 %2101, label %2102, label %2124

2102:                                             ; preds = %2097
  %2103 = load i32, ptr %233, align 4, !tbaa !5
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = call i32 @s2n_print_stacktrace(ptr noundef %2104) #11
  %2106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2107 = trunc nuw i8 %2106 to i1
  br i1 %2107, label %2108, label %2112

2108:                                             ; preds = %2102
  %2109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2110 = call i32 @fileno(ptr noundef %2109) #11
  %2111 = call i32 @isatty(i32 noundef %2110) #11
  %.not693 = icmp eq i32 %2111, 0
  br i1 %.not693, label %2112, label %2113

2112:                                             ; preds = %2108, %2102
  br label %2113

2113:                                             ; preds = %2108, %2112
  %.str.5.sink1486 = phi ptr [ @.str.5, %2112 ], [ @.str.2, %2108 ]
  store i32 %2103, ptr %233, align 4, !tbaa !5
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = load i32, ptr @test_count, align 4, !tbaa !5
  %2116 = load i32, ptr %179, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror(i32 noundef %2116, ptr noundef nonnull @.str.4) #11
  %2118 = load i32, ptr %179, align 4, !tbaa !5
  %2119 = call ptr @s2n_strerror_debug(i32 noundef %2118, ptr noundef nonnull @.str.4) #11
  %2120 = load i32, ptr %233, align 4, !tbaa !5
  %2121 = call ptr @strerror(i32 noundef %2120) #11
  %2122 = load i32, ptr %233, align 4, !tbaa !5
  %2123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2114, ptr noundef nonnull %.str.5.sink1486, i32 noundef %2115, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %2117, ptr noundef %2119, ptr noundef %2121, i32 noundef %2122) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2124:                                             ; preds = %2097
  %2125 = add nsw i32 %2099, 2
  store i32 %2125, ptr @test_count, align 4, !tbaa !5
  %2126 = load ptr, ptr %26, align 8, !tbaa !9
  %2127 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2098, ptr noundef %2126) #11
  %2128 = icmp eq i32 %2127, -1
  br i1 %2128, label %2129, label %2151

2129:                                             ; preds = %2124
  %2130 = load i32, ptr %233, align 4, !tbaa !5
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2132 = call i32 @s2n_print_stacktrace(ptr noundef %2131) #11
  %2133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2134 = trunc nuw i8 %2133 to i1
  br i1 %2134, label %2135, label %2139

2135:                                             ; preds = %2129
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = call i32 @fileno(ptr noundef %2136) #11
  %2138 = call i32 @isatty(i32 noundef %2137) #11
  %.not692 = icmp eq i32 %2138, 0
  br i1 %.not692, label %2139, label %2140

2139:                                             ; preds = %2135, %2129
  br label %2140

2140:                                             ; preds = %2135, %2139
  %.str.5.sink1495 = phi ptr [ @.str.5, %2139 ], [ @.str.2, %2135 ]
  store i32 %2130, ptr %233, align 4, !tbaa !5
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = load i32, ptr @test_count, align 4, !tbaa !5
  %2143 = load i32, ptr %179, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror(i32 noundef %2143, ptr noundef nonnull @.str.4) #11
  %2145 = load i32, ptr %179, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror_debug(i32 noundef %2145, ptr noundef nonnull @.str.4) #11
  %2147 = load i32, ptr %233, align 4, !tbaa !5
  %2148 = call ptr @strerror(i32 noundef %2147) #11
  %2149 = load i32, ptr %233, align 4, !tbaa !5
  %2150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2141, ptr noundef nonnull %.str.5.sink1495, i32 noundef %2142, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2144, ptr noundef %2146, ptr noundef %2148, i32 noundef %2149) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2151:                                             ; preds = %2124
  %2152 = load i32, ptr @test_count, align 4, !tbaa !5
  %2153 = add nsw i32 %2152, 1
  store i32 %2153, ptr @test_count, align 4, !tbaa !5
  %2154 = load ptr, ptr %29, align 8, !tbaa !9
  %2155 = call i32 @s2n_connection_set_blinding(ptr noundef %2154, i32 noundef 1) #11
  %2156 = icmp eq i32 %2155, -1
  br i1 %2156, label %2157, label %2179

2157:                                             ; preds = %2151
  %2158 = load i32, ptr %233, align 4, !tbaa !5
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = call i32 @s2n_print_stacktrace(ptr noundef %2159) #11
  %2161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2162 = trunc nuw i8 %2161 to i1
  br i1 %2162, label %2163, label %2167

2163:                                             ; preds = %2157
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = call i32 @fileno(ptr noundef %2164) #11
  %2166 = call i32 @isatty(i32 noundef %2165) #11
  %.not691 = icmp eq i32 %2166, 0
  br i1 %.not691, label %2167, label %2168

2167:                                             ; preds = %2163, %2157
  br label %2168

2168:                                             ; preds = %2163, %2167
  %.str.5.sink1504 = phi ptr [ @.str.5, %2167 ], [ @.str.2, %2163 ]
  store i32 %2158, ptr %233, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = load i32, ptr @test_count, align 4, !tbaa !5
  %2171 = load i32, ptr %179, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror(i32 noundef %2171, ptr noundef nonnull @.str.4) #11
  %2173 = load i32, ptr %179, align 4, !tbaa !5
  %2174 = call ptr @s2n_strerror_debug(i32 noundef %2173, ptr noundef nonnull @.str.4) #11
  %2175 = load i32, ptr %233, align 4, !tbaa !5
  %2176 = call ptr @strerror(i32 noundef %2175) #11
  %2177 = load i32, ptr %233, align 4, !tbaa !5
  %2178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2169, ptr noundef nonnull %.str.5.sink1504, i32 noundef %2170, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %2172, ptr noundef %2174, ptr noundef %2176, i32 noundef %2177) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2179:                                             ; preds = %2151
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = add nsw i32 %2180, 1
  store i32 %2181, ptr @test_count, align 4, !tbaa !5
  %2182 = load ptr, ptr %29, align 8, !tbaa !9
  %2183 = call i32 @s2n_set_server_name(ptr noundef %2182, ptr noundef nonnull @.str.35) #11
  %2184 = icmp eq i32 %2183, -1
  br i1 %2184, label %2185, label %2207

2185:                                             ; preds = %2179
  %2186 = load i32, ptr %233, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = call i32 @s2n_print_stacktrace(ptr noundef %2187) #11
  %2189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2190 = trunc nuw i8 %2189 to i1
  br i1 %2190, label %2191, label %2195

2191:                                             ; preds = %2185
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = call i32 @fileno(ptr noundef %2192) #11
  %2194 = call i32 @isatty(i32 noundef %2193) #11
  %.not690 = icmp eq i32 %2194, 0
  br i1 %.not690, label %2195, label %2196

2195:                                             ; preds = %2191, %2185
  br label %2196

2196:                                             ; preds = %2191, %2195
  %.str.5.sink1513 = phi ptr [ @.str.5, %2195 ], [ @.str.2, %2191 ]
  store i32 %2186, ptr %233, align 4, !tbaa !5
  %2197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2198 = load i32, ptr @test_count, align 4, !tbaa !5
  %2199 = load i32, ptr %179, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror(i32 noundef %2199, ptr noundef nonnull @.str.4) #11
  %2201 = load i32, ptr %179, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror_debug(i32 noundef %2201, ptr noundef nonnull @.str.4) #11
  %2203 = load i32, ptr %233, align 4, !tbaa !5
  %2204 = call ptr @strerror(i32 noundef %2203) #11
  %2205 = load i32, ptr %233, align 4, !tbaa !5
  %2206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2197, ptr noundef nonnull %.str.5.sink1513, i32 noundef %2198, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 309, ptr noundef %2200, ptr noundef %2202, ptr noundef %2204, i32 noundef %2205) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2207:                                             ; preds = %2179
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #11
  store i64 0, ptr %30, align 8
  %2208 = load i32, ptr @test_count, align 4, !tbaa !5
  %2209 = add nsw i32 %2208, 1
  store i32 %2209, ptr @test_count, align 4, !tbaa !5
  %2210 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %30) #11
  %2211 = icmp eq i32 %2210, -1
  br i1 %2211, label %2212, label %2234

2212:                                             ; preds = %2207
  %2213 = load i32, ptr %233, align 4, !tbaa !5
  %2214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2215 = call i32 @s2n_print_stacktrace(ptr noundef %2214) #11
  %2216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2217 = trunc nuw i8 %2216 to i1
  br i1 %2217, label %2218, label %2222

2218:                                             ; preds = %2212
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = call i32 @fileno(ptr noundef %2219) #11
  %2221 = call i32 @isatty(i32 noundef %2220) #11
  %.not689 = icmp eq i32 %2221, 0
  br i1 %.not689, label %2222, label %2223

2222:                                             ; preds = %2218, %2212
  br label %2223

2223:                                             ; preds = %2218, %2222
  %.str.5.sink1522 = phi ptr [ @.str.5, %2222 ], [ @.str.2, %2218 ]
  store i32 %2213, ptr %233, align 4, !tbaa !5
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = load i32, ptr @test_count, align 4, !tbaa !5
  %2226 = load i32, ptr %179, align 4, !tbaa !5
  %2227 = call ptr @s2n_strerror(i32 noundef %2226, ptr noundef nonnull @.str.4) #11
  %2228 = load i32, ptr %179, align 4, !tbaa !5
  %2229 = call ptr @s2n_strerror_debug(i32 noundef %2228, ptr noundef nonnull @.str.4) #11
  %2230 = load i32, ptr %233, align 4, !tbaa !5
  %2231 = call ptr @strerror(i32 noundef %2230) #11
  %2232 = load i32, ptr %233, align 4, !tbaa !5
  %2233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2224, ptr noundef nonnull %.str.5.sink1522, i32 noundef %2225, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %2227, ptr noundef %2229, ptr noundef %2231, i32 noundef %2232) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2234:                                             ; preds = %2207
  %2235 = load i32, ptr @test_count, align 4, !tbaa !5
  %2236 = add nsw i32 %2235, 1
  store i32 %2236, ptr @test_count, align 4, !tbaa !5
  %2237 = load ptr, ptr %29, align 8, !tbaa !9
  %2238 = call i32 @s2n_connection_set_io_pair(ptr noundef %2237, ptr noundef nonnull %30) #11
  %2239 = icmp eq i32 %2238, -1
  br i1 %2239, label %2240, label %2262

2240:                                             ; preds = %2234
  %2241 = load i32, ptr %233, align 4, !tbaa !5
  %2242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2243 = call i32 @s2n_print_stacktrace(ptr noundef %2242) #11
  %2244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2245 = trunc nuw i8 %2244 to i1
  br i1 %2245, label %2246, label %2250

2246:                                             ; preds = %2240
  %2247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2248 = call i32 @fileno(ptr noundef %2247) #11
  %2249 = call i32 @isatty(i32 noundef %2248) #11
  %.not688 = icmp eq i32 %2249, 0
  br i1 %.not688, label %2250, label %2251

2250:                                             ; preds = %2246, %2240
  br label %2251

2251:                                             ; preds = %2246, %2250
  %.str.5.sink1531 = phi ptr [ @.str.5, %2250 ], [ @.str.2, %2246 ]
  store i32 %2241, ptr %233, align 4, !tbaa !5
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = load i32, ptr @test_count, align 4, !tbaa !5
  %2254 = load i32, ptr %179, align 4, !tbaa !5
  %2255 = call ptr @s2n_strerror(i32 noundef %2254, ptr noundef nonnull @.str.4) #11
  %2256 = load i32, ptr %179, align 4, !tbaa !5
  %2257 = call ptr @s2n_strerror_debug(i32 noundef %2256, ptr noundef nonnull @.str.4) #11
  %2258 = load i32, ptr %233, align 4, !tbaa !5
  %2259 = call ptr @strerror(i32 noundef %2258) #11
  %2260 = load i32, ptr %233, align 4, !tbaa !5
  %2261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2252, ptr noundef nonnull %.str.5.sink1531, i32 noundef %2253, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %2255, ptr noundef %2257, ptr noundef %2259, i32 noundef %2260) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2262:                                             ; preds = %2234
  %2263 = load i32, ptr @test_count, align 4, !tbaa !5
  %2264 = add nsw i32 %2263, 1
  store i32 %2264, ptr @test_count, align 4, !tbaa !5
  %2265 = load ptr, ptr %28, align 8, !tbaa !9
  %2266 = call i32 @s2n_connection_set_io_pair(ptr noundef %2265, ptr noundef nonnull %30) #11
  %2267 = icmp eq i32 %2266, -1
  br i1 %2267, label %2268, label %2290

2268:                                             ; preds = %2262
  %2269 = load i32, ptr %233, align 4, !tbaa !5
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = call i32 @s2n_print_stacktrace(ptr noundef %2270) #11
  %2272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2273 = trunc nuw i8 %2272 to i1
  br i1 %2273, label %2274, label %2278

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

2278:                                             ; preds = %2274, %2268
  br label %2279

2279:                                             ; preds = %2274, %2278
  %.str.5.sink1540 = phi ptr [ @.str.5, %2278 ], [ @.str.2, %2274 ]
  store i32 %2269, ptr %233, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = load i32, ptr @test_count, align 4, !tbaa !5
  %2282 = load i32, ptr %179, align 4, !tbaa !5
  %2283 = call ptr @s2n_strerror(i32 noundef %2282, ptr noundef nonnull @.str.4) #11
  %2284 = load i32, ptr %179, align 4, !tbaa !5
  %2285 = call ptr @s2n_strerror_debug(i32 noundef %2284, ptr noundef nonnull @.str.4) #11
  %2286 = load i32, ptr %233, align 4, !tbaa !5
  %2287 = call ptr @strerror(i32 noundef %2286) #11
  %2288 = load i32, ptr %233, align 4, !tbaa !5
  %2289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2280, ptr noundef nonnull %.str.5.sink1540, i32 noundef %2281, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %2283, ptr noundef %2285, ptr noundef %2287, i32 noundef %2288) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2290:                                             ; preds = %2262
  %2291 = getelementptr inbounds i8, ptr %2015, i64 16
  %2292 = load i32, ptr %2291, align 8, !tbaa !24
  %2293 = icmp eq i32 %2292, 0
  %2294 = load i32, ptr @test_count, align 4, !tbaa !5
  %2295 = add nsw i32 %2294, 1
  store i32 %2295, ptr @test_count, align 4, !tbaa !5
  %2296 = load ptr, ptr %28, align 8, !tbaa !9
  %2297 = load ptr, ptr %29, align 8, !tbaa !9
  %2298 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2296, ptr noundef %2297) #11
  %2299 = icmp eq i32 %2298, -1
  br i1 %2293, label %2300, label %2323

2300:                                             ; preds = %2290
  br i1 %2299, label %2301, label %2400

2301:                                             ; preds = %2300
  %2302 = load i32, ptr %233, align 4, !tbaa !5
  %2303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2304 = call i32 @s2n_print_stacktrace(ptr noundef %2303) #11
  %2305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2306 = trunc nuw i8 %2305 to i1
  br i1 %2306, label %2307, label %2311

2307:                                             ; preds = %2301
  %2308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2309 = call i32 @fileno(ptr noundef %2308) #11
  %2310 = call i32 @isatty(i32 noundef %2309) #11
  %.not686 = icmp eq i32 %2310, 0
  br i1 %.not686, label %2311, label %2312

2311:                                             ; preds = %2307, %2301
  br label %2312

2312:                                             ; preds = %2307, %2311
  %.str.5.sink1549 = phi ptr [ @.str.5, %2311 ], [ @.str.2, %2307 ]
  store i32 %2302, ptr %233, align 4, !tbaa !5
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = load i32, ptr @test_count, align 4, !tbaa !5
  %2315 = load i32, ptr %179, align 4, !tbaa !5
  %2316 = call ptr @s2n_strerror(i32 noundef %2315, ptr noundef nonnull @.str.4) #11
  %2317 = load i32, ptr %179, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror_debug(i32 noundef %2317, ptr noundef nonnull @.str.4) #11
  %2319 = load i32, ptr %233, align 4, !tbaa !5
  %2320 = call ptr @strerror(i32 noundef %2319) #11
  %2321 = load i32, ptr %233, align 4, !tbaa !5
  %2322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2313, ptr noundef nonnull %.str.5.sink1549, i32 noundef %2314, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %2316, ptr noundef %2318, ptr noundef %2320, i32 noundef %2321) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2323:                                             ; preds = %2290
  br i1 %2299, label %2346, label %2324

2324:                                             ; preds = %2323
  %2325 = load i32, ptr %233, align 4, !tbaa !5
  %2326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2327 = call i32 @s2n_print_stacktrace(ptr noundef %2326) #11
  %2328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2329 = trunc nuw i8 %2328 to i1
  br i1 %2329, label %2330, label %2334

2330:                                             ; preds = %2324
  %2331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2332 = call i32 @fileno(ptr noundef %2331) #11
  %2333 = call i32 @isatty(i32 noundef %2332) #11
  %.not682 = icmp eq i32 %2333, 0
  br i1 %.not682, label %2334, label %2335

2334:                                             ; preds = %2330, %2324
  br label %2335

2335:                                             ; preds = %2330, %2334
  %.str.5.sink1558 = phi ptr [ @.str.5, %2334 ], [ @.str.2, %2330 ]
  store i32 %2325, ptr %233, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = load i32, ptr %179, align 4, !tbaa !5
  %2339 = call ptr @s2n_strerror(i32 noundef %2338, ptr noundef nonnull @.str.4) #11
  %2340 = load i32, ptr %179, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror_debug(i32 noundef %2340, ptr noundef nonnull @.str.4) #11
  %2342 = load i32, ptr %233, align 4, !tbaa !5
  %2343 = call ptr @strerror(i32 noundef %2342) #11
  %2344 = load i32, ptr %233, align 4, !tbaa !5
  %2345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2336, ptr noundef nonnull %.str.5.sink1558, i32 noundef %2337, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2339, ptr noundef %2341, ptr noundef %2343, i32 noundef %2344) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2346:                                             ; preds = %2323
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = add nsw i32 %2347, 1
  store i32 %2348, ptr @test_count, align 4, !tbaa !5
  %2349 = load i32, ptr %179, align 4, !tbaa !5
  %2350 = icmp eq i32 %2349, %2292
  br i1 %2350, label %2373, label %2351

2351:                                             ; preds = %2346
  %2352 = load i32, ptr %233, align 4, !tbaa !5
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = call i32 @s2n_print_stacktrace(ptr noundef %2353) #11
  %2355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2356 = trunc nuw i8 %2355 to i1
  br i1 %2356, label %2357, label %2361

2357:                                             ; preds = %2351
  %2358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2359 = call i32 @fileno(ptr noundef %2358) #11
  %2360 = call i32 @isatty(i32 noundef %2359) #11
  %.not683 = icmp eq i32 %2360, 0
  br i1 %.not683, label %2361, label %2362

2361:                                             ; preds = %2357, %2351
  br label %2362

2362:                                             ; preds = %2357, %2361
  %.str.5.sink1567 = phi ptr [ @.str.5, %2361 ], [ @.str.2, %2357 ]
  store i32 %2352, ptr %233, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = load i32, ptr %179, align 4, !tbaa !5
  %2366 = call ptr @s2n_strerror(i32 noundef %2365, ptr noundef nonnull @.str.4) #11
  %2367 = load i32, ptr %179, align 4, !tbaa !5
  %2368 = call ptr @s2n_strerror_debug(i32 noundef %2367, ptr noundef nonnull @.str.4) #11
  %2369 = load i32, ptr %233, align 4, !tbaa !5
  %2370 = call ptr @strerror(i32 noundef %2369) #11
  %2371 = load i32, ptr %233, align 4, !tbaa !5
  %2372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2363, ptr noundef nonnull %.str.5.sink1567, i32 noundef %2364, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2366, ptr noundef %2368, ptr noundef %2370, i32 noundef %2371) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2373:                                             ; preds = %2346
  %2374 = add nsw i32 %2347, 2
  store i32 %2374, ptr @test_count, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2292, ptr noundef nonnull @.str.4) #11
  %2376 = icmp eq ptr %2375, null
  br i1 %2376, label %2377, label %2399

2377:                                             ; preds = %2373
  %2378 = load i32, ptr %233, align 4, !tbaa !5
  %2379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2380 = call i32 @s2n_print_stacktrace(ptr noundef %2379) #11
  %2381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2382 = trunc nuw i8 %2381 to i1
  br i1 %2382, label %2383, label %2387

2383:                                             ; preds = %2377
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = call i32 @fileno(ptr noundef %2384) #11
  %2386 = call i32 @isatty(i32 noundef %2385) #11
  %.not684 = icmp eq i32 %2386, 0
  br i1 %.not684, label %2387, label %2388

2387:                                             ; preds = %2383, %2377
  br label %2388

2388:                                             ; preds = %2383, %2387
  %.str.5.sink1576 = phi ptr [ @.str.5, %2387 ], [ @.str.2, %2383 ]
  store i32 %2378, ptr %233, align 4, !tbaa !5
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = load i32, ptr @test_count, align 4, !tbaa !5
  %2391 = load i32, ptr %179, align 4, !tbaa !5
  %2392 = call ptr @s2n_strerror(i32 noundef %2391, ptr noundef nonnull @.str.4) #11
  %2393 = load i32, ptr %179, align 4, !tbaa !5
  %2394 = call ptr @s2n_strerror_debug(i32 noundef %2393, ptr noundef nonnull @.str.4) #11
  %2395 = load i32, ptr %233, align 4, !tbaa !5
  %2396 = call ptr @strerror(i32 noundef %2395) #11
  %2397 = load i32, ptr %233, align 4, !tbaa !5
  %2398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2389, ptr noundef nonnull %.str.5.sink1576, i32 noundef %2390, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2392, ptr noundef %2394, ptr noundef %2396, i32 noundef %2397) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2399:                                             ; preds = %2373
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  br label %2400

2400:                                             ; preds = %2399, %2300
  %2401 = load i32, ptr @test_count, align 4, !tbaa !5
  %2402 = add nsw i32 %2401, 1
  store i32 %2402, ptr @test_count, align 4, !tbaa !5
  %2403 = load i32, ptr %1458, align 4, !tbaa !27
  %2404 = icmp eq i32 %2403, 1
  br i1 %2404, label %2427, label %2405

2405:                                             ; preds = %2400
  %2406 = load i32, ptr %233, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = call i32 @s2n_print_stacktrace(ptr noundef %2407) #11
  %2409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2410 = trunc nuw i8 %2409 to i1
  br i1 %2410, label %2411, label %2415

2411:                                             ; preds = %2405
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = call i32 @fileno(ptr noundef %2412) #11
  %2414 = call i32 @isatty(i32 noundef %2413) #11
  %.not685 = icmp eq i32 %2414, 0
  br i1 %.not685, label %2415, label %2416

2415:                                             ; preds = %2411, %2405
  br label %2416

2416:                                             ; preds = %2411, %2415
  %.str.5.sink1585 = phi ptr [ @.str.5, %2415 ], [ @.str.2, %2411 ]
  store i32 %2406, ptr %233, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = load i32, ptr %179, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror(i32 noundef %2419, ptr noundef nonnull @.str.4) #11
  %2421 = load i32, ptr %179, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror_debug(i32 noundef %2421, ptr noundef nonnull @.str.4) #11
  %2423 = load i32, ptr %233, align 4, !tbaa !5
  %2424 = call ptr @strerror(i32 noundef %2423) #11
  %2425 = load i32, ptr %233, align 4, !tbaa !5
  %2426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2417, ptr noundef nonnull %.str.5.sink1585, i32 noundef %2418, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %2420, ptr noundef %2422, ptr noundef %2424, i32 noundef %2425) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2427:                                             ; preds = %2400
  %2428 = call i32 @s2n_io_pair_close(ptr noundef nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  %2429 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  %2430 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #11
  %2431 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  %indvars.iv.next788 = add nuw nsw i64 %indvars.iv787, 1
  %exitcond790.not = icmp eq i64 %indvars.iv.next788, 4
  br i1 %exitcond790.not, label %.preheader761, label %1904, !llvm.loop !30

.preheader760:                                    ; preds = %3122
  %2432 = getelementptr inbounds i8, ptr %43, i64 4
  br label %3128

2433:                                             ; preds = %.preheader761, %3122
  %indvars.iv791 = phi i64 [ 0, %.preheader761 ], [ %indvars.iv.next792, %3122 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #11
  %2434 = call ptr @s2n_config_new() #11
  store ptr %2434, ptr %31, align 8, !tbaa !9
  %2435 = load i32, ptr @test_count, align 4, !tbaa !5
  %2436 = add nsw i32 %2435, 1
  store i32 %2436, ptr @test_count, align 4, !tbaa !5
  %2437 = icmp eq ptr %2434, null
  br i1 %2437, label %2438, label %2460

2438:                                             ; preds = %2433
  %2439 = load i32, ptr %233, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440) #11
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc nuw i8 %2442 to i1
  br i1 %2443, label %2444, label %2448

2444:                                             ; preds = %2438
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #11
  %2447 = call i32 @isatty(i32 noundef %2446) #11
  %.not681 = icmp eq i32 %2447, 0
  br i1 %.not681, label %2448, label %2449

2448:                                             ; preds = %2444, %2438
  br label %2449

2449:                                             ; preds = %2444, %2448
  %.str.5.sink1594 = phi ptr [ @.str.5, %2448 ], [ @.str.2, %2444 ]
  store i32 %2439, ptr %233, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = load i32, ptr %179, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror(i32 noundef %2452, ptr noundef nonnull @.str.4) #11
  %2454 = load i32, ptr %179, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror_debug(i32 noundef %2454, ptr noundef nonnull @.str.4) #11
  %2456 = load i32, ptr %233, align 4, !tbaa !5
  %2457 = call ptr @strerror(i32 noundef %2456) #11
  %2458 = load i32, ptr %233, align 4, !tbaa !5
  %2459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef nonnull %.str.5.sink1594, i32 noundef %2451, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %2453, ptr noundef %2455, ptr noundef %2457, i32 noundef %2458) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2460:                                             ; preds = %2433
  %2461 = add nsw i32 %2435, 2
  store i32 %2461, ptr @test_count, align 4, !tbaa !5
  %2462 = load ptr, ptr %7, align 8, !tbaa !9
  %2463 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2434, ptr noundef %2462) #11
  %2464 = icmp eq i32 %2463, -1
  br i1 %2464, label %2465, label %2487

2465:                                             ; preds = %2460
  %2466 = load i32, ptr %233, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @s2n_print_stacktrace(ptr noundef %2467) #11
  %2469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2470 = trunc nuw i8 %2469 to i1
  br i1 %2470, label %2471, label %2475

2471:                                             ; preds = %2465
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @fileno(ptr noundef %2472) #11
  %2474 = call i32 @isatty(i32 noundef %2473) #11
  %.not680 = icmp eq i32 %2474, 0
  br i1 %.not680, label %2475, label %2476

2475:                                             ; preds = %2471, %2465
  br label %2476

2476:                                             ; preds = %2471, %2475
  %.str.5.sink1603 = phi ptr [ @.str.5, %2475 ], [ @.str.2, %2471 ]
  store i32 %2466, ptr %233, align 4, !tbaa !5
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = load i32, ptr @test_count, align 4, !tbaa !5
  %2479 = load i32, ptr %179, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror(i32 noundef %2479, ptr noundef nonnull @.str.4) #11
  %2481 = load i32, ptr %179, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror_debug(i32 noundef %2481, ptr noundef nonnull @.str.4) #11
  %2483 = load i32, ptr %233, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #11
  %2485 = load i32, ptr %233, align 4, !tbaa !5
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2477, ptr noundef nonnull %.str.5.sink1603, i32 noundef %2478, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %2480, ptr noundef %2482, ptr noundef %2484, i32 noundef %2485) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2487:                                             ; preds = %2460
  %2488 = load i32, ptr @test_count, align 4, !tbaa !5
  %2489 = add nsw i32 %2488, 1
  store i32 %2489, ptr @test_count, align 4, !tbaa !5
  %2490 = load ptr, ptr %31, align 8, !tbaa !9
  %2491 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %2490, ptr noundef nonnull @.str.23, ptr noundef null) #11
  %2492 = icmp eq i32 %2491, -1
  br i1 %2492, label %2493, label %2515

2493:                                             ; preds = %2487
  %2494 = load i32, ptr %233, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = call i32 @s2n_print_stacktrace(ptr noundef %2495) #11
  %2497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2498 = trunc nuw i8 %2497 to i1
  br i1 %2498, label %2499, label %2503

2499:                                             ; preds = %2493
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = call i32 @fileno(ptr noundef %2500) #11
  %2502 = call i32 @isatty(i32 noundef %2501) #11
  %.not679 = icmp eq i32 %2502, 0
  br i1 %.not679, label %2503, label %2504

2503:                                             ; preds = %2499, %2493
  br label %2504

2504:                                             ; preds = %2499, %2503
  %.str.5.sink1612 = phi ptr [ @.str.5, %2503 ], [ @.str.2, %2499 ]
  store i32 %2494, ptr %233, align 4, !tbaa !5
  %2505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2506 = load i32, ptr @test_count, align 4, !tbaa !5
  %2507 = load i32, ptr %179, align 4, !tbaa !5
  %2508 = call ptr @s2n_strerror(i32 noundef %2507, ptr noundef nonnull @.str.4) #11
  %2509 = load i32, ptr %179, align 4, !tbaa !5
  %2510 = call ptr @s2n_strerror_debug(i32 noundef %2509, ptr noundef nonnull @.str.4) #11
  %2511 = load i32, ptr %233, align 4, !tbaa !5
  %2512 = call ptr @strerror(i32 noundef %2511) #11
  %2513 = load i32, ptr %233, align 4, !tbaa !5
  %2514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2505, ptr noundef nonnull %.str.5.sink1612, i32 noundef %2506, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %2508, ptr noundef %2510, ptr noundef %2512, i32 noundef %2513) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2515:                                             ; preds = %2487
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = add nsw i32 %2516, 1
  store i32 %2517, ptr @test_count, align 4, !tbaa !5
  %2518 = load ptr, ptr %31, align 8, !tbaa !9
  %2519 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2518, ptr noundef nonnull @.str.30) #11
  %2520 = icmp eq i32 %2519, -1
  br i1 %2520, label %2521, label %2543

2521:                                             ; preds = %2515
  %2522 = load i32, ptr %233, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @s2n_print_stacktrace(ptr noundef %2523) #11
  %2525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2526 = trunc nuw i8 %2525 to i1
  br i1 %2526, label %2527, label %2531

2527:                                             ; preds = %2521
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = call i32 @fileno(ptr noundef %2528) #11
  %2530 = call i32 @isatty(i32 noundef %2529) #11
  %.not678 = icmp eq i32 %2530, 0
  br i1 %.not678, label %2531, label %2532

2531:                                             ; preds = %2527, %2521
  br label %2532

2532:                                             ; preds = %2527, %2531
  %.str.5.sink1621 = phi ptr [ @.str.5, %2531 ], [ @.str.2, %2527 ]
  store i32 %2522, ptr %233, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = load i32, ptr @test_count, align 4, !tbaa !5
  %2535 = load i32, ptr %179, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror(i32 noundef %2535, ptr noundef nonnull @.str.4) #11
  %2537 = load i32, ptr %179, align 4, !tbaa !5
  %2538 = call ptr @s2n_strerror_debug(i32 noundef %2537, ptr noundef nonnull @.str.4) #11
  %2539 = load i32, ptr %233, align 4, !tbaa !5
  %2540 = call ptr @strerror(i32 noundef %2539) #11
  %2541 = load i32, ptr %233, align 4, !tbaa !5
  %2542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2533, ptr noundef nonnull %.str.5.sink1621, i32 noundef %2534, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %2536, ptr noundef %2538, ptr noundef %2540, i32 noundef %2541) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2543:                                             ; preds = %2515
  %2544 = load i32, ptr @test_count, align 4, !tbaa !5
  %2545 = add nsw i32 %2544, 1
  store i32 %2545, ptr @test_count, align 4, !tbaa !5
  %2546 = load ptr, ptr %31, align 8, !tbaa !9
  %2547 = call i32 @s2n_config_set_client_auth_type(ptr noundef %2546, i32 noundef 1) #11
  %2548 = icmp eq i32 %2547, -1
  br i1 %2548, label %2549, label %2571

2549:                                             ; preds = %2543
  %2550 = load i32, ptr %233, align 4, !tbaa !5
  %2551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2552 = call i32 @s2n_print_stacktrace(ptr noundef %2551) #11
  %2553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2554 = trunc nuw i8 %2553 to i1
  br i1 %2554, label %2555, label %2559

2555:                                             ; preds = %2549
  %2556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2557 = call i32 @fileno(ptr noundef %2556) #11
  %2558 = call i32 @isatty(i32 noundef %2557) #11
  %.not677 = icmp eq i32 %2558, 0
  br i1 %.not677, label %2559, label %2560

2559:                                             ; preds = %2555, %2549
  br label %2560

2560:                                             ; preds = %2555, %2559
  %.str.5.sink1630 = phi ptr [ @.str.5, %2559 ], [ @.str.2, %2555 ]
  store i32 %2550, ptr %233, align 4, !tbaa !5
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2562 = load i32, ptr @test_count, align 4, !tbaa !5
  %2563 = load i32, ptr %179, align 4, !tbaa !5
  %2564 = call ptr @s2n_strerror(i32 noundef %2563, ptr noundef nonnull @.str.4) #11
  %2565 = load i32, ptr %179, align 4, !tbaa !5
  %2566 = call ptr @s2n_strerror_debug(i32 noundef %2565, ptr noundef nonnull @.str.4) #11
  %2567 = load i32, ptr %233, align 4, !tbaa !5
  %2568 = call ptr @strerror(i32 noundef %2567) #11
  %2569 = load i32, ptr %233, align 4, !tbaa !5
  %2570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2561, ptr noundef nonnull %.str.5.sink1630, i32 noundef %2562, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %2564, ptr noundef %2566, ptr noundef %2568, i32 noundef %2569) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2571:                                             ; preds = %2543
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #11
  %2572 = getelementptr inbounds [4 x %struct.anon], ptr @__const.main.test_cases, i64 0, i64 %indvars.iv791
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %2572, i64 16, i1 false), !tbaa.struct !18
  %2573 = load i32, ptr @test_count, align 4, !tbaa !5
  %2574 = add nsw i32 %2573, 1
  store i32 %2574, ptr @test_count, align 4, !tbaa !5
  %2575 = load ptr, ptr %31, align 8, !tbaa !9
  %2576 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %2575, ptr noundef nonnull @s2n_test_cert_validation_callback_self_talk_server, ptr noundef nonnull %32) #11
  %2577 = icmp eq i32 %2576, -1
  br i1 %2577, label %2578, label %2600

2578:                                             ; preds = %2571
  %2579 = load i32, ptr %233, align 4, !tbaa !5
  %2580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2581 = call i32 @s2n_print_stacktrace(ptr noundef %2580) #11
  %2582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2583 = trunc nuw i8 %2582 to i1
  br i1 %2583, label %2584, label %2588

2584:                                             ; preds = %2578
  %2585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2586 = call i32 @fileno(ptr noundef %2585) #11
  %2587 = call i32 @isatty(i32 noundef %2586) #11
  %.not676 = icmp eq i32 %2587, 0
  br i1 %.not676, label %2588, label %2589

2588:                                             ; preds = %2584, %2578
  br label %2589

2589:                                             ; preds = %2584, %2588
  %.str.5.sink1639 = phi ptr [ @.str.5, %2588 ], [ @.str.2, %2584 ]
  store i32 %2579, ptr %233, align 4, !tbaa !5
  %2590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2591 = load i32, ptr @test_count, align 4, !tbaa !5
  %2592 = load i32, ptr %179, align 4, !tbaa !5
  %2593 = call ptr @s2n_strerror(i32 noundef %2592, ptr noundef nonnull @.str.4) #11
  %2594 = load i32, ptr %179, align 4, !tbaa !5
  %2595 = call ptr @s2n_strerror_debug(i32 noundef %2594, ptr noundef nonnull @.str.4) #11
  %2596 = load i32, ptr %233, align 4, !tbaa !5
  %2597 = call ptr @strerror(i32 noundef %2596) #11
  %2598 = load i32, ptr %233, align 4, !tbaa !5
  %2599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2590, ptr noundef nonnull %.str.5.sink1639, i32 noundef %2591, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %2593, ptr noundef %2595, ptr noundef %2597, i32 noundef %2598) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2600:                                             ; preds = %2571
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #11
  %2601 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2601, ptr %33, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = add nsw i32 %2602, 1
  store i32 %2603, ptr @test_count, align 4, !tbaa !5
  %2604 = icmp eq ptr %2601, null
  br i1 %2604, label %2605, label %2627

2605:                                             ; preds = %2600
  %2606 = load i32, ptr %233, align 4, !tbaa !5
  %2607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2608 = call i32 @s2n_print_stacktrace(ptr noundef %2607) #11
  %2609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2610 = trunc nuw i8 %2609 to i1
  br i1 %2610, label %2611, label %2615

2611:                                             ; preds = %2605
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = call i32 @fileno(ptr noundef %2612) #11
  %2614 = call i32 @isatty(i32 noundef %2613) #11
  %.not675 = icmp eq i32 %2614, 0
  br i1 %.not675, label %2615, label %2616

2615:                                             ; preds = %2611, %2605
  br label %2616

2616:                                             ; preds = %2611, %2615
  %.str.5.sink1648 = phi ptr [ @.str.5, %2615 ], [ @.str.2, %2611 ]
  store i32 %2606, ptr %233, align 4, !tbaa !5
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = load i32, ptr @test_count, align 4, !tbaa !5
  %2619 = load i32, ptr %179, align 4, !tbaa !5
  %2620 = call ptr @s2n_strerror(i32 noundef %2619, ptr noundef nonnull @.str.4) #11
  %2621 = load i32, ptr %179, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror_debug(i32 noundef %2621, ptr noundef nonnull @.str.4) #11
  %2623 = load i32, ptr %233, align 4, !tbaa !5
  %2624 = call ptr @strerror(i32 noundef %2623) #11
  %2625 = load i32, ptr %233, align 4, !tbaa !5
  %2626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2617, ptr noundef nonnull %.str.5.sink1648, i32 noundef %2618, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2620, ptr noundef %2622, ptr noundef %2624, i32 noundef %2625) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2627:                                             ; preds = %2600
  %2628 = add nsw i32 %2602, 2
  store i32 %2628, ptr @test_count, align 4, !tbaa !5
  %2629 = load ptr, ptr %31, align 8, !tbaa !9
  %2630 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2601, ptr noundef %2629) #11
  %2631 = icmp eq i32 %2630, -1
  br i1 %2631, label %2632, label %2654

2632:                                             ; preds = %2627
  %2633 = load i32, ptr %233, align 4, !tbaa !5
  %2634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2635 = call i32 @s2n_print_stacktrace(ptr noundef %2634) #11
  %2636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2637 = trunc nuw i8 %2636 to i1
  br i1 %2637, label %2638, label %2642

2638:                                             ; preds = %2632
  %2639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2640 = call i32 @fileno(ptr noundef %2639) #11
  %2641 = call i32 @isatty(i32 noundef %2640) #11
  %.not674 = icmp eq i32 %2641, 0
  br i1 %.not674, label %2642, label %2643

2642:                                             ; preds = %2638, %2632
  br label %2643

2643:                                             ; preds = %2638, %2642
  %.str.5.sink1657 = phi ptr [ @.str.5, %2642 ], [ @.str.2, %2638 ]
  store i32 %2633, ptr %233, align 4, !tbaa !5
  %2644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2645 = load i32, ptr @test_count, align 4, !tbaa !5
  %2646 = load i32, ptr %179, align 4, !tbaa !5
  %2647 = call ptr @s2n_strerror(i32 noundef %2646, ptr noundef nonnull @.str.4) #11
  %2648 = load i32, ptr %179, align 4, !tbaa !5
  %2649 = call ptr @s2n_strerror_debug(i32 noundef %2648, ptr noundef nonnull @.str.4) #11
  %2650 = load i32, ptr %233, align 4, !tbaa !5
  %2651 = call ptr @strerror(i32 noundef %2650) #11
  %2652 = load i32, ptr %233, align 4, !tbaa !5
  %2653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2644, ptr noundef nonnull %.str.5.sink1657, i32 noundef %2645, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %2647, ptr noundef %2649, ptr noundef %2651, i32 noundef %2652) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2654:                                             ; preds = %2627
  %2655 = load i32, ptr @test_count, align 4, !tbaa !5
  %2656 = add nsw i32 %2655, 1
  store i32 %2656, ptr @test_count, align 4, !tbaa !5
  %2657 = load ptr, ptr %33, align 8, !tbaa !9
  %2658 = call i32 @s2n_connection_set_blinding(ptr noundef %2657, i32 noundef 1) #11
  %2659 = icmp eq i32 %2658, -1
  br i1 %2659, label %2660, label %2682

2660:                                             ; preds = %2654
  %2661 = load i32, ptr %233, align 4, !tbaa !5
  %2662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2663 = call i32 @s2n_print_stacktrace(ptr noundef %2662) #11
  %2664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2665 = trunc nuw i8 %2664 to i1
  br i1 %2665, label %2666, label %2670

2666:                                             ; preds = %2660
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = call i32 @fileno(ptr noundef %2667) #11
  %2669 = call i32 @isatty(i32 noundef %2668) #11
  %.not673 = icmp eq i32 %2669, 0
  br i1 %.not673, label %2670, label %2671

2670:                                             ; preds = %2666, %2660
  br label %2671

2671:                                             ; preds = %2666, %2670
  %.str.5.sink1666 = phi ptr [ @.str.5, %2670 ], [ @.str.2, %2666 ]
  store i32 %2661, ptr %233, align 4, !tbaa !5
  %2672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2673 = load i32, ptr @test_count, align 4, !tbaa !5
  %2674 = load i32, ptr %179, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror(i32 noundef %2674, ptr noundef nonnull @.str.4) #11
  %2676 = load i32, ptr %179, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror_debug(i32 noundef %2676, ptr noundef nonnull @.str.4) #11
  %2678 = load i32, ptr %233, align 4, !tbaa !5
  %2679 = call ptr @strerror(i32 noundef %2678) #11
  %2680 = load i32, ptr %233, align 4, !tbaa !5
  %2681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2672, ptr noundef nonnull %.str.5.sink1666, i32 noundef %2673, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %2675, ptr noundef %2677, ptr noundef %2679, i32 noundef %2680) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2682:                                             ; preds = %2654
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #11
  %2683 = call ptr @s2n_config_new() #11
  store ptr %2683, ptr %34, align 8, !tbaa !9
  %2684 = load i32, ptr @test_count, align 4, !tbaa !5
  %2685 = add nsw i32 %2684, 1
  store i32 %2685, ptr @test_count, align 4, !tbaa !5
  %2686 = icmp eq ptr %2683, null
  br i1 %2686, label %2687, label %2709

2687:                                             ; preds = %2682
  %2688 = load i32, ptr %233, align 4, !tbaa !5
  %2689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2690 = call i32 @s2n_print_stacktrace(ptr noundef %2689) #11
  %2691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2692 = trunc nuw i8 %2691 to i1
  br i1 %2692, label %2693, label %2697

2693:                                             ; preds = %2687
  %2694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2695 = call i32 @fileno(ptr noundef %2694) #11
  %2696 = call i32 @isatty(i32 noundef %2695) #11
  %.not672 = icmp eq i32 %2696, 0
  br i1 %.not672, label %2697, label %2698

2697:                                             ; preds = %2693, %2687
  br label %2698

2698:                                             ; preds = %2693, %2697
  %.str.5.sink1675 = phi ptr [ @.str.5, %2697 ], [ @.str.2, %2693 ]
  store i32 %2688, ptr %233, align 4, !tbaa !5
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = load i32, ptr @test_count, align 4, !tbaa !5
  %2701 = load i32, ptr %179, align 4, !tbaa !5
  %2702 = call ptr @s2n_strerror(i32 noundef %2701, ptr noundef nonnull @.str.4) #11
  %2703 = load i32, ptr %179, align 4, !tbaa !5
  %2704 = call ptr @s2n_strerror_debug(i32 noundef %2703, ptr noundef nonnull @.str.4) #11
  %2705 = load i32, ptr %233, align 4, !tbaa !5
  %2706 = call ptr @strerror(i32 noundef %2705) #11
  %2707 = load i32, ptr %233, align 4, !tbaa !5
  %2708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2699, ptr noundef nonnull %.str.5.sink1675, i32 noundef %2700, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %2702, ptr noundef %2704, ptr noundef %2706, i32 noundef %2707) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2709:                                             ; preds = %2682
  %2710 = add nsw i32 %2684, 2
  store i32 %2710, ptr @test_count, align 4, !tbaa !5
  %2711 = load ptr, ptr %7, align 8, !tbaa !9
  %2712 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2683, ptr noundef %2711) #11
  %2713 = icmp eq i32 %2712, -1
  br i1 %2713, label %2714, label %2736

2714:                                             ; preds = %2709
  %2715 = load i32, ptr %233, align 4, !tbaa !5
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = call i32 @s2n_print_stacktrace(ptr noundef %2716) #11
  %2718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2719 = trunc nuw i8 %2718 to i1
  br i1 %2719, label %2720, label %2724

2720:                                             ; preds = %2714
  %2721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2722 = call i32 @fileno(ptr noundef %2721) #11
  %2723 = call i32 @isatty(i32 noundef %2722) #11
  %.not671 = icmp eq i32 %2723, 0
  br i1 %.not671, label %2724, label %2725

2724:                                             ; preds = %2720, %2714
  br label %2725

2725:                                             ; preds = %2720, %2724
  %.str.5.sink1684 = phi ptr [ @.str.5, %2724 ], [ @.str.2, %2720 ]
  store i32 %2715, ptr %233, align 4, !tbaa !5
  %2726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2727 = load i32, ptr @test_count, align 4, !tbaa !5
  %2728 = load i32, ptr %179, align 4, !tbaa !5
  %2729 = call ptr @s2n_strerror(i32 noundef %2728, ptr noundef nonnull @.str.4) #11
  %2730 = load i32, ptr %179, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror_debug(i32 noundef %2730, ptr noundef nonnull @.str.4) #11
  %2732 = load i32, ptr %233, align 4, !tbaa !5
  %2733 = call ptr @strerror(i32 noundef %2732) #11
  %2734 = load i32, ptr %233, align 4, !tbaa !5
  %2735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2726, ptr noundef nonnull %.str.5.sink1684, i32 noundef %2727, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 347, ptr noundef %2729, ptr noundef %2731, ptr noundef %2733, i32 noundef %2734) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2736:                                             ; preds = %2709
  %2737 = load i32, ptr @test_count, align 4, !tbaa !5
  %2738 = add nsw i32 %2737, 1
  store i32 %2738, ptr @test_count, align 4, !tbaa !5
  %2739 = load ptr, ptr %34, align 8, !tbaa !9
  %2740 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %2739, ptr noundef nonnull @.str.23, ptr noundef null) #11
  %2741 = icmp eq i32 %2740, -1
  br i1 %2741, label %2742, label %2764

2742:                                             ; preds = %2736
  %2743 = load i32, ptr %233, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = call i32 @s2n_print_stacktrace(ptr noundef %2744) #11
  %2746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2747 = trunc nuw i8 %2746 to i1
  br i1 %2747, label %2748, label %2752

2748:                                             ; preds = %2742
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @fileno(ptr noundef %2749) #11
  %2751 = call i32 @isatty(i32 noundef %2750) #11
  %.not670 = icmp eq i32 %2751, 0
  br i1 %.not670, label %2752, label %2753

2752:                                             ; preds = %2748, %2742
  br label %2753

2753:                                             ; preds = %2748, %2752
  %.str.5.sink1693 = phi ptr [ @.str.5, %2752 ], [ @.str.2, %2748 ]
  store i32 %2743, ptr %233, align 4, !tbaa !5
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = load i32, ptr %179, align 4, !tbaa !5
  %2757 = call ptr @s2n_strerror(i32 noundef %2756, ptr noundef nonnull @.str.4) #11
  %2758 = load i32, ptr %179, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror_debug(i32 noundef %2758, ptr noundef nonnull @.str.4) #11
  %2760 = load i32, ptr %233, align 4, !tbaa !5
  %2761 = call ptr @strerror(i32 noundef %2760) #11
  %2762 = load i32, ptr %233, align 4, !tbaa !5
  %2763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2754, ptr noundef nonnull %.str.5.sink1693, i32 noundef %2755, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 348, ptr noundef %2757, ptr noundef %2759, ptr noundef %2761, i32 noundef %2762) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2764:                                             ; preds = %2736
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %2766 = add nsw i32 %2765, 1
  store i32 %2766, ptr @test_count, align 4, !tbaa !5
  %2767 = load ptr, ptr %34, align 8, !tbaa !9
  %2768 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2767, ptr noundef nonnull @.str.30) #11
  %2769 = icmp eq i32 %2768, -1
  br i1 %2769, label %2770, label %2792

2770:                                             ; preds = %2764
  %2771 = load i32, ptr %233, align 4, !tbaa !5
  %2772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2773 = call i32 @s2n_print_stacktrace(ptr noundef %2772) #11
  %2774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2775 = trunc nuw i8 %2774 to i1
  br i1 %2775, label %2776, label %2780

2776:                                             ; preds = %2770
  %2777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2778 = call i32 @fileno(ptr noundef %2777) #11
  %2779 = call i32 @isatty(i32 noundef %2778) #11
  %.not669 = icmp eq i32 %2779, 0
  br i1 %.not669, label %2780, label %2781

2780:                                             ; preds = %2776, %2770
  br label %2781

2781:                                             ; preds = %2776, %2780
  %.str.5.sink1702 = phi ptr [ @.str.5, %2780 ], [ @.str.2, %2776 ]
  store i32 %2771, ptr %233, align 4, !tbaa !5
  %2782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2783 = load i32, ptr @test_count, align 4, !tbaa !5
  %2784 = load i32, ptr %179, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror(i32 noundef %2784, ptr noundef nonnull @.str.4) #11
  %2786 = load i32, ptr %179, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror_debug(i32 noundef %2786, ptr noundef nonnull @.str.4) #11
  %2788 = load i32, ptr %233, align 4, !tbaa !5
  %2789 = call ptr @strerror(i32 noundef %2788) #11
  %2790 = load i32, ptr %233, align 4, !tbaa !5
  %2791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2782, ptr noundef nonnull %.str.5.sink1702, i32 noundef %2783, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %2785, ptr noundef %2787, ptr noundef %2789, i32 noundef %2790) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2792:                                             ; preds = %2764
  %2793 = load i32, ptr @test_count, align 4, !tbaa !5
  %2794 = add nsw i32 %2793, 1
  store i32 %2794, ptr @test_count, align 4, !tbaa !5
  %2795 = load ptr, ptr %34, align 8, !tbaa !9
  %2796 = call i32 @s2n_config_set_client_auth_type(ptr noundef %2795, i32 noundef 2) #11
  %2797 = icmp eq i32 %2796, -1
  br i1 %2797, label %2798, label %2820

2798:                                             ; preds = %2792
  %2799 = load i32, ptr %233, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = call i32 @s2n_print_stacktrace(ptr noundef %2800) #11
  %2802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2803 = trunc nuw i8 %2802 to i1
  br i1 %2803, label %2804, label %2808

2804:                                             ; preds = %2798
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = call i32 @fileno(ptr noundef %2805) #11
  %2807 = call i32 @isatty(i32 noundef %2806) #11
  %.not668 = icmp eq i32 %2807, 0
  br i1 %.not668, label %2808, label %2809

2808:                                             ; preds = %2804, %2798
  br label %2809

2809:                                             ; preds = %2804, %2808
  %.str.5.sink1711 = phi ptr [ @.str.5, %2808 ], [ @.str.2, %2804 ]
  store i32 %2799, ptr %233, align 4, !tbaa !5
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2811 = load i32, ptr @test_count, align 4, !tbaa !5
  %2812 = load i32, ptr %179, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror(i32 noundef %2812, ptr noundef nonnull @.str.4) #11
  %2814 = load i32, ptr %179, align 4, !tbaa !5
  %2815 = call ptr @s2n_strerror_debug(i32 noundef %2814, ptr noundef nonnull @.str.4) #11
  %2816 = load i32, ptr %233, align 4, !tbaa !5
  %2817 = call ptr @strerror(i32 noundef %2816) #11
  %2818 = load i32, ptr %233, align 4, !tbaa !5
  %2819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2810, ptr noundef nonnull %.str.5.sink1711, i32 noundef %2811, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 350, ptr noundef %2813, ptr noundef %2815, ptr noundef %2817, i32 noundef %2818) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2820:                                             ; preds = %2792
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #11
  %2821 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %2821, ptr %35, align 8, !tbaa !9
  %2822 = load i32, ptr @test_count, align 4, !tbaa !5
  %2823 = add nsw i32 %2822, 1
  store i32 %2823, ptr @test_count, align 4, !tbaa !5
  %2824 = icmp eq ptr %2821, null
  br i1 %2824, label %2825, label %2847

2825:                                             ; preds = %2820
  %2826 = load i32, ptr %233, align 4, !tbaa !5
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = call i32 @s2n_print_stacktrace(ptr noundef %2827) #11
  %2829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2830 = trunc nuw i8 %2829 to i1
  br i1 %2830, label %2831, label %2835

2831:                                             ; preds = %2825
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = call i32 @fileno(ptr noundef %2832) #11
  %2834 = call i32 @isatty(i32 noundef %2833) #11
  %.not667 = icmp eq i32 %2834, 0
  br i1 %.not667, label %2835, label %2836

2835:                                             ; preds = %2831, %2825
  br label %2836

2836:                                             ; preds = %2831, %2835
  %.str.5.sink1720 = phi ptr [ @.str.5, %2835 ], [ @.str.2, %2831 ]
  store i32 %2826, ptr %233, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = load i32, ptr @test_count, align 4, !tbaa !5
  %2839 = load i32, ptr %179, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror(i32 noundef %2839, ptr noundef nonnull @.str.4) #11
  %2841 = load i32, ptr %179, align 4, !tbaa !5
  %2842 = call ptr @s2n_strerror_debug(i32 noundef %2841, ptr noundef nonnull @.str.4) #11
  %2843 = load i32, ptr %233, align 4, !tbaa !5
  %2844 = call ptr @strerror(i32 noundef %2843) #11
  %2845 = load i32, ptr %233, align 4, !tbaa !5
  %2846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2837, ptr noundef nonnull %.str.5.sink1720, i32 noundef %2838, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %2840, ptr noundef %2842, ptr noundef %2844, i32 noundef %2845) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2847:                                             ; preds = %2820
  %2848 = add nsw i32 %2822, 2
  store i32 %2848, ptr @test_count, align 4, !tbaa !5
  %2849 = load ptr, ptr %34, align 8, !tbaa !9
  %2850 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2821, ptr noundef %2849) #11
  %2851 = icmp eq i32 %2850, -1
  br i1 %2851, label %2852, label %2874

2852:                                             ; preds = %2847
  %2853 = load i32, ptr %233, align 4, !tbaa !5
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = call i32 @s2n_print_stacktrace(ptr noundef %2854) #11
  %2856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2857 = trunc nuw i8 %2856 to i1
  br i1 %2857, label %2858, label %2862

2858:                                             ; preds = %2852
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = call i32 @fileno(ptr noundef %2859) #11
  %2861 = call i32 @isatty(i32 noundef %2860) #11
  %.not666 = icmp eq i32 %2861, 0
  br i1 %.not666, label %2862, label %2863

2862:                                             ; preds = %2858, %2852
  br label %2863

2863:                                             ; preds = %2858, %2862
  %.str.5.sink1729 = phi ptr [ @.str.5, %2862 ], [ @.str.2, %2858 ]
  store i32 %2853, ptr %233, align 4, !tbaa !5
  %2864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2865 = load i32, ptr @test_count, align 4, !tbaa !5
  %2866 = load i32, ptr %179, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror(i32 noundef %2866, ptr noundef nonnull @.str.4) #11
  %2868 = load i32, ptr %179, align 4, !tbaa !5
  %2869 = call ptr @s2n_strerror_debug(i32 noundef %2868, ptr noundef nonnull @.str.4) #11
  %2870 = load i32, ptr %233, align 4, !tbaa !5
  %2871 = call ptr @strerror(i32 noundef %2870) #11
  %2872 = load i32, ptr %233, align 4, !tbaa !5
  %2873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2864, ptr noundef nonnull %.str.5.sink1729, i32 noundef %2865, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %2867, ptr noundef %2869, ptr noundef %2871, i32 noundef %2872) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2874:                                             ; preds = %2847
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = add nsw i32 %2875, 1
  store i32 %2876, ptr @test_count, align 4, !tbaa !5
  %2877 = load ptr, ptr %35, align 8, !tbaa !9
  %2878 = call i32 @s2n_set_server_name(ptr noundef %2877, ptr noundef nonnull @.str.35) #11
  %2879 = icmp eq i32 %2878, -1
  br i1 %2879, label %2880, label %2902

2880:                                             ; preds = %2874
  %2881 = load i32, ptr %233, align 4, !tbaa !5
  %2882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2883 = call i32 @s2n_print_stacktrace(ptr noundef %2882) #11
  %2884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2885 = trunc nuw i8 %2884 to i1
  br i1 %2885, label %2886, label %2890

2886:                                             ; preds = %2880
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = call i32 @fileno(ptr noundef %2887) #11
  %2889 = call i32 @isatty(i32 noundef %2888) #11
  %.not665 = icmp eq i32 %2889, 0
  br i1 %.not665, label %2890, label %2891

2890:                                             ; preds = %2886, %2880
  br label %2891

2891:                                             ; preds = %2886, %2890
  %.str.5.sink1738 = phi ptr [ @.str.5, %2890 ], [ @.str.2, %2886 ]
  store i32 %2881, ptr %233, align 4, !tbaa !5
  %2892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2893 = load i32, ptr @test_count, align 4, !tbaa !5
  %2894 = load i32, ptr %179, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror(i32 noundef %2894, ptr noundef nonnull @.str.4) #11
  %2896 = load i32, ptr %179, align 4, !tbaa !5
  %2897 = call ptr @s2n_strerror_debug(i32 noundef %2896, ptr noundef nonnull @.str.4) #11
  %2898 = load i32, ptr %233, align 4, !tbaa !5
  %2899 = call ptr @strerror(i32 noundef %2898) #11
  %2900 = load i32, ptr %233, align 4, !tbaa !5
  %2901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2892, ptr noundef nonnull %.str.5.sink1738, i32 noundef %2893, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 355, ptr noundef %2895, ptr noundef %2897, ptr noundef %2899, i32 noundef %2900) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2902:                                             ; preds = %2874
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #11
  store i64 0, ptr %36, align 8
  %2903 = load i32, ptr @test_count, align 4, !tbaa !5
  %2904 = add nsw i32 %2903, 1
  store i32 %2904, ptr @test_count, align 4, !tbaa !5
  %2905 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %36) #11
  %2906 = icmp eq i32 %2905, -1
  br i1 %2906, label %2907, label %2929

2907:                                             ; preds = %2902
  %2908 = load i32, ptr %233, align 4, !tbaa !5
  %2909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2910 = call i32 @s2n_print_stacktrace(ptr noundef %2909) #11
  %2911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2912 = trunc nuw i8 %2911 to i1
  br i1 %2912, label %2913, label %2917

2913:                                             ; preds = %2907
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = call i32 @fileno(ptr noundef %2914) #11
  %2916 = call i32 @isatty(i32 noundef %2915) #11
  %.not664 = icmp eq i32 %2916, 0
  br i1 %.not664, label %2917, label %2918

2917:                                             ; preds = %2913, %2907
  br label %2918

2918:                                             ; preds = %2913, %2917
  %.str.5.sink1747 = phi ptr [ @.str.5, %2917 ], [ @.str.2, %2913 ]
  store i32 %2908, ptr %233, align 4, !tbaa !5
  %2919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2920 = load i32, ptr @test_count, align 4, !tbaa !5
  %2921 = load i32, ptr %179, align 4, !tbaa !5
  %2922 = call ptr @s2n_strerror(i32 noundef %2921, ptr noundef nonnull @.str.4) #11
  %2923 = load i32, ptr %179, align 4, !tbaa !5
  %2924 = call ptr @s2n_strerror_debug(i32 noundef %2923, ptr noundef nonnull @.str.4) #11
  %2925 = load i32, ptr %233, align 4, !tbaa !5
  %2926 = call ptr @strerror(i32 noundef %2925) #11
  %2927 = load i32, ptr %233, align 4, !tbaa !5
  %2928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2919, ptr noundef nonnull %.str.5.sink1747, i32 noundef %2920, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %2922, ptr noundef %2924, ptr noundef %2926, i32 noundef %2927) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2929:                                             ; preds = %2902
  %2930 = load i32, ptr @test_count, align 4, !tbaa !5
  %2931 = add nsw i32 %2930, 1
  store i32 %2931, ptr @test_count, align 4, !tbaa !5
  %2932 = load ptr, ptr %35, align 8, !tbaa !9
  %2933 = call i32 @s2n_connection_set_io_pair(ptr noundef %2932, ptr noundef nonnull %36) #11
  %2934 = icmp eq i32 %2933, -1
  br i1 %2934, label %2935, label %2957

2935:                                             ; preds = %2929
  %2936 = load i32, ptr %233, align 4, !tbaa !5
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = call i32 @s2n_print_stacktrace(ptr noundef %2937) #11
  %2939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2940 = trunc nuw i8 %2939 to i1
  br i1 %2940, label %2941, label %2945

2941:                                             ; preds = %2935
  %2942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2943 = call i32 @fileno(ptr noundef %2942) #11
  %2944 = call i32 @isatty(i32 noundef %2943) #11
  %.not663 = icmp eq i32 %2944, 0
  br i1 %.not663, label %2945, label %2946

2945:                                             ; preds = %2941, %2935
  br label %2946

2946:                                             ; preds = %2941, %2945
  %.str.5.sink1756 = phi ptr [ @.str.5, %2945 ], [ @.str.2, %2941 ]
  store i32 %2936, ptr %233, align 4, !tbaa !5
  %2947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2948 = load i32, ptr @test_count, align 4, !tbaa !5
  %2949 = load i32, ptr %179, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror(i32 noundef %2949, ptr noundef nonnull @.str.4) #11
  %2951 = load i32, ptr %179, align 4, !tbaa !5
  %2952 = call ptr @s2n_strerror_debug(i32 noundef %2951, ptr noundef nonnull @.str.4) #11
  %2953 = load i32, ptr %233, align 4, !tbaa !5
  %2954 = call ptr @strerror(i32 noundef %2953) #11
  %2955 = load i32, ptr %233, align 4, !tbaa !5
  %2956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2947, ptr noundef nonnull %.str.5.sink1756, i32 noundef %2948, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 359, ptr noundef %2950, ptr noundef %2952, ptr noundef %2954, i32 noundef %2955) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2957:                                             ; preds = %2929
  %2958 = load i32, ptr @test_count, align 4, !tbaa !5
  %2959 = add nsw i32 %2958, 1
  store i32 %2959, ptr @test_count, align 4, !tbaa !5
  %2960 = load ptr, ptr %33, align 8, !tbaa !9
  %2961 = call i32 @s2n_connection_set_io_pair(ptr noundef %2960, ptr noundef nonnull %36) #11
  %2962 = icmp eq i32 %2961, -1
  br i1 %2962, label %2963, label %2985

2963:                                             ; preds = %2957
  %2964 = load i32, ptr %233, align 4, !tbaa !5
  %2965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2966 = call i32 @s2n_print_stacktrace(ptr noundef %2965) #11
  %2967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2968 = trunc nuw i8 %2967 to i1
  br i1 %2968, label %2969, label %2973

2969:                                             ; preds = %2963
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2971 = call i32 @fileno(ptr noundef %2970) #11
  %2972 = call i32 @isatty(i32 noundef %2971) #11
  %.not662 = icmp eq i32 %2972, 0
  br i1 %.not662, label %2973, label %2974

2973:                                             ; preds = %2969, %2963
  br label %2974

2974:                                             ; preds = %2969, %2973
  %.str.5.sink1765 = phi ptr [ @.str.5, %2973 ], [ @.str.2, %2969 ]
  store i32 %2964, ptr %233, align 4, !tbaa !5
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = load i32, ptr @test_count, align 4, !tbaa !5
  %2977 = load i32, ptr %179, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror(i32 noundef %2977, ptr noundef nonnull @.str.4) #11
  %2979 = load i32, ptr %179, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror_debug(i32 noundef %2979, ptr noundef nonnull @.str.4) #11
  %2981 = load i32, ptr %233, align 4, !tbaa !5
  %2982 = call ptr @strerror(i32 noundef %2981) #11
  %2983 = load i32, ptr %233, align 4, !tbaa !5
  %2984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2975, ptr noundef nonnull %.str.5.sink1765, i32 noundef %2976, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 360, ptr noundef %2978, ptr noundef %2980, ptr noundef %2982, i32 noundef %2983) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2985:                                             ; preds = %2957
  %2986 = getelementptr inbounds i8, ptr %2572, i64 16
  %2987 = load i32, ptr %2986, align 8, !tbaa !24
  %2988 = icmp eq i32 %2987, 0
  %2989 = load i32, ptr @test_count, align 4, !tbaa !5
  %2990 = add nsw i32 %2989, 1
  store i32 %2990, ptr @test_count, align 4, !tbaa !5
  %2991 = load ptr, ptr %33, align 8, !tbaa !9
  %2992 = load ptr, ptr %35, align 8, !tbaa !9
  %2993 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2991, ptr noundef %2992) #11
  %2994 = icmp eq i32 %2993, -1
  br i1 %2988, label %2995, label %3018

2995:                                             ; preds = %2985
  br i1 %2994, label %2996, label %3095

2996:                                             ; preds = %2995
  %2997 = load i32, ptr %233, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = call i32 @s2n_print_stacktrace(ptr noundef %2998) #11
  %3000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3001 = trunc nuw i8 %3000 to i1
  br i1 %3001, label %3002, label %3006

3002:                                             ; preds = %2996
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = call i32 @fileno(ptr noundef %3003) #11
  %3005 = call i32 @isatty(i32 noundef %3004) #11
  %.not661 = icmp eq i32 %3005, 0
  br i1 %.not661, label %3006, label %3007

3006:                                             ; preds = %3002, %2996
  br label %3007

3007:                                             ; preds = %3002, %3006
  %.str.5.sink1774 = phi ptr [ @.str.5, %3006 ], [ @.str.2, %3002 ]
  store i32 %2997, ptr %233, align 4, !tbaa !5
  %3008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3009 = load i32, ptr @test_count, align 4, !tbaa !5
  %3010 = load i32, ptr %179, align 4, !tbaa !5
  %3011 = call ptr @s2n_strerror(i32 noundef %3010, ptr noundef nonnull @.str.4) #11
  %3012 = load i32, ptr %179, align 4, !tbaa !5
  %3013 = call ptr @s2n_strerror_debug(i32 noundef %3012, ptr noundef nonnull @.str.4) #11
  %3014 = load i32, ptr %233, align 4, !tbaa !5
  %3015 = call ptr @strerror(i32 noundef %3014) #11
  %3016 = load i32, ptr %233, align 4, !tbaa !5
  %3017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3008, ptr noundef nonnull %.str.5.sink1774, i32 noundef %3009, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 364, ptr noundef %3011, ptr noundef %3013, ptr noundef %3015, i32 noundef %3016) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3018:                                             ; preds = %2985
  br i1 %2994, label %3041, label %3019

3019:                                             ; preds = %3018
  %3020 = load i32, ptr %233, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @s2n_print_stacktrace(ptr noundef %3021) #11
  %3023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3024 = trunc nuw i8 %3023 to i1
  br i1 %3024, label %3025, label %3029

3025:                                             ; preds = %3019
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = call i32 @fileno(ptr noundef %3026) #11
  %3028 = call i32 @isatty(i32 noundef %3027) #11
  %.not657 = icmp eq i32 %3028, 0
  br i1 %.not657, label %3029, label %3030

3029:                                             ; preds = %3025, %3019
  br label %3030

3030:                                             ; preds = %3025, %3029
  %.str.5.sink1783 = phi ptr [ @.str.5, %3029 ], [ @.str.2, %3025 ]
  store i32 %3020, ptr %233, align 4, !tbaa !5
  %3031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3032 = load i32, ptr @test_count, align 4, !tbaa !5
  %3033 = load i32, ptr %179, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror(i32 noundef %3033, ptr noundef nonnull @.str.4) #11
  %3035 = load i32, ptr %179, align 4, !tbaa !5
  %3036 = call ptr @s2n_strerror_debug(i32 noundef %3035, ptr noundef nonnull @.str.4) #11
  %3037 = load i32, ptr %233, align 4, !tbaa !5
  %3038 = call ptr @strerror(i32 noundef %3037) #11
  %3039 = load i32, ptr %233, align 4, !tbaa !5
  %3040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3031, ptr noundef nonnull %.str.5.sink1783, i32 noundef %3032, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %3034, ptr noundef %3036, ptr noundef %3038, i32 noundef %3039) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3041:                                             ; preds = %3018
  %3042 = load i32, ptr @test_count, align 4, !tbaa !5
  %3043 = add nsw i32 %3042, 1
  store i32 %3043, ptr @test_count, align 4, !tbaa !5
  %3044 = load i32, ptr %179, align 4, !tbaa !5
  %3045 = icmp eq i32 %3044, %2987
  br i1 %3045, label %3068, label %3046

3046:                                             ; preds = %3041
  %3047 = load i32, ptr %233, align 4, !tbaa !5
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @s2n_print_stacktrace(ptr noundef %3048) #11
  %3050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3051 = trunc nuw i8 %3050 to i1
  br i1 %3051, label %3052, label %3056

3052:                                             ; preds = %3046
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = call i32 @fileno(ptr noundef %3053) #11
  %3055 = call i32 @isatty(i32 noundef %3054) #11
  %.not658 = icmp eq i32 %3055, 0
  br i1 %.not658, label %3056, label %3057

3056:                                             ; preds = %3052, %3046
  br label %3057

3057:                                             ; preds = %3052, %3056
  %.str.5.sink1792 = phi ptr [ @.str.5, %3056 ], [ @.str.2, %3052 ]
  store i32 %3047, ptr %233, align 4, !tbaa !5
  %3058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3059 = load i32, ptr @test_count, align 4, !tbaa !5
  %3060 = load i32, ptr %179, align 4, !tbaa !5
  %3061 = call ptr @s2n_strerror(i32 noundef %3060, ptr noundef nonnull @.str.4) #11
  %3062 = load i32, ptr %179, align 4, !tbaa !5
  %3063 = call ptr @s2n_strerror_debug(i32 noundef %3062, ptr noundef nonnull @.str.4) #11
  %3064 = load i32, ptr %233, align 4, !tbaa !5
  %3065 = call ptr @strerror(i32 noundef %3064) #11
  %3066 = load i32, ptr %233, align 4, !tbaa !5
  %3067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3058, ptr noundef nonnull %.str.5.sink1792, i32 noundef %3059, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %3061, ptr noundef %3063, ptr noundef %3065, i32 noundef %3066) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3068:                                             ; preds = %3041
  %3069 = add nsw i32 %3042, 2
  store i32 %3069, ptr @test_count, align 4, !tbaa !5
  %3070 = call ptr @s2n_strerror_debug(i32 noundef %2987, ptr noundef nonnull @.str.4) #11
  %3071 = icmp eq ptr %3070, null
  br i1 %3071, label %3072, label %3094

3072:                                             ; preds = %3068
  %3073 = load i32, ptr %233, align 4, !tbaa !5
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = call i32 @s2n_print_stacktrace(ptr noundef %3074) #11
  %3076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3077 = trunc nuw i8 %3076 to i1
  br i1 %3077, label %3078, label %3082

3078:                                             ; preds = %3072
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = call i32 @fileno(ptr noundef %3079) #11
  %3081 = call i32 @isatty(i32 noundef %3080) #11
  %.not659 = icmp eq i32 %3081, 0
  br i1 %.not659, label %3082, label %3083

3082:                                             ; preds = %3078, %3072
  br label %3083

3083:                                             ; preds = %3078, %3082
  %.str.5.sink1801 = phi ptr [ @.str.5, %3082 ], [ @.str.2, %3078 ]
  store i32 %3073, ptr %233, align 4, !tbaa !5
  %3084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3085 = load i32, ptr @test_count, align 4, !tbaa !5
  %3086 = load i32, ptr %179, align 4, !tbaa !5
  %3087 = call ptr @s2n_strerror(i32 noundef %3086, ptr noundef nonnull @.str.4) #11
  %3088 = load i32, ptr %179, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror_debug(i32 noundef %3088, ptr noundef nonnull @.str.4) #11
  %3090 = load i32, ptr %233, align 4, !tbaa !5
  %3091 = call ptr @strerror(i32 noundef %3090) #11
  %3092 = load i32, ptr %233, align 4, !tbaa !5
  %3093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3084, ptr noundef nonnull %.str.5.sink1801, i32 noundef %3085, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %3087, ptr noundef %3089, ptr noundef %3091, i32 noundef %3092) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3094:                                             ; preds = %3068
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  br label %3095

3095:                                             ; preds = %3094, %2995
  %3096 = load i32, ptr @test_count, align 4, !tbaa !5
  %3097 = add nsw i32 %3096, 1
  store i32 %3097, ptr @test_count, align 4, !tbaa !5
  %3098 = load i32, ptr %1903, align 4, !tbaa !27
  %3099 = icmp eq i32 %3098, 1
  br i1 %3099, label %3122, label %3100

3100:                                             ; preds = %3095
  %3101 = load i32, ptr %233, align 4, !tbaa !5
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = call i32 @s2n_print_stacktrace(ptr noundef %3102) #11
  %3104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3105 = trunc nuw i8 %3104 to i1
  br i1 %3105, label %3106, label %3110

3106:                                             ; preds = %3100
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = call i32 @fileno(ptr noundef %3107) #11
  %3109 = call i32 @isatty(i32 noundef %3108) #11
  %.not660 = icmp eq i32 %3109, 0
  br i1 %.not660, label %3110, label %3111

3110:                                             ; preds = %3106, %3100
  br label %3111

3111:                                             ; preds = %3106, %3110
  %.str.5.sink1810 = phi ptr [ @.str.5, %3110 ], [ @.str.2, %3106 ]
  store i32 %3101, ptr %233, align 4, !tbaa !5
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = load i32, ptr @test_count, align 4, !tbaa !5
  %3114 = load i32, ptr %179, align 4, !tbaa !5
  %3115 = call ptr @s2n_strerror(i32 noundef %3114, ptr noundef nonnull @.str.4) #11
  %3116 = load i32, ptr %179, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror_debug(i32 noundef %3116, ptr noundef nonnull @.str.4) #11
  %3118 = load i32, ptr %233, align 4, !tbaa !5
  %3119 = call ptr @strerror(i32 noundef %3118) #11
  %3120 = load i32, ptr %233, align 4, !tbaa !5
  %3121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3112, ptr noundef nonnull %.str.5.sink1810, i32 noundef %3113, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %3115, ptr noundef %3117, ptr noundef %3119, i32 noundef %3120) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3122:                                             ; preds = %3095
  %3123 = call i32 @s2n_io_pair_close(ptr noundef nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #11
  %3124 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #11
  %3125 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #11
  %3126 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #11
  %3127 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  %indvars.iv.next792 = add nuw nsw i64 %indvars.iv791, 1
  %exitcond794.not = icmp eq i64 %indvars.iv.next792, 4
  br i1 %exitcond794.not, label %.preheader760, label %2433, !llvm.loop !31

3128:                                             ; preds = %.preheader760, %3844
  %indvars.iv795 = phi i64 [ 0, %.preheader760 ], [ %indvars.iv.next796, %3844 ]
  %3129 = call zeroext i8 @s2n_x509_ocsp_stapling_supported() #11
  %.not556 = icmp eq i8 %3129, 0
  br i1 %.not556, label %3851, label %3130

3130:                                             ; preds = %3128
  %3131 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %3131, label %3132, label %3851

3132:                                             ; preds = %3130
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %37) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %37, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #11
  store i32 0, ptr %38, align 4, !tbaa !5
  %3133 = load i32, ptr @test_count, align 4, !tbaa !5
  %3134 = add nsw i32 %3133, 1
  store i32 %3134, ptr @test_count, align 4, !tbaa !5
  %3135 = call i32 @s2n_read_test_pem_and_len(ptr noundef nonnull @.str.73, ptr noundef nonnull %37, ptr noundef nonnull %38, i64 noundef 12000) #11
  %3136 = icmp eq i32 %3135, -1
  br i1 %3136, label %3137, label %3159

3137:                                             ; preds = %3132
  %3138 = load i32, ptr %233, align 4, !tbaa !5
  %3139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3140 = call i32 @s2n_print_stacktrace(ptr noundef %3139) #11
  %3141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3142 = trunc nuw i8 %3141 to i1
  br i1 %3142, label %3143, label %3147

3143:                                             ; preds = %3137
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = call i32 @fileno(ptr noundef %3144) #11
  %3146 = call i32 @isatty(i32 noundef %3145) #11
  %.not656 = icmp eq i32 %3146, 0
  br i1 %.not656, label %3147, label %3148

3147:                                             ; preds = %3143, %3137
  br label %3148

3148:                                             ; preds = %3143, %3147
  %.str.5.sink1819 = phi ptr [ @.str.5, %3147 ], [ @.str.2, %3143 ]
  store i32 %3138, ptr %233, align 4, !tbaa !5
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = load i32, ptr @test_count, align 4, !tbaa !5
  %3151 = load i32, ptr %179, align 4, !tbaa !5
  %3152 = call ptr @s2n_strerror(i32 noundef %3151, ptr noundef nonnull @.str.4) #11
  %3153 = load i32, ptr %179, align 4, !tbaa !5
  %3154 = call ptr @s2n_strerror_debug(i32 noundef %3153, ptr noundef nonnull @.str.4) #11
  %3155 = load i32, ptr %233, align 4, !tbaa !5
  %3156 = call ptr @strerror(i32 noundef %3155) #11
  %3157 = load i32, ptr %233, align 4, !tbaa !5
  %3158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3149, ptr noundef nonnull %.str.5.sink1819, i32 noundef %3150, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %3152, ptr noundef %3154, ptr noundef %3156, i32 noundef %3157) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3159:                                             ; preds = %3132
  %3160 = load i32, ptr @test_count, align 4, !tbaa !5
  %3161 = add nsw i32 %3160, 1
  store i32 %3161, ptr @test_count, align 4, !tbaa !5
  %3162 = load i32, ptr %38, align 4, !tbaa !5
  %.not630 = icmp eq i32 %3162, 0
  br i1 %.not630, label %3163, label %3185

3163:                                             ; preds = %3159
  %3164 = load i32, ptr %233, align 4, !tbaa !5
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = call i32 @s2n_print_stacktrace(ptr noundef %3165) #11
  %3167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3168 = trunc nuw i8 %3167 to i1
  br i1 %3168, label %3169, label %3173

3169:                                             ; preds = %3163
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = call i32 @fileno(ptr noundef %3170) #11
  %3172 = call i32 @isatty(i32 noundef %3171) #11
  %.not631 = icmp eq i32 %3172, 0
  br i1 %.not631, label %3173, label %3174

3173:                                             ; preds = %3169, %3163
  br label %3174

3174:                                             ; preds = %3169, %3173
  %.str.5.sink1828 = phi ptr [ @.str.5, %3173 ], [ @.str.2, %3169 ]
  store i32 %3164, ptr %233, align 4, !tbaa !5
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = load i32, ptr @test_count, align 4, !tbaa !5
  %3177 = load i32, ptr %179, align 4, !tbaa !5
  %3178 = call ptr @s2n_strerror(i32 noundef %3177, ptr noundef nonnull @.str.4) #11
  %3179 = load i32, ptr %179, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror_debug(i32 noundef %3179, ptr noundef nonnull @.str.4) #11
  %3181 = load i32, ptr %233, align 4, !tbaa !5
  %3182 = call ptr @strerror(i32 noundef %3181) #11
  %3183 = load i32, ptr %233, align 4, !tbaa !5
  %3184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3175, ptr noundef nonnull %.str.5.sink1828, i32 noundef %3176, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %3178, ptr noundef %3180, ptr noundef %3182, i32 noundef %3183) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3185:                                             ; preds = %3159
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #11
  store ptr null, ptr %39, align 8, !tbaa !9
  %3186 = add nsw i32 %3160, 2
  store i32 %3186, ptr @test_count, align 4, !tbaa !5
  %3187 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %39, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.77) #11
  %3188 = icmp eq i32 %3187, -1
  br i1 %3188, label %3189, label %3211

3189:                                             ; preds = %3185
  %3190 = load i32, ptr %233, align 4, !tbaa !5
  %3191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3192 = call i32 @s2n_print_stacktrace(ptr noundef %3191) #11
  %3193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3194 = trunc nuw i8 %3193 to i1
  br i1 %3194, label %3195, label %3199

3195:                                             ; preds = %3189
  %3196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3197 = call i32 @fileno(ptr noundef %3196) #11
  %3198 = call i32 @isatty(i32 noundef %3197) #11
  %.not655 = icmp eq i32 %3198, 0
  br i1 %.not655, label %3199, label %3200

3199:                                             ; preds = %3195, %3189
  br label %3200

3200:                                             ; preds = %3195, %3199
  %.str.5.sink1837 = phi ptr [ @.str.5, %3199 ], [ @.str.2, %3195 ]
  store i32 %3190, ptr %233, align 4, !tbaa !5
  %3201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3202 = load i32, ptr @test_count, align 4, !tbaa !5
  %3203 = load i32, ptr %179, align 4, !tbaa !5
  %3204 = call ptr @s2n_strerror(i32 noundef %3203, ptr noundef nonnull @.str.4) #11
  %3205 = load i32, ptr %179, align 4, !tbaa !5
  %3206 = call ptr @s2n_strerror_debug(i32 noundef %3205, ptr noundef nonnull @.str.4) #11
  %3207 = load i32, ptr %233, align 4, !tbaa !5
  %3208 = call ptr @strerror(i32 noundef %3207) #11
  %3209 = load i32, ptr %233, align 4, !tbaa !5
  %3210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3201, ptr noundef nonnull %.str.5.sink1837, i32 noundef %3202, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %3204, ptr noundef %3206, ptr noundef %3208, i32 noundef %3209) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3211:                                             ; preds = %3185
  %3212 = load i32, ptr @test_count, align 4, !tbaa !5
  %3213 = add nsw i32 %3212, 1
  store i32 %3213, ptr @test_count, align 4, !tbaa !5
  %3214 = load ptr, ptr %39, align 8, !tbaa !9
  %3215 = load i32, ptr %38, align 4, !tbaa !5
  %3216 = call i32 @s2n_cert_chain_and_key_set_ocsp_data(ptr noundef %3214, ptr noundef nonnull %37, i32 noundef %3215) #11
  %3217 = icmp eq i32 %3216, -1
  br i1 %3217, label %3218, label %3240

3218:                                             ; preds = %3211
  %3219 = load i32, ptr %233, align 4, !tbaa !5
  %3220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3221 = call i32 @s2n_print_stacktrace(ptr noundef %3220) #11
  %3222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3223 = trunc nuw i8 %3222 to i1
  br i1 %3223, label %3224, label %3228

3224:                                             ; preds = %3218
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = call i32 @fileno(ptr noundef %3225) #11
  %3227 = call i32 @isatty(i32 noundef %3226) #11
  %.not654 = icmp eq i32 %3227, 0
  br i1 %.not654, label %3228, label %3229

3228:                                             ; preds = %3224, %3218
  br label %3229

3229:                                             ; preds = %3224, %3228
  %.str.5.sink1846 = phi ptr [ @.str.5, %3228 ], [ @.str.2, %3224 ]
  store i32 %3219, ptr %233, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = load i32, ptr @test_count, align 4, !tbaa !5
  %3232 = load i32, ptr %179, align 4, !tbaa !5
  %3233 = call ptr @s2n_strerror(i32 noundef %3232, ptr noundef nonnull @.str.4) #11
  %3234 = load i32, ptr %179, align 4, !tbaa !5
  %3235 = call ptr @s2n_strerror_debug(i32 noundef %3234, ptr noundef nonnull @.str.4) #11
  %3236 = load i32, ptr %233, align 4, !tbaa !5
  %3237 = call ptr @strerror(i32 noundef %3236) #11
  %3238 = load i32, ptr %233, align 4, !tbaa !5
  %3239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3230, ptr noundef nonnull %.str.5.sink1846, i32 noundef %3231, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %3233, ptr noundef %3235, ptr noundef %3237, i32 noundef %3238) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3240:                                             ; preds = %3211
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #11
  %3241 = call ptr @s2n_config_new() #11
  store ptr %3241, ptr %40, align 8, !tbaa !9
  %3242 = load i32, ptr @test_count, align 4, !tbaa !5
  %3243 = add nsw i32 %3242, 1
  store i32 %3243, ptr @test_count, align 4, !tbaa !5
  %3244 = icmp eq ptr %3241, null
  br i1 %3244, label %3245, label %3267

3245:                                             ; preds = %3240
  %3246 = load i32, ptr %233, align 4, !tbaa !5
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = call i32 @s2n_print_stacktrace(ptr noundef %3247) #11
  %3249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3250 = trunc nuw i8 %3249 to i1
  br i1 %3250, label %3251, label %3255

3251:                                             ; preds = %3245
  %3252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3253 = call i32 @fileno(ptr noundef %3252) #11
  %3254 = call i32 @isatty(i32 noundef %3253) #11
  %.not653 = icmp eq i32 %3254, 0
  br i1 %.not653, label %3255, label %3256

3255:                                             ; preds = %3251, %3245
  br label %3256

3256:                                             ; preds = %3251, %3255
  %.str.5.sink1855 = phi ptr [ @.str.5, %3255 ], [ @.str.2, %3251 ]
  store i32 %3246, ptr %233, align 4, !tbaa !5
  %3257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3258 = load i32, ptr @test_count, align 4, !tbaa !5
  %3259 = load i32, ptr %179, align 4, !tbaa !5
  %3260 = call ptr @s2n_strerror(i32 noundef %3259, ptr noundef nonnull @.str.4) #11
  %3261 = load i32, ptr %179, align 4, !tbaa !5
  %3262 = call ptr @s2n_strerror_debug(i32 noundef %3261, ptr noundef nonnull @.str.4) #11
  %3263 = load i32, ptr %233, align 4, !tbaa !5
  %3264 = call ptr @strerror(i32 noundef %3263) #11
  %3265 = load i32, ptr %233, align 4, !tbaa !5
  %3266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3257, ptr noundef nonnull %.str.5.sink1855, i32 noundef %3258, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %3260, ptr noundef %3262, ptr noundef %3264, i32 noundef %3265) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3267:                                             ; preds = %3240
  %3268 = add nsw i32 %3242, 2
  store i32 %3268, ptr @test_count, align 4, !tbaa !5
  %3269 = load ptr, ptr %39, align 8, !tbaa !9
  %3270 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %3241, ptr noundef %3269) #11
  %3271 = icmp eq i32 %3270, -1
  br i1 %3271, label %3272, label %3294

3272:                                             ; preds = %3267
  %3273 = load i32, ptr %233, align 4, !tbaa !5
  %3274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3275 = call i32 @s2n_print_stacktrace(ptr noundef %3274) #11
  %3276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3277 = trunc nuw i8 %3276 to i1
  br i1 %3277, label %3278, label %3282

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

3282:                                             ; preds = %3278, %3272
  br label %3283

3283:                                             ; preds = %3278, %3282
  %.str.5.sink1864 = phi ptr [ @.str.5, %3282 ], [ @.str.2, %3278 ]
  store i32 %3273, ptr %233, align 4, !tbaa !5
  %3284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3285 = load i32, ptr @test_count, align 4, !tbaa !5
  %3286 = load i32, ptr %179, align 4, !tbaa !5
  %3287 = call ptr @s2n_strerror(i32 noundef %3286, ptr noundef nonnull @.str.4) #11
  %3288 = load i32, ptr %179, align 4, !tbaa !5
  %3289 = call ptr @s2n_strerror_debug(i32 noundef %3288, ptr noundef nonnull @.str.4) #11
  %3290 = load i32, ptr %233, align 4, !tbaa !5
  %3291 = call ptr @strerror(i32 noundef %3290) #11
  %3292 = load i32, ptr %233, align 4, !tbaa !5
  %3293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3284, ptr noundef nonnull %.str.5.sink1864, i32 noundef %3285, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %3287, ptr noundef %3289, ptr noundef %3291, i32 noundef %3292) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3294:                                             ; preds = %3267
  %3295 = load i32, ptr @test_count, align 4, !tbaa !5
  %3296 = add nsw i32 %3295, 1
  store i32 %3296, ptr @test_count, align 4, !tbaa !5
  %3297 = load ptr, ptr %40, align 8, !tbaa !9
  %3298 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3297, ptr noundef nonnull @.str.81) #11
  %3299 = icmp eq i32 %3298, -1
  br i1 %3299, label %3300, label %3322

3300:                                             ; preds = %3294
  %3301 = load i32, ptr %233, align 4, !tbaa !5
  %3302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3303 = call i32 @s2n_print_stacktrace(ptr noundef %3302) #11
  %3304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3305 = trunc nuw i8 %3304 to i1
  br i1 %3305, label %3306, label %3310

3306:                                             ; preds = %3300
  %3307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3308 = call i32 @fileno(ptr noundef %3307) #11
  %3309 = call i32 @isatty(i32 noundef %3308) #11
  %.not651 = icmp eq i32 %3309, 0
  br i1 %.not651, label %3310, label %3311

3310:                                             ; preds = %3306, %3300
  br label %3311

3311:                                             ; preds = %3306, %3310
  %.str.5.sink1873 = phi ptr [ @.str.5, %3310 ], [ @.str.2, %3306 ]
  store i32 %3301, ptr %233, align 4, !tbaa !5
  %3312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3313 = load i32, ptr @test_count, align 4, !tbaa !5
  %3314 = load i32, ptr %179, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror(i32 noundef %3314, ptr noundef nonnull @.str.4) #11
  %3316 = load i32, ptr %179, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror_debug(i32 noundef %3316, ptr noundef nonnull @.str.4) #11
  %3318 = load i32, ptr %233, align 4, !tbaa !5
  %3319 = call ptr @strerror(i32 noundef %3318) #11
  %3320 = load i32, ptr %233, align 4, !tbaa !5
  %3321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3312, ptr noundef nonnull %.str.5.sink1873, i32 noundef %3313, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 403, ptr noundef %3315, ptr noundef %3317, ptr noundef %3319, i32 noundef %3320) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3322:                                             ; preds = %3294
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #11
  %3323 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3323, ptr %41, align 8, !tbaa !9
  %3324 = load i32, ptr @test_count, align 4, !tbaa !5
  %3325 = add nsw i32 %3324, 1
  store i32 %3325, ptr @test_count, align 4, !tbaa !5
  %3326 = icmp eq ptr %3323, null
  br i1 %3326, label %3327, label %3349

3327:                                             ; preds = %3322
  %3328 = load i32, ptr %233, align 4, !tbaa !5
  %3329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3330 = call i32 @s2n_print_stacktrace(ptr noundef %3329) #11
  %3331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3332 = trunc nuw i8 %3331 to i1
  br i1 %3332, label %3333, label %3337

3333:                                             ; preds = %3327
  %3334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3335 = call i32 @fileno(ptr noundef %3334) #11
  %3336 = call i32 @isatty(i32 noundef %3335) #11
  %.not650 = icmp eq i32 %3336, 0
  br i1 %.not650, label %3337, label %3338

3337:                                             ; preds = %3333, %3327
  br label %3338

3338:                                             ; preds = %3333, %3337
  %.str.5.sink1882 = phi ptr [ @.str.5, %3337 ], [ @.str.2, %3333 ]
  store i32 %3328, ptr %233, align 4, !tbaa !5
  %3339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3340 = load i32, ptr @test_count, align 4, !tbaa !5
  %3341 = load i32, ptr %179, align 4, !tbaa !5
  %3342 = call ptr @s2n_strerror(i32 noundef %3341, ptr noundef nonnull @.str.4) #11
  %3343 = load i32, ptr %179, align 4, !tbaa !5
  %3344 = call ptr @s2n_strerror_debug(i32 noundef %3343, ptr noundef nonnull @.str.4) #11
  %3345 = load i32, ptr %233, align 4, !tbaa !5
  %3346 = call ptr @strerror(i32 noundef %3345) #11
  %3347 = load i32, ptr %233, align 4, !tbaa !5
  %3348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3339, ptr noundef nonnull %.str.5.sink1882, i32 noundef %3340, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 406, ptr noundef %3342, ptr noundef %3344, ptr noundef %3346, i32 noundef %3347) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3349:                                             ; preds = %3322
  %3350 = add nsw i32 %3324, 2
  store i32 %3350, ptr @test_count, align 4, !tbaa !5
  %3351 = load ptr, ptr %40, align 8, !tbaa !9
  %3352 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3323, ptr noundef %3351) #11
  %3353 = icmp eq i32 %3352, -1
  br i1 %3353, label %3354, label %3376

3354:                                             ; preds = %3349
  %3355 = load i32, ptr %233, align 4, !tbaa !5
  %3356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3357 = call i32 @s2n_print_stacktrace(ptr noundef %3356) #11
  %3358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3359 = trunc nuw i8 %3358 to i1
  br i1 %3359, label %3360, label %3364

3360:                                             ; preds = %3354
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = call i32 @fileno(ptr noundef %3361) #11
  %3363 = call i32 @isatty(i32 noundef %3362) #11
  %.not649 = icmp eq i32 %3363, 0
  br i1 %.not649, label %3364, label %3365

3364:                                             ; preds = %3360, %3354
  br label %3365

3365:                                             ; preds = %3360, %3364
  %.str.5.sink1891 = phi ptr [ @.str.5, %3364 ], [ @.str.2, %3360 ]
  store i32 %3355, ptr %233, align 4, !tbaa !5
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = load i32, ptr @test_count, align 4, !tbaa !5
  %3368 = load i32, ptr %179, align 4, !tbaa !5
  %3369 = call ptr @s2n_strerror(i32 noundef %3368, ptr noundef nonnull @.str.4) #11
  %3370 = load i32, ptr %179, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror_debug(i32 noundef %3370, ptr noundef nonnull @.str.4) #11
  %3372 = load i32, ptr %233, align 4, !tbaa !5
  %3373 = call ptr @strerror(i32 noundef %3372) #11
  %3374 = load i32, ptr %233, align 4, !tbaa !5
  %3375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3366, ptr noundef nonnull %.str.5.sink1891, i32 noundef %3367, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %3369, ptr noundef %3371, ptr noundef %3373, i32 noundef %3374) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3376:                                             ; preds = %3349
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  %3377 = call ptr @s2n_config_new() #11
  store ptr %3377, ptr %42, align 8, !tbaa !9
  %3378 = load i32, ptr @test_count, align 4, !tbaa !5
  %3379 = add nsw i32 %3378, 1
  store i32 %3379, ptr @test_count, align 4, !tbaa !5
  %3380 = icmp eq ptr %3377, null
  br i1 %3380, label %3381, label %3403

3381:                                             ; preds = %3376
  %3382 = load i32, ptr %233, align 4, !tbaa !5
  %3383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3384 = call i32 @s2n_print_stacktrace(ptr noundef %3383) #11
  %3385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3386 = trunc nuw i8 %3385 to i1
  br i1 %3386, label %3387, label %3391

3387:                                             ; preds = %3381
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = call i32 @fileno(ptr noundef %3388) #11
  %3390 = call i32 @isatty(i32 noundef %3389) #11
  %.not648 = icmp eq i32 %3390, 0
  br i1 %.not648, label %3391, label %3392

3391:                                             ; preds = %3387, %3381
  br label %3392

3392:                                             ; preds = %3387, %3391
  %.str.5.sink1900 = phi ptr [ @.str.5, %3391 ], [ @.str.2, %3387 ]
  store i32 %3382, ptr %233, align 4, !tbaa !5
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = load i32, ptr %179, align 4, !tbaa !5
  %3396 = call ptr @s2n_strerror(i32 noundef %3395, ptr noundef nonnull @.str.4) #11
  %3397 = load i32, ptr %179, align 4, !tbaa !5
  %3398 = call ptr @s2n_strerror_debug(i32 noundef %3397, ptr noundef nonnull @.str.4) #11
  %3399 = load i32, ptr %233, align 4, !tbaa !5
  %3400 = call ptr @strerror(i32 noundef %3399) #11
  %3401 = load i32, ptr %233, align 4, !tbaa !5
  %3402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3393, ptr noundef nonnull %.str.5.sink1900, i32 noundef %3394, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %3396, ptr noundef %3398, ptr noundef %3400, i32 noundef %3401) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3403:                                             ; preds = %3376
  %3404 = add nsw i32 %3378, 2
  store i32 %3404, ptr @test_count, align 4, !tbaa !5
  %3405 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %3377, ptr noundef nonnull @.str.83, ptr noundef null) #11
  %3406 = icmp eq i32 %3405, -1
  br i1 %3406, label %3407, label %3429

3407:                                             ; preds = %3403
  %3408 = load i32, ptr %233, align 4, !tbaa !5
  %3409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3410 = call i32 @s2n_print_stacktrace(ptr noundef %3409) #11
  %3411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3412 = trunc nuw i8 %3411 to i1
  br i1 %3412, label %3413, label %3417

3413:                                             ; preds = %3407
  %3414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3415 = call i32 @fileno(ptr noundef %3414) #11
  %3416 = call i32 @isatty(i32 noundef %3415) #11
  %.not647 = icmp eq i32 %3416, 0
  br i1 %.not647, label %3417, label %3418

3417:                                             ; preds = %3413, %3407
  br label %3418

3418:                                             ; preds = %3413, %3417
  %.str.5.sink1909 = phi ptr [ @.str.5, %3417 ], [ @.str.2, %3413 ]
  store i32 %3408, ptr %233, align 4, !tbaa !5
  %3419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3420 = load i32, ptr @test_count, align 4, !tbaa !5
  %3421 = load i32, ptr %179, align 4, !tbaa !5
  %3422 = call ptr @s2n_strerror(i32 noundef %3421, ptr noundef nonnull @.str.4) #11
  %3423 = load i32, ptr %179, align 4, !tbaa !5
  %3424 = call ptr @s2n_strerror_debug(i32 noundef %3423, ptr noundef nonnull @.str.4) #11
  %3425 = load i32, ptr %233, align 4, !tbaa !5
  %3426 = call ptr @strerror(i32 noundef %3425) #11
  %3427 = load i32, ptr %233, align 4, !tbaa !5
  %3428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3419, ptr noundef nonnull %.str.5.sink1909, i32 noundef %3420, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 411, ptr noundef %3422, ptr noundef %3424, ptr noundef %3426, i32 noundef %3427) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3429:                                             ; preds = %3403
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = add nsw i32 %3430, 1
  store i32 %3431, ptr @test_count, align 4, !tbaa !5
  %3432 = load ptr, ptr %42, align 8, !tbaa !9
  %3433 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3432, ptr noundef nonnull @.str.81) #11
  %3434 = icmp eq i32 %3433, -1
  br i1 %3434, label %3435, label %3457

3435:                                             ; preds = %3429
  %3436 = load i32, ptr %233, align 4, !tbaa !5
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = call i32 @s2n_print_stacktrace(ptr noundef %3437) #11
  %3439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3440 = trunc nuw i8 %3439 to i1
  br i1 %3440, label %3441, label %3445

3441:                                             ; preds = %3435
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = call i32 @fileno(ptr noundef %3442) #11
  %3444 = call i32 @isatty(i32 noundef %3443) #11
  %.not646 = icmp eq i32 %3444, 0
  br i1 %.not646, label %3445, label %3446

3445:                                             ; preds = %3441, %3435
  br label %3446

3446:                                             ; preds = %3441, %3445
  %.str.5.sink1918 = phi ptr [ @.str.5, %3445 ], [ @.str.2, %3441 ]
  store i32 %3436, ptr %233, align 4, !tbaa !5
  %3447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3448 = load i32, ptr @test_count, align 4, !tbaa !5
  %3449 = load i32, ptr %179, align 4, !tbaa !5
  %3450 = call ptr @s2n_strerror(i32 noundef %3449, ptr noundef nonnull @.str.4) #11
  %3451 = load i32, ptr %179, align 4, !tbaa !5
  %3452 = call ptr @s2n_strerror_debug(i32 noundef %3451, ptr noundef nonnull @.str.4) #11
  %3453 = load i32, ptr %233, align 4, !tbaa !5
  %3454 = call ptr @strerror(i32 noundef %3453) #11
  %3455 = load i32, ptr %233, align 4, !tbaa !5
  %3456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3447, ptr noundef nonnull %.str.5.sink1918, i32 noundef %3448, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 412, ptr noundef %3450, ptr noundef %3452, ptr noundef %3454, i32 noundef %3455) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3457:                                             ; preds = %3429
  %3458 = load i32, ptr @test_count, align 4, !tbaa !5
  %3459 = add nsw i32 %3458, 1
  store i32 %3459, ptr @test_count, align 4, !tbaa !5
  %3460 = load ptr, ptr %42, align 8, !tbaa !9
  %3461 = call i32 @s2n_config_set_status_request_type(ptr noundef %3460, i32 noundef 1) #11
  %3462 = icmp eq i32 %3461, -1
  br i1 %3462, label %3463, label %3485

3463:                                             ; preds = %3457
  %3464 = load i32, ptr %233, align 4, !tbaa !5
  %3465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3466 = call i32 @s2n_print_stacktrace(ptr noundef %3465) #11
  %3467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3468 = trunc nuw i8 %3467 to i1
  br i1 %3468, label %3469, label %3473

3469:                                             ; preds = %3463
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = call i32 @fileno(ptr noundef %3470) #11
  %3472 = call i32 @isatty(i32 noundef %3471) #11
  %.not645 = icmp eq i32 %3472, 0
  br i1 %.not645, label %3473, label %3474

3473:                                             ; preds = %3469, %3463
  br label %3474

3474:                                             ; preds = %3469, %3473
  %.str.5.sink1927 = phi ptr [ @.str.5, %3473 ], [ @.str.2, %3469 ]
  store i32 %3464, ptr %233, align 4, !tbaa !5
  %3475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3476 = load i32, ptr @test_count, align 4, !tbaa !5
  %3477 = load i32, ptr %179, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror(i32 noundef %3477, ptr noundef nonnull @.str.4) #11
  %3479 = load i32, ptr %179, align 4, !tbaa !5
  %3480 = call ptr @s2n_strerror_debug(i32 noundef %3479, ptr noundef nonnull @.str.4) #11
  %3481 = load i32, ptr %233, align 4, !tbaa !5
  %3482 = call ptr @strerror(i32 noundef %3481) #11
  %3483 = load i32, ptr %233, align 4, !tbaa !5
  %3484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3475, ptr noundef nonnull %.str.5.sink1927, i32 noundef %3476, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %3478, ptr noundef %3480, ptr noundef %3482, i32 noundef %3483) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3485:                                             ; preds = %3457
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %43) #11
  %3486 = getelementptr inbounds [4 x %struct.anon], ptr @__const.main.test_cases, i64 0, i64 %indvars.iv795
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(16) %3486, i64 16, i1 false), !tbaa.struct !18
  %3487 = load i32, ptr @test_count, align 4, !tbaa !5
  %3488 = add nsw i32 %3487, 1
  store i32 %3488, ptr @test_count, align 4, !tbaa !5
  %3489 = load ptr, ptr %42, align 8, !tbaa !9
  %3490 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %3489, ptr noundef nonnull @s2n_test_cert_validation_callback_self_talk_ocsp, ptr noundef nonnull %43) #11
  %3491 = icmp eq i32 %3490, -1
  br i1 %3491, label %3492, label %3514

3492:                                             ; preds = %3485
  %3493 = load i32, ptr %233, align 4, !tbaa !5
  %3494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3495 = call i32 @s2n_print_stacktrace(ptr noundef %3494) #11
  %3496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3497 = trunc nuw i8 %3496 to i1
  br i1 %3497, label %3498, label %3502

3498:                                             ; preds = %3492
  %3499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3500 = call i32 @fileno(ptr noundef %3499) #11
  %3501 = call i32 @isatty(i32 noundef %3500) #11
  %.not644 = icmp eq i32 %3501, 0
  br i1 %.not644, label %3502, label %3503

3502:                                             ; preds = %3498, %3492
  br label %3503

3503:                                             ; preds = %3498, %3502
  %.str.5.sink1936 = phi ptr [ @.str.5, %3502 ], [ @.str.2, %3498 ]
  store i32 %3493, ptr %233, align 4, !tbaa !5
  %3504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3505 = load i32, ptr @test_count, align 4, !tbaa !5
  %3506 = load i32, ptr %179, align 4, !tbaa !5
  %3507 = call ptr @s2n_strerror(i32 noundef %3506, ptr noundef nonnull @.str.4) #11
  %3508 = load i32, ptr %179, align 4, !tbaa !5
  %3509 = call ptr @s2n_strerror_debug(i32 noundef %3508, ptr noundef nonnull @.str.4) #11
  %3510 = load i32, ptr %233, align 4, !tbaa !5
  %3511 = call ptr @strerror(i32 noundef %3510) #11
  %3512 = load i32, ptr %233, align 4, !tbaa !5
  %3513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3504, ptr noundef nonnull %.str.5.sink1936, i32 noundef %3505, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %3507, ptr noundef %3509, ptr noundef %3511, i32 noundef %3512) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3514:                                             ; preds = %3485
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #11
  %3515 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %3515, ptr %44, align 8, !tbaa !9
  %3516 = load i32, ptr @test_count, align 4, !tbaa !5
  %3517 = add nsw i32 %3516, 1
  store i32 %3517, ptr @test_count, align 4, !tbaa !5
  %3518 = icmp eq ptr %3515, null
  br i1 %3518, label %3519, label %3541

3519:                                             ; preds = %3514
  %3520 = load i32, ptr %233, align 4, !tbaa !5
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = call i32 @s2n_print_stacktrace(ptr noundef %3521) #11
  %3523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3524 = trunc nuw i8 %3523 to i1
  br i1 %3524, label %3525, label %3529

3525:                                             ; preds = %3519
  %3526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3527 = call i32 @fileno(ptr noundef %3526) #11
  %3528 = call i32 @isatty(i32 noundef %3527) #11
  %.not643 = icmp eq i32 %3528, 0
  br i1 %.not643, label %3529, label %3530

3529:                                             ; preds = %3525, %3519
  br label %3530

3530:                                             ; preds = %3525, %3529
  %.str.5.sink1945 = phi ptr [ @.str.5, %3529 ], [ @.str.2, %3525 ]
  store i32 %3520, ptr %233, align 4, !tbaa !5
  %3531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3532 = load i32, ptr @test_count, align 4, !tbaa !5
  %3533 = load i32, ptr %179, align 4, !tbaa !5
  %3534 = call ptr @s2n_strerror(i32 noundef %3533, ptr noundef nonnull @.str.4) #11
  %3535 = load i32, ptr %179, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror_debug(i32 noundef %3535, ptr noundef nonnull @.str.4) #11
  %3537 = load i32, ptr %233, align 4, !tbaa !5
  %3538 = call ptr @strerror(i32 noundef %3537) #11
  %3539 = load i32, ptr %233, align 4, !tbaa !5
  %3540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3531, ptr noundef nonnull %.str.5.sink1945, i32 noundef %3532, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 420, ptr noundef %3534, ptr noundef %3536, ptr noundef %3538, i32 noundef %3539) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3541:                                             ; preds = %3514
  %3542 = add nsw i32 %3516, 2
  store i32 %3542, ptr @test_count, align 4, !tbaa !5
  %3543 = load ptr, ptr %42, align 8, !tbaa !9
  %3544 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3515, ptr noundef %3543) #11
  %3545 = icmp eq i32 %3544, -1
  br i1 %3545, label %3546, label %3568

3546:                                             ; preds = %3541
  %3547 = load i32, ptr %233, align 4, !tbaa !5
  %3548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3549 = call i32 @s2n_print_stacktrace(ptr noundef %3548) #11
  %3550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3551 = trunc nuw i8 %3550 to i1
  br i1 %3551, label %3552, label %3556

3552:                                             ; preds = %3546
  %3553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3554 = call i32 @fileno(ptr noundef %3553) #11
  %3555 = call i32 @isatty(i32 noundef %3554) #11
  %.not642 = icmp eq i32 %3555, 0
  br i1 %.not642, label %3556, label %3557

3556:                                             ; preds = %3552, %3546
  br label %3557

3557:                                             ; preds = %3552, %3556
  %.str.5.sink1954 = phi ptr [ @.str.5, %3556 ], [ @.str.2, %3552 ]
  store i32 %3547, ptr %233, align 4, !tbaa !5
  %3558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3559 = load i32, ptr @test_count, align 4, !tbaa !5
  %3560 = load i32, ptr %179, align 4, !tbaa !5
  %3561 = call ptr @s2n_strerror(i32 noundef %3560, ptr noundef nonnull @.str.4) #11
  %3562 = load i32, ptr %179, align 4, !tbaa !5
  %3563 = call ptr @s2n_strerror_debug(i32 noundef %3562, ptr noundef nonnull @.str.4) #11
  %3564 = load i32, ptr %233, align 4, !tbaa !5
  %3565 = call ptr @strerror(i32 noundef %3564) #11
  %3566 = load i32, ptr %233, align 4, !tbaa !5
  %3567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3558, ptr noundef nonnull %.str.5.sink1954, i32 noundef %3559, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 421, ptr noundef %3561, ptr noundef %3563, ptr noundef %3565, i32 noundef %3566) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3568:                                             ; preds = %3541
  %3569 = load i32, ptr @test_count, align 4, !tbaa !5
  %3570 = add nsw i32 %3569, 1
  store i32 %3570, ptr @test_count, align 4, !tbaa !5
  %3571 = load ptr, ptr %44, align 8, !tbaa !9
  %3572 = call i32 @s2n_set_server_name(ptr noundef %3571, ptr noundef nonnull @.str.88) #11
  %3573 = icmp eq i32 %3572, -1
  br i1 %3573, label %3574, label %3596

3574:                                             ; preds = %3568
  %3575 = load i32, ptr %233, align 4, !tbaa !5
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = call i32 @s2n_print_stacktrace(ptr noundef %3576) #11
  %3578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3579 = trunc nuw i8 %3578 to i1
  br i1 %3579, label %3580, label %3584

3580:                                             ; preds = %3574
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = call i32 @fileno(ptr noundef %3581) #11
  %3583 = call i32 @isatty(i32 noundef %3582) #11
  %.not641 = icmp eq i32 %3583, 0
  br i1 %.not641, label %3584, label %3585

3584:                                             ; preds = %3580, %3574
  br label %3585

3585:                                             ; preds = %3580, %3584
  %.str.5.sink1963 = phi ptr [ @.str.5, %3584 ], [ @.str.2, %3580 ]
  store i32 %3575, ptr %233, align 4, !tbaa !5
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = load i32, ptr @test_count, align 4, !tbaa !5
  %3588 = load i32, ptr %179, align 4, !tbaa !5
  %3589 = call ptr @s2n_strerror(i32 noundef %3588, ptr noundef nonnull @.str.4) #11
  %3590 = load i32, ptr %179, align 4, !tbaa !5
  %3591 = call ptr @s2n_strerror_debug(i32 noundef %3590, ptr noundef nonnull @.str.4) #11
  %3592 = load i32, ptr %233, align 4, !tbaa !5
  %3593 = call ptr @strerror(i32 noundef %3592) #11
  %3594 = load i32, ptr %233, align 4, !tbaa !5
  %3595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3586, ptr noundef nonnull %.str.5.sink1963, i32 noundef %3587, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %3589, ptr noundef %3591, ptr noundef %3593, i32 noundef %3594) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3596:                                             ; preds = %3568
  %3597 = load i32, ptr @test_count, align 4, !tbaa !5
  %3598 = add nsw i32 %3597, 1
  store i32 %3598, ptr @test_count, align 4, !tbaa !5
  %3599 = load ptr, ptr %44, align 8, !tbaa !9
  %3600 = call i32 @s2n_connection_set_blinding(ptr noundef %3599, i32 noundef 1) #11
  %3601 = icmp eq i32 %3600, -1
  br i1 %3601, label %3602, label %3624

3602:                                             ; preds = %3596
  %3603 = load i32, ptr %233, align 4, !tbaa !5
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @s2n_print_stacktrace(ptr noundef %3604) #11
  %3606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3607 = trunc nuw i8 %3606 to i1
  br i1 %3607, label %3608, label %3612

3608:                                             ; preds = %3602
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = call i32 @fileno(ptr noundef %3609) #11
  %3611 = call i32 @isatty(i32 noundef %3610) #11
  %.not640 = icmp eq i32 %3611, 0
  br i1 %.not640, label %3612, label %3613

3612:                                             ; preds = %3608, %3602
  br label %3613

3613:                                             ; preds = %3608, %3612
  %.str.5.sink1972 = phi ptr [ @.str.5, %3612 ], [ @.str.2, %3608 ]
  store i32 %3603, ptr %233, align 4, !tbaa !5
  %3614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3615 = load i32, ptr @test_count, align 4, !tbaa !5
  %3616 = load i32, ptr %179, align 4, !tbaa !5
  %3617 = call ptr @s2n_strerror(i32 noundef %3616, ptr noundef nonnull @.str.4) #11
  %3618 = load i32, ptr %179, align 4, !tbaa !5
  %3619 = call ptr @s2n_strerror_debug(i32 noundef %3618, ptr noundef nonnull @.str.4) #11
  %3620 = load i32, ptr %233, align 4, !tbaa !5
  %3621 = call ptr @strerror(i32 noundef %3620) #11
  %3622 = load i32, ptr %233, align 4, !tbaa !5
  %3623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3614, ptr noundef nonnull %.str.5.sink1972, i32 noundef %3615, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 423, ptr noundef %3617, ptr noundef %3619, ptr noundef %3621, i32 noundef %3622) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3624:                                             ; preds = %3596
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #11
  store i64 0, ptr %45, align 8
  %3625 = load i32, ptr @test_count, align 4, !tbaa !5
  %3626 = add nsw i32 %3625, 1
  store i32 %3626, ptr @test_count, align 4, !tbaa !5
  %3627 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %45) #11
  %3628 = icmp eq i32 %3627, -1
  br i1 %3628, label %3629, label %3651

3629:                                             ; preds = %3624
  %3630 = load i32, ptr %233, align 4, !tbaa !5
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = call i32 @s2n_print_stacktrace(ptr noundef %3631) #11
  %3633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3634 = trunc nuw i8 %3633 to i1
  br i1 %3634, label %3635, label %3639

3635:                                             ; preds = %3629
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = call i32 @fileno(ptr noundef %3636) #11
  %3638 = call i32 @isatty(i32 noundef %3637) #11
  %.not639 = icmp eq i32 %3638, 0
  br i1 %.not639, label %3639, label %3640

3639:                                             ; preds = %3635, %3629
  br label %3640

3640:                                             ; preds = %3635, %3639
  %.str.5.sink1981 = phi ptr [ @.str.5, %3639 ], [ @.str.2, %3635 ]
  store i32 %3630, ptr %233, align 4, !tbaa !5
  %3641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3642 = load i32, ptr @test_count, align 4, !tbaa !5
  %3643 = load i32, ptr %179, align 4, !tbaa !5
  %3644 = call ptr @s2n_strerror(i32 noundef %3643, ptr noundef nonnull @.str.4) #11
  %3645 = load i32, ptr %179, align 4, !tbaa !5
  %3646 = call ptr @s2n_strerror_debug(i32 noundef %3645, ptr noundef nonnull @.str.4) #11
  %3647 = load i32, ptr %233, align 4, !tbaa !5
  %3648 = call ptr @strerror(i32 noundef %3647) #11
  %3649 = load i32, ptr %233, align 4, !tbaa !5
  %3650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3641, ptr noundef nonnull %.str.5.sink1981, i32 noundef %3642, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 426, ptr noundef %3644, ptr noundef %3646, ptr noundef %3648, i32 noundef %3649) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3651:                                             ; preds = %3624
  %3652 = load i32, ptr @test_count, align 4, !tbaa !5
  %3653 = add nsw i32 %3652, 1
  store i32 %3653, ptr @test_count, align 4, !tbaa !5
  %3654 = load ptr, ptr %44, align 8, !tbaa !9
  %3655 = call i32 @s2n_connection_set_io_pair(ptr noundef %3654, ptr noundef nonnull %45) #11
  %3656 = icmp eq i32 %3655, -1
  br i1 %3656, label %3657, label %3679

3657:                                             ; preds = %3651
  %3658 = load i32, ptr %233, align 4, !tbaa !5
  %3659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3660 = call i32 @s2n_print_stacktrace(ptr noundef %3659) #11
  %3661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3662 = trunc nuw i8 %3661 to i1
  br i1 %3662, label %3663, label %3667

3663:                                             ; preds = %3657
  %3664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3665 = call i32 @fileno(ptr noundef %3664) #11
  %3666 = call i32 @isatty(i32 noundef %3665) #11
  %.not638 = icmp eq i32 %3666, 0
  br i1 %.not638, label %3667, label %3668

3667:                                             ; preds = %3663, %3657
  br label %3668

3668:                                             ; preds = %3663, %3667
  %.str.5.sink1990 = phi ptr [ @.str.5, %3667 ], [ @.str.2, %3663 ]
  store i32 %3658, ptr %233, align 4, !tbaa !5
  %3669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3670 = load i32, ptr @test_count, align 4, !tbaa !5
  %3671 = load i32, ptr %179, align 4, !tbaa !5
  %3672 = call ptr @s2n_strerror(i32 noundef %3671, ptr noundef nonnull @.str.4) #11
  %3673 = load i32, ptr %179, align 4, !tbaa !5
  %3674 = call ptr @s2n_strerror_debug(i32 noundef %3673, ptr noundef nonnull @.str.4) #11
  %3675 = load i32, ptr %233, align 4, !tbaa !5
  %3676 = call ptr @strerror(i32 noundef %3675) #11
  %3677 = load i32, ptr %233, align 4, !tbaa !5
  %3678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3669, ptr noundef nonnull %.str.5.sink1990, i32 noundef %3670, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %3672, ptr noundef %3674, ptr noundef %3676, i32 noundef %3677) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3679:                                             ; preds = %3651
  %3680 = load i32, ptr @test_count, align 4, !tbaa !5
  %3681 = add nsw i32 %3680, 1
  store i32 %3681, ptr @test_count, align 4, !tbaa !5
  %3682 = load ptr, ptr %41, align 8, !tbaa !9
  %3683 = call i32 @s2n_connection_set_io_pair(ptr noundef %3682, ptr noundef nonnull %45) #11
  %3684 = icmp eq i32 %3683, -1
  br i1 %3684, label %3685, label %3707

3685:                                             ; preds = %3679
  %3686 = load i32, ptr %233, align 4, !tbaa !5
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = call i32 @s2n_print_stacktrace(ptr noundef %3687) #11
  %3689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3690 = trunc nuw i8 %3689 to i1
  br i1 %3690, label %3691, label %3695

3691:                                             ; preds = %3685
  %3692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3693 = call i32 @fileno(ptr noundef %3692) #11
  %3694 = call i32 @isatty(i32 noundef %3693) #11
  %.not637 = icmp eq i32 %3694, 0
  br i1 %.not637, label %3695, label %3696

3695:                                             ; preds = %3691, %3685
  br label %3696

3696:                                             ; preds = %3691, %3695
  %.str.5.sink1999 = phi ptr [ @.str.5, %3695 ], [ @.str.2, %3691 ]
  store i32 %3686, ptr %233, align 4, !tbaa !5
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = load i32, ptr @test_count, align 4, !tbaa !5
  %3699 = load i32, ptr %179, align 4, !tbaa !5
  %3700 = call ptr @s2n_strerror(i32 noundef %3699, ptr noundef nonnull @.str.4) #11
  %3701 = load i32, ptr %179, align 4, !tbaa !5
  %3702 = call ptr @s2n_strerror_debug(i32 noundef %3701, ptr noundef nonnull @.str.4) #11
  %3703 = load i32, ptr %233, align 4, !tbaa !5
  %3704 = call ptr @strerror(i32 noundef %3703) #11
  %3705 = load i32, ptr %233, align 4, !tbaa !5
  %3706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3697, ptr noundef nonnull %.str.5.sink1999, i32 noundef %3698, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %3700, ptr noundef %3702, ptr noundef %3704, i32 noundef %3705) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3707:                                             ; preds = %3679
  %3708 = getelementptr inbounds i8, ptr %3486, i64 16
  %3709 = load i32, ptr %3708, align 8, !tbaa !24
  %3710 = icmp eq i32 %3709, 0
  %3711 = load i32, ptr @test_count, align 4, !tbaa !5
  %3712 = add nsw i32 %3711, 1
  store i32 %3712, ptr @test_count, align 4, !tbaa !5
  %3713 = load ptr, ptr %41, align 8, !tbaa !9
  %3714 = load ptr, ptr %44, align 8, !tbaa !9
  %3715 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3713, ptr noundef %3714) #11
  %3716 = icmp eq i32 %3715, -1
  br i1 %3710, label %3717, label %3740

3717:                                             ; preds = %3707
  br i1 %3716, label %3718, label %3817

3718:                                             ; preds = %3717
  %3719 = load i32, ptr %233, align 4, !tbaa !5
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = call i32 @s2n_print_stacktrace(ptr noundef %3720) #11
  %3722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3723 = trunc nuw i8 %3722 to i1
  br i1 %3723, label %3724, label %3728

3724:                                             ; preds = %3718
  %3725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3726 = call i32 @fileno(ptr noundef %3725) #11
  %3727 = call i32 @isatty(i32 noundef %3726) #11
  %.not636 = icmp eq i32 %3727, 0
  br i1 %.not636, label %3728, label %3729

3728:                                             ; preds = %3724, %3718
  br label %3729

3729:                                             ; preds = %3724, %3728
  %.str.5.sink2008 = phi ptr [ @.str.5, %3728 ], [ @.str.2, %3724 ]
  store i32 %3719, ptr %233, align 4, !tbaa !5
  %3730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3731 = load i32, ptr @test_count, align 4, !tbaa !5
  %3732 = load i32, ptr %179, align 4, !tbaa !5
  %3733 = call ptr @s2n_strerror(i32 noundef %3732, ptr noundef nonnull @.str.4) #11
  %3734 = load i32, ptr %179, align 4, !tbaa !5
  %3735 = call ptr @s2n_strerror_debug(i32 noundef %3734, ptr noundef nonnull @.str.4) #11
  %3736 = load i32, ptr %233, align 4, !tbaa !5
  %3737 = call ptr @strerror(i32 noundef %3736) #11
  %3738 = load i32, ptr %233, align 4, !tbaa !5
  %3739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3730, ptr noundef nonnull %.str.5.sink2008, i32 noundef %3731, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 432, ptr noundef %3733, ptr noundef %3735, ptr noundef %3737, i32 noundef %3738) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3740:                                             ; preds = %3707
  br i1 %3716, label %3763, label %3741

3741:                                             ; preds = %3740
  %3742 = load i32, ptr %233, align 4, !tbaa !5
  %3743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3744 = call i32 @s2n_print_stacktrace(ptr noundef %3743) #11
  %3745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3746 = trunc nuw i8 %3745 to i1
  br i1 %3746, label %3747, label %3751

3747:                                             ; preds = %3741
  %3748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3749 = call i32 @fileno(ptr noundef %3748) #11
  %3750 = call i32 @isatty(i32 noundef %3749) #11
  %.not632 = icmp eq i32 %3750, 0
  br i1 %.not632, label %3751, label %3752

3751:                                             ; preds = %3747, %3741
  br label %3752

3752:                                             ; preds = %3747, %3751
  %.str.5.sink2017 = phi ptr [ @.str.5, %3751 ], [ @.str.2, %3747 ]
  store i32 %3742, ptr %233, align 4, !tbaa !5
  %3753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3754 = load i32, ptr @test_count, align 4, !tbaa !5
  %3755 = load i32, ptr %179, align 4, !tbaa !5
  %3756 = call ptr @s2n_strerror(i32 noundef %3755, ptr noundef nonnull @.str.4) #11
  %3757 = load i32, ptr %179, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror_debug(i32 noundef %3757, ptr noundef nonnull @.str.4) #11
  %3759 = load i32, ptr %233, align 4, !tbaa !5
  %3760 = call ptr @strerror(i32 noundef %3759) #11
  %3761 = load i32, ptr %233, align 4, !tbaa !5
  %3762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3753, ptr noundef nonnull %.str.5.sink2017, i32 noundef %3754, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %3756, ptr noundef %3758, ptr noundef %3760, i32 noundef %3761) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3763:                                             ; preds = %3740
  %3764 = load i32, ptr @test_count, align 4, !tbaa !5
  %3765 = add nsw i32 %3764, 1
  store i32 %3765, ptr @test_count, align 4, !tbaa !5
  %3766 = load i32, ptr %179, align 4, !tbaa !5
  %3767 = icmp eq i32 %3766, %3709
  br i1 %3767, label %3790, label %3768

3768:                                             ; preds = %3763
  %3769 = load i32, ptr %233, align 4, !tbaa !5
  %3770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3771 = call i32 @s2n_print_stacktrace(ptr noundef %3770) #11
  %3772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3773 = trunc nuw i8 %3772 to i1
  br i1 %3773, label %3774, label %3778

3774:                                             ; preds = %3768
  %3775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3776 = call i32 @fileno(ptr noundef %3775) #11
  %3777 = call i32 @isatty(i32 noundef %3776) #11
  %.not633 = icmp eq i32 %3777, 0
  br i1 %.not633, label %3778, label %3779

3778:                                             ; preds = %3774, %3768
  br label %3779

3779:                                             ; preds = %3774, %3778
  %.str.5.sink2026 = phi ptr [ @.str.5, %3778 ], [ @.str.2, %3774 ]
  store i32 %3769, ptr %233, align 4, !tbaa !5
  %3780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3781 = load i32, ptr @test_count, align 4, !tbaa !5
  %3782 = load i32, ptr %179, align 4, !tbaa !5
  %3783 = call ptr @s2n_strerror(i32 noundef %3782, ptr noundef nonnull @.str.4) #11
  %3784 = load i32, ptr %179, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror_debug(i32 noundef %3784, ptr noundef nonnull @.str.4) #11
  %3786 = load i32, ptr %233, align 4, !tbaa !5
  %3787 = call ptr @strerror(i32 noundef %3786) #11
  %3788 = load i32, ptr %233, align 4, !tbaa !5
  %3789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3780, ptr noundef nonnull %.str.5.sink2026, i32 noundef %3781, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %3783, ptr noundef %3785, ptr noundef %3787, i32 noundef %3788) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3790:                                             ; preds = %3763
  %3791 = add nsw i32 %3764, 2
  store i32 %3791, ptr @test_count, align 4, !tbaa !5
  %3792 = call ptr @s2n_strerror_debug(i32 noundef %3709, ptr noundef nonnull @.str.4) #11
  %3793 = icmp eq ptr %3792, null
  br i1 %3793, label %3794, label %3816

3794:                                             ; preds = %3790
  %3795 = load i32, ptr %233, align 4, !tbaa !5
  %3796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3797 = call i32 @s2n_print_stacktrace(ptr noundef %3796) #11
  %3798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3799 = trunc nuw i8 %3798 to i1
  br i1 %3799, label %3800, label %3804

3800:                                             ; preds = %3794
  %3801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3802 = call i32 @fileno(ptr noundef %3801) #11
  %3803 = call i32 @isatty(i32 noundef %3802) #11
  %.not634 = icmp eq i32 %3803, 0
  br i1 %.not634, label %3804, label %3805

3804:                                             ; preds = %3800, %3794
  br label %3805

3805:                                             ; preds = %3800, %3804
  %.str.5.sink2035 = phi ptr [ @.str.5, %3804 ], [ @.str.2, %3800 ]
  store i32 %3795, ptr %233, align 4, !tbaa !5
  %3806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3807 = load i32, ptr @test_count, align 4, !tbaa !5
  %3808 = load i32, ptr %179, align 4, !tbaa !5
  %3809 = call ptr @s2n_strerror(i32 noundef %3808, ptr noundef nonnull @.str.4) #11
  %3810 = load i32, ptr %179, align 4, !tbaa !5
  %3811 = call ptr @s2n_strerror_debug(i32 noundef %3810, ptr noundef nonnull @.str.4) #11
  %3812 = load i32, ptr %233, align 4, !tbaa !5
  %3813 = call ptr @strerror(i32 noundef %3812) #11
  %3814 = load i32, ptr %233, align 4, !tbaa !5
  %3815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3806, ptr noundef nonnull %.str.5.sink2035, i32 noundef %3807, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %3809, ptr noundef %3811, ptr noundef %3813, i32 noundef %3814) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3816:                                             ; preds = %3790
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  br label %3817

3817:                                             ; preds = %3816, %3717
  %3818 = load i32, ptr @test_count, align 4, !tbaa !5
  %3819 = add nsw i32 %3818, 1
  store i32 %3819, ptr @test_count, align 4, !tbaa !5
  %3820 = load i32, ptr %2432, align 4, !tbaa !27
  %3821 = icmp eq i32 %3820, 1
  br i1 %3821, label %3844, label %3822

3822:                                             ; preds = %3817
  %3823 = load i32, ptr %233, align 4, !tbaa !5
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = call i32 @s2n_print_stacktrace(ptr noundef %3824) #11
  %3826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3827 = trunc nuw i8 %3826 to i1
  br i1 %3827, label %3828, label %3832

3828:                                             ; preds = %3822
  %3829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3830 = call i32 @fileno(ptr noundef %3829) #11
  %3831 = call i32 @isatty(i32 noundef %3830) #11
  %.not635 = icmp eq i32 %3831, 0
  br i1 %.not635, label %3832, label %3833

3832:                                             ; preds = %3828, %3822
  br label %3833

3833:                                             ; preds = %3828, %3832
  %.str.5.sink2044 = phi ptr [ @.str.5, %3832 ], [ @.str.2, %3828 ]
  store i32 %3823, ptr %233, align 4, !tbaa !5
  %3834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3835 = load i32, ptr @test_count, align 4, !tbaa !5
  %3836 = load i32, ptr %179, align 4, !tbaa !5
  %3837 = call ptr @s2n_strerror(i32 noundef %3836, ptr noundef nonnull @.str.4) #11
  %3838 = load i32, ptr %179, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror_debug(i32 noundef %3838, ptr noundef nonnull @.str.4) #11
  %3840 = load i32, ptr %233, align 4, !tbaa !5
  %3841 = call ptr @strerror(i32 noundef %3840) #11
  %3842 = load i32, ptr %233, align 4, !tbaa !5
  %3843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3834, ptr noundef nonnull %.str.5.sink2044, i32 noundef %3835, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 438, ptr noundef %3837, ptr noundef %3839, ptr noundef %3841, i32 noundef %3842) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3844:                                             ; preds = %3817
  %3845 = call i32 @s2n_io_pair_close(ptr noundef nonnull %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #11
  %3846 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #11
  %3847 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  %3848 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #11
  %3849 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  %3850 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %37) #11
  %indvars.iv.next796 = add nuw nsw i64 %indvars.iv795, 1
  %exitcond798.not = icmp eq i64 %indvars.iv.next796, 4
  br i1 %exitcond798.not, label %3851, label %3128, !llvm.loop !32

3851:                                             ; preds = %3128, %3130, %3844
  %3852 = getelementptr inbounds i8, ptr %47, i64 4
  %3853 = getelementptr inbounds i8, ptr %47, i64 8
  br label %.preheader759

.preheader759:                                    ; preds = %3851, %3858
  %3854 = phi i1 [ true, %3851 ], [ false, %3858 ]
  %indvars.iv803 = phi i64 [ 0, %3851 ], [ 1, %3858 ]
  %3855 = getelementptr inbounds [2 x %struct.s2n_cert_validation_data], ptr @__const.main.async_test_cases, i64 0, i64 %indvars.iv803
  br label %3859

.preheader757:                                    ; preds = %3858
  %3856 = getelementptr inbounds i8, ptr %54, i64 4
  %3857 = getelementptr inbounds i8, ptr %54, i64 8
  br label %.preheader756

3858:                                             ; preds = %4720
  br i1 %3854, label %.preheader759, label %.preheader757, !llvm.loop !33

3859:                                             ; preds = %.preheader759, %4720
  %3860 = phi i1 [ true, %.preheader759 ], [ false, %4720 ]
  %indvars.iv800 = phi i64 [ 0, %.preheader759 ], [ 1, %4720 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  %3861 = call ptr @s2n_config_new() #11
  store ptr %3861, ptr %46, align 8, !tbaa !9
  %3862 = load i32, ptr @test_count, align 4, !tbaa !5
  %3863 = add nsw i32 %3862, 1
  store i32 %3863, ptr @test_count, align 4, !tbaa !5
  %3864 = icmp eq ptr %3861, null
  br i1 %3864, label %3865, label %3887

3865:                                             ; preds = %3859
  %3866 = load i32, ptr %233, align 4, !tbaa !5
  %3867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3868 = call i32 @s2n_print_stacktrace(ptr noundef %3867) #11
  %3869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3870 = trunc nuw i8 %3869 to i1
  br i1 %3870, label %3871, label %3875

3871:                                             ; preds = %3865
  %3872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3873 = call i32 @fileno(ptr noundef %3872) #11
  %3874 = call i32 @isatty(i32 noundef %3873) #11
  %.not629 = icmp eq i32 %3874, 0
  br i1 %.not629, label %3875, label %3876

3875:                                             ; preds = %3871, %3865
  br label %3876

3876:                                             ; preds = %3871, %3875
  %.str.5.sink2053 = phi ptr [ @.str.5, %3875 ], [ @.str.2, %3871 ]
  store i32 %3866, ptr %233, align 4, !tbaa !5
  %3877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3878 = load i32, ptr @test_count, align 4, !tbaa !5
  %3879 = load i32, ptr %179, align 4, !tbaa !5
  %3880 = call ptr @s2n_strerror(i32 noundef %3879, ptr noundef nonnull @.str.4) #11
  %3881 = load i32, ptr %179, align 4, !tbaa !5
  %3882 = call ptr @s2n_strerror_debug(i32 noundef %3881, ptr noundef nonnull @.str.4) #11
  %3883 = load i32, ptr %233, align 4, !tbaa !5
  %3884 = call ptr @strerror(i32 noundef %3883) #11
  %3885 = load i32, ptr %233, align 4, !tbaa !5
  %3886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3877, ptr noundef nonnull %.str.5.sink2053, i32 noundef %3878, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %3880, ptr noundef %3882, ptr noundef %3884, i32 noundef %3885) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3887:                                             ; preds = %3859
  %3888 = add nsw i32 %3862, 2
  store i32 %3888, ptr @test_count, align 4, !tbaa !5
  %3889 = load ptr, ptr %7, align 8, !tbaa !9
  %3890 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %3861, ptr noundef %3889) #11
  %3891 = icmp eq i32 %3890, -1
  br i1 %3891, label %3892, label %3914

3892:                                             ; preds = %3887
  %3893 = load i32, ptr %233, align 4, !tbaa !5
  %3894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3895 = call i32 @s2n_print_stacktrace(ptr noundef %3894) #11
  %3896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3897 = trunc nuw i8 %3896 to i1
  br i1 %3897, label %3898, label %3902

3898:                                             ; preds = %3892
  %3899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3900 = call i32 @fileno(ptr noundef %3899) #11
  %3901 = call i32 @isatty(i32 noundef %3900) #11
  %.not628 = icmp eq i32 %3901, 0
  br i1 %.not628, label %3902, label %3903

3902:                                             ; preds = %3898, %3892
  br label %3903

3903:                                             ; preds = %3898, %3902
  %.str.5.sink2062 = phi ptr [ @.str.5, %3902 ], [ @.str.2, %3898 ]
  store i32 %3893, ptr %233, align 4, !tbaa !5
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = load i32, ptr @test_count, align 4, !tbaa !5
  %3906 = load i32, ptr %179, align 4, !tbaa !5
  %3907 = call ptr @s2n_strerror(i32 noundef %3906, ptr noundef nonnull @.str.4) #11
  %3908 = load i32, ptr %179, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror_debug(i32 noundef %3908, ptr noundef nonnull @.str.4) #11
  %3910 = load i32, ptr %233, align 4, !tbaa !5
  %3911 = call ptr @strerror(i32 noundef %3910) #11
  %3912 = load i32, ptr %233, align 4, !tbaa !5
  %3913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3904, ptr noundef nonnull %.str.5.sink2062, i32 noundef %3905, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %3907, ptr noundef %3909, ptr noundef %3911, i32 noundef %3912) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3914:                                             ; preds = %3887
  %3915 = load i32, ptr @test_count, align 4, !tbaa !5
  %3916 = add nsw i32 %3915, 1
  store i32 %3916, ptr @test_count, align 4, !tbaa !5
  %3917 = load ptr, ptr %46, align 8, !tbaa !9
  %3918 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %3917, ptr noundef nonnull @.str.23, ptr noundef null) #11
  %3919 = icmp eq i32 %3918, -1
  br i1 %3919, label %3920, label %3942

3920:                                             ; preds = %3914
  %3921 = load i32, ptr %233, align 4, !tbaa !5
  %3922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3923 = call i32 @s2n_print_stacktrace(ptr noundef %3922) #11
  %3924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3925 = trunc nuw i8 %3924 to i1
  br i1 %3925, label %3926, label %3930

3926:                                             ; preds = %3920
  %3927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3928 = call i32 @fileno(ptr noundef %3927) #11
  %3929 = call i32 @isatty(i32 noundef %3928) #11
  %.not627 = icmp eq i32 %3929, 0
  br i1 %.not627, label %3930, label %3931

3930:                                             ; preds = %3926, %3920
  br label %3931

3931:                                             ; preds = %3926, %3930
  %.str.5.sink2071 = phi ptr [ @.str.5, %3930 ], [ @.str.2, %3926 ]
  store i32 %3921, ptr %233, align 4, !tbaa !5
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = load i32, ptr @test_count, align 4, !tbaa !5
  %3934 = load i32, ptr %179, align 4, !tbaa !5
  %3935 = call ptr @s2n_strerror(i32 noundef %3934, ptr noundef nonnull @.str.4) #11
  %3936 = load i32, ptr %179, align 4, !tbaa !5
  %3937 = call ptr @s2n_strerror_debug(i32 noundef %3936, ptr noundef nonnull @.str.4) #11
  %3938 = load i32, ptr %233, align 4, !tbaa !5
  %3939 = call ptr @strerror(i32 noundef %3938) #11
  %3940 = load i32, ptr %233, align 4, !tbaa !5
  %3941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3932, ptr noundef nonnull %.str.5.sink2071, i32 noundef %3933, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 456, ptr noundef %3935, ptr noundef %3937, ptr noundef %3939, i32 noundef %3940) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3942:                                             ; preds = %3914
  %3943 = load i32, ptr @test_count, align 4, !tbaa !5
  %3944 = add nsw i32 %3943, 1
  store i32 %3944, ptr @test_count, align 4, !tbaa !5
  %3945 = load ptr, ptr %46, align 8, !tbaa !9
  %3946 = getelementptr inbounds [2 x ptr], ptr @__const.main.versions, i64 0, i64 %indvars.iv800
  %3947 = load ptr, ptr %3946, align 8, !tbaa !9
  %3948 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3945, ptr noundef %3947) #11
  %3949 = icmp eq i32 %3948, -1
  br i1 %3949, label %3950, label %3972

3950:                                             ; preds = %3942
  %3951 = load i32, ptr %233, align 4, !tbaa !5
  %3952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3953 = call i32 @s2n_print_stacktrace(ptr noundef %3952) #11
  %3954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3955 = trunc nuw i8 %3954 to i1
  br i1 %3955, label %3956, label %3960

3956:                                             ; preds = %3950
  %3957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3958 = call i32 @fileno(ptr noundef %3957) #11
  %3959 = call i32 @isatty(i32 noundef %3958) #11
  %.not626 = icmp eq i32 %3959, 0
  br i1 %.not626, label %3960, label %3961

3960:                                             ; preds = %3956, %3950
  br label %3961

3961:                                             ; preds = %3956, %3960
  %.str.5.sink2080 = phi ptr [ @.str.5, %3960 ], [ @.str.2, %3956 ]
  store i32 %3951, ptr %233, align 4, !tbaa !5
  %3962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3963 = load i32, ptr @test_count, align 4, !tbaa !5
  %3964 = load i32, ptr %179, align 4, !tbaa !5
  %3965 = call ptr @s2n_strerror(i32 noundef %3964, ptr noundef nonnull @.str.4) #11
  %3966 = load i32, ptr %179, align 4, !tbaa !5
  %3967 = call ptr @s2n_strerror_debug(i32 noundef %3966, ptr noundef nonnull @.str.4) #11
  %3968 = load i32, ptr %233, align 4, !tbaa !5
  %3969 = call ptr @strerror(i32 noundef %3968) #11
  %3970 = load i32, ptr %233, align 4, !tbaa !5
  %3971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3962, ptr noundef nonnull %.str.5.sink2080, i32 noundef %3963, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %3965, ptr noundef %3967, ptr noundef %3969, i32 noundef %3970) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3972:                                             ; preds = %3942
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 16 dereferenceable(16) %3855, i64 16, i1 false), !tbaa.struct !18
  %3973 = load i32, ptr @test_count, align 4, !tbaa !5
  %3974 = add nsw i32 %3973, 1
  store i32 %3974, ptr @test_count, align 4, !tbaa !5
  %3975 = load ptr, ptr %46, align 8, !tbaa !9
  %3976 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %3975, ptr noundef nonnull @s2n_test_cert_validation_callback_self_talk, ptr noundef nonnull %47) #11
  %3977 = icmp eq i32 %3976, -1
  br i1 %3977, label %3978, label %4000

3978:                                             ; preds = %3972
  %3979 = load i32, ptr %233, align 4, !tbaa !5
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3981 = call i32 @s2n_print_stacktrace(ptr noundef %3980) #11
  %3982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3983 = trunc nuw i8 %3982 to i1
  br i1 %3983, label %3984, label %3988

3984:                                             ; preds = %3978
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = call i32 @fileno(ptr noundef %3985) #11
  %3987 = call i32 @isatty(i32 noundef %3986) #11
  %.not625 = icmp eq i32 %3987, 0
  br i1 %.not625, label %3988, label %3989

3988:                                             ; preds = %3984, %3978
  br label %3989

3989:                                             ; preds = %3984, %3988
  %.str.5.sink2089 = phi ptr [ @.str.5, %3988 ], [ @.str.2, %3984 ]
  store i32 %3979, ptr %233, align 4, !tbaa !5
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = load i32, ptr @test_count, align 4, !tbaa !5
  %3992 = load i32, ptr %179, align 4, !tbaa !5
  %3993 = call ptr @s2n_strerror(i32 noundef %3992, ptr noundef nonnull @.str.4) #11
  %3994 = load i32, ptr %179, align 4, !tbaa !5
  %3995 = call ptr @s2n_strerror_debug(i32 noundef %3994, ptr noundef nonnull @.str.4) #11
  %3996 = load i32, ptr %233, align 4, !tbaa !5
  %3997 = call ptr @strerror(i32 noundef %3996) #11
  %3998 = load i32, ptr %233, align 4, !tbaa !5
  %3999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3990, ptr noundef nonnull %.str.5.sink2089, i32 noundef %3991, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %3993, ptr noundef %3995, ptr noundef %3997, i32 noundef %3998) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4000:                                             ; preds = %3972
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #11
  %4001 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4001, ptr %48, align 8, !tbaa !9
  %4002 = load i32, ptr @test_count, align 4, !tbaa !5
  %4003 = add nsw i32 %4002, 1
  store i32 %4003, ptr @test_count, align 4, !tbaa !5
  %4004 = icmp eq ptr %4001, null
  br i1 %4004, label %4005, label %4027

4005:                                             ; preds = %4000
  %4006 = load i32, ptr %233, align 4, !tbaa !5
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = call i32 @s2n_print_stacktrace(ptr noundef %4007) #11
  %4009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4010 = trunc nuw i8 %4009 to i1
  br i1 %4010, label %4011, label %4015

4011:                                             ; preds = %4005
  %4012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4013 = call i32 @fileno(ptr noundef %4012) #11
  %4014 = call i32 @isatty(i32 noundef %4013) #11
  %.not624 = icmp eq i32 %4014, 0
  br i1 %.not624, label %4015, label %4016

4015:                                             ; preds = %4011, %4005
  br label %4016

4016:                                             ; preds = %4011, %4015
  %.str.5.sink2098 = phi ptr [ @.str.5, %4015 ], [ @.str.2, %4011 ]
  store i32 %4006, ptr %233, align 4, !tbaa !5
  %4017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4018 = load i32, ptr @test_count, align 4, !tbaa !5
  %4019 = load i32, ptr %179, align 4, !tbaa !5
  %4020 = call ptr @s2n_strerror(i32 noundef %4019, ptr noundef nonnull @.str.4) #11
  %4021 = load i32, ptr %179, align 4, !tbaa !5
  %4022 = call ptr @s2n_strerror_debug(i32 noundef %4021, ptr noundef nonnull @.str.4) #11
  %4023 = load i32, ptr %233, align 4, !tbaa !5
  %4024 = call ptr @strerror(i32 noundef %4023) #11
  %4025 = load i32, ptr %233, align 4, !tbaa !5
  %4026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4017, ptr noundef nonnull %.str.5.sink2098, i32 noundef %4018, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 463, ptr noundef %4020, ptr noundef %4022, ptr noundef %4024, i32 noundef %4025) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4027:                                             ; preds = %4000
  %4028 = add nsw i32 %4002, 2
  store i32 %4028, ptr @test_count, align 4, !tbaa !5
  %4029 = load ptr, ptr %46, align 8, !tbaa !9
  %4030 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4001, ptr noundef %4029) #11
  %4031 = icmp eq i32 %4030, -1
  br i1 %4031, label %4032, label %4054

4032:                                             ; preds = %4027
  %4033 = load i32, ptr %233, align 4, !tbaa !5
  %4034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4035 = call i32 @s2n_print_stacktrace(ptr noundef %4034) #11
  %4036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4037 = trunc nuw i8 %4036 to i1
  br i1 %4037, label %4038, label %4042

4038:                                             ; preds = %4032
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = call i32 @fileno(ptr noundef %4039) #11
  %4041 = call i32 @isatty(i32 noundef %4040) #11
  %.not623 = icmp eq i32 %4041, 0
  br i1 %.not623, label %4042, label %4043

4042:                                             ; preds = %4038, %4032
  br label %4043

4043:                                             ; preds = %4038, %4042
  %.str.5.sink2107 = phi ptr [ @.str.5, %4042 ], [ @.str.2, %4038 ]
  store i32 %4033, ptr %233, align 4, !tbaa !5
  %4044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4045 = load i32, ptr @test_count, align 4, !tbaa !5
  %4046 = load i32, ptr %179, align 4, !tbaa !5
  %4047 = call ptr @s2n_strerror(i32 noundef %4046, ptr noundef nonnull @.str.4) #11
  %4048 = load i32, ptr %179, align 4, !tbaa !5
  %4049 = call ptr @s2n_strerror_debug(i32 noundef %4048, ptr noundef nonnull @.str.4) #11
  %4050 = load i32, ptr %233, align 4, !tbaa !5
  %4051 = call ptr @strerror(i32 noundef %4050) #11
  %4052 = load i32, ptr %233, align 4, !tbaa !5
  %4053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4044, ptr noundef nonnull %.str.5.sink2107, i32 noundef %4045, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 464, ptr noundef %4047, ptr noundef %4049, ptr noundef %4051, i32 noundef %4052) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4054:                                             ; preds = %4027
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #11
  %4055 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %4055, ptr %49, align 8, !tbaa !9
  %4056 = load i32, ptr @test_count, align 4, !tbaa !5
  %4057 = add nsw i32 %4056, 1
  store i32 %4057, ptr @test_count, align 4, !tbaa !5
  %4058 = icmp eq ptr %4055, null
  br i1 %4058, label %4059, label %4081

4059:                                             ; preds = %4054
  %4060 = load i32, ptr %233, align 4, !tbaa !5
  %4061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4062 = call i32 @s2n_print_stacktrace(ptr noundef %4061) #11
  %4063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4064 = trunc nuw i8 %4063 to i1
  br i1 %4064, label %4065, label %4069

4065:                                             ; preds = %4059
  %4066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4067 = call i32 @fileno(ptr noundef %4066) #11
  %4068 = call i32 @isatty(i32 noundef %4067) #11
  %.not622 = icmp eq i32 %4068, 0
  br i1 %.not622, label %4069, label %4070

4069:                                             ; preds = %4065, %4059
  br label %4070

4070:                                             ; preds = %4065, %4069
  %.str.5.sink2116 = phi ptr [ @.str.5, %4069 ], [ @.str.2, %4065 ]
  store i32 %4060, ptr %233, align 4, !tbaa !5
  %4071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4072 = load i32, ptr @test_count, align 4, !tbaa !5
  %4073 = load i32, ptr %179, align 4, !tbaa !5
  %4074 = call ptr @s2n_strerror(i32 noundef %4073, ptr noundef nonnull @.str.4) #11
  %4075 = load i32, ptr %179, align 4, !tbaa !5
  %4076 = call ptr @s2n_strerror_debug(i32 noundef %4075, ptr noundef nonnull @.str.4) #11
  %4077 = load i32, ptr %233, align 4, !tbaa !5
  %4078 = call ptr @strerror(i32 noundef %4077) #11
  %4079 = load i32, ptr %233, align 4, !tbaa !5
  %4080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4071, ptr noundef nonnull %.str.5.sink2116, i32 noundef %4072, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 467, ptr noundef %4074, ptr noundef %4076, ptr noundef %4078, i32 noundef %4079) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4081:                                             ; preds = %4054
  %4082 = add nsw i32 %4056, 2
  store i32 %4082, ptr @test_count, align 4, !tbaa !5
  %4083 = load ptr, ptr %46, align 8, !tbaa !9
  %4084 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4055, ptr noundef %4083) #11
  %4085 = icmp eq i32 %4084, -1
  br i1 %4085, label %4086, label %4108

4086:                                             ; preds = %4081
  %4087 = load i32, ptr %233, align 4, !tbaa !5
  %4088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4089 = call i32 @s2n_print_stacktrace(ptr noundef %4088) #11
  %4090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4091 = trunc nuw i8 %4090 to i1
  br i1 %4091, label %4092, label %4096

4092:                                             ; preds = %4086
  %4093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4094 = call i32 @fileno(ptr noundef %4093) #11
  %4095 = call i32 @isatty(i32 noundef %4094) #11
  %.not621 = icmp eq i32 %4095, 0
  br i1 %.not621, label %4096, label %4097

4096:                                             ; preds = %4092, %4086
  br label %4097

4097:                                             ; preds = %4092, %4096
  %.str.5.sink2125 = phi ptr [ @.str.5, %4096 ], [ @.str.2, %4092 ]
  store i32 %4087, ptr %233, align 4, !tbaa !5
  %4098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4099 = load i32, ptr @test_count, align 4, !tbaa !5
  %4100 = load i32, ptr %179, align 4, !tbaa !5
  %4101 = call ptr @s2n_strerror(i32 noundef %4100, ptr noundef nonnull @.str.4) #11
  %4102 = load i32, ptr %179, align 4, !tbaa !5
  %4103 = call ptr @s2n_strerror_debug(i32 noundef %4102, ptr noundef nonnull @.str.4) #11
  %4104 = load i32, ptr %233, align 4, !tbaa !5
  %4105 = call ptr @strerror(i32 noundef %4104) #11
  %4106 = load i32, ptr %233, align 4, !tbaa !5
  %4107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4098, ptr noundef nonnull %.str.5.sink2125, i32 noundef %4099, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 468, ptr noundef %4101, ptr noundef %4103, ptr noundef %4105, i32 noundef %4106) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4108:                                             ; preds = %4081
  %4109 = load i32, ptr @test_count, align 4, !tbaa !5
  %4110 = add nsw i32 %4109, 1
  store i32 %4110, ptr @test_count, align 4, !tbaa !5
  %4111 = load ptr, ptr %49, align 8, !tbaa !9
  %4112 = call i32 @s2n_connection_set_blinding(ptr noundef %4111, i32 noundef 1) #11
  %4113 = icmp eq i32 %4112, -1
  br i1 %4113, label %4114, label %4136

4114:                                             ; preds = %4108
  %4115 = load i32, ptr %233, align 4, !tbaa !5
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = call i32 @s2n_print_stacktrace(ptr noundef %4116) #11
  %4118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4119 = trunc nuw i8 %4118 to i1
  br i1 %4119, label %4120, label %4124

4120:                                             ; preds = %4114
  %4121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4122 = call i32 @fileno(ptr noundef %4121) #11
  %4123 = call i32 @isatty(i32 noundef %4122) #11
  %.not620 = icmp eq i32 %4123, 0
  br i1 %.not620, label %4124, label %4125

4124:                                             ; preds = %4120, %4114
  br label %4125

4125:                                             ; preds = %4120, %4124
  %.str.5.sink2134 = phi ptr [ @.str.5, %4124 ], [ @.str.2, %4120 ]
  store i32 %4115, ptr %233, align 4, !tbaa !5
  %4126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4127 = load i32, ptr @test_count, align 4, !tbaa !5
  %4128 = load i32, ptr %179, align 4, !tbaa !5
  %4129 = call ptr @s2n_strerror(i32 noundef %4128, ptr noundef nonnull @.str.4) #11
  %4130 = load i32, ptr %179, align 4, !tbaa !5
  %4131 = call ptr @s2n_strerror_debug(i32 noundef %4130, ptr noundef nonnull @.str.4) #11
  %4132 = load i32, ptr %233, align 4, !tbaa !5
  %4133 = call ptr @strerror(i32 noundef %4132) #11
  %4134 = load i32, ptr %233, align 4, !tbaa !5
  %4135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4126, ptr noundef nonnull %.str.5.sink2134, i32 noundef %4127, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %4129, ptr noundef %4131, ptr noundef %4133, i32 noundef %4134) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4136:                                             ; preds = %4108
  %4137 = load i32, ptr @test_count, align 4, !tbaa !5
  %4138 = add nsw i32 %4137, 1
  store i32 %4138, ptr @test_count, align 4, !tbaa !5
  %4139 = load ptr, ptr %49, align 8, !tbaa !9
  %4140 = call i32 @s2n_set_server_name(ptr noundef %4139, ptr noundef nonnull @.str.35) #11
  %4141 = icmp eq i32 %4140, -1
  br i1 %4141, label %4142, label %4164

4142:                                             ; preds = %4136
  %4143 = load i32, ptr %233, align 4, !tbaa !5
  %4144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4145 = call i32 @s2n_print_stacktrace(ptr noundef %4144) #11
  %4146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4147 = trunc nuw i8 %4146 to i1
  br i1 %4147, label %4148, label %4152

4148:                                             ; preds = %4142
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = call i32 @fileno(ptr noundef %4149) #11
  %4151 = call i32 @isatty(i32 noundef %4150) #11
  %.not619 = icmp eq i32 %4151, 0
  br i1 %.not619, label %4152, label %4153

4152:                                             ; preds = %4148, %4142
  br label %4153

4153:                                             ; preds = %4148, %4152
  %.str.5.sink2143 = phi ptr [ @.str.5, %4152 ], [ @.str.2, %4148 ]
  store i32 %4143, ptr %233, align 4, !tbaa !5
  %4154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4155 = load i32, ptr @test_count, align 4, !tbaa !5
  %4156 = load i32, ptr %179, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror(i32 noundef %4156, ptr noundef nonnull @.str.4) #11
  %4158 = load i32, ptr %179, align 4, !tbaa !5
  %4159 = call ptr @s2n_strerror_debug(i32 noundef %4158, ptr noundef nonnull @.str.4) #11
  %4160 = load i32, ptr %233, align 4, !tbaa !5
  %4161 = call ptr @strerror(i32 noundef %4160) #11
  %4162 = load i32, ptr %233, align 4, !tbaa !5
  %4163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4154, ptr noundef nonnull %.str.5.sink2143, i32 noundef %4155, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 470, ptr noundef %4157, ptr noundef %4159, ptr noundef %4161, i32 noundef %4162) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4164:                                             ; preds = %4136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #11
  store i64 0, ptr %50, align 8
  %4165 = load i32, ptr @test_count, align 4, !tbaa !5
  %4166 = add nsw i32 %4165, 1
  store i32 %4166, ptr @test_count, align 4, !tbaa !5
  %4167 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %50) #11
  %4168 = icmp eq i32 %4167, -1
  br i1 %4168, label %4169, label %4191

4169:                                             ; preds = %4164
  %4170 = load i32, ptr %233, align 4, !tbaa !5
  %4171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4172 = call i32 @s2n_print_stacktrace(ptr noundef %4171) #11
  %4173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4174 = trunc nuw i8 %4173 to i1
  br i1 %4174, label %4175, label %4179

4175:                                             ; preds = %4169
  %4176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4177 = call i32 @fileno(ptr noundef %4176) #11
  %4178 = call i32 @isatty(i32 noundef %4177) #11
  %.not618 = icmp eq i32 %4178, 0
  br i1 %.not618, label %4179, label %4180

4179:                                             ; preds = %4175, %4169
  br label %4180

4180:                                             ; preds = %4175, %4179
  %.str.5.sink2152 = phi ptr [ @.str.5, %4179 ], [ @.str.2, %4175 ]
  store i32 %4170, ptr %233, align 4, !tbaa !5
  %4181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4182 = load i32, ptr @test_count, align 4, !tbaa !5
  %4183 = load i32, ptr %179, align 4, !tbaa !5
  %4184 = call ptr @s2n_strerror(i32 noundef %4183, ptr noundef nonnull @.str.4) #11
  %4185 = load i32, ptr %179, align 4, !tbaa !5
  %4186 = call ptr @s2n_strerror_debug(i32 noundef %4185, ptr noundef nonnull @.str.4) #11
  %4187 = load i32, ptr %233, align 4, !tbaa !5
  %4188 = call ptr @strerror(i32 noundef %4187) #11
  %4189 = load i32, ptr %233, align 4, !tbaa !5
  %4190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4181, ptr noundef nonnull %.str.5.sink2152, i32 noundef %4182, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %4184, ptr noundef %4186, ptr noundef %4188, i32 noundef %4189) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4191:                                             ; preds = %4164
  %4192 = load i32, ptr @test_count, align 4, !tbaa !5
  %4193 = add nsw i32 %4192, 1
  store i32 %4193, ptr @test_count, align 4, !tbaa !5
  %4194 = load ptr, ptr %49, align 8, !tbaa !9
  %4195 = call i32 @s2n_connection_set_io_pair(ptr noundef %4194, ptr noundef nonnull %50) #11
  %4196 = icmp eq i32 %4195, -1
  br i1 %4196, label %4197, label %4219

4197:                                             ; preds = %4191
  %4198 = load i32, ptr %233, align 4, !tbaa !5
  %4199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4200 = call i32 @s2n_print_stacktrace(ptr noundef %4199) #11
  %4201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4202 = trunc nuw i8 %4201 to i1
  br i1 %4202, label %4203, label %4207

4203:                                             ; preds = %4197
  %4204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4205 = call i32 @fileno(ptr noundef %4204) #11
  %4206 = call i32 @isatty(i32 noundef %4205) #11
  %.not617 = icmp eq i32 %4206, 0
  br i1 %.not617, label %4207, label %4208

4207:                                             ; preds = %4203, %4197
  br label %4208

4208:                                             ; preds = %4203, %4207
  %.str.5.sink2161 = phi ptr [ @.str.5, %4207 ], [ @.str.2, %4203 ]
  store i32 %4198, ptr %233, align 4, !tbaa !5
  %4209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4210 = load i32, ptr @test_count, align 4, !tbaa !5
  %4211 = load i32, ptr %179, align 4, !tbaa !5
  %4212 = call ptr @s2n_strerror(i32 noundef %4211, ptr noundef nonnull @.str.4) #11
  %4213 = load i32, ptr %179, align 4, !tbaa !5
  %4214 = call ptr @s2n_strerror_debug(i32 noundef %4213, ptr noundef nonnull @.str.4) #11
  %4215 = load i32, ptr %233, align 4, !tbaa !5
  %4216 = call ptr @strerror(i32 noundef %4215) #11
  %4217 = load i32, ptr %233, align 4, !tbaa !5
  %4218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4209, ptr noundef nonnull %.str.5.sink2161, i32 noundef %4210, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %4212, ptr noundef %4214, ptr noundef %4216, i32 noundef %4217) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4219:                                             ; preds = %4191
  %4220 = load i32, ptr @test_count, align 4, !tbaa !5
  %4221 = add nsw i32 %4220, 1
  store i32 %4221, ptr @test_count, align 4, !tbaa !5
  %4222 = load ptr, ptr %48, align 8, !tbaa !9
  %4223 = call i32 @s2n_connection_set_io_pair(ptr noundef %4222, ptr noundef nonnull %50) #11
  %4224 = icmp eq i32 %4223, -1
  br i1 %4224, label %4231, label %.preheader758.preheader

.preheader758.preheader:                          ; preds = %4219
  %4225 = load i32, ptr @test_count, align 4, !tbaa !5
  %4226 = add nsw i32 %4225, 1
  store i32 %4226, ptr @test_count, align 4, !tbaa !5
  %4227 = load ptr, ptr %48, align 8, !tbaa !9
  %4228 = load ptr, ptr %49, align 8, !tbaa !9
  %4229 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4227, ptr noundef %4228) #11
  %4230 = icmp eq i32 %4229, -1
  br i1 %4230, label %4318, label %4296

4231:                                             ; preds = %4219
  %4232 = load i32, ptr %233, align 4, !tbaa !5
  %4233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4234 = call i32 @s2n_print_stacktrace(ptr noundef %4233) #11
  %4235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4236 = trunc nuw i8 %4235 to i1
  br i1 %4236, label %4237, label %4241

4237:                                             ; preds = %4231
  %4238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4239 = call i32 @fileno(ptr noundef %4238) #11
  %4240 = call i32 @isatty(i32 noundef %4239) #11
  %.not616 = icmp eq i32 %4240, 0
  br i1 %.not616, label %4241, label %4242

4241:                                             ; preds = %4237, %4231
  br label %4242

4242:                                             ; preds = %4237, %4241
  %.str.5.sink2170 = phi ptr [ @.str.5, %4241 ], [ @.str.2, %4237 ]
  store i32 %4232, ptr %233, align 4, !tbaa !5
  %4243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4244 = load i32, ptr @test_count, align 4, !tbaa !5
  %4245 = load i32, ptr %179, align 4, !tbaa !5
  %4246 = call ptr @s2n_strerror(i32 noundef %4245, ptr noundef nonnull @.str.4) #11
  %4247 = load i32, ptr %179, align 4, !tbaa !5
  %4248 = call ptr @s2n_strerror_debug(i32 noundef %4247, ptr noundef nonnull @.str.4) #11
  %4249 = load i32, ptr %233, align 4, !tbaa !5
  %4250 = call ptr @strerror(i32 noundef %4249) #11
  %4251 = load i32, ptr %233, align 4, !tbaa !5
  %4252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4243, ptr noundef nonnull %.str.5.sink2170, i32 noundef %4244, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 475, ptr noundef %4246, ptr noundef %4248, ptr noundef %4250, i32 noundef %4251) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader758.1:                                  ; preds = %4371
  %4253 = add nsw i32 %4372, 2
  store i32 %4253, ptr @test_count, align 4, !tbaa !5
  %4254 = load ptr, ptr %48, align 8, !tbaa !9
  %4255 = load ptr, ptr %49, align 8, !tbaa !9
  %4256 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4254, ptr noundef %4255) #11
  %4257 = icmp eq i32 %4256, -1
  br i1 %4257, label %4258, label %4296

4258:                                             ; preds = %.preheader758.1
  %4259 = load i32, ptr @test_count, align 4, !tbaa !5
  %4260 = add nsw i32 %4259, 1
  store i32 %4260, ptr @test_count, align 4, !tbaa !5
  %4261 = load i32, ptr %179, align 4, !tbaa !5
  %4262 = icmp eq i32 %4261, 201326593
  br i1 %4262, label %4263, label %4323

4263:                                             ; preds = %4258
  %4264 = add nsw i32 %4259, 2
  store i32 %4264, ptr @test_count, align 4, !tbaa !5
  %4265 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.4) #11
  %4266 = icmp eq ptr %4265, null
  br i1 %4266, label %4349, label %4267

4267:                                             ; preds = %4263
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %4268 = load i32, ptr @test_count, align 4, !tbaa !5
  %4269 = add nsw i32 %4268, 1
  store i32 %4269, ptr @test_count, align 4, !tbaa !5
  %4270 = load i32, ptr %3852, align 4, !tbaa !27
  %4271 = icmp eq i32 %4270, 1
  br i1 %4271, label %.preheader758.2, label %4376

.preheader758.2:                                  ; preds = %4267
  %4272 = add nsw i32 %4268, 2
  store i32 %4272, ptr @test_count, align 4, !tbaa !5
  %4273 = load ptr, ptr %48, align 8, !tbaa !9
  %4274 = load ptr, ptr %49, align 8, !tbaa !9
  %4275 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4273, ptr noundef %4274) #11
  %4276 = icmp eq i32 %4275, -1
  br i1 %4276, label %4277, label %4296

4277:                                             ; preds = %.preheader758.2
  %4278 = load i32, ptr @test_count, align 4, !tbaa !5
  %4279 = add nsw i32 %4278, 1
  store i32 %4279, ptr @test_count, align 4, !tbaa !5
  %4280 = load i32, ptr %179, align 4, !tbaa !5
  %4281 = icmp eq i32 %4280, 201326593
  br i1 %4281, label %4282, label %4323

4282:                                             ; preds = %4277
  %4283 = add nsw i32 %4278, 2
  store i32 %4283, ptr @test_count, align 4, !tbaa !5
  %4284 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.4) #11
  %4285 = icmp eq ptr %4284, null
  br i1 %4285, label %4349, label %4286

4286:                                             ; preds = %4282
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %4287 = load i32, ptr @test_count, align 4, !tbaa !5
  %4288 = add nsw i32 %4287, 1
  store i32 %4288, ptr @test_count, align 4, !tbaa !5
  %4289 = load i32, ptr %3852, align 4, !tbaa !27
  %4290 = icmp eq i32 %4289, 1
  br i1 %4290, label %4291, label %4376

4291:                                             ; preds = %4286
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #11
  %4292 = call ptr @s2n_cert_chain_and_key_new() #11
  store ptr %4292, ptr %51, align 8, !tbaa !9
  %4293 = load i32, ptr @test_count, align 4, !tbaa !5
  %4294 = add nsw i32 %4293, 1
  store i32 %4294, ptr @test_count, align 4, !tbaa !5
  %4295 = icmp eq ptr %4292, null
  br i1 %4295, label %4398, label %4420

4296:                                             ; preds = %.preheader758.2, %.preheader758.1, %.preheader758.preheader
  %4297 = load i32, ptr %233, align 4, !tbaa !5
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4299 = call i32 @s2n_print_stacktrace(ptr noundef %4298) #11
  %4300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4301 = trunc nuw i8 %4300 to i1
  br i1 %4301, label %4302, label %4306

4302:                                             ; preds = %4296
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = call i32 @fileno(ptr noundef %4303) #11
  %4305 = call i32 @isatty(i32 noundef %4304) #11
  %.not612 = icmp eq i32 %4305, 0
  br i1 %.not612, label %4306, label %4307

4306:                                             ; preds = %4302, %4296
  br label %4307

4307:                                             ; preds = %4302, %4306
  %.str.5.sink2179 = phi ptr [ @.str.5, %4306 ], [ @.str.2, %4302 ]
  store i32 %4297, ptr %233, align 4, !tbaa !5
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = load i32, ptr @test_count, align 4, !tbaa !5
  %4310 = load i32, ptr %179, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror(i32 noundef %4310, ptr noundef nonnull @.str.4) #11
  %4312 = load i32, ptr %179, align 4, !tbaa !5
  %4313 = call ptr @s2n_strerror_debug(i32 noundef %4312, ptr noundef nonnull @.str.4) #11
  %4314 = load i32, ptr %233, align 4, !tbaa !5
  %4315 = call ptr @strerror(i32 noundef %4314) #11
  %4316 = load i32, ptr %233, align 4, !tbaa !5
  %4317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4308, ptr noundef nonnull %.str.5.sink2179, i32 noundef %4309, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %4311, ptr noundef %4313, ptr noundef %4315, i32 noundef %4316) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4318:                                             ; preds = %.preheader758.preheader
  %4319 = load i32, ptr @test_count, align 4, !tbaa !5
  %4320 = add nsw i32 %4319, 1
  store i32 %4320, ptr @test_count, align 4, !tbaa !5
  %4321 = load i32, ptr %179, align 4, !tbaa !5
  %4322 = icmp eq i32 %4321, 201326593
  br i1 %4322, label %4345, label %4323

4323:                                             ; preds = %4277, %4258, %4318
  %4324 = load i32, ptr %233, align 4, !tbaa !5
  %4325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4326 = call i32 @s2n_print_stacktrace(ptr noundef %4325) #11
  %4327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4328 = trunc nuw i8 %4327 to i1
  br i1 %4328, label %4329, label %4333

4329:                                             ; preds = %4323
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = call i32 @fileno(ptr noundef %4330) #11
  %4332 = call i32 @isatty(i32 noundef %4331) #11
  %.not613 = icmp eq i32 %4332, 0
  br i1 %.not613, label %4333, label %4334

4333:                                             ; preds = %4329, %4323
  br label %4334

4334:                                             ; preds = %4329, %4333
  %.str.5.sink2188 = phi ptr [ @.str.5, %4333 ], [ @.str.2, %4329 ]
  store i32 %4324, ptr %233, align 4, !tbaa !5
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4336 = load i32, ptr @test_count, align 4, !tbaa !5
  %4337 = load i32, ptr %179, align 4, !tbaa !5
  %4338 = call ptr @s2n_strerror(i32 noundef %4337, ptr noundef nonnull @.str.4) #11
  %4339 = load i32, ptr %179, align 4, !tbaa !5
  %4340 = call ptr @s2n_strerror_debug(i32 noundef %4339, ptr noundef nonnull @.str.4) #11
  %4341 = load i32, ptr %233, align 4, !tbaa !5
  %4342 = call ptr @strerror(i32 noundef %4341) #11
  %4343 = load i32, ptr %233, align 4, !tbaa !5
  %4344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4335, ptr noundef nonnull %.str.5.sink2188, i32 noundef %4336, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %4338, ptr noundef %4340, ptr noundef %4342, i32 noundef %4343) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4345:                                             ; preds = %4318
  %4346 = add nsw i32 %4319, 2
  store i32 %4346, ptr @test_count, align 4, !tbaa !5
  %4347 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.4) #11
  %4348 = icmp eq ptr %4347, null
  br i1 %4348, label %4349, label %4371

4349:                                             ; preds = %4282, %4263, %4345
  %4350 = load i32, ptr %233, align 4, !tbaa !5
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = call i32 @s2n_print_stacktrace(ptr noundef %4351) #11
  %4353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4354 = trunc nuw i8 %4353 to i1
  br i1 %4354, label %4355, label %4359

4355:                                             ; preds = %4349
  %4356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4357 = call i32 @fileno(ptr noundef %4356) #11
  %4358 = call i32 @isatty(i32 noundef %4357) #11
  %.not615 = icmp eq i32 %4358, 0
  br i1 %.not615, label %4359, label %4360

4359:                                             ; preds = %4355, %4349
  br label %4360

4360:                                             ; preds = %4355, %4359
  %.str.5.sink2197 = phi ptr [ @.str.5, %4359 ], [ @.str.2, %4355 ]
  store i32 %4350, ptr %233, align 4, !tbaa !5
  %4361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4362 = load i32, ptr @test_count, align 4, !tbaa !5
  %4363 = load i32, ptr %179, align 4, !tbaa !5
  %4364 = call ptr @s2n_strerror(i32 noundef %4363, ptr noundef nonnull @.str.4) #11
  %4365 = load i32, ptr %179, align 4, !tbaa !5
  %4366 = call ptr @s2n_strerror_debug(i32 noundef %4365, ptr noundef nonnull @.str.4) #11
  %4367 = load i32, ptr %233, align 4, !tbaa !5
  %4368 = call ptr @strerror(i32 noundef %4367) #11
  %4369 = load i32, ptr %233, align 4, !tbaa !5
  %4370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4361, ptr noundef nonnull %.str.5.sink2197, i32 noundef %4362, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %4364, ptr noundef %4366, ptr noundef %4368, i32 noundef %4369) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4371:                                             ; preds = %4345
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %4372 = load i32, ptr @test_count, align 4, !tbaa !5
  %4373 = add nsw i32 %4372, 1
  store i32 %4373, ptr @test_count, align 4, !tbaa !5
  %4374 = load i32, ptr %3852, align 4, !tbaa !27
  %4375 = icmp eq i32 %4374, 1
  br i1 %4375, label %.preheader758.1, label %4376

4376:                                             ; preds = %4286, %4267, %4371
  %4377 = load i32, ptr %233, align 4, !tbaa !5
  %4378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4379 = call i32 @s2n_print_stacktrace(ptr noundef %4378) #11
  %4380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4381 = trunc nuw i8 %4380 to i1
  br i1 %4381, label %4382, label %4386

4382:                                             ; preds = %4376
  %4383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4384 = call i32 @fileno(ptr noundef %4383) #11
  %4385 = call i32 @isatty(i32 noundef %4384) #11
  %.not614 = icmp eq i32 %4385, 0
  br i1 %.not614, label %4386, label %4387

4386:                                             ; preds = %4382, %4376
  br label %4387

4387:                                             ; preds = %4382, %4386
  %.str.5.sink2206 = phi ptr [ @.str.5, %4386 ], [ @.str.2, %4382 ]
  store i32 %4377, ptr %233, align 4, !tbaa !5
  %4388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4389 = load i32, ptr @test_count, align 4, !tbaa !5
  %4390 = load i32, ptr %179, align 4, !tbaa !5
  %4391 = call ptr @s2n_strerror(i32 noundef %4390, ptr noundef nonnull @.str.4) #11
  %4392 = load i32, ptr %179, align 4, !tbaa !5
  %4393 = call ptr @s2n_strerror_debug(i32 noundef %4392, ptr noundef nonnull @.str.4) #11
  %4394 = load i32, ptr %233, align 4, !tbaa !5
  %4395 = call ptr @strerror(i32 noundef %4394) #11
  %4396 = load i32, ptr %233, align 4, !tbaa !5
  %4397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4388, ptr noundef nonnull %.str.5.sink2206, i32 noundef %4389, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %4391, ptr noundef %4393, ptr noundef %4395, i32 noundef %4396) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4398:                                             ; preds = %4291
  %4399 = load i32, ptr %233, align 4, !tbaa !5
  %4400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4401 = call i32 @s2n_print_stacktrace(ptr noundef %4400) #11
  %4402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4403 = trunc nuw i8 %4402 to i1
  br i1 %4403, label %4404, label %4408

4404:                                             ; preds = %4398
  %4405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4406 = call i32 @fileno(ptr noundef %4405) #11
  %4407 = call i32 @isatty(i32 noundef %4406) #11
  %.not611 = icmp eq i32 %4407, 0
  br i1 %.not611, label %4408, label %4409

4408:                                             ; preds = %4404, %4398
  br label %4409

4409:                                             ; preds = %4404, %4408
  %.str.5.sink2215 = phi ptr [ @.str.5, %4408 ], [ @.str.2, %4404 ]
  store i32 %4399, ptr %233, align 4, !tbaa !5
  %4410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4411 = load i32, ptr @test_count, align 4, !tbaa !5
  %4412 = load i32, ptr %179, align 4, !tbaa !5
  %4413 = call ptr @s2n_strerror(i32 noundef %4412, ptr noundef nonnull @.str.4) #11
  %4414 = load i32, ptr %179, align 4, !tbaa !5
  %4415 = call ptr @s2n_strerror_debug(i32 noundef %4414, ptr noundef nonnull @.str.4) #11
  %4416 = load i32, ptr %233, align 4, !tbaa !5
  %4417 = call ptr @strerror(i32 noundef %4416) #11
  %4418 = load i32, ptr %233, align 4, !tbaa !5
  %4419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4410, ptr noundef nonnull %.str.5.sink2215, i32 noundef %4411, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %4413, ptr noundef %4415, ptr noundef %4417, i32 noundef %4418) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4420:                                             ; preds = %4291
  %4421 = add nsw i32 %4293, 2
  store i32 %4421, ptr @test_count, align 4, !tbaa !5
  %4422 = load ptr, ptr %49, align 8, !tbaa !9
  %4423 = call i32 @s2n_connection_get_peer_cert_chain(ptr noundef %4422, ptr noundef nonnull %4292) #11
  %4424 = icmp eq i32 %4423, -1
  br i1 %4424, label %4425, label %4447

4425:                                             ; preds = %4420
  %4426 = load i32, ptr %233, align 4, !tbaa !5
  %4427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4428 = call i32 @s2n_print_stacktrace(ptr noundef %4427) #11
  %4429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4430 = trunc nuw i8 %4429 to i1
  br i1 %4430, label %4431, label %4435

4431:                                             ; preds = %4425
  %4432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4433 = call i32 @fileno(ptr noundef %4432) #11
  %4434 = call i32 @isatty(i32 noundef %4433) #11
  %.not610 = icmp eq i32 %4434, 0
  br i1 %.not610, label %4435, label %4436

4435:                                             ; preds = %4431, %4425
  br label %4436

4436:                                             ; preds = %4431, %4435
  %.str.5.sink2224 = phi ptr [ @.str.5, %4435 ], [ @.str.2, %4431 ]
  store i32 %4426, ptr %233, align 4, !tbaa !5
  %4437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4438 = load i32, ptr @test_count, align 4, !tbaa !5
  %4439 = load i32, ptr %179, align 4, !tbaa !5
  %4440 = call ptr @s2n_strerror(i32 noundef %4439, ptr noundef nonnull @.str.4) #11
  %4441 = load i32, ptr %179, align 4, !tbaa !5
  %4442 = call ptr @s2n_strerror_debug(i32 noundef %4441, ptr noundef nonnull @.str.4) #11
  %4443 = load i32, ptr %233, align 4, !tbaa !5
  %4444 = call ptr @strerror(i32 noundef %4443) #11
  %4445 = load i32, ptr %233, align 4, !tbaa !5
  %4446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4437, ptr noundef nonnull %.str.5.sink2224, i32 noundef %4438, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %4440, ptr noundef %4442, ptr noundef %4444, i32 noundef %4445) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4447:                                             ; preds = %4420
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #11
  store i32 0, ptr %52, align 4, !tbaa !5
  %4448 = load i32, ptr @test_count, align 4, !tbaa !5
  %4449 = add nsw i32 %4448, 1
  store i32 %4449, ptr @test_count, align 4, !tbaa !5
  %4450 = load ptr, ptr %51, align 8, !tbaa !9
  %4451 = call i32 @s2n_cert_chain_get_length(ptr noundef %4450, ptr noundef nonnull %52) #11
  %4452 = icmp eq i32 %4451, -1
  br i1 %4452, label %4453, label %4475

4453:                                             ; preds = %4447
  %4454 = load i32, ptr %233, align 4, !tbaa !5
  %4455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4456 = call i32 @s2n_print_stacktrace(ptr noundef %4455) #11
  %4457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4458 = trunc nuw i8 %4457 to i1
  br i1 %4458, label %4459, label %4463

4459:                                             ; preds = %4453
  %4460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4461 = call i32 @fileno(ptr noundef %4460) #11
  %4462 = call i32 @isatty(i32 noundef %4461) #11
  %.not609 = icmp eq i32 %4462, 0
  br i1 %.not609, label %4463, label %4464

4463:                                             ; preds = %4459, %4453
  br label %4464

4464:                                             ; preds = %4459, %4463
  %.str.5.sink2233 = phi ptr [ @.str.5, %4463 ], [ @.str.2, %4459 ]
  store i32 %4454, ptr %233, align 4, !tbaa !5
  %4465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4466 = load i32, ptr @test_count, align 4, !tbaa !5
  %4467 = load i32, ptr %179, align 4, !tbaa !5
  %4468 = call ptr @s2n_strerror(i32 noundef %4467, ptr noundef nonnull @.str.4) #11
  %4469 = load i32, ptr %179, align 4, !tbaa !5
  %4470 = call ptr @s2n_strerror_debug(i32 noundef %4469, ptr noundef nonnull @.str.4) #11
  %4471 = load i32, ptr %233, align 4, !tbaa !5
  %4472 = call ptr @strerror(i32 noundef %4471) #11
  %4473 = load i32, ptr %233, align 4, !tbaa !5
  %4474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4465, ptr noundef nonnull %.str.5.sink2233, i32 noundef %4466, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 490, ptr noundef %4468, ptr noundef %4470, ptr noundef %4472, i32 noundef %4473) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4475:                                             ; preds = %4447
  %4476 = load i32, ptr @test_count, align 4, !tbaa !5
  %4477 = add nsw i32 %4476, 1
  store i32 %4477, ptr @test_count, align 4, !tbaa !5
  %4478 = load i32, ptr %52, align 4, !tbaa !5
  %.not598 = icmp eq i32 %4478, 0
  br i1 %.not598, label %4479, label %4501

4479:                                             ; preds = %4475
  %4480 = load i32, ptr %233, align 4, !tbaa !5
  %4481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4482 = call i32 @s2n_print_stacktrace(ptr noundef %4481) #11
  %4483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4484 = trunc nuw i8 %4483 to i1
  br i1 %4484, label %4485, label %4489

4485:                                             ; preds = %4479
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4487 = call i32 @fileno(ptr noundef %4486) #11
  %4488 = call i32 @isatty(i32 noundef %4487) #11
  %.not599 = icmp eq i32 %4488, 0
  br i1 %.not599, label %4489, label %4490

4489:                                             ; preds = %4485, %4479
  br label %4490

4490:                                             ; preds = %4485, %4489
  %.str.5.sink2242 = phi ptr [ @.str.5, %4489 ], [ @.str.2, %4485 ]
  store i32 %4480, ptr %233, align 4, !tbaa !5
  %4491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4492 = load i32, ptr @test_count, align 4, !tbaa !5
  %4493 = load i32, ptr %179, align 4, !tbaa !5
  %4494 = call ptr @s2n_strerror(i32 noundef %4493, ptr noundef nonnull @.str.4) #11
  %4495 = load i32, ptr %179, align 4, !tbaa !5
  %4496 = call ptr @s2n_strerror_debug(i32 noundef %4495, ptr noundef nonnull @.str.4) #11
  %4497 = load i32, ptr %233, align 4, !tbaa !5
  %4498 = call ptr @strerror(i32 noundef %4497) #11
  %4499 = load i32, ptr %233, align 4, !tbaa !5
  %4500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4491, ptr noundef nonnull %.str.5.sink2242, i32 noundef %4492, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 491, ptr noundef %4494, ptr noundef %4496, ptr noundef %4498, i32 noundef %4499) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4501:                                             ; preds = %4475
  %4502 = load ptr, ptr %3853, align 8, !tbaa !34
  %4503 = add nsw i32 %4476, 2
  store i32 %4503, ptr @test_count, align 4, !tbaa !5
  %4504 = icmp eq ptr %4502, null
  br i1 %4504, label %4505, label %4527

4505:                                             ; preds = %4501
  %4506 = load i32, ptr %233, align 4, !tbaa !5
  %4507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4508 = call i32 @s2n_print_stacktrace(ptr noundef %4507) #11
  %4509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4510 = trunc nuw i8 %4509 to i1
  br i1 %4510, label %4511, label %4515

4511:                                             ; preds = %4505
  %4512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4513 = call i32 @fileno(ptr noundef %4512) #11
  %4514 = call i32 @isatty(i32 noundef %4513) #11
  %.not608 = icmp eq i32 %4514, 0
  br i1 %.not608, label %4515, label %4516

4515:                                             ; preds = %4511, %4505
  br label %4516

4516:                                             ; preds = %4511, %4515
  %.str.5.sink2251 = phi ptr [ @.str.5, %4515 ], [ @.str.2, %4511 ]
  store i32 %4506, ptr %233, align 4, !tbaa !5
  %4517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4518 = load i32, ptr @test_count, align 4, !tbaa !5
  %4519 = load i32, ptr %179, align 4, !tbaa !5
  %4520 = call ptr @s2n_strerror(i32 noundef %4519, ptr noundef nonnull @.str.4) #11
  %4521 = load i32, ptr %179, align 4, !tbaa !5
  %4522 = call ptr @s2n_strerror_debug(i32 noundef %4521, ptr noundef nonnull @.str.4) #11
  %4523 = load i32, ptr %233, align 4, !tbaa !5
  %4524 = call ptr @strerror(i32 noundef %4523) #11
  %4525 = load i32, ptr %233, align 4, !tbaa !5
  %4526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4517, ptr noundef nonnull %.str.5.sink2251, i32 noundef %4518, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 494, ptr noundef %4520, ptr noundef %4522, ptr noundef %4524, i32 noundef %4525) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4527:                                             ; preds = %4501
  %4528 = load i8, ptr %3855, align 16
  %4529 = and i8 %4528, 2
  %.not600 = icmp eq i8 %4529, 0
  %4530 = add nsw i32 %4476, 3
  store i32 %4530, ptr @test_count, align 4, !tbaa !5
  br i1 %.not600, label %4585, label %4531

4531:                                             ; preds = %4527
  %4532 = call i32 @s2n_cert_validation_accept(ptr noundef nonnull %4502) #11
  %4533 = icmp eq i32 %4532, -1
  br i1 %4533, label %4534, label %4556

4534:                                             ; preds = %4531
  %4535 = load i32, ptr %233, align 4, !tbaa !5
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4537 = call i32 @s2n_print_stacktrace(ptr noundef %4536) #11
  %4538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4539 = trunc nuw i8 %4538 to i1
  br i1 %4539, label %4540, label %4544

4540:                                             ; preds = %4534
  %4541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4542 = call i32 @fileno(ptr noundef %4541) #11
  %4543 = call i32 @isatty(i32 noundef %4542) #11
  %.not607 = icmp eq i32 %4543, 0
  br i1 %.not607, label %4544, label %4545

4544:                                             ; preds = %4540, %4534
  br label %4545

4545:                                             ; preds = %4540, %4544
  %.str.5.sink2260 = phi ptr [ @.str.5, %4544 ], [ @.str.2, %4540 ]
  store i32 %4535, ptr %233, align 4, !tbaa !5
  %4546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4547 = load i32, ptr @test_count, align 4, !tbaa !5
  %4548 = load i32, ptr %179, align 4, !tbaa !5
  %4549 = call ptr @s2n_strerror(i32 noundef %4548, ptr noundef nonnull @.str.4) #11
  %4550 = load i32, ptr %179, align 4, !tbaa !5
  %4551 = call ptr @s2n_strerror_debug(i32 noundef %4550, ptr noundef nonnull @.str.4) #11
  %4552 = load i32, ptr %233, align 4, !tbaa !5
  %4553 = call ptr @strerror(i32 noundef %4552) #11
  %4554 = load i32, ptr %233, align 4, !tbaa !5
  %4555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4546, ptr noundef nonnull %.str.5.sink2260, i32 noundef %4547, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 497, ptr noundef %4549, ptr noundef %4551, ptr noundef %4553, i32 noundef %4554) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4556:                                             ; preds = %4531
  %4557 = load i32, ptr @test_count, align 4, !tbaa !5
  %4558 = add nsw i32 %4557, 1
  store i32 %4558, ptr @test_count, align 4, !tbaa !5
  %4559 = load ptr, ptr %48, align 8, !tbaa !9
  %4560 = load ptr, ptr %49, align 8, !tbaa !9
  %4561 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4559, ptr noundef %4560) #11
  %4562 = icmp eq i32 %4561, -1
  br i1 %4562, label %4563, label %4693

4563:                                             ; preds = %4556
  %4564 = load i32, ptr %233, align 4, !tbaa !5
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = call i32 @s2n_print_stacktrace(ptr noundef %4565) #11
  %4567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4568 = trunc nuw i8 %4567 to i1
  br i1 %4568, label %4569, label %4573

4569:                                             ; preds = %4563
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = call i32 @fileno(ptr noundef %4570) #11
  %4572 = call i32 @isatty(i32 noundef %4571) #11
  %.not606 = icmp eq i32 %4572, 0
  br i1 %.not606, label %4573, label %4574

4573:                                             ; preds = %4569, %4563
  br label %4574

4574:                                             ; preds = %4569, %4573
  %.str.5.sink2269 = phi ptr [ @.str.5, %4573 ], [ @.str.2, %4569 ]
  store i32 %4564, ptr %233, align 4, !tbaa !5
  %4575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4576 = load i32, ptr @test_count, align 4, !tbaa !5
  %4577 = load i32, ptr %179, align 4, !tbaa !5
  %4578 = call ptr @s2n_strerror(i32 noundef %4577, ptr noundef nonnull @.str.4) #11
  %4579 = load i32, ptr %179, align 4, !tbaa !5
  %4580 = call ptr @s2n_strerror_debug(i32 noundef %4579, ptr noundef nonnull @.str.4) #11
  %4581 = load i32, ptr %233, align 4, !tbaa !5
  %4582 = call ptr @strerror(i32 noundef %4581) #11
  %4583 = load i32, ptr %233, align 4, !tbaa !5
  %4584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4575, ptr noundef nonnull %.str.5.sink2269, i32 noundef %4576, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %4578, ptr noundef %4580, ptr noundef %4582, i32 noundef %4583) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4585:                                             ; preds = %4527
  %4586 = call i32 @s2n_cert_validation_reject(ptr noundef nonnull %4502) #11
  %4587 = icmp eq i32 %4586, -1
  br i1 %4587, label %4588, label %4610

4588:                                             ; preds = %4585
  %4589 = load i32, ptr %233, align 4, !tbaa !5
  %4590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4591 = call i32 @s2n_print_stacktrace(ptr noundef %4590) #11
  %4592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4593 = trunc nuw i8 %4592 to i1
  br i1 %4593, label %4594, label %4598

4594:                                             ; preds = %4588
  %4595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4596 = call i32 @fileno(ptr noundef %4595) #11
  %4597 = call i32 @isatty(i32 noundef %4596) #11
  %.not604 = icmp eq i32 %4597, 0
  br i1 %.not604, label %4598, label %4599

4598:                                             ; preds = %4594, %4588
  br label %4599

4599:                                             ; preds = %4594, %4598
  %.str.5.sink2278 = phi ptr [ @.str.5, %4598 ], [ @.str.2, %4594 ]
  store i32 %4589, ptr %233, align 4, !tbaa !5
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = load i32, ptr @test_count, align 4, !tbaa !5
  %4602 = load i32, ptr %179, align 4, !tbaa !5
  %4603 = call ptr @s2n_strerror(i32 noundef %4602, ptr noundef nonnull @.str.4) #11
  %4604 = load i32, ptr %179, align 4, !tbaa !5
  %4605 = call ptr @s2n_strerror_debug(i32 noundef %4604, ptr noundef nonnull @.str.4) #11
  %4606 = load i32, ptr %233, align 4, !tbaa !5
  %4607 = call ptr @strerror(i32 noundef %4606) #11
  %4608 = load i32, ptr %233, align 4, !tbaa !5
  %4609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4600, ptr noundef nonnull %.str.5.sink2278, i32 noundef %4601, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 500, ptr noundef %4603, ptr noundef %4605, ptr noundef %4607, i32 noundef %4608) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4610:                                             ; preds = %4585
  %4611 = load i32, ptr @test_count, align 4, !tbaa !5
  %4612 = add nsw i32 %4611, 1
  store i32 %4612, ptr @test_count, align 4, !tbaa !5
  %4613 = load ptr, ptr %48, align 8, !tbaa !9
  %4614 = load ptr, ptr %49, align 8, !tbaa !9
  %4615 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4613, ptr noundef %4614) #11
  %4616 = icmp eq i32 %4615, -1
  br i1 %4616, label %4639, label %4617

4617:                                             ; preds = %4610
  %4618 = load i32, ptr %233, align 4, !tbaa !5
  %4619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4620 = call i32 @s2n_print_stacktrace(ptr noundef %4619) #11
  %4621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4622 = trunc nuw i8 %4621 to i1
  br i1 %4622, label %4623, label %4627

4623:                                             ; preds = %4617
  %4624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4625 = call i32 @fileno(ptr noundef %4624) #11
  %4626 = call i32 @isatty(i32 noundef %4625) #11
  %.not601 = icmp eq i32 %4626, 0
  br i1 %.not601, label %4627, label %4628

4627:                                             ; preds = %4623, %4617
  br label %4628

4628:                                             ; preds = %4623, %4627
  %.str.5.sink2287 = phi ptr [ @.str.5, %4627 ], [ @.str.2, %4623 ]
  store i32 %4618, ptr %233, align 4, !tbaa !5
  %4629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4630 = load i32, ptr @test_count, align 4, !tbaa !5
  %4631 = load i32, ptr %179, align 4, !tbaa !5
  %4632 = call ptr @s2n_strerror(i32 noundef %4631, ptr noundef nonnull @.str.4) #11
  %4633 = load i32, ptr %179, align 4, !tbaa !5
  %4634 = call ptr @s2n_strerror_debug(i32 noundef %4633, ptr noundef nonnull @.str.4) #11
  %4635 = load i32, ptr %233, align 4, !tbaa !5
  %4636 = call ptr @strerror(i32 noundef %4635) #11
  %4637 = load i32, ptr %233, align 4, !tbaa !5
  %4638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4629, ptr noundef nonnull %.str.5.sink2287, i32 noundef %4630, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %4632, ptr noundef %4634, ptr noundef %4636, i32 noundef %4637) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4639:                                             ; preds = %4610
  %4640 = load i32, ptr @test_count, align 4, !tbaa !5
  %4641 = add nsw i32 %4640, 1
  store i32 %4641, ptr @test_count, align 4, !tbaa !5
  %4642 = load i32, ptr %179, align 4, !tbaa !5
  %4643 = icmp eq i32 %4642, 335544373
  br i1 %4643, label %4666, label %4644

4644:                                             ; preds = %4639
  %4645 = load i32, ptr %233, align 4, !tbaa !5
  %4646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4647 = call i32 @s2n_print_stacktrace(ptr noundef %4646) #11
  %4648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4649 = trunc nuw i8 %4648 to i1
  br i1 %4649, label %4650, label %4654

4650:                                             ; preds = %4644
  %4651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4652 = call i32 @fileno(ptr noundef %4651) #11
  %4653 = call i32 @isatty(i32 noundef %4652) #11
  %.not602 = icmp eq i32 %4653, 0
  br i1 %.not602, label %4654, label %4655

4654:                                             ; preds = %4650, %4644
  br label %4655

4655:                                             ; preds = %4650, %4654
  %.str.5.sink2296 = phi ptr [ @.str.5, %4654 ], [ @.str.2, %4650 ]
  store i32 %4645, ptr %233, align 4, !tbaa !5
  %4656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4657 = load i32, ptr @test_count, align 4, !tbaa !5
  %4658 = load i32, ptr %179, align 4, !tbaa !5
  %4659 = call ptr @s2n_strerror(i32 noundef %4658, ptr noundef nonnull @.str.4) #11
  %4660 = load i32, ptr %179, align 4, !tbaa !5
  %4661 = call ptr @s2n_strerror_debug(i32 noundef %4660, ptr noundef nonnull @.str.4) #11
  %4662 = load i32, ptr %233, align 4, !tbaa !5
  %4663 = call ptr @strerror(i32 noundef %4662) #11
  %4664 = load i32, ptr %233, align 4, !tbaa !5
  %4665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4656, ptr noundef nonnull %.str.5.sink2296, i32 noundef %4657, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %4659, ptr noundef %4661, ptr noundef %4663, i32 noundef %4664) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4666:                                             ; preds = %4639
  %4667 = add nsw i32 %4640, 2
  store i32 %4667, ptr @test_count, align 4, !tbaa !5
  %4668 = call ptr @s2n_strerror_debug(i32 noundef 335544373, ptr noundef nonnull @.str.4) #11
  %4669 = icmp eq ptr %4668, null
  br i1 %4669, label %4670, label %4692

4670:                                             ; preds = %4666
  %4671 = load i32, ptr %233, align 4, !tbaa !5
  %4672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4673 = call i32 @s2n_print_stacktrace(ptr noundef %4672) #11
  %4674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4675 = trunc nuw i8 %4674 to i1
  br i1 %4675, label %4676, label %4680

4676:                                             ; preds = %4670
  %4677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4678 = call i32 @fileno(ptr noundef %4677) #11
  %4679 = call i32 @isatty(i32 noundef %4678) #11
  %.not603 = icmp eq i32 %4679, 0
  br i1 %.not603, label %4680, label %4681

4680:                                             ; preds = %4676, %4670
  br label %4681

4681:                                             ; preds = %4676, %4680
  %.str.5.sink2305 = phi ptr [ @.str.5, %4680 ], [ @.str.2, %4676 ]
  store i32 %4671, ptr %233, align 4, !tbaa !5
  %4682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4683 = load i32, ptr @test_count, align 4, !tbaa !5
  %4684 = load i32, ptr %179, align 4, !tbaa !5
  %4685 = call ptr @s2n_strerror(i32 noundef %4684, ptr noundef nonnull @.str.4) #11
  %4686 = load i32, ptr %179, align 4, !tbaa !5
  %4687 = call ptr @s2n_strerror_debug(i32 noundef %4686, ptr noundef nonnull @.str.4) #11
  %4688 = load i32, ptr %233, align 4, !tbaa !5
  %4689 = call ptr @strerror(i32 noundef %4688) #11
  %4690 = load i32, ptr %233, align 4, !tbaa !5
  %4691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4682, ptr noundef nonnull %.str.5.sink2305, i32 noundef %4683, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %4685, ptr noundef %4687, ptr noundef %4689, i32 noundef %4690) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4692:                                             ; preds = %4666
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  br label %4693

4693:                                             ; preds = %4692, %4556
  %4694 = load i32, ptr @test_count, align 4, !tbaa !5
  %4695 = add nsw i32 %4694, 1
  store i32 %4695, ptr @test_count, align 4, !tbaa !5
  %4696 = load i32, ptr %3852, align 4, !tbaa !27
  %4697 = icmp eq i32 %4696, 1
  br i1 %4697, label %4720, label %4698

4698:                                             ; preds = %4693
  %4699 = load i32, ptr %233, align 4, !tbaa !5
  %4700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4701 = call i32 @s2n_print_stacktrace(ptr noundef %4700) #11
  %4702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4703 = trunc nuw i8 %4702 to i1
  br i1 %4703, label %4704, label %4708

4704:                                             ; preds = %4698
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = call i32 @fileno(ptr noundef %4705) #11
  %4707 = call i32 @isatty(i32 noundef %4706) #11
  %.not605 = icmp eq i32 %4707, 0
  br i1 %.not605, label %4708, label %4709

4708:                                             ; preds = %4704, %4698
  br label %4709

4709:                                             ; preds = %4704, %4708
  %.str.5.sink2314 = phi ptr [ @.str.5, %4708 ], [ @.str.2, %4704 ]
  store i32 %4699, ptr %233, align 4, !tbaa !5
  %4710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4711 = load i32, ptr @test_count, align 4, !tbaa !5
  %4712 = load i32, ptr %179, align 4, !tbaa !5
  %4713 = call ptr @s2n_strerror(i32 noundef %4712, ptr noundef nonnull @.str.4) #11
  %4714 = load i32, ptr %179, align 4, !tbaa !5
  %4715 = call ptr @s2n_strerror_debug(i32 noundef %4714, ptr noundef nonnull @.str.4) #11
  %4716 = load i32, ptr %233, align 4, !tbaa !5
  %4717 = call ptr @strerror(i32 noundef %4716) #11
  %4718 = load i32, ptr %233, align 4, !tbaa !5
  %4719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4710, ptr noundef nonnull %.str.5.sink2314, i32 noundef %4711, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %4713, ptr noundef %4715, ptr noundef %4717, i32 noundef %4718) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4720:                                             ; preds = %4693
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #11
  %4721 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #11
  %4722 = call i32 @s2n_io_pair_close(ptr noundef nonnull %50) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #11
  %4723 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %49) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #11
  %4724 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #11
  %4725 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  br i1 %3860, label %3859, label %3858, !llvm.loop !35

.preheader756:                                    ; preds = %.preheader757, %4732
  %4726 = phi i1 [ true, %.preheader757 ], [ false, %4732 ]
  %indvars.iv810 = phi i64 [ 0, %.preheader757 ], [ 1, %4732 ]
  %4727 = getelementptr inbounds [2 x %struct.s2n_cert_validation_data], ptr @__const.main.async_test_cases, i64 0, i64 %indvars.iv810
  br label %4733

4728:                                             ; preds = %4732
  %4729 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #11
  %4730 = call i32 @s2n_cleanup() #11
  %4731 = icmp eq i32 %4730, -1
  br i1 %4731, label %5711, label %5733

4732:                                             ; preds = %5705
  br i1 %4726, label %.preheader756, label %4728, !llvm.loop !36

4733:                                             ; preds = %.preheader756, %5705
  %4734 = phi i1 [ true, %.preheader756 ], [ false, %5705 ]
  %indvars.iv807 = phi i64 [ 0, %.preheader756 ], [ 1, %5705 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #11
  %4735 = call ptr @s2n_config_new() #11
  store ptr %4735, ptr %53, align 8, !tbaa !9
  %4736 = load i32, ptr @test_count, align 4, !tbaa !5
  %4737 = add nsw i32 %4736, 1
  store i32 %4737, ptr @test_count, align 4, !tbaa !5
  %4738 = icmp eq ptr %4735, null
  br i1 %4738, label %4739, label %4761

4739:                                             ; preds = %4733
  %4740 = load i32, ptr %233, align 4, !tbaa !5
  %4741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4742 = call i32 @s2n_print_stacktrace(ptr noundef %4741) #11
  %4743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4744 = trunc nuw i8 %4743 to i1
  br i1 %4744, label %4745, label %4749

4745:                                             ; preds = %4739
  %4746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4747 = call i32 @fileno(ptr noundef %4746) #11
  %4748 = call i32 @isatty(i32 noundef %4747) #11
  %.not597 = icmp eq i32 %4748, 0
  br i1 %.not597, label %4749, label %4750

4749:                                             ; preds = %4745, %4739
  br label %4750

4750:                                             ; preds = %4745, %4749
  %.str.5.sink2323 = phi ptr [ @.str.5, %4749 ], [ @.str.2, %4745 ]
  store i32 %4740, ptr %233, align 4, !tbaa !5
  %4751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4752 = load i32, ptr @test_count, align 4, !tbaa !5
  %4753 = load i32, ptr %179, align 4, !tbaa !5
  %4754 = call ptr @s2n_strerror(i32 noundef %4753, ptr noundef nonnull @.str.4) #11
  %4755 = load i32, ptr %179, align 4, !tbaa !5
  %4756 = call ptr @s2n_strerror_debug(i32 noundef %4755, ptr noundef nonnull @.str.4) #11
  %4757 = load i32, ptr %233, align 4, !tbaa !5
  %4758 = call ptr @strerror(i32 noundef %4757) #11
  %4759 = load i32, ptr %233, align 4, !tbaa !5
  %4760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4751, ptr noundef nonnull %.str.5.sink2323, i32 noundef %4752, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 513, ptr noundef %4754, ptr noundef %4756, ptr noundef %4758, i32 noundef %4759) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4761:                                             ; preds = %4733
  %4762 = add nsw i32 %4736, 2
  store i32 %4762, ptr @test_count, align 4, !tbaa !5
  %4763 = load ptr, ptr %7, align 8, !tbaa !9
  %4764 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %4735, ptr noundef %4763) #11
  %4765 = icmp eq i32 %4764, -1
  br i1 %4765, label %4766, label %4788

4766:                                             ; preds = %4761
  %4767 = load i32, ptr %233, align 4, !tbaa !5
  %4768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4769 = call i32 @s2n_print_stacktrace(ptr noundef %4768) #11
  %4770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4771 = trunc nuw i8 %4770 to i1
  br i1 %4771, label %4772, label %4776

4772:                                             ; preds = %4766
  %4773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4774 = call i32 @fileno(ptr noundef %4773) #11
  %4775 = call i32 @isatty(i32 noundef %4774) #11
  %.not596 = icmp eq i32 %4775, 0
  br i1 %.not596, label %4776, label %4777

4776:                                             ; preds = %4772, %4766
  br label %4777

4777:                                             ; preds = %4772, %4776
  %.str.5.sink2332 = phi ptr [ @.str.5, %4776 ], [ @.str.2, %4772 ]
  store i32 %4767, ptr %233, align 4, !tbaa !5
  %4778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4779 = load i32, ptr @test_count, align 4, !tbaa !5
  %4780 = load i32, ptr %179, align 4, !tbaa !5
  %4781 = call ptr @s2n_strerror(i32 noundef %4780, ptr noundef nonnull @.str.4) #11
  %4782 = load i32, ptr %179, align 4, !tbaa !5
  %4783 = call ptr @s2n_strerror_debug(i32 noundef %4782, ptr noundef nonnull @.str.4) #11
  %4784 = load i32, ptr %233, align 4, !tbaa !5
  %4785 = call ptr @strerror(i32 noundef %4784) #11
  %4786 = load i32, ptr %233, align 4, !tbaa !5
  %4787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4778, ptr noundef nonnull %.str.5.sink2332, i32 noundef %4779, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 514, ptr noundef %4781, ptr noundef %4783, ptr noundef %4785, i32 noundef %4786) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4788:                                             ; preds = %4761
  %4789 = load i32, ptr @test_count, align 4, !tbaa !5
  %4790 = add nsw i32 %4789, 1
  store i32 %4790, ptr @test_count, align 4, !tbaa !5
  %4791 = load ptr, ptr %53, align 8, !tbaa !9
  %4792 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %4791, ptr noundef nonnull @.str.23, ptr noundef null) #11
  %4793 = icmp eq i32 %4792, -1
  br i1 %4793, label %4794, label %4816

4794:                                             ; preds = %4788
  %4795 = load i32, ptr %233, align 4, !tbaa !5
  %4796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4797 = call i32 @s2n_print_stacktrace(ptr noundef %4796) #11
  %4798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4799 = trunc nuw i8 %4798 to i1
  br i1 %4799, label %4800, label %4804

4800:                                             ; preds = %4794
  %4801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4802 = call i32 @fileno(ptr noundef %4801) #11
  %4803 = call i32 @isatty(i32 noundef %4802) #11
  %.not595 = icmp eq i32 %4803, 0
  br i1 %.not595, label %4804, label %4805

4804:                                             ; preds = %4800, %4794
  br label %4805

4805:                                             ; preds = %4800, %4804
  %.str.5.sink2341 = phi ptr [ @.str.5, %4804 ], [ @.str.2, %4800 ]
  store i32 %4795, ptr %233, align 4, !tbaa !5
  %4806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4807 = load i32, ptr @test_count, align 4, !tbaa !5
  %4808 = load i32, ptr %179, align 4, !tbaa !5
  %4809 = call ptr @s2n_strerror(i32 noundef %4808, ptr noundef nonnull @.str.4) #11
  %4810 = load i32, ptr %179, align 4, !tbaa !5
  %4811 = call ptr @s2n_strerror_debug(i32 noundef %4810, ptr noundef nonnull @.str.4) #11
  %4812 = load i32, ptr %233, align 4, !tbaa !5
  %4813 = call ptr @strerror(i32 noundef %4812) #11
  %4814 = load i32, ptr %233, align 4, !tbaa !5
  %4815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4806, ptr noundef nonnull %.str.5.sink2341, i32 noundef %4807, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 515, ptr noundef %4809, ptr noundef %4811, ptr noundef %4813, i32 noundef %4814) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4816:                                             ; preds = %4788
  %4817 = load i32, ptr @test_count, align 4, !tbaa !5
  %4818 = add nsw i32 %4817, 1
  store i32 %4818, ptr @test_count, align 4, !tbaa !5
  %4819 = load ptr, ptr %53, align 8, !tbaa !9
  %4820 = getelementptr inbounds [2 x ptr], ptr @__const.main.versions, i64 0, i64 %indvars.iv807
  %4821 = load ptr, ptr %4820, align 8, !tbaa !9
  %4822 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %4819, ptr noundef %4821) #11
  %4823 = icmp eq i32 %4822, -1
  br i1 %4823, label %4824, label %4846

4824:                                             ; preds = %4816
  %4825 = load i32, ptr %233, align 4, !tbaa !5
  %4826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4827 = call i32 @s2n_print_stacktrace(ptr noundef %4826) #11
  %4828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4829 = trunc nuw i8 %4828 to i1
  br i1 %4829, label %4830, label %4834

4830:                                             ; preds = %4824
  %4831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4832 = call i32 @fileno(ptr noundef %4831) #11
  %4833 = call i32 @isatty(i32 noundef %4832) #11
  %.not594 = icmp eq i32 %4833, 0
  br i1 %.not594, label %4834, label %4835

4834:                                             ; preds = %4830, %4824
  br label %4835

4835:                                             ; preds = %4830, %4834
  %.str.5.sink2350 = phi ptr [ @.str.5, %4834 ], [ @.str.2, %4830 ]
  store i32 %4825, ptr %233, align 4, !tbaa !5
  %4836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4837 = load i32, ptr @test_count, align 4, !tbaa !5
  %4838 = load i32, ptr %179, align 4, !tbaa !5
  %4839 = call ptr @s2n_strerror(i32 noundef %4838, ptr noundef nonnull @.str.4) #11
  %4840 = load i32, ptr %179, align 4, !tbaa !5
  %4841 = call ptr @s2n_strerror_debug(i32 noundef %4840, ptr noundef nonnull @.str.4) #11
  %4842 = load i32, ptr %233, align 4, !tbaa !5
  %4843 = call ptr @strerror(i32 noundef %4842) #11
  %4844 = load i32, ptr %233, align 4, !tbaa !5
  %4845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4836, ptr noundef nonnull %.str.5.sink2350, i32 noundef %4837, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 516, ptr noundef %4839, ptr noundef %4841, ptr noundef %4843, i32 noundef %4844) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4846:                                             ; preds = %4816
  %4847 = load i32, ptr @test_count, align 4, !tbaa !5
  %4848 = add nsw i32 %4847, 1
  store i32 %4848, ptr @test_count, align 4, !tbaa !5
  %4849 = load ptr, ptr %53, align 8, !tbaa !9
  %4850 = call i32 @s2n_config_set_client_auth_type(ptr noundef %4849, i32 noundef 1) #11
  %4851 = icmp eq i32 %4850, -1
  br i1 %4851, label %4852, label %4874

4852:                                             ; preds = %4846
  %4853 = load i32, ptr %233, align 4, !tbaa !5
  %4854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4855 = call i32 @s2n_print_stacktrace(ptr noundef %4854) #11
  %4856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4857 = trunc nuw i8 %4856 to i1
  br i1 %4857, label %4858, label %4862

4858:                                             ; preds = %4852
  %4859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4860 = call i32 @fileno(ptr noundef %4859) #11
  %4861 = call i32 @isatty(i32 noundef %4860) #11
  %.not593 = icmp eq i32 %4861, 0
  br i1 %.not593, label %4862, label %4863

4862:                                             ; preds = %4858, %4852
  br label %4863

4863:                                             ; preds = %4858, %4862
  %.str.5.sink2359 = phi ptr [ @.str.5, %4862 ], [ @.str.2, %4858 ]
  store i32 %4853, ptr %233, align 4, !tbaa !5
  %4864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4865 = load i32, ptr @test_count, align 4, !tbaa !5
  %4866 = load i32, ptr %179, align 4, !tbaa !5
  %4867 = call ptr @s2n_strerror(i32 noundef %4866, ptr noundef nonnull @.str.4) #11
  %4868 = load i32, ptr %179, align 4, !tbaa !5
  %4869 = call ptr @s2n_strerror_debug(i32 noundef %4868, ptr noundef nonnull @.str.4) #11
  %4870 = load i32, ptr %233, align 4, !tbaa !5
  %4871 = call ptr @strerror(i32 noundef %4870) #11
  %4872 = load i32, ptr %233, align 4, !tbaa !5
  %4873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4864, ptr noundef nonnull %.str.5.sink2359, i32 noundef %4865, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 517, ptr noundef %4867, ptr noundef %4869, ptr noundef %4871, i32 noundef %4872) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4874:                                             ; preds = %4846
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 16 dereferenceable(16) %4727, i64 16, i1 false), !tbaa.struct !18
  %4875 = load i32, ptr @test_count, align 4, !tbaa !5
  %4876 = add nsw i32 %4875, 1
  store i32 %4876, ptr @test_count, align 4, !tbaa !5
  %4877 = load ptr, ptr %53, align 8, !tbaa !9
  %4878 = call i32 @s2n_config_set_cert_validation_cb(ptr noundef %4877, ptr noundef nonnull @s2n_test_cert_validation_callback_self_talk_server, ptr noundef nonnull %54) #11
  %4879 = icmp eq i32 %4878, -1
  br i1 %4879, label %4880, label %4902

4880:                                             ; preds = %4874
  %4881 = load i32, ptr %233, align 4, !tbaa !5
  %4882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4883 = call i32 @s2n_print_stacktrace(ptr noundef %4882) #11
  %4884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4885 = trunc nuw i8 %4884 to i1
  br i1 %4885, label %4886, label %4890

4886:                                             ; preds = %4880
  %4887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4888 = call i32 @fileno(ptr noundef %4887) #11
  %4889 = call i32 @isatty(i32 noundef %4888) #11
  %.not592 = icmp eq i32 %4889, 0
  br i1 %.not592, label %4890, label %4891

4890:                                             ; preds = %4886, %4880
  br label %4891

4891:                                             ; preds = %4886, %4890
  %.str.5.sink2368 = phi ptr [ @.str.5, %4890 ], [ @.str.2, %4886 ]
  store i32 %4881, ptr %233, align 4, !tbaa !5
  %4892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4893 = load i32, ptr @test_count, align 4, !tbaa !5
  %4894 = load i32, ptr %179, align 4, !tbaa !5
  %4895 = call ptr @s2n_strerror(i32 noundef %4894, ptr noundef nonnull @.str.4) #11
  %4896 = load i32, ptr %179, align 4, !tbaa !5
  %4897 = call ptr @s2n_strerror_debug(i32 noundef %4896, ptr noundef nonnull @.str.4) #11
  %4898 = load i32, ptr %233, align 4, !tbaa !5
  %4899 = call ptr @strerror(i32 noundef %4898) #11
  %4900 = load i32, ptr %233, align 4, !tbaa !5
  %4901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4892, ptr noundef nonnull %.str.5.sink2368, i32 noundef %4893, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 521, ptr noundef %4895, ptr noundef %4897, ptr noundef %4899, i32 noundef %4900) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4902:                                             ; preds = %4874
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #11
  %4903 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4903, ptr %55, align 8, !tbaa !9
  %4904 = load i32, ptr @test_count, align 4, !tbaa !5
  %4905 = add nsw i32 %4904, 1
  store i32 %4905, ptr @test_count, align 4, !tbaa !5
  %4906 = icmp eq ptr %4903, null
  br i1 %4906, label %4907, label %4929

4907:                                             ; preds = %4902
  %4908 = load i32, ptr %233, align 4, !tbaa !5
  %4909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4910 = call i32 @s2n_print_stacktrace(ptr noundef %4909) #11
  %4911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4912 = trunc nuw i8 %4911 to i1
  br i1 %4912, label %4913, label %4917

4913:                                             ; preds = %4907
  %4914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4915 = call i32 @fileno(ptr noundef %4914) #11
  %4916 = call i32 @isatty(i32 noundef %4915) #11
  %.not591 = icmp eq i32 %4916, 0
  br i1 %.not591, label %4917, label %4918

4917:                                             ; preds = %4913, %4907
  br label %4918

4918:                                             ; preds = %4913, %4917
  %.str.5.sink2377 = phi ptr [ @.str.5, %4917 ], [ @.str.2, %4913 ]
  store i32 %4908, ptr %233, align 4, !tbaa !5
  %4919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4920 = load i32, ptr @test_count, align 4, !tbaa !5
  %4921 = load i32, ptr %179, align 4, !tbaa !5
  %4922 = call ptr @s2n_strerror(i32 noundef %4921, ptr noundef nonnull @.str.4) #11
  %4923 = load i32, ptr %179, align 4, !tbaa !5
  %4924 = call ptr @s2n_strerror_debug(i32 noundef %4923, ptr noundef nonnull @.str.4) #11
  %4925 = load i32, ptr %233, align 4, !tbaa !5
  %4926 = call ptr @strerror(i32 noundef %4925) #11
  %4927 = load i32, ptr %233, align 4, !tbaa !5
  %4928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4919, ptr noundef nonnull %.str.5.sink2377, i32 noundef %4920, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 524, ptr noundef %4922, ptr noundef %4924, ptr noundef %4926, i32 noundef %4927) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4929:                                             ; preds = %4902
  %4930 = add nsw i32 %4904, 2
  store i32 %4930, ptr @test_count, align 4, !tbaa !5
  %4931 = load ptr, ptr %53, align 8, !tbaa !9
  %4932 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4903, ptr noundef %4931) #11
  %4933 = icmp eq i32 %4932, -1
  br i1 %4933, label %4934, label %4956

4934:                                             ; preds = %4929
  %4935 = load i32, ptr %233, align 4, !tbaa !5
  %4936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4937 = call i32 @s2n_print_stacktrace(ptr noundef %4936) #11
  %4938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4939 = trunc nuw i8 %4938 to i1
  br i1 %4939, label %4940, label %4944

4940:                                             ; preds = %4934
  %4941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4942 = call i32 @fileno(ptr noundef %4941) #11
  %4943 = call i32 @isatty(i32 noundef %4942) #11
  %.not590 = icmp eq i32 %4943, 0
  br i1 %.not590, label %4944, label %4945

4944:                                             ; preds = %4940, %4934
  br label %4945

4945:                                             ; preds = %4940, %4944
  %.str.5.sink2386 = phi ptr [ @.str.5, %4944 ], [ @.str.2, %4940 ]
  store i32 %4935, ptr %233, align 4, !tbaa !5
  %4946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4947 = load i32, ptr @test_count, align 4, !tbaa !5
  %4948 = load i32, ptr %179, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror(i32 noundef %4948, ptr noundef nonnull @.str.4) #11
  %4950 = load i32, ptr %179, align 4, !tbaa !5
  %4951 = call ptr @s2n_strerror_debug(i32 noundef %4950, ptr noundef nonnull @.str.4) #11
  %4952 = load i32, ptr %233, align 4, !tbaa !5
  %4953 = call ptr @strerror(i32 noundef %4952) #11
  %4954 = load i32, ptr %233, align 4, !tbaa !5
  %4955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4946, ptr noundef nonnull %.str.5.sink2386, i32 noundef %4947, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 525, ptr noundef %4949, ptr noundef %4951, ptr noundef %4953, i32 noundef %4954) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4956:                                             ; preds = %4929
  %4957 = load i32, ptr @test_count, align 4, !tbaa !5
  %4958 = add nsw i32 %4957, 1
  store i32 %4958, ptr @test_count, align 4, !tbaa !5
  %4959 = load ptr, ptr %55, align 8, !tbaa !9
  %4960 = call i32 @s2n_connection_set_blinding(ptr noundef %4959, i32 noundef 1) #11
  %4961 = icmp eq i32 %4960, -1
  br i1 %4961, label %4962, label %4984

4962:                                             ; preds = %4956
  %4963 = load i32, ptr %233, align 4, !tbaa !5
  %4964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4965 = call i32 @s2n_print_stacktrace(ptr noundef %4964) #11
  %4966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4967 = trunc nuw i8 %4966 to i1
  br i1 %4967, label %4968, label %4972

4968:                                             ; preds = %4962
  %4969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4970 = call i32 @fileno(ptr noundef %4969) #11
  %4971 = call i32 @isatty(i32 noundef %4970) #11
  %.not589 = icmp eq i32 %4971, 0
  br i1 %.not589, label %4972, label %4973

4972:                                             ; preds = %4968, %4962
  br label %4973

4973:                                             ; preds = %4968, %4972
  %.str.5.sink2395 = phi ptr [ @.str.5, %4972 ], [ @.str.2, %4968 ]
  store i32 %4963, ptr %233, align 4, !tbaa !5
  %4974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4975 = load i32, ptr @test_count, align 4, !tbaa !5
  %4976 = load i32, ptr %179, align 4, !tbaa !5
  %4977 = call ptr @s2n_strerror(i32 noundef %4976, ptr noundef nonnull @.str.4) #11
  %4978 = load i32, ptr %179, align 4, !tbaa !5
  %4979 = call ptr @s2n_strerror_debug(i32 noundef %4978, ptr noundef nonnull @.str.4) #11
  %4980 = load i32, ptr %233, align 4, !tbaa !5
  %4981 = call ptr @strerror(i32 noundef %4980) #11
  %4982 = load i32, ptr %233, align 4, !tbaa !5
  %4983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4974, ptr noundef nonnull %.str.5.sink2395, i32 noundef %4975, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 526, ptr noundef %4977, ptr noundef %4979, ptr noundef %4981, i32 noundef %4982) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4984:                                             ; preds = %4956
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #11
  %4985 = call ptr @s2n_config_new() #11
  store ptr %4985, ptr %56, align 8, !tbaa !9
  %4986 = load i32, ptr @test_count, align 4, !tbaa !5
  %4987 = add nsw i32 %4986, 1
  store i32 %4987, ptr @test_count, align 4, !tbaa !5
  %4988 = icmp eq ptr %4985, null
  br i1 %4988, label %4989, label %5011

4989:                                             ; preds = %4984
  %4990 = load i32, ptr %233, align 4, !tbaa !5
  %4991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4992 = call i32 @s2n_print_stacktrace(ptr noundef %4991) #11
  %4993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4994 = trunc nuw i8 %4993 to i1
  br i1 %4994, label %4995, label %4999

4995:                                             ; preds = %4989
  %4996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4997 = call i32 @fileno(ptr noundef %4996) #11
  %4998 = call i32 @isatty(i32 noundef %4997) #11
  %.not588 = icmp eq i32 %4998, 0
  br i1 %.not588, label %4999, label %5000

4999:                                             ; preds = %4995, %4989
  br label %5000

5000:                                             ; preds = %4995, %4999
  %.str.5.sink2404 = phi ptr [ @.str.5, %4999 ], [ @.str.2, %4995 ]
  store i32 %4990, ptr %233, align 4, !tbaa !5
  %5001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5002 = load i32, ptr @test_count, align 4, !tbaa !5
  %5003 = load i32, ptr %179, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror(i32 noundef %5003, ptr noundef nonnull @.str.4) #11
  %5005 = load i32, ptr %179, align 4, !tbaa !5
  %5006 = call ptr @s2n_strerror_debug(i32 noundef %5005, ptr noundef nonnull @.str.4) #11
  %5007 = load i32, ptr %233, align 4, !tbaa !5
  %5008 = call ptr @strerror(i32 noundef %5007) #11
  %5009 = load i32, ptr %233, align 4, !tbaa !5
  %5010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5001, ptr noundef nonnull %.str.5.sink2404, i32 noundef %5002, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 529, ptr noundef %5004, ptr noundef %5006, ptr noundef %5008, i32 noundef %5009) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5011:                                             ; preds = %4984
  %5012 = add nsw i32 %4986, 2
  store i32 %5012, ptr @test_count, align 4, !tbaa !5
  %5013 = load ptr, ptr %7, align 8, !tbaa !9
  %5014 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %4985, ptr noundef %5013) #11
  %5015 = icmp eq i32 %5014, -1
  br i1 %5015, label %5016, label %5038

5016:                                             ; preds = %5011
  %5017 = load i32, ptr %233, align 4, !tbaa !5
  %5018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5019 = call i32 @s2n_print_stacktrace(ptr noundef %5018) #11
  %5020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5021 = trunc nuw i8 %5020 to i1
  br i1 %5021, label %5022, label %5026

5022:                                             ; preds = %5016
  %5023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5024 = call i32 @fileno(ptr noundef %5023) #11
  %5025 = call i32 @isatty(i32 noundef %5024) #11
  %.not587 = icmp eq i32 %5025, 0
  br i1 %.not587, label %5026, label %5027

5026:                                             ; preds = %5022, %5016
  br label %5027

5027:                                             ; preds = %5022, %5026
  %.str.5.sink2413 = phi ptr [ @.str.5, %5026 ], [ @.str.2, %5022 ]
  store i32 %5017, ptr %233, align 4, !tbaa !5
  %5028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5029 = load i32, ptr @test_count, align 4, !tbaa !5
  %5030 = load i32, ptr %179, align 4, !tbaa !5
  %5031 = call ptr @s2n_strerror(i32 noundef %5030, ptr noundef nonnull @.str.4) #11
  %5032 = load i32, ptr %179, align 4, !tbaa !5
  %5033 = call ptr @s2n_strerror_debug(i32 noundef %5032, ptr noundef nonnull @.str.4) #11
  %5034 = load i32, ptr %233, align 4, !tbaa !5
  %5035 = call ptr @strerror(i32 noundef %5034) #11
  %5036 = load i32, ptr %233, align 4, !tbaa !5
  %5037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5028, ptr noundef nonnull %.str.5.sink2413, i32 noundef %5029, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %5031, ptr noundef %5033, ptr noundef %5035, i32 noundef %5036) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5038:                                             ; preds = %5011
  %5039 = load i32, ptr @test_count, align 4, !tbaa !5
  %5040 = add nsw i32 %5039, 1
  store i32 %5040, ptr @test_count, align 4, !tbaa !5
  %5041 = load ptr, ptr %56, align 8, !tbaa !9
  %5042 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %5041, ptr noundef nonnull @.str.23, ptr noundef null) #11
  %5043 = icmp eq i32 %5042, -1
  br i1 %5043, label %5044, label %5066

5044:                                             ; preds = %5038
  %5045 = load i32, ptr %233, align 4, !tbaa !5
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = call i32 @s2n_print_stacktrace(ptr noundef %5046) #11
  %5048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5049 = trunc nuw i8 %5048 to i1
  br i1 %5049, label %5050, label %5054

5050:                                             ; preds = %5044
  %5051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5052 = call i32 @fileno(ptr noundef %5051) #11
  %5053 = call i32 @isatty(i32 noundef %5052) #11
  %.not586 = icmp eq i32 %5053, 0
  br i1 %.not586, label %5054, label %5055

5054:                                             ; preds = %5050, %5044
  br label %5055

5055:                                             ; preds = %5050, %5054
  %.str.5.sink2422 = phi ptr [ @.str.5, %5054 ], [ @.str.2, %5050 ]
  store i32 %5045, ptr %233, align 4, !tbaa !5
  %5056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5057 = load i32, ptr @test_count, align 4, !tbaa !5
  %5058 = load i32, ptr %179, align 4, !tbaa !5
  %5059 = call ptr @s2n_strerror(i32 noundef %5058, ptr noundef nonnull @.str.4) #11
  %5060 = load i32, ptr %179, align 4, !tbaa !5
  %5061 = call ptr @s2n_strerror_debug(i32 noundef %5060, ptr noundef nonnull @.str.4) #11
  %5062 = load i32, ptr %233, align 4, !tbaa !5
  %5063 = call ptr @strerror(i32 noundef %5062) #11
  %5064 = load i32, ptr %233, align 4, !tbaa !5
  %5065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5056, ptr noundef nonnull %.str.5.sink2422, i32 noundef %5057, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 531, ptr noundef %5059, ptr noundef %5061, ptr noundef %5063, i32 noundef %5064) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5066:                                             ; preds = %5038
  %5067 = load i32, ptr @test_count, align 4, !tbaa !5
  %5068 = add nsw i32 %5067, 1
  store i32 %5068, ptr @test_count, align 4, !tbaa !5
  %5069 = load ptr, ptr %56, align 8, !tbaa !9
  %5070 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %5069, ptr noundef %4821) #11
  %5071 = icmp eq i32 %5070, -1
  br i1 %5071, label %5072, label %5094

5072:                                             ; preds = %5066
  %5073 = load i32, ptr %233, align 4, !tbaa !5
  %5074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5075 = call i32 @s2n_print_stacktrace(ptr noundef %5074) #11
  %5076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5077 = trunc nuw i8 %5076 to i1
  br i1 %5077, label %5078, label %5082

5078:                                             ; preds = %5072
  %5079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5080 = call i32 @fileno(ptr noundef %5079) #11
  %5081 = call i32 @isatty(i32 noundef %5080) #11
  %.not585 = icmp eq i32 %5081, 0
  br i1 %.not585, label %5082, label %5083

5082:                                             ; preds = %5078, %5072
  br label %5083

5083:                                             ; preds = %5078, %5082
  %.str.5.sink2431 = phi ptr [ @.str.5, %5082 ], [ @.str.2, %5078 ]
  store i32 %5073, ptr %233, align 4, !tbaa !5
  %5084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5085 = load i32, ptr @test_count, align 4, !tbaa !5
  %5086 = load i32, ptr %179, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror(i32 noundef %5086, ptr noundef nonnull @.str.4) #11
  %5088 = load i32, ptr %179, align 4, !tbaa !5
  %5089 = call ptr @s2n_strerror_debug(i32 noundef %5088, ptr noundef nonnull @.str.4) #11
  %5090 = load i32, ptr %233, align 4, !tbaa !5
  %5091 = call ptr @strerror(i32 noundef %5090) #11
  %5092 = load i32, ptr %233, align 4, !tbaa !5
  %5093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5084, ptr noundef nonnull %.str.5.sink2431, i32 noundef %5085, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 532, ptr noundef %5087, ptr noundef %5089, ptr noundef %5091, i32 noundef %5092) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5094:                                             ; preds = %5066
  %5095 = load i32, ptr @test_count, align 4, !tbaa !5
  %5096 = add nsw i32 %5095, 1
  store i32 %5096, ptr @test_count, align 4, !tbaa !5
  %5097 = load ptr, ptr %56, align 8, !tbaa !9
  %5098 = call i32 @s2n_config_set_client_auth_type(ptr noundef %5097, i32 noundef 2) #11
  %5099 = icmp eq i32 %5098, -1
  br i1 %5099, label %5100, label %5122

5100:                                             ; preds = %5094
  %5101 = load i32, ptr %233, align 4, !tbaa !5
  %5102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5103 = call i32 @s2n_print_stacktrace(ptr noundef %5102) #11
  %5104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5105 = trunc nuw i8 %5104 to i1
  br i1 %5105, label %5106, label %5110

5106:                                             ; preds = %5100
  %5107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5108 = call i32 @fileno(ptr noundef %5107) #11
  %5109 = call i32 @isatty(i32 noundef %5108) #11
  %.not584 = icmp eq i32 %5109, 0
  br i1 %.not584, label %5110, label %5111

5110:                                             ; preds = %5106, %5100
  br label %5111

5111:                                             ; preds = %5106, %5110
  %.str.5.sink2440 = phi ptr [ @.str.5, %5110 ], [ @.str.2, %5106 ]
  store i32 %5101, ptr %233, align 4, !tbaa !5
  %5112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5113 = load i32, ptr @test_count, align 4, !tbaa !5
  %5114 = load i32, ptr %179, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror(i32 noundef %5114, ptr noundef nonnull @.str.4) #11
  %5116 = load i32, ptr %179, align 4, !tbaa !5
  %5117 = call ptr @s2n_strerror_debug(i32 noundef %5116, ptr noundef nonnull @.str.4) #11
  %5118 = load i32, ptr %233, align 4, !tbaa !5
  %5119 = call ptr @strerror(i32 noundef %5118) #11
  %5120 = load i32, ptr %233, align 4, !tbaa !5
  %5121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5112, ptr noundef nonnull %.str.5.sink2440, i32 noundef %5113, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 533, ptr noundef %5115, ptr noundef %5117, ptr noundef %5119, i32 noundef %5120) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5122:                                             ; preds = %5094
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #11
  %5123 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %5123, ptr %57, align 8, !tbaa !9
  %5124 = load i32, ptr @test_count, align 4, !tbaa !5
  %5125 = add nsw i32 %5124, 1
  store i32 %5125, ptr @test_count, align 4, !tbaa !5
  %5126 = icmp eq ptr %5123, null
  br i1 %5126, label %5127, label %5149

5127:                                             ; preds = %5122
  %5128 = load i32, ptr %233, align 4, !tbaa !5
  %5129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5130 = call i32 @s2n_print_stacktrace(ptr noundef %5129) #11
  %5131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5132 = trunc nuw i8 %5131 to i1
  br i1 %5132, label %5133, label %5137

5133:                                             ; preds = %5127
  %5134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5135 = call i32 @fileno(ptr noundef %5134) #11
  %5136 = call i32 @isatty(i32 noundef %5135) #11
  %.not583 = icmp eq i32 %5136, 0
  br i1 %.not583, label %5137, label %5138

5137:                                             ; preds = %5133, %5127
  br label %5138

5138:                                             ; preds = %5133, %5137
  %.str.5.sink2449 = phi ptr [ @.str.5, %5137 ], [ @.str.2, %5133 ]
  store i32 %5128, ptr %233, align 4, !tbaa !5
  %5139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5140 = load i32, ptr @test_count, align 4, !tbaa !5
  %5141 = load i32, ptr %179, align 4, !tbaa !5
  %5142 = call ptr @s2n_strerror(i32 noundef %5141, ptr noundef nonnull @.str.4) #11
  %5143 = load i32, ptr %179, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror_debug(i32 noundef %5143, ptr noundef nonnull @.str.4) #11
  %5145 = load i32, ptr %233, align 4, !tbaa !5
  %5146 = call ptr @strerror(i32 noundef %5145) #11
  %5147 = load i32, ptr %233, align 4, !tbaa !5
  %5148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5139, ptr noundef nonnull %.str.5.sink2449, i32 noundef %5140, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %5142, ptr noundef %5144, ptr noundef %5146, i32 noundef %5147) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5149:                                             ; preds = %5122
  %5150 = add nsw i32 %5124, 2
  store i32 %5150, ptr @test_count, align 4, !tbaa !5
  %5151 = load ptr, ptr %56, align 8, !tbaa !9
  %5152 = call i32 @s2n_connection_set_config(ptr noundef nonnull %5123, ptr noundef %5151) #11
  %5153 = icmp eq i32 %5152, -1
  br i1 %5153, label %5154, label %5176

5154:                                             ; preds = %5149
  %5155 = load i32, ptr %233, align 4, !tbaa !5
  %5156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5157 = call i32 @s2n_print_stacktrace(ptr noundef %5156) #11
  %5158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5159 = trunc nuw i8 %5158 to i1
  br i1 %5159, label %5160, label %5164

5160:                                             ; preds = %5154
  %5161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5162 = call i32 @fileno(ptr noundef %5161) #11
  %5163 = call i32 @isatty(i32 noundef %5162) #11
  %.not582 = icmp eq i32 %5163, 0
  br i1 %.not582, label %5164, label %5165

5164:                                             ; preds = %5160, %5154
  br label %5165

5165:                                             ; preds = %5160, %5164
  %.str.5.sink2458 = phi ptr [ @.str.5, %5164 ], [ @.str.2, %5160 ]
  store i32 %5155, ptr %233, align 4, !tbaa !5
  %5166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5167 = load i32, ptr @test_count, align 4, !tbaa !5
  %5168 = load i32, ptr %179, align 4, !tbaa !5
  %5169 = call ptr @s2n_strerror(i32 noundef %5168, ptr noundef nonnull @.str.4) #11
  %5170 = load i32, ptr %179, align 4, !tbaa !5
  %5171 = call ptr @s2n_strerror_debug(i32 noundef %5170, ptr noundef nonnull @.str.4) #11
  %5172 = load i32, ptr %233, align 4, !tbaa !5
  %5173 = call ptr @strerror(i32 noundef %5172) #11
  %5174 = load i32, ptr %233, align 4, !tbaa !5
  %5175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5166, ptr noundef nonnull %.str.5.sink2458, i32 noundef %5167, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 537, ptr noundef %5169, ptr noundef %5171, ptr noundef %5173, i32 noundef %5174) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5176:                                             ; preds = %5149
  %5177 = load i32, ptr @test_count, align 4, !tbaa !5
  %5178 = add nsw i32 %5177, 1
  store i32 %5178, ptr @test_count, align 4, !tbaa !5
  %5179 = load ptr, ptr %57, align 8, !tbaa !9
  %5180 = call i32 @s2n_set_server_name(ptr noundef %5179, ptr noundef nonnull @.str.35) #11
  %5181 = icmp eq i32 %5180, -1
  br i1 %5181, label %5182, label %5204

5182:                                             ; preds = %5176
  %5183 = load i32, ptr %233, align 4, !tbaa !5
  %5184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5185 = call i32 @s2n_print_stacktrace(ptr noundef %5184) #11
  %5186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5187 = trunc nuw i8 %5186 to i1
  br i1 %5187, label %5188, label %5192

5188:                                             ; preds = %5182
  %5189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5190 = call i32 @fileno(ptr noundef %5189) #11
  %5191 = call i32 @isatty(i32 noundef %5190) #11
  %.not581 = icmp eq i32 %5191, 0
  br i1 %.not581, label %5192, label %5193

5192:                                             ; preds = %5188, %5182
  br label %5193

5193:                                             ; preds = %5188, %5192
  %.str.5.sink2467 = phi ptr [ @.str.5, %5192 ], [ @.str.2, %5188 ]
  store i32 %5183, ptr %233, align 4, !tbaa !5
  %5194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5195 = load i32, ptr @test_count, align 4, !tbaa !5
  %5196 = load i32, ptr %179, align 4, !tbaa !5
  %5197 = call ptr @s2n_strerror(i32 noundef %5196, ptr noundef nonnull @.str.4) #11
  %5198 = load i32, ptr %179, align 4, !tbaa !5
  %5199 = call ptr @s2n_strerror_debug(i32 noundef %5198, ptr noundef nonnull @.str.4) #11
  %5200 = load i32, ptr %233, align 4, !tbaa !5
  %5201 = call ptr @strerror(i32 noundef %5200) #11
  %5202 = load i32, ptr %233, align 4, !tbaa !5
  %5203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5194, ptr noundef nonnull %.str.5.sink2467, i32 noundef %5195, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 538, ptr noundef %5197, ptr noundef %5199, ptr noundef %5201, i32 noundef %5202) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5204:                                             ; preds = %5176
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #11
  store i64 0, ptr %58, align 8
  %5205 = load i32, ptr @test_count, align 4, !tbaa !5
  %5206 = add nsw i32 %5205, 1
  store i32 %5206, ptr @test_count, align 4, !tbaa !5
  %5207 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %58) #11
  %5208 = icmp eq i32 %5207, -1
  br i1 %5208, label %5209, label %5231

5209:                                             ; preds = %5204
  %5210 = load i32, ptr %233, align 4, !tbaa !5
  %5211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5212 = call i32 @s2n_print_stacktrace(ptr noundef %5211) #11
  %5213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5214 = trunc nuw i8 %5213 to i1
  br i1 %5214, label %5215, label %5219

5215:                                             ; preds = %5209
  %5216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5217 = call i32 @fileno(ptr noundef %5216) #11
  %5218 = call i32 @isatty(i32 noundef %5217) #11
  %.not580 = icmp eq i32 %5218, 0
  br i1 %.not580, label %5219, label %5220

5219:                                             ; preds = %5215, %5209
  br label %5220

5220:                                             ; preds = %5215, %5219
  %.str.5.sink2476 = phi ptr [ @.str.5, %5219 ], [ @.str.2, %5215 ]
  store i32 %5210, ptr %233, align 4, !tbaa !5
  %5221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5222 = load i32, ptr @test_count, align 4, !tbaa !5
  %5223 = load i32, ptr %179, align 4, !tbaa !5
  %5224 = call ptr @s2n_strerror(i32 noundef %5223, ptr noundef nonnull @.str.4) #11
  %5225 = load i32, ptr %179, align 4, !tbaa !5
  %5226 = call ptr @s2n_strerror_debug(i32 noundef %5225, ptr noundef nonnull @.str.4) #11
  %5227 = load i32, ptr %233, align 4, !tbaa !5
  %5228 = call ptr @strerror(i32 noundef %5227) #11
  %5229 = load i32, ptr %233, align 4, !tbaa !5
  %5230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5221, ptr noundef nonnull %.str.5.sink2476, i32 noundef %5222, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 541, ptr noundef %5224, ptr noundef %5226, ptr noundef %5228, i32 noundef %5229) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5231:                                             ; preds = %5204
  %5232 = load i32, ptr @test_count, align 4, !tbaa !5
  %5233 = add nsw i32 %5232, 1
  store i32 %5233, ptr @test_count, align 4, !tbaa !5
  %5234 = load ptr, ptr %57, align 8, !tbaa !9
  %5235 = call i32 @s2n_connection_set_io_pair(ptr noundef %5234, ptr noundef nonnull %58) #11
  %5236 = icmp eq i32 %5235, -1
  br i1 %5236, label %5237, label %5259

5237:                                             ; preds = %5231
  %5238 = load i32, ptr %233, align 4, !tbaa !5
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = call i32 @s2n_print_stacktrace(ptr noundef %5239) #11
  %5241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5242 = trunc nuw i8 %5241 to i1
  br i1 %5242, label %5243, label %5247

5243:                                             ; preds = %5237
  %5244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5245 = call i32 @fileno(ptr noundef %5244) #11
  %5246 = call i32 @isatty(i32 noundef %5245) #11
  %.not579 = icmp eq i32 %5246, 0
  br i1 %.not579, label %5247, label %5248

5247:                                             ; preds = %5243, %5237
  br label %5248

5248:                                             ; preds = %5243, %5247
  %.str.5.sink2485 = phi ptr [ @.str.5, %5247 ], [ @.str.2, %5243 ]
  store i32 %5238, ptr %233, align 4, !tbaa !5
  %5249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5250 = load i32, ptr @test_count, align 4, !tbaa !5
  %5251 = load i32, ptr %179, align 4, !tbaa !5
  %5252 = call ptr @s2n_strerror(i32 noundef %5251, ptr noundef nonnull @.str.4) #11
  %5253 = load i32, ptr %179, align 4, !tbaa !5
  %5254 = call ptr @s2n_strerror_debug(i32 noundef %5253, ptr noundef nonnull @.str.4) #11
  %5255 = load i32, ptr %233, align 4, !tbaa !5
  %5256 = call ptr @strerror(i32 noundef %5255) #11
  %5257 = load i32, ptr %233, align 4, !tbaa !5
  %5258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5249, ptr noundef nonnull %.str.5.sink2485, i32 noundef %5250, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 542, ptr noundef %5252, ptr noundef %5254, ptr noundef %5256, i32 noundef %5257) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5259:                                             ; preds = %5231
  %5260 = load i32, ptr @test_count, align 4, !tbaa !5
  %5261 = add nsw i32 %5260, 1
  store i32 %5261, ptr @test_count, align 4, !tbaa !5
  %5262 = load ptr, ptr %55, align 8, !tbaa !9
  %5263 = call i32 @s2n_connection_set_io_pair(ptr noundef %5262, ptr noundef nonnull %58) #11
  %5264 = icmp eq i32 %5263, -1
  br i1 %5264, label %5271, label %.preheader.preheader

.preheader.preheader:                             ; preds = %5259
  %5265 = load i32, ptr @test_count, align 4, !tbaa !5
  %5266 = add nsw i32 %5265, 1
  store i32 %5266, ptr @test_count, align 4, !tbaa !5
  %5267 = load ptr, ptr %55, align 8, !tbaa !9
  %5268 = load ptr, ptr %57, align 8, !tbaa !9
  %5269 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5267, ptr noundef %5268) #11
  %5270 = icmp eq i32 %5269, -1
  br i1 %5270, label %5358, label %5336

5271:                                             ; preds = %5259
  %5272 = load i32, ptr %233, align 4, !tbaa !5
  %5273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5274 = call i32 @s2n_print_stacktrace(ptr noundef %5273) #11
  %5275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5276 = trunc nuw i8 %5275 to i1
  br i1 %5276, label %5277, label %5281

5277:                                             ; preds = %5271
  %5278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5279 = call i32 @fileno(ptr noundef %5278) #11
  %5280 = call i32 @isatty(i32 noundef %5279) #11
  %.not578 = icmp eq i32 %5280, 0
  br i1 %.not578, label %5281, label %5282

5281:                                             ; preds = %5277, %5271
  br label %5282

5282:                                             ; preds = %5277, %5281
  %.str.5.sink2494 = phi ptr [ @.str.5, %5281 ], [ @.str.2, %5277 ]
  store i32 %5272, ptr %233, align 4, !tbaa !5
  %5283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5284 = load i32, ptr @test_count, align 4, !tbaa !5
  %5285 = load i32, ptr %179, align 4, !tbaa !5
  %5286 = call ptr @s2n_strerror(i32 noundef %5285, ptr noundef nonnull @.str.4) #11
  %5287 = load i32, ptr %179, align 4, !tbaa !5
  %5288 = call ptr @s2n_strerror_debug(i32 noundef %5287, ptr noundef nonnull @.str.4) #11
  %5289 = load i32, ptr %233, align 4, !tbaa !5
  %5290 = call ptr @strerror(i32 noundef %5289) #11
  %5291 = load i32, ptr %233, align 4, !tbaa !5
  %5292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5283, ptr noundef nonnull %.str.5.sink2494, i32 noundef %5284, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 543, ptr noundef %5286, ptr noundef %5288, ptr noundef %5290, i32 noundef %5291) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader.1:                                     ; preds = %5411
  %5293 = add nsw i32 %5412, 2
  store i32 %5293, ptr @test_count, align 4, !tbaa !5
  %5294 = load ptr, ptr %55, align 8, !tbaa !9
  %5295 = load ptr, ptr %57, align 8, !tbaa !9
  %5296 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5294, ptr noundef %5295) #11
  %5297 = icmp eq i32 %5296, -1
  br i1 %5297, label %5298, label %5336

5298:                                             ; preds = %.preheader.1
  %5299 = load i32, ptr @test_count, align 4, !tbaa !5
  %5300 = add nsw i32 %5299, 1
  store i32 %5300, ptr @test_count, align 4, !tbaa !5
  %5301 = load i32, ptr %179, align 4, !tbaa !5
  %5302 = icmp eq i32 %5301, 201326593
  br i1 %5302, label %5303, label %5363

5303:                                             ; preds = %5298
  %5304 = add nsw i32 %5299, 2
  store i32 %5304, ptr @test_count, align 4, !tbaa !5
  %5305 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.4) #11
  %5306 = icmp eq ptr %5305, null
  br i1 %5306, label %5389, label %5307

5307:                                             ; preds = %5303
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %5308 = load i32, ptr @test_count, align 4, !tbaa !5
  %5309 = add nsw i32 %5308, 1
  store i32 %5309, ptr @test_count, align 4, !tbaa !5
  %5310 = load i32, ptr %3856, align 4, !tbaa !27
  %5311 = icmp eq i32 %5310, 1
  br i1 %5311, label %.preheader.2, label %5416

.preheader.2:                                     ; preds = %5307
  %5312 = add nsw i32 %5308, 2
  store i32 %5312, ptr @test_count, align 4, !tbaa !5
  %5313 = load ptr, ptr %55, align 8, !tbaa !9
  %5314 = load ptr, ptr %57, align 8, !tbaa !9
  %5315 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5313, ptr noundef %5314) #11
  %5316 = icmp eq i32 %5315, -1
  br i1 %5316, label %5317, label %5336

5317:                                             ; preds = %.preheader.2
  %5318 = load i32, ptr @test_count, align 4, !tbaa !5
  %5319 = add nsw i32 %5318, 1
  store i32 %5319, ptr @test_count, align 4, !tbaa !5
  %5320 = load i32, ptr %179, align 4, !tbaa !5
  %5321 = icmp eq i32 %5320, 201326593
  br i1 %5321, label %5322, label %5363

5322:                                             ; preds = %5317
  %5323 = add nsw i32 %5318, 2
  store i32 %5323, ptr @test_count, align 4, !tbaa !5
  %5324 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.4) #11
  %5325 = icmp eq ptr %5324, null
  br i1 %5325, label %5389, label %5326

5326:                                             ; preds = %5322
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %5327 = load i32, ptr @test_count, align 4, !tbaa !5
  %5328 = add nsw i32 %5327, 1
  store i32 %5328, ptr @test_count, align 4, !tbaa !5
  %5329 = load i32, ptr %3856, align 4, !tbaa !27
  %5330 = icmp eq i32 %5329, 1
  br i1 %5330, label %5331, label %5416

5331:                                             ; preds = %5326
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #11
  store ptr null, ptr %59, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #11
  store i32 0, ptr %60, align 4, !tbaa !5
  %5332 = add nsw i32 %5327, 2
  store i32 %5332, ptr @test_count, align 4, !tbaa !5
  %5333 = load ptr, ptr %55, align 8, !tbaa !9
  %5334 = call i32 @s2n_connection_get_client_cert_chain(ptr noundef %5333, ptr noundef nonnull %59, ptr noundef nonnull %60) #11
  %5335 = icmp eq i32 %5334, -1
  br i1 %5335, label %5438, label %5460

5336:                                             ; preds = %.preheader.2, %.preheader.1, %.preheader.preheader
  %5337 = load i32, ptr %233, align 4, !tbaa !5
  %5338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5339 = call i32 @s2n_print_stacktrace(ptr noundef %5338) #11
  %5340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5341 = trunc nuw i8 %5340 to i1
  br i1 %5341, label %5342, label %5346

5342:                                             ; preds = %5336
  %5343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5344 = call i32 @fileno(ptr noundef %5343) #11
  %5345 = call i32 @isatty(i32 noundef %5344) #11
  %.not574 = icmp eq i32 %5345, 0
  br i1 %.not574, label %5346, label %5347

5346:                                             ; preds = %5342, %5336
  br label %5347

5347:                                             ; preds = %5342, %5346
  %.str.5.sink2503 = phi ptr [ @.str.5, %5346 ], [ @.str.2, %5342 ]
  store i32 %5337, ptr %233, align 4, !tbaa !5
  %5348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5349 = load i32, ptr @test_count, align 4, !tbaa !5
  %5350 = load i32, ptr %179, align 4, !tbaa !5
  %5351 = call ptr @s2n_strerror(i32 noundef %5350, ptr noundef nonnull @.str.4) #11
  %5352 = load i32, ptr %179, align 4, !tbaa !5
  %5353 = call ptr @s2n_strerror_debug(i32 noundef %5352, ptr noundef nonnull @.str.4) #11
  %5354 = load i32, ptr %233, align 4, !tbaa !5
  %5355 = call ptr @strerror(i32 noundef %5354) #11
  %5356 = load i32, ptr %233, align 4, !tbaa !5
  %5357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5348, ptr noundef nonnull %.str.5.sink2503, i32 noundef %5349, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 547, ptr noundef %5351, ptr noundef %5353, ptr noundef %5355, i32 noundef %5356) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5358:                                             ; preds = %.preheader.preheader
  %5359 = load i32, ptr @test_count, align 4, !tbaa !5
  %5360 = add nsw i32 %5359, 1
  store i32 %5360, ptr @test_count, align 4, !tbaa !5
  %5361 = load i32, ptr %179, align 4, !tbaa !5
  %5362 = icmp eq i32 %5361, 201326593
  br i1 %5362, label %5385, label %5363

5363:                                             ; preds = %5317, %5298, %5358
  %5364 = load i32, ptr %233, align 4, !tbaa !5
  %5365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5366 = call i32 @s2n_print_stacktrace(ptr noundef %5365) #11
  %5367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5368 = trunc nuw i8 %5367 to i1
  br i1 %5368, label %5369, label %5373

5369:                                             ; preds = %5363
  %5370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5371 = call i32 @fileno(ptr noundef %5370) #11
  %5372 = call i32 @isatty(i32 noundef %5371) #11
  %.not575 = icmp eq i32 %5372, 0
  br i1 %.not575, label %5373, label %5374

5373:                                             ; preds = %5369, %5363
  br label %5374

5374:                                             ; preds = %5369, %5373
  %.str.5.sink2512 = phi ptr [ @.str.5, %5373 ], [ @.str.2, %5369 ]
  store i32 %5364, ptr %233, align 4, !tbaa !5
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = load i32, ptr @test_count, align 4, !tbaa !5
  %5377 = load i32, ptr %179, align 4, !tbaa !5
  %5378 = call ptr @s2n_strerror(i32 noundef %5377, ptr noundef nonnull @.str.4) #11
  %5379 = load i32, ptr %179, align 4, !tbaa !5
  %5380 = call ptr @s2n_strerror_debug(i32 noundef %5379, ptr noundef nonnull @.str.4) #11
  %5381 = load i32, ptr %233, align 4, !tbaa !5
  %5382 = call ptr @strerror(i32 noundef %5381) #11
  %5383 = load i32, ptr %233, align 4, !tbaa !5
  %5384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5375, ptr noundef nonnull %.str.5.sink2512, i32 noundef %5376, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 547, ptr noundef %5378, ptr noundef %5380, ptr noundef %5382, i32 noundef %5383) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5385:                                             ; preds = %5358
  %5386 = add nsw i32 %5359, 2
  store i32 %5386, ptr @test_count, align 4, !tbaa !5
  %5387 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.4) #11
  %5388 = icmp eq ptr %5387, null
  br i1 %5388, label %5389, label %5411

5389:                                             ; preds = %5322, %5303, %5385
  %5390 = load i32, ptr %233, align 4, !tbaa !5
  %5391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5392 = call i32 @s2n_print_stacktrace(ptr noundef %5391) #11
  %5393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5394 = trunc nuw i8 %5393 to i1
  br i1 %5394, label %5395, label %5399

5395:                                             ; preds = %5389
  %5396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5397 = call i32 @fileno(ptr noundef %5396) #11
  %5398 = call i32 @isatty(i32 noundef %5397) #11
  %.not577 = icmp eq i32 %5398, 0
  br i1 %.not577, label %5399, label %5400

5399:                                             ; preds = %5395, %5389
  br label %5400

5400:                                             ; preds = %5395, %5399
  %.str.5.sink2521 = phi ptr [ @.str.5, %5399 ], [ @.str.2, %5395 ]
  store i32 %5390, ptr %233, align 4, !tbaa !5
  %5401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5402 = load i32, ptr @test_count, align 4, !tbaa !5
  %5403 = load i32, ptr %179, align 4, !tbaa !5
  %5404 = call ptr @s2n_strerror(i32 noundef %5403, ptr noundef nonnull @.str.4) #11
  %5405 = load i32, ptr %179, align 4, !tbaa !5
  %5406 = call ptr @s2n_strerror_debug(i32 noundef %5405, ptr noundef nonnull @.str.4) #11
  %5407 = load i32, ptr %233, align 4, !tbaa !5
  %5408 = call ptr @strerror(i32 noundef %5407) #11
  %5409 = load i32, ptr %233, align 4, !tbaa !5
  %5410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5401, ptr noundef nonnull %.str.5.sink2521, i32 noundef %5402, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 547, ptr noundef %5404, ptr noundef %5406, ptr noundef %5408, i32 noundef %5409) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5411:                                             ; preds = %5385
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  %5412 = load i32, ptr @test_count, align 4, !tbaa !5
  %5413 = add nsw i32 %5412, 1
  store i32 %5413, ptr @test_count, align 4, !tbaa !5
  %5414 = load i32, ptr %3856, align 4, !tbaa !27
  %5415 = icmp eq i32 %5414, 1
  br i1 %5415, label %.preheader.1, label %5416

5416:                                             ; preds = %5326, %5307, %5411
  %5417 = load i32, ptr %233, align 4, !tbaa !5
  %5418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5419 = call i32 @s2n_print_stacktrace(ptr noundef %5418) #11
  %5420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5421 = trunc nuw i8 %5420 to i1
  br i1 %5421, label %5422, label %5426

5422:                                             ; preds = %5416
  %5423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5424 = call i32 @fileno(ptr noundef %5423) #11
  %5425 = call i32 @isatty(i32 noundef %5424) #11
  %.not576 = icmp eq i32 %5425, 0
  br i1 %.not576, label %5426, label %5427

5426:                                             ; preds = %5422, %5416
  br label %5427

5427:                                             ; preds = %5422, %5426
  %.str.5.sink2530 = phi ptr [ @.str.5, %5426 ], [ @.str.2, %5422 ]
  store i32 %5417, ptr %233, align 4, !tbaa !5
  %5428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5429 = load i32, ptr @test_count, align 4, !tbaa !5
  %5430 = load i32, ptr %179, align 4, !tbaa !5
  %5431 = call ptr @s2n_strerror(i32 noundef %5430, ptr noundef nonnull @.str.4) #11
  %5432 = load i32, ptr %179, align 4, !tbaa !5
  %5433 = call ptr @s2n_strerror_debug(i32 noundef %5432, ptr noundef nonnull @.str.4) #11
  %5434 = load i32, ptr %233, align 4, !tbaa !5
  %5435 = call ptr @strerror(i32 noundef %5434) #11
  %5436 = load i32, ptr %233, align 4, !tbaa !5
  %5437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5428, ptr noundef nonnull %.str.5.sink2530, i32 noundef %5429, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 548, ptr noundef %5431, ptr noundef %5433, ptr noundef %5435, i32 noundef %5436) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5438:                                             ; preds = %5331
  %5439 = load i32, ptr %233, align 4, !tbaa !5
  %5440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5441 = call i32 @s2n_print_stacktrace(ptr noundef %5440) #11
  %5442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5443 = trunc nuw i8 %5442 to i1
  br i1 %5443, label %5444, label %5448

5444:                                             ; preds = %5438
  %5445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5446 = call i32 @fileno(ptr noundef %5445) #11
  %5447 = call i32 @isatty(i32 noundef %5446) #11
  %.not573 = icmp eq i32 %5447, 0
  br i1 %.not573, label %5448, label %5449

5448:                                             ; preds = %5444, %5438
  br label %5449

5449:                                             ; preds = %5444, %5448
  %.str.5.sink2539 = phi ptr [ @.str.5, %5448 ], [ @.str.2, %5444 ]
  store i32 %5439, ptr %233, align 4, !tbaa !5
  %5450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5451 = load i32, ptr @test_count, align 4, !tbaa !5
  %5452 = load i32, ptr %179, align 4, !tbaa !5
  %5453 = call ptr @s2n_strerror(i32 noundef %5452, ptr noundef nonnull @.str.4) #11
  %5454 = load i32, ptr %179, align 4, !tbaa !5
  %5455 = call ptr @s2n_strerror_debug(i32 noundef %5454, ptr noundef nonnull @.str.4) #11
  %5456 = load i32, ptr %233, align 4, !tbaa !5
  %5457 = call ptr @strerror(i32 noundef %5456) #11
  %5458 = load i32, ptr %233, align 4, !tbaa !5
  %5459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5450, ptr noundef nonnull %.str.5.sink2539, i32 noundef %5451, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 554, ptr noundef %5453, ptr noundef %5455, ptr noundef %5457, i32 noundef %5458) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5460:                                             ; preds = %5331
  %5461 = load i32, ptr @test_count, align 4, !tbaa !5
  %5462 = add nsw i32 %5461, 1
  store i32 %5462, ptr @test_count, align 4, !tbaa !5
  %5463 = load i32, ptr %60, align 4, !tbaa !5
  %.not562 = icmp eq i32 %5463, 0
  br i1 %.not562, label %5464, label %5486

5464:                                             ; preds = %5460
  %5465 = load i32, ptr %233, align 4, !tbaa !5
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = call i32 @s2n_print_stacktrace(ptr noundef %5466) #11
  %5468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5469 = trunc nuw i8 %5468 to i1
  br i1 %5469, label %5470, label %5474

5470:                                             ; preds = %5464
  %5471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5472 = call i32 @fileno(ptr noundef %5471) #11
  %5473 = call i32 @isatty(i32 noundef %5472) #11
  %.not563 = icmp eq i32 %5473, 0
  br i1 %.not563, label %5474, label %5475

5474:                                             ; preds = %5470, %5464
  br label %5475

5475:                                             ; preds = %5470, %5474
  %.str.5.sink2548 = phi ptr [ @.str.5, %5474 ], [ @.str.2, %5470 ]
  store i32 %5465, ptr %233, align 4, !tbaa !5
  %5476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5477 = load i32, ptr @test_count, align 4, !tbaa !5
  %5478 = load i32, ptr %179, align 4, !tbaa !5
  %5479 = call ptr @s2n_strerror(i32 noundef %5478, ptr noundef nonnull @.str.4) #11
  %5480 = load i32, ptr %179, align 4, !tbaa !5
  %5481 = call ptr @s2n_strerror_debug(i32 noundef %5480, ptr noundef nonnull @.str.4) #11
  %5482 = load i32, ptr %233, align 4, !tbaa !5
  %5483 = call ptr @strerror(i32 noundef %5482) #11
  %5484 = load i32, ptr %233, align 4, !tbaa !5
  %5485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5476, ptr noundef nonnull %.str.5.sink2548, i32 noundef %5477, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 556, ptr noundef %5479, ptr noundef %5481, ptr noundef %5483, i32 noundef %5484) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5486:                                             ; preds = %5460
  %5487 = load ptr, ptr %3857, align 8, !tbaa !34
  %5488 = add nsw i32 %5461, 2
  store i32 %5488, ptr @test_count, align 4, !tbaa !5
  %5489 = icmp eq ptr %5487, null
  br i1 %5489, label %5490, label %5512

5490:                                             ; preds = %5486
  %5491 = load i32, ptr %233, align 4, !tbaa !5
  %5492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5493 = call i32 @s2n_print_stacktrace(ptr noundef %5492) #11
  %5494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5495 = trunc nuw i8 %5494 to i1
  br i1 %5495, label %5496, label %5500

5496:                                             ; preds = %5490
  %5497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5498 = call i32 @fileno(ptr noundef %5497) #11
  %5499 = call i32 @isatty(i32 noundef %5498) #11
  %.not572 = icmp eq i32 %5499, 0
  br i1 %.not572, label %5500, label %5501

5500:                                             ; preds = %5496, %5490
  br label %5501

5501:                                             ; preds = %5496, %5500
  %.str.5.sink2557 = phi ptr [ @.str.5, %5500 ], [ @.str.2, %5496 ]
  store i32 %5491, ptr %233, align 4, !tbaa !5
  %5502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5503 = load i32, ptr @test_count, align 4, !tbaa !5
  %5504 = load i32, ptr %179, align 4, !tbaa !5
  %5505 = call ptr @s2n_strerror(i32 noundef %5504, ptr noundef nonnull @.str.4) #11
  %5506 = load i32, ptr %179, align 4, !tbaa !5
  %5507 = call ptr @s2n_strerror_debug(i32 noundef %5506, ptr noundef nonnull @.str.4) #11
  %5508 = load i32, ptr %233, align 4, !tbaa !5
  %5509 = call ptr @strerror(i32 noundef %5508) #11
  %5510 = load i32, ptr %233, align 4, !tbaa !5
  %5511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5502, ptr noundef nonnull %.str.5.sink2557, i32 noundef %5503, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 559, ptr noundef %5505, ptr noundef %5507, ptr noundef %5509, i32 noundef %5510) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5512:                                             ; preds = %5486
  %5513 = load i8, ptr %4727, align 16
  %5514 = and i8 %5513, 2
  %.not564 = icmp eq i8 %5514, 0
  %5515 = add nsw i32 %5461, 3
  store i32 %5515, ptr @test_count, align 4, !tbaa !5
  br i1 %.not564, label %5570, label %5516

5516:                                             ; preds = %5512
  %5517 = call i32 @s2n_cert_validation_accept(ptr noundef nonnull %5487) #11
  %5518 = icmp eq i32 %5517, -1
  br i1 %5518, label %5519, label %5541

5519:                                             ; preds = %5516
  %5520 = load i32, ptr %233, align 4, !tbaa !5
  %5521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5522 = call i32 @s2n_print_stacktrace(ptr noundef %5521) #11
  %5523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5524 = trunc nuw i8 %5523 to i1
  br i1 %5524, label %5525, label %5529

5525:                                             ; preds = %5519
  %5526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5527 = call i32 @fileno(ptr noundef %5526) #11
  %5528 = call i32 @isatty(i32 noundef %5527) #11
  %.not571 = icmp eq i32 %5528, 0
  br i1 %.not571, label %5529, label %5530

5529:                                             ; preds = %5525, %5519
  br label %5530

5530:                                             ; preds = %5525, %5529
  %.str.5.sink2566 = phi ptr [ @.str.5, %5529 ], [ @.str.2, %5525 ]
  store i32 %5520, ptr %233, align 4, !tbaa !5
  %5531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5532 = load i32, ptr @test_count, align 4, !tbaa !5
  %5533 = load i32, ptr %179, align 4, !tbaa !5
  %5534 = call ptr @s2n_strerror(i32 noundef %5533, ptr noundef nonnull @.str.4) #11
  %5535 = load i32, ptr %179, align 4, !tbaa !5
  %5536 = call ptr @s2n_strerror_debug(i32 noundef %5535, ptr noundef nonnull @.str.4) #11
  %5537 = load i32, ptr %233, align 4, !tbaa !5
  %5538 = call ptr @strerror(i32 noundef %5537) #11
  %5539 = load i32, ptr %233, align 4, !tbaa !5
  %5540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5531, ptr noundef nonnull %.str.5.sink2566, i32 noundef %5532, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 562, ptr noundef %5534, ptr noundef %5536, ptr noundef %5538, i32 noundef %5539) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5541:                                             ; preds = %5516
  %5542 = load i32, ptr @test_count, align 4, !tbaa !5
  %5543 = add nsw i32 %5542, 1
  store i32 %5543, ptr @test_count, align 4, !tbaa !5
  %5544 = load ptr, ptr %55, align 8, !tbaa !9
  %5545 = load ptr, ptr %57, align 8, !tbaa !9
  %5546 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5544, ptr noundef %5545) #11
  %5547 = icmp eq i32 %5546, -1
  br i1 %5547, label %5548, label %5678

5548:                                             ; preds = %5541
  %5549 = load i32, ptr %233, align 4, !tbaa !5
  %5550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5551 = call i32 @s2n_print_stacktrace(ptr noundef %5550) #11
  %5552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5553 = trunc nuw i8 %5552 to i1
  br i1 %5553, label %5554, label %5558

5554:                                             ; preds = %5548
  %5555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5556 = call i32 @fileno(ptr noundef %5555) #11
  %5557 = call i32 @isatty(i32 noundef %5556) #11
  %.not570 = icmp eq i32 %5557, 0
  br i1 %.not570, label %5558, label %5559

5558:                                             ; preds = %5554, %5548
  br label %5559

5559:                                             ; preds = %5554, %5558
  %.str.5.sink2575 = phi ptr [ @.str.5, %5558 ], [ @.str.2, %5554 ]
  store i32 %5549, ptr %233, align 4, !tbaa !5
  %5560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5561 = load i32, ptr @test_count, align 4, !tbaa !5
  %5562 = load i32, ptr %179, align 4, !tbaa !5
  %5563 = call ptr @s2n_strerror(i32 noundef %5562, ptr noundef nonnull @.str.4) #11
  %5564 = load i32, ptr %179, align 4, !tbaa !5
  %5565 = call ptr @s2n_strerror_debug(i32 noundef %5564, ptr noundef nonnull @.str.4) #11
  %5566 = load i32, ptr %233, align 4, !tbaa !5
  %5567 = call ptr @strerror(i32 noundef %5566) #11
  %5568 = load i32, ptr %233, align 4, !tbaa !5
  %5569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5560, ptr noundef nonnull %.str.5.sink2575, i32 noundef %5561, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 563, ptr noundef %5563, ptr noundef %5565, ptr noundef %5567, i32 noundef %5568) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5570:                                             ; preds = %5512
  %5571 = call i32 @s2n_cert_validation_reject(ptr noundef nonnull %5487) #11
  %5572 = icmp eq i32 %5571, -1
  br i1 %5572, label %5573, label %5595

5573:                                             ; preds = %5570
  %5574 = load i32, ptr %233, align 4, !tbaa !5
  %5575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5576 = call i32 @s2n_print_stacktrace(ptr noundef %5575) #11
  %5577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5578 = trunc nuw i8 %5577 to i1
  br i1 %5578, label %5579, label %5583

5579:                                             ; preds = %5573
  %5580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5581 = call i32 @fileno(ptr noundef %5580) #11
  %5582 = call i32 @isatty(i32 noundef %5581) #11
  %.not568 = icmp eq i32 %5582, 0
  br i1 %.not568, label %5583, label %5584

5583:                                             ; preds = %5579, %5573
  br label %5584

5584:                                             ; preds = %5579, %5583
  %.str.5.sink2584 = phi ptr [ @.str.5, %5583 ], [ @.str.2, %5579 ]
  store i32 %5574, ptr %233, align 4, !tbaa !5
  %5585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5586 = load i32, ptr @test_count, align 4, !tbaa !5
  %5587 = load i32, ptr %179, align 4, !tbaa !5
  %5588 = call ptr @s2n_strerror(i32 noundef %5587, ptr noundef nonnull @.str.4) #11
  %5589 = load i32, ptr %179, align 4, !tbaa !5
  %5590 = call ptr @s2n_strerror_debug(i32 noundef %5589, ptr noundef nonnull @.str.4) #11
  %5591 = load i32, ptr %233, align 4, !tbaa !5
  %5592 = call ptr @strerror(i32 noundef %5591) #11
  %5593 = load i32, ptr %233, align 4, !tbaa !5
  %5594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5585, ptr noundef nonnull %.str.5.sink2584, i32 noundef %5586, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 565, ptr noundef %5588, ptr noundef %5590, ptr noundef %5592, i32 noundef %5593) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5595:                                             ; preds = %5570
  %5596 = load i32, ptr @test_count, align 4, !tbaa !5
  %5597 = add nsw i32 %5596, 1
  store i32 %5597, ptr @test_count, align 4, !tbaa !5
  %5598 = load ptr, ptr %55, align 8, !tbaa !9
  %5599 = load ptr, ptr %57, align 8, !tbaa !9
  %5600 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5598, ptr noundef %5599) #11
  %5601 = icmp eq i32 %5600, -1
  br i1 %5601, label %5624, label %5602

5602:                                             ; preds = %5595
  %5603 = load i32, ptr %233, align 4, !tbaa !5
  %5604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5605 = call i32 @s2n_print_stacktrace(ptr noundef %5604) #11
  %5606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5607 = trunc nuw i8 %5606 to i1
  br i1 %5607, label %5608, label %5612

5608:                                             ; preds = %5602
  %5609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5610 = call i32 @fileno(ptr noundef %5609) #11
  %5611 = call i32 @isatty(i32 noundef %5610) #11
  %.not565 = icmp eq i32 %5611, 0
  br i1 %.not565, label %5612, label %5613

5612:                                             ; preds = %5608, %5602
  br label %5613

5613:                                             ; preds = %5608, %5612
  %.str.5.sink2593 = phi ptr [ @.str.5, %5612 ], [ @.str.2, %5608 ]
  store i32 %5603, ptr %233, align 4, !tbaa !5
  %5614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5615 = load i32, ptr @test_count, align 4, !tbaa !5
  %5616 = load i32, ptr %179, align 4, !tbaa !5
  %5617 = call ptr @s2n_strerror(i32 noundef %5616, ptr noundef nonnull @.str.4) #11
  %5618 = load i32, ptr %179, align 4, !tbaa !5
  %5619 = call ptr @s2n_strerror_debug(i32 noundef %5618, ptr noundef nonnull @.str.4) #11
  %5620 = load i32, ptr %233, align 4, !tbaa !5
  %5621 = call ptr @strerror(i32 noundef %5620) #11
  %5622 = load i32, ptr %233, align 4, !tbaa !5
  %5623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5614, ptr noundef nonnull %.str.5.sink2593, i32 noundef %5615, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 567, ptr noundef %5617, ptr noundef %5619, ptr noundef %5621, i32 noundef %5622) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5624:                                             ; preds = %5595
  %5625 = load i32, ptr @test_count, align 4, !tbaa !5
  %5626 = add nsw i32 %5625, 1
  store i32 %5626, ptr @test_count, align 4, !tbaa !5
  %5627 = load i32, ptr %179, align 4, !tbaa !5
  %5628 = icmp eq i32 %5627, 335544373
  br i1 %5628, label %5651, label %5629

5629:                                             ; preds = %5624
  %5630 = load i32, ptr %233, align 4, !tbaa !5
  %5631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5632 = call i32 @s2n_print_stacktrace(ptr noundef %5631) #11
  %5633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5634 = trunc nuw i8 %5633 to i1
  br i1 %5634, label %5635, label %5639

5635:                                             ; preds = %5629
  %5636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5637 = call i32 @fileno(ptr noundef %5636) #11
  %5638 = call i32 @isatty(i32 noundef %5637) #11
  %.not566 = icmp eq i32 %5638, 0
  br i1 %.not566, label %5639, label %5640

5639:                                             ; preds = %5635, %5629
  br label %5640

5640:                                             ; preds = %5635, %5639
  %.str.5.sink2602 = phi ptr [ @.str.5, %5639 ], [ @.str.2, %5635 ]
  store i32 %5630, ptr %233, align 4, !tbaa !5
  %5641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5642 = load i32, ptr @test_count, align 4, !tbaa !5
  %5643 = load i32, ptr %179, align 4, !tbaa !5
  %5644 = call ptr @s2n_strerror(i32 noundef %5643, ptr noundef nonnull @.str.4) #11
  %5645 = load i32, ptr %179, align 4, !tbaa !5
  %5646 = call ptr @s2n_strerror_debug(i32 noundef %5645, ptr noundef nonnull @.str.4) #11
  %5647 = load i32, ptr %233, align 4, !tbaa !5
  %5648 = call ptr @strerror(i32 noundef %5647) #11
  %5649 = load i32, ptr %233, align 4, !tbaa !5
  %5650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5641, ptr noundef nonnull %.str.5.sink2602, i32 noundef %5642, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 567, ptr noundef %5644, ptr noundef %5646, ptr noundef %5648, i32 noundef %5649) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5651:                                             ; preds = %5624
  %5652 = add nsw i32 %5625, 2
  store i32 %5652, ptr @test_count, align 4, !tbaa !5
  %5653 = call ptr @s2n_strerror_debug(i32 noundef 335544373, ptr noundef nonnull @.str.4) #11
  %5654 = icmp eq ptr %5653, null
  br i1 %5654, label %5655, label %5677

5655:                                             ; preds = %5651
  %5656 = load i32, ptr %233, align 4, !tbaa !5
  %5657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5658 = call i32 @s2n_print_stacktrace(ptr noundef %5657) #11
  %5659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5660 = trunc nuw i8 %5659 to i1
  br i1 %5660, label %5661, label %5665

5661:                                             ; preds = %5655
  %5662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5663 = call i32 @fileno(ptr noundef %5662) #11
  %5664 = call i32 @isatty(i32 noundef %5663) #11
  %.not567 = icmp eq i32 %5664, 0
  br i1 %.not567, label %5665, label %5666

5665:                                             ; preds = %5661, %5655
  br label %5666

5666:                                             ; preds = %5661, %5665
  %.str.5.sink2611 = phi ptr [ @.str.5, %5665 ], [ @.str.2, %5661 ]
  store i32 %5656, ptr %233, align 4, !tbaa !5
  %5667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5668 = load i32, ptr @test_count, align 4, !tbaa !5
  %5669 = load i32, ptr %179, align 4, !tbaa !5
  %5670 = call ptr @s2n_strerror(i32 noundef %5669, ptr noundef nonnull @.str.4) #11
  %5671 = load i32, ptr %179, align 4, !tbaa !5
  %5672 = call ptr @s2n_strerror_debug(i32 noundef %5671, ptr noundef nonnull @.str.4) #11
  %5673 = load i32, ptr %233, align 4, !tbaa !5
  %5674 = call ptr @strerror(i32 noundef %5673) #11
  %5675 = load i32, ptr %233, align 4, !tbaa !5
  %5676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5667, ptr noundef nonnull %.str.5.sink2611, i32 noundef %5668, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 567, ptr noundef %5670, ptr noundef %5672, ptr noundef %5674, i32 noundef %5675) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5677:                                             ; preds = %5651
  store i32 0, ptr %179, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %233, align 4, !tbaa !5
  br label %5678

5678:                                             ; preds = %5677, %5541
  %5679 = load i32, ptr @test_count, align 4, !tbaa !5
  %5680 = add nsw i32 %5679, 1
  store i32 %5680, ptr @test_count, align 4, !tbaa !5
  %5681 = load i32, ptr %3856, align 4, !tbaa !27
  %5682 = icmp eq i32 %5681, 1
  br i1 %5682, label %5705, label %5683

5683:                                             ; preds = %5678
  %5684 = load i32, ptr %233, align 4, !tbaa !5
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = call i32 @s2n_print_stacktrace(ptr noundef %5685) #11
  %5687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5688 = trunc nuw i8 %5687 to i1
  br i1 %5688, label %5689, label %5693

5689:                                             ; preds = %5683
  %5690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5691 = call i32 @fileno(ptr noundef %5690) #11
  %5692 = call i32 @isatty(i32 noundef %5691) #11
  %.not569 = icmp eq i32 %5692, 0
  br i1 %.not569, label %5693, label %5694

5693:                                             ; preds = %5689, %5683
  br label %5694

5694:                                             ; preds = %5689, %5693
  %.str.5.sink2620 = phi ptr [ @.str.5, %5693 ], [ @.str.2, %5689 ]
  store i32 %5684, ptr %233, align 4, !tbaa !5
  %5695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5696 = load i32, ptr @test_count, align 4, !tbaa !5
  %5697 = load i32, ptr %179, align 4, !tbaa !5
  %5698 = call ptr @s2n_strerror(i32 noundef %5697, ptr noundef nonnull @.str.4) #11
  %5699 = load i32, ptr %179, align 4, !tbaa !5
  %5700 = call ptr @s2n_strerror_debug(i32 noundef %5699, ptr noundef nonnull @.str.4) #11
  %5701 = load i32, ptr %233, align 4, !tbaa !5
  %5702 = call ptr @strerror(i32 noundef %5701) #11
  %5703 = load i32, ptr %233, align 4, !tbaa !5
  %5704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5695, ptr noundef nonnull %.str.5.sink2620, i32 noundef %5696, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 570, ptr noundef %5698, ptr noundef %5700, ptr noundef %5702, i32 noundef %5703) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5705:                                             ; preds = %5678
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #11
  %5706 = call i32 @s2n_io_pair_close(ptr noundef nonnull %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #11
  %5707 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %57) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #11
  %5708 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %56) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #11
  %5709 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %55) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #11
  %5710 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %53) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #11
  br i1 %4734, label %4733, label %4732, !llvm.loop !37

5711:                                             ; preds = %4728
  %5712 = load i32, ptr %233, align 4, !tbaa !5
  %5713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5714 = call i32 @s2n_print_stacktrace(ptr noundef %5713) #11
  %5715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5716 = trunc nuw i8 %5715 to i1
  br i1 %5716, label %5717, label %5721

5717:                                             ; preds = %5711
  %5718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5719 = call i32 @fileno(ptr noundef %5718) #11
  %5720 = call i32 @isatty(i32 noundef %5719) #11
  %.not561 = icmp eq i32 %5720, 0
  br i1 %.not561, label %5721, label %5722

5721:                                             ; preds = %5717, %5711
  br label %5722

5722:                                             ; preds = %5717, %5721
  %.str.5.sink2629 = phi ptr [ @.str.5, %5721 ], [ @.str.2, %5717 ]
  store i32 %5712, ptr %233, align 4, !tbaa !5
  %5723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5724 = load i32, ptr @test_count, align 4, !tbaa !5
  %5725 = load i32, ptr %179, align 4, !tbaa !5
  %5726 = call ptr @s2n_strerror(i32 noundef %5725, ptr noundef nonnull @.str.4) #11
  %5727 = load i32, ptr %179, align 4, !tbaa !5
  %5728 = call ptr @s2n_strerror_debug(i32 noundef %5727, ptr noundef nonnull @.str.4) #11
  %5729 = load i32, ptr %233, align 4, !tbaa !5
  %5730 = call ptr @strerror(i32 noundef %5729) #11
  %5731 = load i32, ptr %233, align 4, !tbaa !5
  %5732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5723, ptr noundef nonnull %.str.5.sink2629, i32 noundef %5724, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 575, ptr noundef %5726, ptr noundef %5728, ptr noundef %5730, i32 noundef %5731) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5733:                                             ; preds = %4728
  %5734 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %5735 = icmp eq i32 %5734, -1
  br i1 %5735, label %5736, label %5758

5736:                                             ; preds = %5733
  %5737 = load i32, ptr %233, align 4, !tbaa !5
  %5738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5739 = call i32 @s2n_print_stacktrace(ptr noundef %5738) #11
  %5740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5741 = trunc nuw i8 %5740 to i1
  br i1 %5741, label %5742, label %5746

5742:                                             ; preds = %5736
  %5743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5744 = call i32 @fileno(ptr noundef %5743) #11
  %5745 = call i32 @isatty(i32 noundef %5744) #11
  %.not560 = icmp eq i32 %5745, 0
  br i1 %.not560, label %5746, label %5747

5746:                                             ; preds = %5742, %5736
  br label %5747

5747:                                             ; preds = %5742, %5746
  %.str.5.sink2638 = phi ptr [ @.str.5, %5746 ], [ @.str.2, %5742 ]
  store i32 %5737, ptr %233, align 4, !tbaa !5
  %5748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5749 = load i32, ptr @test_count, align 4, !tbaa !5
  %5750 = load i32, ptr %179, align 4, !tbaa !5
  %5751 = call ptr @s2n_strerror(i32 noundef %5750, ptr noundef nonnull @.str.4) #11
  %5752 = load i32, ptr %179, align 4, !tbaa !5
  %5753 = call ptr @s2n_strerror_debug(i32 noundef %5752, ptr noundef nonnull @.str.4) #11
  %5754 = load i32, ptr %233, align 4, !tbaa !5
  %5755 = call ptr @strerror(i32 noundef %5754) #11
  %5756 = load i32, ptr %233, align 4, !tbaa !5
  %5757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5748, ptr noundef nonnull %.str.5.sink2638, i32 noundef %5749, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 575, ptr noundef %5751, ptr noundef %5753, ptr noundef %5755, i32 noundef %5756) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5758:                                             ; preds = %5733
  %5759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5760 = trunc nuw i8 %5759 to i1
  br i1 %5760, label %5761, label %5772

5761:                                             ; preds = %5758
  %5762 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5763 = call i32 @fileno(ptr noundef %5762) #11
  %5764 = call i32 @isatty(i32 noundef %5763) #11
  %.not557 = icmp eq i32 %5764, 0
  br i1 %.not557, label %5772, label %5765

5765:                                             ; preds = %5761
  %5766 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not559 = icmp eq i32 %5766, 0
  %5767 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not559, label %5770, label %5768

5768:                                             ; preds = %5765
  %5769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5767, ptr noundef nonnull @.str.108, i32 noundef %5766) #11
  br label %5779

5770:                                             ; preds = %5765
  %5771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5767, ptr noundef nonnull @.str.109) #11
  br label %5779

5772:                                             ; preds = %5761, %5758
  %5773 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not558 = icmp eq i32 %5773, 0
  %5774 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not558, label %5777, label %5775

5775:                                             ; preds = %5772
  %5776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5774, ptr noundef nonnull @.str.110, i32 noundef %5773) #11
  br label %5779

5777:                                             ; preds = %5772
  %5778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5774, ptr noundef nonnull @.str.111) #11
  br label %5779

5779:                                             ; preds = %5775, %5777, %5768, %5770
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_cert_validation_accept(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_cert_validation_reject(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

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

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

declare void @s2n_x509_trust_store_wipe(ptr noundef) local_unnamed_addr #2

declare void @s2n_x509_trust_store_init_empty(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

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

declare i32 @s2n_x509_validator_wipe(ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_cert_validation_callback(ptr noundef, ptr noundef, ptr noundef) #0

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #10

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

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

declare i32 @s2n_pkey_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_pkey_zero_init(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #10

declare i32 @s2n_x509_validator_init_no_x509_validation(ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_cert_validation_callback_self_talk(ptr noundef, ptr noundef, ptr noundef) #0

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

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_cert_validation_callback_self_talk_server(ptr noundef, ptr noundef, ptr noundef) #0

declare zeroext i8 @s2n_x509_ocsp_stapling_supported() local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_read_test_pem_and_len(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_cert_validation_callback_self_talk_ocsp(ptr noundef, ptr noundef, ptr noundef) #0

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #2

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

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

declare i32 @s2n_connection_get_client_cert_chain(ptr noundef, ptr noundef, 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: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { inlinehint 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 #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { 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 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = !{i64 0, i64 1, !19, i64 4, i64 4, !5, i64 8, i64 8, !9}
!19 = !{!7, !7, i64 0}
!20 = !{!21, !6, i64 28}
!21 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = !{!21, !6, i64 24}
!24 = !{!25, !6, i64 16}
!25 = !{!"", !26, i64 0, !6, i64 16}
!26 = !{!"s2n_cert_validation_data", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 4, !10, i64 8}
!27 = !{!26, !6, i64 4}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = distinct !{!33, !16}
!34 = !{!26, !10, i64 8}
!35 = distinct !{!35, !16}
!36 = distinct !{!36, !16}
!37 = distinct !{!37, !16}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass