; LLVM IR from microsoft/ntttcp-for-linux :: src (parameter)

; 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.ntttcp_test = type { i8, i8, i8, i8, i8, i8, i8, ptr, i32, i32, ptr, i32, i32, i8, i32, i32, i32, i32, i64, i64, i64, i64, i32, i32, i32, i8, ptr, ptr, i8, ptr, i8, ptr, i8, ptr, i8, i8 }

@.str.44 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [63 x i8], align 1

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #0

declare void @PRINT_ERR(ptr noundef) #1

; Function Attrs: nounwind uwtable
define dso_local i32 @verify_args(ptr noundef %0) #2 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  %4 = load ptr, ptr %3, align 8, !tbaa !5
  %5 = getelementptr inbounds %struct.ntttcp_test, ptr %4, i32 0, i32 0
  %6 = load i8, ptr %5, align 8, !tbaa !9, !range !14, !noundef !15
  %7 = trunc i8 %6 to i1
  br i1 %7, label %8, label %14

8:                                                ; preds = %1
  %9 = load ptr, ptr %3, align 8, !tbaa !5
  %10 = getelementptr inbounds %struct.ntttcp_test, ptr %9, i32 0, i32 1
  %11 = load i8, ptr %10, align 1, !tbaa !16, !range !14, !noundef !15
  %12 = trunc i8 %11 to i1
  br i1 %12, label %13, label %14

13:                                               ; preds = %8
  call void @PRINT_ERR(ptr noundef @.str.125)
  store i32 -1001, ptr %2, align 4
  br label %326

14:                                               ; preds = %8, %1
  %15 = load ptr, ptr %3, align 8, !tbaa !5
  %16 = getelementptr inbounds %struct.ntttcp_test, ptr %15, i32 0, i32 7
  %17 = load ptr, ptr %16, align 8, !tbaa !17
  %18 = call i32 @strcmp(ptr noundef %17, ptr noundef @.str.44) #3
  %19 = icmp ne i32 %18, 0
  br i1 %19, label %21, label %20

20:                                               ; preds = %14
  call void @PRINT_ERR(ptr noundef @.str.126)
  store i32 -1001, ptr %2, align 4
  br label %326

21:                                               ; preds = %14
  %22 = load ptr, ptr %3, align 8, !tbaa !5
  %23 = getelementptr inbounds %struct.ntttcp_test, ptr %22, i32 0, i32 14
  %24 = load i32, ptr %23, align 4, !tbaa !18
  %25 = icmp eq i32 %24, 10
  br i1 %25, label %26, label %35

26:                                               ; preds = %21
  %27 = load ptr, ptr %3, align 8, !tbaa !5
  %28 = getelementptr inbounds %struct.ntttcp_test, ptr %27, i32 0, i32 10
  %29 = load ptr, ptr %28, align 8, !tbaa !19
  %30 = call i32 @strcmp(ptr noundef %29, ptr noundef @.str.127) #3
  %31 = icmp eq i32 %30, 0
  br i1 %31, label %32, label %35

32:                                               ; preds = %26
  %33 = load ptr, ptr %3, align 8, !tbaa !5
  %34 = getelementptr inbounds %struct.ntttcp_test, ptr %33, i32 0, i32 10
  store ptr @.str.128, ptr %34, align 8, !tbaa !19
  br label %35

35:                                               ; preds = %32, %26, %21
  %36 = load ptr, ptr %3, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.ntttcp_test, ptr %36, i32 0, i32 14
  %38 = load i32, ptr %37, align 4, !tbaa !18
  %39 = icmp eq i32 %38, 10
  br i1 %39, label %40, label %47

40:                                               ; preds = %35
  %41 = load ptr, ptr %3, align 8, !tbaa !5
  %42 = getelementptr inbounds %struct.ntttcp_test, ptr %41, i32 0, i32 10
  %43 = load ptr, ptr %42, align 8, !tbaa !19
  %44 = call ptr @strstr(ptr noundef %43, ptr noundef @.str.129) #3
  %45 = icmp ne ptr %44, null
  br i1 %45, label %47, label %46

46:                                               ; preds = %40
  call void @PRINT_ERR(ptr noundef @.str.130)
  store i32 -1001, ptr %2, align 4
  br label %326

47:                                               ; preds = %40, %35
  %48 = load ptr, ptr %3, align 8, !tbaa !5
  %49 = getelementptr inbounds %struct.ntttcp_test, ptr %48, i32 0, i32 14
  %50 = load i32, ptr %49, align 4, !tbaa !18
  %51 = icmp eq i32 %50, 2
  br i1 %51, label %52, label %59

52:                                               ; preds = %47
  %53 = load ptr, ptr %3, align 8, !tbaa !5
  %54 = getelementptr inbounds %struct.ntttcp_test, ptr %53, i32 0, i32 10
  %55 = load ptr, ptr %54, align 8, !tbaa !19
  %56 = call ptr @strstr(ptr noundef %55, ptr noundef @.str.131) #3
  %57 = icmp ne ptr %56, null
  br i1 %57, label %59, label %58

58:                                               ; preds = %52
  call void @PRINT_ERR(ptr noundef @.str.132)
  store i32 -1001, ptr %2, align 4
  br label %326

59:                                               ; preds = %52, %47
  %60 = load ptr, ptr %3, align 8, !tbaa !5
  %61 = getelementptr inbounds %struct.ntttcp_test, ptr %60, i32 0, i32 0
  %62 = load i8, ptr %61, align 8, !tbaa !9, !range !14, !noundef !15
  %63 = trunc i8 %62 to i1
  br i1 %63, label %72, label %64

64:                                               ; preds = %59
  %65 = load ptr, ptr %3, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.ntttcp_test, ptr %65, i32 0, i32 1
  %67 = load i8, ptr %66, align 1, !tbaa !16, !range !14, !noundef !15
  %68 = trunc i8 %67 to i1
  br i1 %68, label %72, label %69

69:                                               ; preds = %64
  call void @PRINT_INFO(ptr noundef @.str.133)
  %70 = load ptr, ptr %3, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.ntttcp_test, ptr %70, i32 0, i32 0
  store i8 1, ptr %71, align 8, !tbaa !9
  br label %72

72:                                               ; preds = %69, %64, %59
  %73 = load ptr, ptr %3, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.ntttcp_test, ptr %73, i32 0, i32 1
  %75 = load i8, ptr %74, align 1, !tbaa !16, !range !14, !noundef !15
  %76 = trunc i8 %75 to i1
  br i1 %76, label %77, label %83

77:                                               ; preds = %72
  %78 = load ptr, ptr %3, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.ntttcp_test, ptr %78, i32 0, i32 2
  %80 = load i8, ptr %79, align 2, !tbaa !20, !range !14, !noundef !15
  %81 = trunc i8 %80 to i1
  br i1 %81, label %82, label %83

82:                                               ; preds = %77
  call void @PRINT_ERR(ptr noundef @.str.134)
  store i32 -1001, ptr %2, align 4
  br label %326

83:                                               ; preds = %77, %72
  %84 = load ptr, ptr %3, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.ntttcp_test, ptr %84, i32 0, i32 0
  %86 = load i8, ptr %85, align 8, !tbaa !9, !range !14, !noundef !15
  %87 = trunc i8 %86 to i1
  br i1 %87, label %88, label %94

88:                                               ; preds = %83
  %89 = load ptr, ptr %3, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.ntttcp_test, ptr %89, i32 0, i32 3
  %91 = load i8, ptr %90, align 1, !tbaa !21, !range !14, !noundef !15
  %92 = trunc i8 %91 to i1
  br i1 %92, label %93, label %94

93:                                               ; preds = %88
  call void @PRINT_ERR(ptr noundef @.str.135)
  store i32 -1001, ptr %2, align 4
  br label %326

94:                                               ; preds = %88, %83
  %95 = load ptr, ptr %3, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.ntttcp_test, ptr %95, i32 0, i32 8
  %97 = load i32, ptr %96, align 8, !tbaa !22
  %98 = icmp ugt i32 %97, 512
  br i1 %98, label %99, label %102

99:                                               ; preds = %94
  call void @PRINT_INFO(ptr noundef @.str.136)
  %100 = load ptr, ptr %3, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.ntttcp_test, ptr %100, i32 0, i32 8
  store i32 512, ptr %101, align 8, !tbaa !22
  br label %102

102:                                              ; preds = %99, %94
  %103 = load ptr, ptr %3, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.ntttcp_test, ptr %103, i32 0, i32 1
  %105 = load i8, ptr %104, align 1, !tbaa !16, !range !14, !noundef !15
  %106 = trunc i8 %105 to i1
  br i1 %106, label %107, label %115

107:                                              ; preds = %102
  %108 = load ptr, ptr %3, align 8, !tbaa !5
  %109 = getelementptr inbounds %struct.ntttcp_test, ptr %108, i32 0, i32 11
  %110 = load i32, ptr %109, align 8, !tbaa !23
  %111 = icmp ugt i32 %110, 25600
  br i1 %111, label %112, label %115

112:                                              ; preds = %107
  call void @PRINT_INFO(ptr noundef @.str.137)
  %113 = load ptr, ptr %3, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.ntttcp_test, ptr %113, i32 0, i32 11
  store i32 25600, ptr %114, align 8, !tbaa !23
  br label %115

115:                                              ; preds = %112, %107, %102
  %116 = load ptr, ptr %3, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.ntttcp_test, ptr %116, i32 0, i32 1
  %118 = load i8, ptr %117, align 1, !tbaa !16, !range !14, !noundef !15
  %119 = trunc i8 %118 to i1
  br i1 %119, label %120, label %128

120:                                              ; preds = %115
  %121 = load ptr, ptr %3, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.ntttcp_test, ptr %121, i32 0, i32 12
  %123 = load i32, ptr %122, align 4, !tbaa !24
  %124 = icmp ugt i32 %123, 1000
  br i1 %124, label %125, label %128

125:                                              ; preds = %120
  call void @PRINT_INFO(ptr noundef @.str.138)
  %126 = load ptr, ptr %3, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.ntttcp_test, ptr %126, i32 0, i32 12
  store i32 1000, ptr %127, align 4, !tbaa !24
  br label %128

128:                                              ; preds = %125, %120, %115
  %129 = load ptr, ptr %3, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ntttcp_test, ptr %129, i32 0, i32 8
  %131 = load i32, ptr %130, align 8, !tbaa !22
  %132 = icmp ult i32 %131, 1
  br i1 %132, label %133, label %136

133:                                              ; preds = %128
  call void @PRINT_INFO(ptr noundef @.str.139)
  %134 = load ptr, ptr %3, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.ntttcp_test, ptr %134, i32 0, i32 8
  store i32 1, ptr %135, align 8, !tbaa !22
  br label %136

136:                                              ; preds = %133, %128
  %137 = load ptr, ptr %3, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.ntttcp_test, ptr %137, i32 0, i32 1
  %139 = load i8, ptr %138, align 1, !tbaa !16, !range !14, !noundef !15
  %140 = trunc i8 %139 to i1
  br i1 %140, label %141, label %149

141:                                              ; preds = %136
  %142 = load ptr, ptr %3, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.ntttcp_test, ptr %142, i32 0, i32 11
  %144 = load i32, ptr %143, align 8, !tbaa !23
  %145 = icmp ult i32 %144, 1
  br i1 %145, label %146, label %149

146:                                              ; preds = %141
  call void @PRINT_INFO(ptr noundef @.str.140)
  %147 = load ptr, ptr %3, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.ntttcp_test, ptr %147, i32 0, i32 11
  store i32 1, ptr %148, align 8, !tbaa !23
  br label %149

149:                                              ; preds = %146, %141, %136
  %150 = load ptr, ptr %3, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.ntttcp_test, ptr %150, i32 0, i32 1
  %152 = load i8, ptr %151, align 1, !tbaa !16, !range !14, !noundef !15
  %153 = trunc i8 %152 to i1
  br i1 %153, label %154, label %162

154:                                              ; preds = %149
  %155 = load ptr, ptr %3, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.ntttcp_test, ptr %155, i32 0, i32 12
  %157 = load i32, ptr %156, align 4, !tbaa !24
  %158 = icmp ult i32 %157, 1
  br i1 %158, label %159, label %162

159:                                              ; preds = %154
  call void @PRINT_INFO(ptr noundef @.str.141)
  %160 = load ptr, ptr %3, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.ntttcp_test, ptr %160, i32 0, i32 12
  store i32 1, ptr %161, align 4, !tbaa !24
  br label %162

162:                                              ; preds = %159, %154, %149
  %163 = load ptr, ptr %3, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.ntttcp_test, ptr %163, i32 0, i32 1
  %165 = load i8, ptr %164, align 1, !tbaa !16, !range !14, !noundef !15
  %166 = trunc i8 %165 to i1
  br i1 %166, label %167, label %180

167:                                              ; preds = %162
  %168 = load ptr, ptr %3, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.ntttcp_test, ptr %168, i32 0, i32 5
  %170 = load i8, ptr %169, align 1, !tbaa !25, !range !14, !noundef !15
  %171 = trunc i8 %170 to i1
  br i1 %171, label %172, label %173

172:                                              ; preds = %167
  call void @PRINT_DBG(ptr noundef @.str.142)
  br label %173

173:                                              ; preds = %172, %167
  %174 = load ptr, ptr %3, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.ntttcp_test, ptr %174, i32 0, i32 6
  %176 = load i8, ptr %175, align 2, !tbaa !26, !range !14, !noundef !15
  %177 = trunc i8 %176 to i1
  br i1 %177, label %179, label %178

178:                                              ; preds = %173
  call void @PRINT_DBG(ptr noundef @.str.143)
  br label %179

179:                                              ; preds = %178, %173
  br label %180

180:                                              ; preds = %179, %162
  %181 = load ptr, ptr %3, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.ntttcp_test, ptr %181, i32 0, i32 0
  %183 = load i8, ptr %182, align 8, !tbaa !9, !range !14, !noundef !15
  %184 = trunc i8 %183 to i1
  br i1 %184, label %185, label %198

185:                                              ; preds = %180
  %186 = load ptr, ptr %3, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.ntttcp_test, ptr %186, i32 0, i32 17
  %188 = load i32, ptr %187, align 8, !tbaa !27
  %189 = icmp ugt i32 %188, 0
  br i1 %189, label %190, label %191

190:                                              ; preds = %185
  call void @PRINT_DBG(ptr noundef @.str.144)
  br label %191

191:                                              ; preds = %190, %185
  %192 = load ptr, ptr %3, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.ntttcp_test, ptr %192, i32 0, i32 20
  %194 = load i64, ptr %193, align 8, !tbaa !28
  %195 = icmp ne i64 %194, 0
  br i1 %195, label %196, label %197

196:                                              ; preds = %191
  call void @PRINT_DBG(ptr noundef @.str.145)
  br label %197

197:                                              ; preds = %196, %191
  br label %198

198:                                              ; preds = %197, %180
  %199 = load ptr, ptr %3, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ntttcp_test, ptr %199, i32 0, i32 1
  %201 = load i8, ptr %200, align 1, !tbaa !16, !range !14, !noundef !15
  %202 = trunc i8 %201 to i1
  br i1 %202, label %203, label %260

203:                                              ; preds = %198
  %204 = load ptr, ptr %3, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.ntttcp_test, ptr %204, i32 0, i32 17
  %206 = load i32, ptr %205, align 8, !tbaa !27
  %207 = icmp ugt i32 %206, 0
  br i1 %207, label %208, label %216

208:                                              ; preds = %203
  %209 = load ptr, ptr %3, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.ntttcp_test, ptr %209, i32 0, i32 17
  %211 = load i32, ptr %210, align 8, !tbaa !27
  %212 = icmp ule i32 %211, 1024
  br i1 %212, label %213, label %216

213:                                              ; preds = %208
  %214 = load ptr, ptr %3, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ntttcp_test, ptr %214, i32 0, i32 17
  store i32 25001, ptr %215, align 8, !tbaa !27
  call void @PRINT_DBG(ptr noundef @.str.146)
  br label %216

216:                                              ; preds = %213, %208, %203
  %217 = load ptr, ptr %3, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.ntttcp_test, ptr %217, i32 0, i32 17
  %219 = load i32, ptr %218, align 8, !tbaa !27
  %220 = sub i32 65535, %219
  %221 = load ptr, ptr %3, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.ntttcp_test, ptr %221, i32 0, i32 8
  %223 = load i32, ptr %222, align 8, !tbaa !22
  %224 = load ptr, ptr %3, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.ntttcp_test, ptr %224, i32 0, i32 11
  %226 = load i32, ptr %225, align 8, !tbaa !23
  %227 = mul i32 %223, %226
  %228 = load ptr, ptr %3, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.ntttcp_test, ptr %228, i32 0, i32 12
  %230 = load i32, ptr %229, align 4, !tbaa !24
  %231 = mul i32 %227, %230
  %232 = icmp slt i32 %220, %231
  br i1 %232, label %233, label %234

233:                                              ; preds = %216
  call void @PRINT_ERR(ptr noundef @.str.147)
  br label %234

234:                                              ; preds = %233, %216
  %235 = load ptr, ptr %3, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.ntttcp_test, ptr %235, i32 0, i32 20
  %237 = load i64, ptr %236, align 8, !tbaa !28
  %238 = icmp ne i64 %237, 0
  br i1 %238, label %239, label %240

239:                                              ; preds = %234
  call void @PRINT_INFO(ptr noundef @.str.148)
  br label %240

240:                                              ; preds = %239, %234
  %241 = load ptr, ptr %3, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.ntttcp_test, ptr %241, i32 0, i32 21
  %243 = load i64, ptr %242, align 8, !tbaa !29
  %244 = icmp ne i64 %243, 0
  br i1 %244, label %245, label %246

245:                                              ; preds = %240
  call void @PRINT_INFO(ptr noundef @.str.149)
  br label %246

246:                                              ; preds = %245, %240
  %247 = load ptr, ptr %3, align 8, !tbaa !5
  %248 = getelementptr inbounds %struct.ntttcp_test, ptr %247, i32 0, i32 20
  %249 = load i64, ptr %248, align 8, !tbaa !28
  %250 = icmp ne i64 %249, 0
  br i1 %250, label %251, label %259

251:                                              ; preds = %246
  %252 = load ptr, ptr %3, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.ntttcp_test, ptr %252, i32 0, i32 21
  %254 = load i64, ptr %253, align 8, !tbaa !29
  %255 = icmp ne i64 %254, 0
  br i1 %255, label %256, label %259

256:                                              ; preds = %251
  call void @PRINT_INFO(ptr noundef @.str.150)
  %257 = load ptr, ptr %3, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.ntttcp_test, ptr %257, i32 0, i32 21
  store i64 0, ptr %258, align 8, !tbaa !29
  br label %259

259:                                              ; preds = %256, %251, %246
  br label %260

260:                                              ; preds = %259, %198
  %261 = load ptr, ptr %3, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.ntttcp_test, ptr %261, i32 0, i32 15
  %263 = load i32, ptr %262, align 8, !tbaa !30
  %264 = icmp eq i32 %263, 2
  br i1 %264, label %265, label %273

265:                                              ; preds = %260
  %266 = load ptr, ptr %3, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.ntttcp_test, ptr %266, i32 0, i32 19
  %268 = load i64, ptr %267, align 8, !tbaa !31
  %269 = icmp ugt i64 %268, 65507
  br i1 %269, label %270, label %273

270:                                              ; preds = %265
  call void @PRINT_INFO(ptr noundef @.str.151)
  %271 = load ptr, ptr %3, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ntttcp_test, ptr %271, i32 0, i32 19
  store i64 65507, ptr %272, align 8, !tbaa !31
  br label %273

273:                                              ; preds = %270, %265, %260
  %274 = load ptr, ptr %3, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.ntttcp_test, ptr %274, i32 0, i32 26
  %276 = load ptr, ptr %275, align 8, !tbaa !32
  %277 = getelementptr inbounds i8, ptr %276, i64 0
  %278 = load i8, ptr %277, align 1, !tbaa !33
  %279 = sext i8 %278 to i32
  %280 = icmp eq i32 %279, 45
  br i1 %280, label %281, label %284

281:                                              ; preds = %273
  call void @PRINT_INFO(ptr noundef @.str.152)
  %282 = load ptr, ptr %3, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.ntttcp_test, ptr %282, i32 0, i32 26
  store ptr @.str.44, ptr %283, align 8, !tbaa !32
  br label %284

284:                                              ; preds = %281, %273
  %285 = load ptr, ptr %3, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.ntttcp_test, ptr %285, i32 0, i32 27
  %287 = load ptr, ptr %286, align 8, !tbaa !34
  %288 = getelementptr inbounds i8, ptr %287, i64 0
  %289 = load i8, ptr %288, align 1, !tbaa !33
  %290 = sext i8 %289 to i32
  %291 = icmp eq i32 %290, 45
  br i1 %291, label %292, label %295

292:                                              ; preds = %284
  call void @PRINT_INFO(ptr noundef @.str.153)
  %293 = load ptr, ptr %3, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.ntttcp_test, ptr %293, i32 0, i32 27
  store ptr @.str.44, ptr %294, align 8, !tbaa !34
  br label %295

295:                                              ; preds = %292, %284
  %296 = load ptr, ptr %3, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.ntttcp_test, ptr %296, i32 0, i32 23
  %298 = load i32, ptr %297, align 4, !tbaa !35
  %299 = icmp slt i32 %298, 0
  br i1 %299, label %300, label %303

300:                                              ; preds = %295
  %301 = load ptr, ptr %3, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.ntttcp_test, ptr %301, i32 0, i32 23
  store i32 60, ptr %302, align 4, !tbaa !35
  call void @PRINT_INFO(ptr noundef @.str.154)
  br label %303

303:                                              ; preds = %300, %295
  %304 = load ptr, ptr %3, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.ntttcp_test, ptr %304, i32 0, i32 23
  %306 = load i32, ptr %305, align 4, !tbaa !35
  %307 = icmp eq i32 %306, 0
  br i1 %307, label %308, label %309

308:                                              ; preds = %303
  call void @PRINT_INFO(ptr noundef @.str.155)
  br label %309

309:                                              ; preds = %308, %303
  %310 = load ptr, ptr %3, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ntttcp_test, ptr %310, i32 0, i32 22
  %312 = load i32, ptr %311, align 8, !tbaa !36
  %313 = icmp slt i32 %312, 0
  br i1 %313, label %314, label %317

314:                                              ; preds = %309
  %315 = load ptr, ptr %3, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.ntttcp_test, ptr %315, i32 0, i32 22
  store i32 0, ptr %316, align 8, !tbaa !36
  call void @PRINT_INFO(ptr noundef @.str.156)
  br label %317

317:                                              ; preds = %314, %309
  %318 = load ptr, ptr %3, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.ntttcp_test, ptr %318, i32 0, i32 24
  %320 = load i32, ptr %319, align 8, !tbaa !37
  %321 = icmp slt i32 %320, 0
  br i1 %321, label %322, label %325

322:                                              ; preds = %317
  %323 = load ptr, ptr %3, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.ntttcp_test, ptr %323, i32 0, i32 24
  store i32 0, ptr %324, align 8, !tbaa !37
  call void @PRINT_INFO(ptr noundef @.str.157)
  br label %325

325:                                              ; preds = %322, %317
  store i32 0, ptr %2, align 4
  br label %326

326:                                              ; preds = %325, %93, %82, %58, %46, %20, %13
  %327 = load i32, ptr %2, align 4
  ret i32 %327
}

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strstr(ptr noundef, ptr noundef) #0

declare void @PRINT_INFO(ptr noundef) #1

declare void @PRINT_DBG(ptr noundef) #1

attributes #0 = { nounwind willreturn memory(read) "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 = { "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 = { 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 #3 = { nounwind willreturn memory(read) }

!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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"ntttcp_test", !11, i64 0, !11, i64 1, !11, i64 2, !11, i64 3, !11, i64 4, !11, i64 5, !11, i64 6, !6, i64 8, !12, i64 16, !12, i64 20, !6, i64 24, !12, i64 32, !12, i64 36, !11, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !11, i64 108, !6, i64 112, !6, i64 120, !11, i64 128, !6, i64 136, !11, i64 144, !6, i64 152, !11, i64 160, !6, i64 168, !11, i64 176, !11, i64 177}
!11 = !{!"_Bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{i8 0, i8 2}
!15 = !{}
!16 = !{!10, !11, i64 1}
!17 = !{!10, !6, i64 8}
!18 = !{!10, !12, i64 44}
!19 = !{!10, !6, i64 24}
!20 = !{!10, !11, i64 2}
!21 = !{!10, !11, i64 3}
!22 = !{!10, !12, i64 16}
!23 = !{!10, !12, i64 32}
!24 = !{!10, !12, i64 36}
!25 = !{!10, !11, i64 5}
!26 = !{!10, !11, i64 6}
!27 = !{!10, !12, i64 56}
!28 = !{!10, !13, i64 80}
!29 = !{!10, !13, i64 88}
!30 = !{!10, !12, i64 48}
!31 = !{!10, !13, i64 72}
!32 = !{!10, !6, i64 112}
!33 = !{!7, !7, i64 0}
!34 = !{!10, !6, i64 120}
!35 = !{!10, !12, i64 100}
!36 = !{!10, !12, i64 96}
!37 = !{!10, !12, i64 104}


; 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"

@.str.44 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [63 x i8], align 1

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #0

declare void @PRINT_ERR(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1001, 1) i32 @verify_args(ptr nocapture noundef %0) local_unnamed_addr #2 {
  %2 = load i8, ptr %0, align 8, !tbaa !5, !range !13, !noundef !14
  %3 = trunc nuw i8 %2 to i1
  br i1 %3, label %4, label %9

4:                                                ; preds = %1
  %5 = getelementptr inbounds i8, ptr %0, i64 1
  %6 = load i8, ptr %5, align 1, !tbaa !15, !range !13, !noundef !14
  %7 = trunc nuw i8 %6 to i1
  br i1 %7, label %8, label %9

8:                                                ; preds = %4
  tail call void @PRINT_ERR(ptr noundef nonnull @.str.125) #3
  br label %192

9:                                                ; preds = %4, %1
  %10 = getelementptr inbounds i8, ptr %0, i64 8
  %11 = load ptr, ptr %10, align 8, !tbaa !16
  %12 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %11, ptr noundef nonnull dereferenceable(1) @.str.44) #4
  %.not = icmp eq i32 %12, 0
  br i1 %.not, label %13, label %14

13:                                               ; preds = %9
  tail call void @PRINT_ERR(ptr noundef nonnull @.str.126) #3
  br label %192

14:                                               ; preds = %9
  %15 = getelementptr inbounds i8, ptr %0, i64 44
  %16 = load i32, ptr %15, align 4, !tbaa !17
  switch i32 %16, label %.thread76 [
    i32 10, label %17
    i32 2, label %27
  ]

17:                                               ; preds = %14
  %18 = getelementptr inbounds i8, ptr %0, i64 24
  %19 = load ptr, ptr %18, align 8, !tbaa !18
  %20 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %19, ptr noundef nonnull dereferenceable(1) @.str.127) #4
  %21 = icmp eq i32 %20, 0
  br i1 %21, label %22, label %23

22:                                               ; preds = %17
  store ptr @.str.128, ptr %18, align 8, !tbaa !18
  br label %23

23:                                               ; preds = %22, %17
  %24 = phi ptr [ @.str.128, %22 ], [ %19, %17 ]
  %25 = tail call ptr @strstr(ptr noundef nonnull dereferenceable(1) %24, ptr noundef nonnull dereferenceable(1) @.str.129) #4
  %.not67 = icmp eq ptr %25, null
  br i1 %.not67, label %26, label %.thread76

26:                                               ; preds = %23
  tail call void @PRINT_ERR(ptr noundef nonnull @.str.130) #3
  br label %192

27:                                               ; preds = %14
  %28 = getelementptr inbounds i8, ptr %0, i64 24
  %29 = load ptr, ptr %28, align 8, !tbaa !18
  %30 = tail call ptr @strstr(ptr noundef nonnull dereferenceable(1) %29, ptr noundef nonnull dereferenceable(1) @.str.131) #4
  %.not68 = icmp eq ptr %30, null
  br i1 %.not68, label %31, label %.thread76

31:                                               ; preds = %27
  tail call void @PRINT_ERR(ptr noundef nonnull @.str.132) #3
  br label %192

.thread76:                                        ; preds = %14, %23, %27
  br i1 %3, label %37, label %32

32:                                               ; preds = %.thread76
  %33 = getelementptr inbounds i8, ptr %0, i64 1
  %34 = load i8, ptr %33, align 1, !tbaa !15, !range !13, !noundef !14
  %35 = trunc nuw i8 %34 to i1
  br i1 %35, label %37, label %36

36:                                               ; preds = %32
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.133) #3
  store i8 1, ptr %0, align 8, !tbaa !5
  br label %37

37:                                               ; preds = %36, %32, %.thread76
  %38 = phi i8 [ 1, %36 ], [ %2, %32 ], [ %2, %.thread76 ]
  %39 = getelementptr inbounds i8, ptr %0, i64 1
  %40 = load i8, ptr %39, align 1, !tbaa !15, !range !13, !noundef !14
  %41 = trunc nuw i8 %40 to i1
  br i1 %41, label %42, label %47

42:                                               ; preds = %37
  %43 = getelementptr inbounds i8, ptr %0, i64 2
  %44 = load i8, ptr %43, align 2, !tbaa !19, !range !13, !noundef !14
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %46, label %47

46:                                               ; preds = %42
  tail call void @PRINT_ERR(ptr noundef nonnull @.str.134) #3
  br label %192

47:                                               ; preds = %42, %37
  %48 = trunc nuw i8 %38 to i1
  br i1 %48, label %49, label %54

49:                                               ; preds = %47
  %50 = getelementptr inbounds i8, ptr %0, i64 3
  %51 = load i8, ptr %50, align 1, !tbaa !20, !range !13, !noundef !14
  %52 = trunc nuw i8 %51 to i1
  br i1 %52, label %53, label %54

53:                                               ; preds = %49
  tail call void @PRINT_ERR(ptr noundef nonnull @.str.135) #3
  br label %192

54:                                               ; preds = %49, %47
  %55 = getelementptr inbounds i8, ptr %0, i64 16
  %56 = load i32, ptr %55, align 8, !tbaa !21
  %57 = icmp ugt i32 %56, 512
  br i1 %57, label %58, label %59

58:                                               ; preds = %54
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.136) #3
  store i32 512, ptr %55, align 8, !tbaa !21
  %.pre = load i8, ptr %39, align 1, !tbaa !15, !range !13
  br label %59

59:                                               ; preds = %58, %54
  %60 = phi i8 [ %.pre, %58 ], [ %40, %54 ]
  %61 = trunc nuw i8 %60 to i1
  br i1 %61, label %62, label %67

62:                                               ; preds = %59
  %63 = getelementptr inbounds i8, ptr %0, i64 32
  %64 = load i32, ptr %63, align 8, !tbaa !22
  %65 = icmp ugt i32 %64, 25600
  br i1 %65, label %66, label %67

66:                                               ; preds = %62
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.137) #3
  store i32 25600, ptr %63, align 8, !tbaa !22
  %.pre77 = load i8, ptr %39, align 1, !tbaa !15, !range !13
  br label %67

67:                                               ; preds = %66, %62, %59
  %68 = phi i8 [ %.pre77, %66 ], [ %60, %62 ], [ %60, %59 ]
  %69 = trunc nuw i8 %68 to i1
  br i1 %69, label %70, label %75

70:                                               ; preds = %67
  %71 = getelementptr inbounds i8, ptr %0, i64 36
  %72 = load i32, ptr %71, align 4, !tbaa !23
  %73 = icmp ugt i32 %72, 1000
  br i1 %73, label %74, label %75

74:                                               ; preds = %70
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.138) #3
  store i32 1000, ptr %71, align 4, !tbaa !23
  br label %75

75:                                               ; preds = %74, %70, %67
  %76 = load i32, ptr %55, align 8, !tbaa !21
  %77 = icmp eq i32 %76, 0
  br i1 %77, label %78, label %79

78:                                               ; preds = %75
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.139) #3
  store i32 1, ptr %55, align 8, !tbaa !21
  br label %79

79:                                               ; preds = %78, %75
  %80 = load i8, ptr %39, align 1, !tbaa !15, !range !13, !noundef !14
  %81 = trunc nuw i8 %80 to i1
  br i1 %81, label %82, label %87

82:                                               ; preds = %79
  %83 = getelementptr inbounds i8, ptr %0, i64 32
  %84 = load i32, ptr %83, align 8, !tbaa !22
  %85 = icmp eq i32 %84, 0
  br i1 %85, label %86, label %87

86:                                               ; preds = %82
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.140) #3
  store i32 1, ptr %83, align 8, !tbaa !22
  %.pre78 = load i8, ptr %39, align 1, !tbaa !15, !range !13
  br label %87

87:                                               ; preds = %86, %82, %79
  %88 = phi i8 [ %.pre78, %86 ], [ %80, %82 ], [ %80, %79 ]
  %89 = trunc nuw i8 %88 to i1
  br i1 %89, label %90, label %95

90:                                               ; preds = %87
  %91 = getelementptr inbounds i8, ptr %0, i64 36
  %92 = load i32, ptr %91, align 4, !tbaa !23
  %93 = icmp eq i32 %92, 0
  br i1 %93, label %94, label %95

94:                                               ; preds = %90
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.141) #3
  store i32 1, ptr %91, align 4, !tbaa !23
  %.pre79 = load i8, ptr %39, align 1, !tbaa !15, !range !13
  br label %95

95:                                               ; preds = %94, %90, %87
  %96 = phi i8 [ %.pre79, %94 ], [ %88, %90 ], [ %88, %87 ]
  %97 = trunc nuw i8 %96 to i1
  br i1 %97, label %98, label %108

98:                                               ; preds = %95
  %99 = getelementptr inbounds i8, ptr %0, i64 5
  %100 = load i8, ptr %99, align 1, !tbaa !24, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %103

102:                                              ; preds = %98
  tail call void @PRINT_DBG(ptr noundef nonnull @.str.142) #3
  br label %103

103:                                              ; preds = %102, %98
  %104 = getelementptr inbounds i8, ptr %0, i64 6
  %105 = load i8, ptr %104, align 2, !tbaa !25, !range !13, !noundef !14
  %106 = trunc nuw i8 %105 to i1
  br i1 %106, label %108, label %107

107:                                              ; preds = %103
  tail call void @PRINT_DBG(ptr noundef nonnull @.str.143) #3
  br label %108

108:                                              ; preds = %103, %107, %95
  %109 = load i8, ptr %0, align 8, !tbaa !5, !range !13, !noundef !14
  %110 = trunc nuw i8 %109 to i1
  br i1 %110, label %111, label %119

111:                                              ; preds = %108
  %112 = getelementptr inbounds i8, ptr %0, i64 56
  %113 = load i32, ptr %112, align 8, !tbaa !26
  %.not69 = icmp eq i32 %113, 0
  br i1 %.not69, label %115, label %114

114:                                              ; preds = %111
  tail call void @PRINT_DBG(ptr noundef nonnull @.str.144) #3
  br label %115

115:                                              ; preds = %114, %111
  %116 = getelementptr inbounds i8, ptr %0, i64 80
  %117 = load i64, ptr %116, align 8, !tbaa !27
  %.not70 = icmp eq i64 %117, 0
  br i1 %.not70, label %119, label %118

118:                                              ; preds = %115
  tail call void @PRINT_DBG(ptr noundef nonnull @.str.145) #3
  br label %119

119:                                              ; preds = %115, %118, %108
  %120 = load i8, ptr %39, align 1, !tbaa !15, !range !13, !noundef !14
  %121 = trunc nuw i8 %120 to i1
  br i1 %121, label %122, label %152

122:                                              ; preds = %119
  %123 = getelementptr inbounds i8, ptr %0, i64 56
  %124 = load i32, ptr %123, align 8, !tbaa !26
  %125 = add i32 %124, -1
  %or.cond = icmp ult i32 %125, 1024
  br i1 %or.cond, label %126, label %127

126:                                              ; preds = %122
  store i32 25001, ptr %123, align 8, !tbaa !26
  tail call void @PRINT_DBG(ptr noundef nonnull @.str.146) #3
  %.pre80 = load i32, ptr %123, align 8, !tbaa !26
  br label %127

127:                                              ; preds = %126, %122
  %128 = phi i32 [ %.pre80, %126 ], [ %124, %122 ]
  %129 = sub i32 65535, %128
  %130 = load i32, ptr %55, align 8, !tbaa !21
  %131 = getelementptr inbounds i8, ptr %0, i64 32
  %132 = load i32, ptr %131, align 8, !tbaa !22
  %133 = mul i32 %132, %130
  %134 = getelementptr inbounds i8, ptr %0, i64 36
  %135 = load i32, ptr %134, align 4, !tbaa !23
  %136 = mul i32 %133, %135
  %137 = icmp slt i32 %129, %136
  br i1 %137, label %138, label %139

138:                                              ; preds = %127
  tail call void @PRINT_ERR(ptr noundef nonnull @.str.147) #3
  br label %139

139:                                              ; preds = %138, %127
  %140 = getelementptr inbounds i8, ptr %0, i64 80
  %141 = load i64, ptr %140, align 8, !tbaa !27
  %.not72 = icmp eq i64 %141, 0
  br i1 %.not72, label %143, label %142

142:                                              ; preds = %139
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.148) #3
  br label %143

143:                                              ; preds = %142, %139
  %144 = getelementptr inbounds i8, ptr %0, i64 88
  %145 = load i64, ptr %144, align 8, !tbaa !28
  %.not73 = icmp eq i64 %145, 0
  br i1 %.not73, label %147, label %146

146:                                              ; preds = %143
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.149) #3
  br label %147

147:                                              ; preds = %146, %143
  %148 = load i64, ptr %140, align 8, !tbaa !27
  %.not74 = icmp eq i64 %148, 0
  br i1 %.not74, label %152, label %149

149:                                              ; preds = %147
  %150 = load i64, ptr %144, align 8, !tbaa !28
  %.not75 = icmp eq i64 %150, 0
  br i1 %.not75, label %152, label %151

151:                                              ; preds = %149
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.150) #3
  store i64 0, ptr %144, align 8, !tbaa !28
  br label %152

152:                                              ; preds = %147, %149, %151, %119
  %153 = getelementptr inbounds i8, ptr %0, i64 48
  %154 = load i32, ptr %153, align 8, !tbaa !29
  %155 = icmp eq i32 %154, 2
  br i1 %155, label %156, label %161

156:                                              ; preds = %152
  %157 = getelementptr inbounds i8, ptr %0, i64 72
  %158 = load i64, ptr %157, align 8, !tbaa !30
  %159 = icmp ugt i64 %158, 65507
  br i1 %159, label %160, label %161

160:                                              ; preds = %156
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.151) #3
  store i64 65507, ptr %157, align 8, !tbaa !30
  br label %161

161:                                              ; preds = %160, %156, %152
  %162 = getelementptr inbounds i8, ptr %0, i64 112
  %163 = load ptr, ptr %162, align 8, !tbaa !31
  %164 = load i8, ptr %163, align 1, !tbaa !32
  %165 = icmp eq i8 %164, 45
  br i1 %165, label %166, label %167

166:                                              ; preds = %161
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.152) #3
  store ptr @.str.44, ptr %162, align 8, !tbaa !31
  br label %167

167:                                              ; preds = %166, %161
  %168 = getelementptr inbounds i8, ptr %0, i64 120
  %169 = load ptr, ptr %168, align 8, !tbaa !33
  %170 = load i8, ptr %169, align 1, !tbaa !32
  %171 = icmp eq i8 %170, 45
  br i1 %171, label %172, label %173

172:                                              ; preds = %167
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.153) #3
  store ptr @.str.44, ptr %168, align 8, !tbaa !33
  br label %173

173:                                              ; preds = %172, %167
  %174 = getelementptr inbounds i8, ptr %0, i64 100
  %175 = load i32, ptr %174, align 4, !tbaa !34
  %176 = icmp slt i32 %175, 0
  br i1 %176, label %177, label %178

177:                                              ; preds = %173
  store i32 60, ptr %174, align 4, !tbaa !34
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.154) #3
  %.pr = load i32, ptr %174, align 4, !tbaa !34
  br label %178

178:                                              ; preds = %177, %173
  %179 = phi i32 [ %.pr, %177 ], [ %175, %173 ]
  %180 = icmp eq i32 %179, 0
  br i1 %180, label %181, label %182

181:                                              ; preds = %178
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.155) #3
  br label %182

182:                                              ; preds = %181, %178
  %183 = getelementptr inbounds i8, ptr %0, i64 96
  %184 = load i32, ptr %183, align 8, !tbaa !35
  %185 = icmp slt i32 %184, 0
  br i1 %185, label %186, label %187

186:                                              ; preds = %182
  store i32 0, ptr %183, align 8, !tbaa !35
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.156) #3
  br label %187

187:                                              ; preds = %186, %182
  %188 = getelementptr inbounds i8, ptr %0, i64 104
  %189 = load i32, ptr %188, align 8, !tbaa !36
  %190 = icmp slt i32 %189, 0
  br i1 %190, label %191, label %192

191:                                              ; preds = %187
  store i32 0, ptr %188, align 8, !tbaa !36
  tail call void @PRINT_INFO(ptr noundef nonnull @.str.157) #3
  br label %192

192:                                              ; preds = %187, %191, %53, %46, %31, %26, %13, %8
  %.0 = phi i32 [ -1001, %8 ], [ -1001, %46 ], [ -1001, %53 ], [ -1001, %31 ], [ -1001, %26 ], [ -1001, %13 ], [ 0, %191 ], [ 0, %187 ]
  ret i32 %.0
}

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strstr(ptr noundef, ptr nocapture noundef) local_unnamed_addr #0

declare void @PRINT_INFO(ptr noundef) local_unnamed_addr #1

declare void @PRINT_DBG(ptr noundef) local_unnamed_addr #1

attributes #0 = { mustprogress nofree nounwind willreturn memory(argmem: read) "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 = { "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 = { 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 #3 = { nounwind }
attributes #4 = { nounwind willreturn memory(read) }

!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, !7, i64 0}
!6 = !{!"ntttcp_test", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 4, !7, i64 5, !7, i64 6, !10, i64 8, !11, i64 16, !11, i64 20, !10, i64 24, !11, i64 32, !11, i64 36, !7, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !11, i64 96, !11, i64 100, !11, i64 104, !7, i64 108, !10, i64 112, !10, i64 120, !7, i64 128, !10, i64 136, !7, i64 144, !10, i64 152, !7, i64 160, !10, i64 168, !7, i64 176, !7, i64 177}
!7 = !{!"_Bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!6, !7, i64 1}
!16 = !{!6, !10, i64 8}
!17 = !{!6, !11, i64 44}
!18 = !{!6, !10, i64 24}
!19 = !{!6, !7, i64 2}
!20 = !{!6, !7, i64 3}
!21 = !{!6, !11, i64 16}
!22 = !{!6, !11, i64 32}
!23 = !{!6, !11, i64 36}
!24 = !{!6, !7, i64 5}
!25 = !{!6, !7, i64 6}
!26 = !{!6, !11, i64 56}
!27 = !{!6, !12, i64 80}
!28 = !{!6, !12, i64 88}
!29 = !{!6, !11, i64 48}
!30 = !{!6, !12, i64 72}
!31 = !{!6, !10, i64 112}
!32 = !{!8, !8, i64 0}
!33 = !{!6, !10, i64 120}
!34 = !{!6, !11, i64 100}
!35 = !{!6, !11, i64 96}
!36 = !{!6, !11, i64 104}


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