; LLVM IR from cyberbotics/webots_ros2 :: webots_ros2_driver/webots/src/stb/tests (c_lexer_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.stb_lexer = type { ptr, ptr, ptr, ptr, i32, ptr, ptr, i64, double, i64, ptr, i32 }

@.str = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
define dso_local i32 @stb_c_lexer_get_token(ptr noundef %0) #1 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i64, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i64, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i64, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #2
  %16 = load ptr, ptr %3, align 8, !tbaa !5
  %17 = getelementptr inbounds %struct.stb_lexer, ptr %16, i32 0, i32 2
  %18 = load ptr, ptr %17, align 8, !tbaa !9
  store ptr %18, ptr %4, align 8, !tbaa !5
  br label %19

19:                                               ; preds = %176, %140, %77, %1
  br label %20

20:                                               ; preds = %34, %19
  %21 = load ptr, ptr %4, align 8, !tbaa !5
  %22 = load ptr, ptr %3, align 8, !tbaa !5
  %23 = getelementptr inbounds %struct.stb_lexer, ptr %22, i32 0, i32 1
  %24 = load ptr, ptr %23, align 8, !tbaa !14
  %25 = icmp ne ptr %21, %24
  br i1 %25, label %26, label %32

26:                                               ; preds = %20
  %27 = load ptr, ptr %4, align 8, !tbaa !5
  %28 = load i8, ptr %27, align 1, !tbaa !15
  %29 = sext i8 %28 to i32
  %30 = call i32 @stb__clex_iswhite(i32 noundef %29)
  %31 = icmp ne i32 %30, 0
  br label %32

32:                                               ; preds = %26, %20
  %33 = phi i1 [ false, %20 ], [ %31, %26 ]
  br i1 %33, label %34, label %37

34:                                               ; preds = %32
  %35 = load ptr, ptr %4, align 8, !tbaa !5
  %36 = getelementptr inbounds i8, ptr %35, i32 1
  store ptr %36, ptr %4, align 8, !tbaa !5
  br label %20, !llvm.loop !16

37:                                               ; preds = %32
  %38 = load ptr, ptr %4, align 8, !tbaa !5
  %39 = load ptr, ptr %3, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.stb_lexer, ptr %39, i32 0, i32 1
  %41 = load ptr, ptr %40, align 8, !tbaa !14
  %42 = icmp ne ptr %38, %41
  br i1 %42, label %43, label %78

43:                                               ; preds = %37
  %44 = load ptr, ptr %4, align 8, !tbaa !5
  %45 = getelementptr inbounds i8, ptr %44, i64 0
  %46 = load i8, ptr %45, align 1, !tbaa !15
  %47 = sext i8 %46 to i32
  %48 = icmp eq i32 %47, 47
  br i1 %48, label %49, label %78

49:                                               ; preds = %43
  %50 = load ptr, ptr %4, align 8, !tbaa !5
  %51 = getelementptr inbounds i8, ptr %50, i64 1
  %52 = load i8, ptr %51, align 1, !tbaa !15
  %53 = sext i8 %52 to i32
  %54 = icmp eq i32 %53, 47
  br i1 %54, label %55, label %78

55:                                               ; preds = %49
  br label %56

56:                                               ; preds = %74, %55
  %57 = load ptr, ptr %4, align 8, !tbaa !5
  %58 = load ptr, ptr %3, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.stb_lexer, ptr %58, i32 0, i32 1
  %60 = load ptr, ptr %59, align 8, !tbaa !14
  %61 = icmp ne ptr %57, %60
  br i1 %61, label %62, label %72

62:                                               ; preds = %56
  %63 = load ptr, ptr %4, align 8, !tbaa !5
  %64 = load i8, ptr %63, align 1, !tbaa !15
  %65 = sext i8 %64 to i32
  %66 = icmp ne i32 %65, 13
  br i1 %66, label %67, label %72

67:                                               ; preds = %62
  %68 = load ptr, ptr %4, align 8, !tbaa !5
  %69 = load i8, ptr %68, align 1, !tbaa !15
  %70 = sext i8 %69 to i32
  %71 = icmp ne i32 %70, 10
  br label %72

72:                                               ; preds = %67, %62, %56
  %73 = phi i1 [ false, %62 ], [ false, %56 ], [ %71, %67 ]
  br i1 %73, label %74, label %77

74:                                               ; preds = %72
  %75 = load ptr, ptr %4, align 8, !tbaa !5
  %76 = getelementptr inbounds i8, ptr %75, i32 1
  store ptr %76, ptr %4, align 8, !tbaa !5
  br label %56, !llvm.loop !18

77:                                               ; preds = %72
  br label %19

78:                                               ; preds = %49, %43, %37
  %79 = load ptr, ptr %4, align 8, !tbaa !5
  %80 = load ptr, ptr %3, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.stb_lexer, ptr %80, i32 0, i32 1
  %82 = load ptr, ptr %81, align 8, !tbaa !14
  %83 = icmp ne ptr %79, %82
  br i1 %83, label %84, label %142

84:                                               ; preds = %78
  %85 = load ptr, ptr %4, align 8, !tbaa !5
  %86 = getelementptr inbounds i8, ptr %85, i64 0
  %87 = load i8, ptr %86, align 1, !tbaa !15
  %88 = sext i8 %87 to i32
  %89 = icmp eq i32 %88, 47
  br i1 %89, label %90, label %142

90:                                               ; preds = %84
  %91 = load ptr, ptr %4, align 8, !tbaa !5
  %92 = getelementptr inbounds i8, ptr %91, i64 1
  %93 = load i8, ptr %92, align 1, !tbaa !15
  %94 = sext i8 %93 to i32
  %95 = icmp eq i32 %94, 42
  br i1 %95, label %96, label %142

96:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #2
  %97 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %97, ptr %5, align 8, !tbaa !5
  %98 = load ptr, ptr %4, align 8, !tbaa !5
  %99 = getelementptr inbounds i8, ptr %98, i64 2
  store ptr %99, ptr %4, align 8, !tbaa !5
  br label %100

100:                                              ; preds = %122, %96
  %101 = load ptr, ptr %4, align 8, !tbaa !5
  %102 = load ptr, ptr %3, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.stb_lexer, ptr %102, i32 0, i32 1
  %104 = load ptr, ptr %103, align 8, !tbaa !14
  %105 = icmp ne ptr %101, %104
  br i1 %105, label %106, label %120

106:                                              ; preds = %100
  %107 = load ptr, ptr %4, align 8, !tbaa !5
  %108 = getelementptr inbounds i8, ptr %107, i64 0
  %109 = load i8, ptr %108, align 1, !tbaa !15
  %110 = sext i8 %109 to i32
  %111 = icmp ne i32 %110, 42
  br i1 %111, label %118, label %112

112:                                              ; preds = %106
  %113 = load ptr, ptr %4, align 8, !tbaa !5
  %114 = getelementptr inbounds i8, ptr %113, i64 1
  %115 = load i8, ptr %114, align 1, !tbaa !15
  %116 = sext i8 %115 to i32
  %117 = icmp ne i32 %116, 47
  br label %118

118:                                              ; preds = %112, %106
  %119 = phi i1 [ true, %106 ], [ %117, %112 ]
  br label %120

120:                                              ; preds = %118, %100
  %121 = phi i1 [ false, %100 ], [ %119, %118 ]
  br i1 %121, label %122, label %125

122:                                              ; preds = %120
  %123 = load ptr, ptr %4, align 8, !tbaa !5
  %124 = getelementptr inbounds i8, ptr %123, i32 1
  store ptr %124, ptr %4, align 8, !tbaa !5
  br label %100, !llvm.loop !19

125:                                              ; preds = %120
  %126 = load ptr, ptr %4, align 8, !tbaa !5
  %127 = load ptr, ptr %3, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.stb_lexer, ptr %127, i32 0, i32 1
  %129 = load ptr, ptr %128, align 8, !tbaa !14
  %130 = icmp eq ptr %126, %129
  br i1 %130, label %131, label %137

131:                                              ; preds = %125
  %132 = load ptr, ptr %3, align 8, !tbaa !5
  %133 = load ptr, ptr %5, align 8, !tbaa !5
  %134 = load ptr, ptr %4, align 8, !tbaa !5
  %135 = getelementptr inbounds i8, ptr %134, i64 -1
  %136 = call i32 @stb__clex_token(ptr noundef %132, i32 noundef 257, ptr noundef %133, ptr noundef %135)
  store i32 %136, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %140

137:                                              ; preds = %125
  %138 = load ptr, ptr %4, align 8, !tbaa !5
  %139 = getelementptr inbounds i8, ptr %138, i64 2
  store ptr %139, ptr %4, align 8, !tbaa !5
  store i32 3, ptr %6, align 4
  br label %140

140:                                              ; preds = %137, %131
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #2
  %141 = load i32, ptr %6, align 4
  switch i32 %141, label %1123 [
    i32 3, label %19
  ]

142:                                              ; preds = %90, %84, %78
  %143 = load ptr, ptr %4, align 8, !tbaa !5
  %144 = load ptr, ptr %3, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.stb_lexer, ptr %144, i32 0, i32 1
  %146 = load ptr, ptr %145, align 8, !tbaa !14
  %147 = icmp ne ptr %143, %146
  br i1 %147, label %148, label %177

148:                                              ; preds = %142
  %149 = load ptr, ptr %4, align 8, !tbaa !5
  %150 = getelementptr inbounds i8, ptr %149, i64 0
  %151 = load i8, ptr %150, align 1, !tbaa !15
  %152 = sext i8 %151 to i32
  %153 = icmp eq i32 %152, 35
  br i1 %153, label %154, label %177

154:                                              ; preds = %148
  br label %155

155:                                              ; preds = %173, %154
  %156 = load ptr, ptr %4, align 8, !tbaa !5
  %157 = load ptr, ptr %3, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.stb_lexer, ptr %157, i32 0, i32 1
  %159 = load ptr, ptr %158, align 8, !tbaa !14
  %160 = icmp ne ptr %156, %159
  br i1 %160, label %161, label %171

161:                                              ; preds = %155
  %162 = load ptr, ptr %4, align 8, !tbaa !5
  %163 = load i8, ptr %162, align 1, !tbaa !15
  %164 = sext i8 %163 to i32
  %165 = icmp ne i32 %164, 13
  br i1 %165, label %166, label %171

166:                                              ; preds = %161
  %167 = load ptr, ptr %4, align 8, !tbaa !5
  %168 = load i8, ptr %167, align 1, !tbaa !15
  %169 = sext i8 %168 to i32
  %170 = icmp ne i32 %169, 10
  br label %171

171:                                              ; preds = %166, %161, %155
  %172 = phi i1 [ false, %161 ], [ false, %155 ], [ %170, %166 ]
  br i1 %172, label %173, label %176

173:                                              ; preds = %171
  %174 = load ptr, ptr %4, align 8, !tbaa !5
  %175 = getelementptr inbounds i8, ptr %174, i32 1
  store ptr %175, ptr %4, align 8, !tbaa !5
  br label %155, !llvm.loop !20

176:                                              ; preds = %171
  br label %19

177:                                              ; preds = %148, %142
  br label %178

178:                                              ; preds = %177
  %179 = load ptr, ptr %4, align 8, !tbaa !5
  %180 = load ptr, ptr %3, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.stb_lexer, ptr %180, i32 0, i32 1
  %182 = load ptr, ptr %181, align 8, !tbaa !14
  %183 = icmp eq ptr %179, %182
  br i1 %183, label %184, label %187

184:                                              ; preds = %178
  %185 = load ptr, ptr %3, align 8, !tbaa !5
  %186 = call i32 @stb__clex_eof(ptr noundef %185)
  store i32 %186, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

187:                                              ; preds = %178
  %188 = load ptr, ptr %4, align 8, !tbaa !5
  %189 = load i8, ptr %188, align 1, !tbaa !15
  %190 = sext i8 %189 to i32
  switch i32 %190, label %191 [
    i32 43, label %363
    i32 45, label %396
    i32 38, label %441
    i32 124, label %474
    i32 61, label %507
    i32 33, label %540
    i32 94, label %560
    i32 37, label %580
    i32 42, label %600
    i32 47, label %620
    i32 60, label %640
    i32 62, label %692
    i32 34, label %744
    i32 39, label %748
    i32 48, label %752
    i32 49, label %958
    i32 50, label %958
    i32 51, label %958
    i32 52, label %958
    i32 53, label %958
    i32 54, label %958
    i32 55, label %958
    i32 56, label %958
    i32 57, label %958
  ]

191:                                              ; preds = %187
  %192 = load ptr, ptr %4, align 8, !tbaa !5
  %193 = load i8, ptr %192, align 1, !tbaa !15
  %194 = sext i8 %193 to i32
  %195 = icmp sge i32 %194, 97
  br i1 %195, label %196, label %201

196:                                              ; preds = %191
  %197 = load ptr, ptr %4, align 8, !tbaa !5
  %198 = load i8, ptr %197, align 1, !tbaa !15
  %199 = sext i8 %198 to i32
  %200 = icmp sle i32 %199, 122
  br i1 %200, label %226, label %201

201:                                              ; preds = %196, %191
  %202 = load ptr, ptr %4, align 8, !tbaa !5
  %203 = load i8, ptr %202, align 1, !tbaa !15
  %204 = sext i8 %203 to i32
  %205 = icmp sge i32 %204, 65
  br i1 %205, label %206, label %211

206:                                              ; preds = %201
  %207 = load ptr, ptr %4, align 8, !tbaa !5
  %208 = load i8, ptr %207, align 1, !tbaa !15
  %209 = sext i8 %208 to i32
  %210 = icmp sle i32 %209, 90
  br i1 %210, label %226, label %211

211:                                              ; preds = %206, %201
  %212 = load ptr, ptr %4, align 8, !tbaa !5
  %213 = load i8, ptr %212, align 1, !tbaa !15
  %214 = sext i8 %213 to i32
  %215 = icmp eq i32 %214, 95
  br i1 %215, label %226, label %216

216:                                              ; preds = %211
  %217 = load ptr, ptr %4, align 8, !tbaa !5
  %218 = load i8, ptr %217, align 1, !tbaa !15
  %219 = zext i8 %218 to i32
  %220 = icmp sge i32 %219, 128
  br i1 %220, label %226, label %221

221:                                              ; preds = %216
  %222 = load ptr, ptr %4, align 8, !tbaa !5
  %223 = load i8, ptr %222, align 1, !tbaa !15
  %224 = sext i8 %223 to i32
  %225 = icmp eq i32 %224, 36
  br i1 %225, label %226, label %354

226:                                              ; preds = %221, %216, %211, %206, %196
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #2
  store i32 0, ptr %7, align 4, !tbaa !21
  %227 = load ptr, ptr %3, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.stb_lexer, ptr %227, i32 0, i32 3
  %229 = load ptr, ptr %228, align 8, !tbaa !22
  %230 = load ptr, ptr %3, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.stb_lexer, ptr %230, i32 0, i32 10
  store ptr %229, ptr %231, align 8, !tbaa !23
  %232 = load i32, ptr %7, align 4, !tbaa !21
  %233 = load ptr, ptr %3, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.stb_lexer, ptr %233, i32 0, i32 11
  store i32 %232, ptr %234, align 8, !tbaa !24
  br label %235

235:                                              ; preds = %336, %226
  %236 = load i32, ptr %7, align 4, !tbaa !21
  %237 = add nsw i32 %236, 1
  %238 = load ptr, ptr %3, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.stb_lexer, ptr %238, i32 0, i32 4
  %240 = load i32, ptr %239, align 8, !tbaa !25
  %241 = icmp sge i32 %237, %240
  br i1 %241, label %242, label %250

242:                                              ; preds = %235
  %243 = load ptr, ptr %3, align 8, !tbaa !5
  %244 = load ptr, ptr %4, align 8, !tbaa !5
  %245 = load ptr, ptr %4, align 8, !tbaa !5
  %246 = load i32, ptr %7, align 4, !tbaa !21
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds i8, ptr %245, i64 %247
  %249 = call i32 @stb__clex_token(ptr noundef %243, i32 noundef 257, ptr noundef %244, ptr noundef %248)
  store i32 %249, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %353

250:                                              ; preds = %235
  %251 = load ptr, ptr %4, align 8, !tbaa !5
  %252 = load i32, ptr %7, align 4, !tbaa !21
  %253 = sext i32 %252 to i64
  %254 = getelementptr inbounds i8, ptr %251, i64 %253
  %255 = load i8, ptr %254, align 1, !tbaa !15
  %256 = load ptr, ptr %3, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.stb_lexer, ptr %256, i32 0, i32 10
  %258 = load ptr, ptr %257, align 8, !tbaa !23
  %259 = load i32, ptr %7, align 4, !tbaa !21
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds i8, ptr %258, i64 %260
  store i8 %255, ptr %261, align 1, !tbaa !15
  %262 = load i32, ptr %7, align 4, !tbaa !21
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr %7, align 4, !tbaa !21
  br label %264

264:                                              ; preds = %250
  %265 = load ptr, ptr %4, align 8, !tbaa !5
  %266 = load i32, ptr %7, align 4, !tbaa !21
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds i8, ptr %265, i64 %267
  %269 = load i8, ptr %268, align 1, !tbaa !15
  %270 = sext i8 %269 to i32
  %271 = icmp sge i32 %270, 97
  br i1 %271, label %272, label %280

272:                                              ; preds = %264
  %273 = load ptr, ptr %4, align 8, !tbaa !5
  %274 = load i32, ptr %7, align 4, !tbaa !21
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds i8, ptr %273, i64 %275
  %277 = load i8, ptr %276, align 1, !tbaa !15
  %278 = sext i8 %277 to i32
  %279 = icmp sle i32 %278, 122
  br i1 %279, label %336, label %280

280:                                              ; preds = %272, %264
  %281 = load ptr, ptr %4, align 8, !tbaa !5
  %282 = load i32, ptr %7, align 4, !tbaa !21
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds i8, ptr %281, i64 %283
  %285 = load i8, ptr %284, align 1, !tbaa !15
  %286 = sext i8 %285 to i32
  %287 = icmp sge i32 %286, 65
  br i1 %287, label %288, label %296

288:                                              ; preds = %280
  %289 = load ptr, ptr %4, align 8, !tbaa !5
  %290 = load i32, ptr %7, align 4, !tbaa !21
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds i8, ptr %289, i64 %291
  %293 = load i8, ptr %292, align 1, !tbaa !15
  %294 = sext i8 %293 to i32
  %295 = icmp sle i32 %294, 90
  br i1 %295, label %336, label %296

296:                                              ; preds = %288, %280
  %297 = load ptr, ptr %4, align 8, !tbaa !5
  %298 = load i32, ptr %7, align 4, !tbaa !21
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds i8, ptr %297, i64 %299
  %301 = load i8, ptr %300, align 1, !tbaa !15
  %302 = sext i8 %301 to i32
  %303 = icmp sge i32 %302, 48
  br i1 %303, label %304, label %312

304:                                              ; preds = %296
  %305 = load ptr, ptr %4, align 8, !tbaa !5
  %306 = load i32, ptr %7, align 4, !tbaa !21
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds i8, ptr %305, i64 %307
  %309 = load i8, ptr %308, align 1, !tbaa !15
  %310 = sext i8 %309 to i32
  %311 = icmp sle i32 %310, 57
  br i1 %311, label %336, label %312

312:                                              ; preds = %304, %296
  %313 = load ptr, ptr %4, align 8, !tbaa !5
  %314 = load i32, ptr %7, align 4, !tbaa !21
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds i8, ptr %313, i64 %315
  %317 = load i8, ptr %316, align 1, !tbaa !15
  %318 = sext i8 %317 to i32
  %319 = icmp eq i32 %318, 95
  br i1 %319, label %336, label %320

320:                                              ; preds = %312
  %321 = load ptr, ptr %4, align 8, !tbaa !5
  %322 = load i32, ptr %7, align 4, !tbaa !21
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds i8, ptr %321, i64 %323
  %325 = load i8, ptr %324, align 1, !tbaa !15
  %326 = zext i8 %325 to i32
  %327 = icmp sge i32 %326, 128
  br i1 %327, label %336, label %328

328:                                              ; preds = %320
  %329 = load ptr, ptr %4, align 8, !tbaa !5
  %330 = load i32, ptr %7, align 4, !tbaa !21
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds i8, ptr %329, i64 %331
  %333 = load i8, ptr %332, align 1, !tbaa !15
  %334 = sext i8 %333 to i32
  %335 = icmp eq i32 %334, 36
  br label %336

336:                                              ; preds = %328, %320, %312, %304, %288, %272
  %337 = phi i1 [ true, %320 ], [ true, %312 ], [ true, %304 ], [ true, %288 ], [ true, %272 ], [ %335, %328 ]
  br i1 %337, label %235, label %338, !llvm.loop !26

338:                                              ; preds = %336
  %339 = load ptr, ptr %3, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.stb_lexer, ptr %339, i32 0, i32 10
  %341 = load ptr, ptr %340, align 8, !tbaa !23
  %342 = load i32, ptr %7, align 4, !tbaa !21
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds i8, ptr %341, i64 %343
  store i8 0, ptr %344, align 1, !tbaa !15
  %345 = load ptr, ptr %3, align 8, !tbaa !5
  %346 = load ptr, ptr %4, align 8, !tbaa !5
  %347 = load ptr, ptr %4, align 8, !tbaa !5
  %348 = load i32, ptr %7, align 4, !tbaa !21
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds i8, ptr %347, i64 %349
  %351 = getelementptr inbounds i8, ptr %350, i64 -1
  %352 = call i32 @stb__clex_token(ptr noundef %345, i32 noundef 260, ptr noundef %346, ptr noundef %351)
  store i32 %352, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %353

353:                                              ; preds = %338, %242
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #2
  br label %1123

354:                                              ; preds = %221
  br label %355

355:                                              ; preds = %743, %691, %639, %619, %599, %579, %559, %539, %506, %473, %440, %395, %354
  %356 = load ptr, ptr %3, align 8, !tbaa !5
  %357 = load ptr, ptr %4, align 8, !tbaa !5
  %358 = load i8, ptr %357, align 1, !tbaa !15
  %359 = sext i8 %358 to i32
  %360 = load ptr, ptr %4, align 8, !tbaa !5
  %361 = load ptr, ptr %4, align 8, !tbaa !5
  %362 = call i32 @stb__clex_token(ptr noundef %356, i32 noundef %359, ptr noundef %360, ptr noundef %361)
  store i32 %362, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

363:                                              ; preds = %187
  %364 = load ptr, ptr %4, align 8, !tbaa !5
  %365 = getelementptr inbounds i8, ptr %364, i64 1
  %366 = load ptr, ptr %3, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.stb_lexer, ptr %366, i32 0, i32 1
  %368 = load ptr, ptr %367, align 8, !tbaa !14
  %369 = icmp ne ptr %365, %368
  br i1 %369, label %370, label %395

370:                                              ; preds = %363
  %371 = load ptr, ptr %4, align 8, !tbaa !5
  %372 = getelementptr inbounds i8, ptr %371, i64 1
  %373 = load i8, ptr %372, align 1, !tbaa !15
  %374 = sext i8 %373 to i32
  %375 = icmp eq i32 %374, 43
  br i1 %375, label %376, label %382

376:                                              ; preds = %370
  %377 = load ptr, ptr %3, align 8, !tbaa !5
  %378 = load ptr, ptr %4, align 8, !tbaa !5
  %379 = load ptr, ptr %4, align 8, !tbaa !5
  %380 = getelementptr inbounds i8, ptr %379, i64 1
  %381 = call i32 @stb__clex_token(ptr noundef %377, i32 noundef 272, ptr noundef %378, ptr noundef %380)
  store i32 %381, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

382:                                              ; preds = %370
  %383 = load ptr, ptr %4, align 8, !tbaa !5
  %384 = getelementptr inbounds i8, ptr %383, i64 1
  %385 = load i8, ptr %384, align 1, !tbaa !15
  %386 = sext i8 %385 to i32
  %387 = icmp eq i32 %386, 61
  br i1 %387, label %388, label %394

388:                                              ; preds = %382
  %389 = load ptr, ptr %3, align 8, !tbaa !5
  %390 = load ptr, ptr %4, align 8, !tbaa !5
  %391 = load ptr, ptr %4, align 8, !tbaa !5
  %392 = getelementptr inbounds i8, ptr %391, i64 1
  %393 = call i32 @stb__clex_token(ptr noundef %389, i32 noundef 274, ptr noundef %390, ptr noundef %392)
  store i32 %393, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

394:                                              ; preds = %382
  br label %395

395:                                              ; preds = %394, %363
  br label %355

396:                                              ; preds = %187
  %397 = load ptr, ptr %4, align 8, !tbaa !5
  %398 = getelementptr inbounds i8, ptr %397, i64 1
  %399 = load ptr, ptr %3, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.stb_lexer, ptr %399, i32 0, i32 1
  %401 = load ptr, ptr %400, align 8, !tbaa !14
  %402 = icmp ne ptr %398, %401
  br i1 %402, label %403, label %440

403:                                              ; preds = %396
  %404 = load ptr, ptr %4, align 8, !tbaa !5
  %405 = getelementptr inbounds i8, ptr %404, i64 1
  %406 = load i8, ptr %405, align 1, !tbaa !15
  %407 = sext i8 %406 to i32
  %408 = icmp eq i32 %407, 45
  br i1 %408, label %409, label %415

409:                                              ; preds = %403
  %410 = load ptr, ptr %3, align 8, !tbaa !5
  %411 = load ptr, ptr %4, align 8, !tbaa !5
  %412 = load ptr, ptr %4, align 8, !tbaa !5
  %413 = getelementptr inbounds i8, ptr %412, i64 1
  %414 = call i32 @stb__clex_token(ptr noundef %410, i32 noundef 273, ptr noundef %411, ptr noundef %413)
  store i32 %414, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

415:                                              ; preds = %403
  %416 = load ptr, ptr %4, align 8, !tbaa !5
  %417 = getelementptr inbounds i8, ptr %416, i64 1
  %418 = load i8, ptr %417, align 1, !tbaa !15
  %419 = sext i8 %418 to i32
  %420 = icmp eq i32 %419, 61
  br i1 %420, label %421, label %427

421:                                              ; preds = %415
  %422 = load ptr, ptr %3, align 8, !tbaa !5
  %423 = load ptr, ptr %4, align 8, !tbaa !5
  %424 = load ptr, ptr %4, align 8, !tbaa !5
  %425 = getelementptr inbounds i8, ptr %424, i64 1
  %426 = call i32 @stb__clex_token(ptr noundef %422, i32 noundef 275, ptr noundef %423, ptr noundef %425)
  store i32 %426, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

427:                                              ; preds = %415
  %428 = load ptr, ptr %4, align 8, !tbaa !5
  %429 = getelementptr inbounds i8, ptr %428, i64 1
  %430 = load i8, ptr %429, align 1, !tbaa !15
  %431 = sext i8 %430 to i32
  %432 = icmp eq i32 %431, 62
  br i1 %432, label %433, label %439

433:                                              ; preds = %427
  %434 = load ptr, ptr %3, align 8, !tbaa !5
  %435 = load ptr, ptr %4, align 8, !tbaa !5
  %436 = load ptr, ptr %4, align 8, !tbaa !5
  %437 = getelementptr inbounds i8, ptr %436, i64 1
  %438 = call i32 @stb__clex_token(ptr noundef %434, i32 noundef 282, ptr noundef %435, ptr noundef %437)
  store i32 %438, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

439:                                              ; preds = %427
  br label %440

440:                                              ; preds = %439, %396
  br label %355

441:                                              ; preds = %187
  %442 = load ptr, ptr %4, align 8, !tbaa !5
  %443 = getelementptr inbounds i8, ptr %442, i64 1
  %444 = load ptr, ptr %3, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.stb_lexer, ptr %444, i32 0, i32 1
  %446 = load ptr, ptr %445, align 8, !tbaa !14
  %447 = icmp ne ptr %443, %446
  br i1 %447, label %448, label %473

448:                                              ; preds = %441
  %449 = load ptr, ptr %4, align 8, !tbaa !5
  %450 = getelementptr inbounds i8, ptr %449, i64 1
  %451 = load i8, ptr %450, align 1, !tbaa !15
  %452 = sext i8 %451 to i32
  %453 = icmp eq i32 %452, 38
  br i1 %453, label %454, label %460

454:                                              ; preds = %448
  %455 = load ptr, ptr %3, align 8, !tbaa !5
  %456 = load ptr, ptr %4, align 8, !tbaa !5
  %457 = load ptr, ptr %4, align 8, !tbaa !5
  %458 = getelementptr inbounds i8, ptr %457, i64 1
  %459 = call i32 @stb__clex_token(ptr noundef %455, i32 noundef 268, ptr noundef %456, ptr noundef %458)
  store i32 %459, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

460:                                              ; preds = %448
  %461 = load ptr, ptr %4, align 8, !tbaa !5
  %462 = getelementptr inbounds i8, ptr %461, i64 1
  %463 = load i8, ptr %462, align 1, !tbaa !15
  %464 = sext i8 %463 to i32
  %465 = icmp eq i32 %464, 61
  br i1 %465, label %466, label %472

466:                                              ; preds = %460
  %467 = load ptr, ptr %3, align 8, !tbaa !5
  %468 = load ptr, ptr %4, align 8, !tbaa !5
  %469 = load ptr, ptr %4, align 8, !tbaa !5
  %470 = getelementptr inbounds i8, ptr %469, i64 1
  %471 = call i32 @stb__clex_token(ptr noundef %467, i32 noundef 279, ptr noundef %468, ptr noundef %470)
  store i32 %471, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

472:                                              ; preds = %460
  br label %473

473:                                              ; preds = %472, %441
  br label %355

474:                                              ; preds = %187
  %475 = load ptr, ptr %4, align 8, !tbaa !5
  %476 = getelementptr inbounds i8, ptr %475, i64 1
  %477 = load ptr, ptr %3, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.stb_lexer, ptr %477, i32 0, i32 1
  %479 = load ptr, ptr %478, align 8, !tbaa !14
  %480 = icmp ne ptr %476, %479
  br i1 %480, label %481, label %506

481:                                              ; preds = %474
  %482 = load ptr, ptr %4, align 8, !tbaa !5
  %483 = getelementptr inbounds i8, ptr %482, i64 1
  %484 = load i8, ptr %483, align 1, !tbaa !15
  %485 = sext i8 %484 to i32
  %486 = icmp eq i32 %485, 124
  br i1 %486, label %487, label %493

487:                                              ; preds = %481
  %488 = load ptr, ptr %3, align 8, !tbaa !5
  %489 = load ptr, ptr %4, align 8, !tbaa !5
  %490 = load ptr, ptr %4, align 8, !tbaa !5
  %491 = getelementptr inbounds i8, ptr %490, i64 1
  %492 = call i32 @stb__clex_token(ptr noundef %488, i32 noundef 269, ptr noundef %489, ptr noundef %491)
  store i32 %492, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

493:                                              ; preds = %481
  %494 = load ptr, ptr %4, align 8, !tbaa !5
  %495 = getelementptr inbounds i8, ptr %494, i64 1
  %496 = load i8, ptr %495, align 1, !tbaa !15
  %497 = sext i8 %496 to i32
  %498 = icmp eq i32 %497, 61
  br i1 %498, label %499, label %505

499:                                              ; preds = %493
  %500 = load ptr, ptr %3, align 8, !tbaa !5
  %501 = load ptr, ptr %4, align 8, !tbaa !5
  %502 = load ptr, ptr %4, align 8, !tbaa !5
  %503 = getelementptr inbounds i8, ptr %502, i64 1
  %504 = call i32 @stb__clex_token(ptr noundef %500, i32 noundef 280, ptr noundef %501, ptr noundef %503)
  store i32 %504, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

505:                                              ; preds = %493
  br label %506

506:                                              ; preds = %505, %474
  br label %355

507:                                              ; preds = %187
  %508 = load ptr, ptr %4, align 8, !tbaa !5
  %509 = getelementptr inbounds i8, ptr %508, i64 1
  %510 = load ptr, ptr %3, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.stb_lexer, ptr %510, i32 0, i32 1
  %512 = load ptr, ptr %511, align 8, !tbaa !14
  %513 = icmp ne ptr %509, %512
  br i1 %513, label %514, label %539

514:                                              ; preds = %507
  %515 = load ptr, ptr %4, align 8, !tbaa !5
  %516 = getelementptr inbounds i8, ptr %515, i64 1
  %517 = load i8, ptr %516, align 1, !tbaa !15
  %518 = sext i8 %517 to i32
  %519 = icmp eq i32 %518, 61
  br i1 %519, label %520, label %526

520:                                              ; preds = %514
  %521 = load ptr, ptr %3, align 8, !tbaa !5
  %522 = load ptr, ptr %4, align 8, !tbaa !5
  %523 = load ptr, ptr %4, align 8, !tbaa !5
  %524 = getelementptr inbounds i8, ptr %523, i64 1
  %525 = call i32 @stb__clex_token(ptr noundef %521, i32 noundef 264, ptr noundef %522, ptr noundef %524)
  store i32 %525, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

526:                                              ; preds = %514
  %527 = load ptr, ptr %4, align 8, !tbaa !5
  %528 = getelementptr inbounds i8, ptr %527, i64 1
  %529 = load i8, ptr %528, align 1, !tbaa !15
  %530 = sext i8 %529 to i32
  %531 = icmp eq i32 %530, 62
  br i1 %531, label %532, label %538

532:                                              ; preds = %526
  %533 = load ptr, ptr %3, align 8, !tbaa !5
  %534 = load ptr, ptr %4, align 8, !tbaa !5
  %535 = load ptr, ptr %4, align 8, !tbaa !5
  %536 = getelementptr inbounds i8, ptr %535, i64 1
  %537 = call i32 @stb__clex_token(ptr noundef %533, i32 noundef 283, ptr noundef %534, ptr noundef %536)
  store i32 %537, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

538:                                              ; preds = %526
  br label %539

539:                                              ; preds = %538, %507
  br label %355

540:                                              ; preds = %187
  %541 = load ptr, ptr %4, align 8, !tbaa !5
  %542 = getelementptr inbounds i8, ptr %541, i64 1
  %543 = load ptr, ptr %3, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.stb_lexer, ptr %543, i32 0, i32 1
  %545 = load ptr, ptr %544, align 8, !tbaa !14
  %546 = icmp ne ptr %542, %545
  br i1 %546, label %547, label %559

547:                                              ; preds = %540
  %548 = load ptr, ptr %4, align 8, !tbaa !5
  %549 = getelementptr inbounds i8, ptr %548, i64 1
  %550 = load i8, ptr %549, align 1, !tbaa !15
  %551 = sext i8 %550 to i32
  %552 = icmp eq i32 %551, 61
  br i1 %552, label %553, label %559

553:                                              ; preds = %547
  %554 = load ptr, ptr %3, align 8, !tbaa !5
  %555 = load ptr, ptr %4, align 8, !tbaa !5
  %556 = load ptr, ptr %4, align 8, !tbaa !5
  %557 = getelementptr inbounds i8, ptr %556, i64 1
  %558 = call i32 @stb__clex_token(ptr noundef %554, i32 noundef 265, ptr noundef %555, ptr noundef %557)
  store i32 %558, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

559:                                              ; preds = %547, %540
  br label %355

560:                                              ; preds = %187
  %561 = load ptr, ptr %4, align 8, !tbaa !5
  %562 = getelementptr inbounds i8, ptr %561, i64 1
  %563 = load ptr, ptr %3, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.stb_lexer, ptr %563, i32 0, i32 1
  %565 = load ptr, ptr %564, align 8, !tbaa !14
  %566 = icmp ne ptr %562, %565
  br i1 %566, label %567, label %579

567:                                              ; preds = %560
  %568 = load ptr, ptr %4, align 8, !tbaa !5
  %569 = getelementptr inbounds i8, ptr %568, i64 1
  %570 = load i8, ptr %569, align 1, !tbaa !15
  %571 = sext i8 %570 to i32
  %572 = icmp eq i32 %571, 61
  br i1 %572, label %573, label %579

573:                                              ; preds = %567
  %574 = load ptr, ptr %3, align 8, !tbaa !5
  %575 = load ptr, ptr %4, align 8, !tbaa !5
  %576 = load ptr, ptr %4, align 8, !tbaa !5
  %577 = getelementptr inbounds i8, ptr %576, i64 1
  %578 = call i32 @stb__clex_token(ptr noundef %574, i32 noundef 281, ptr noundef %575, ptr noundef %577)
  store i32 %578, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

579:                                              ; preds = %567, %560
  br label %355

580:                                              ; preds = %187
  %581 = load ptr, ptr %4, align 8, !tbaa !5
  %582 = getelementptr inbounds i8, ptr %581, i64 1
  %583 = load ptr, ptr %3, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.stb_lexer, ptr %583, i32 0, i32 1
  %585 = load ptr, ptr %584, align 8, !tbaa !14
  %586 = icmp ne ptr %582, %585
  br i1 %586, label %587, label %599

587:                                              ; preds = %580
  %588 = load ptr, ptr %4, align 8, !tbaa !5
  %589 = getelementptr inbounds i8, ptr %588, i64 1
  %590 = load i8, ptr %589, align 1, !tbaa !15
  %591 = sext i8 %590 to i32
  %592 = icmp eq i32 %591, 61
  br i1 %592, label %593, label %599

593:                                              ; preds = %587
  %594 = load ptr, ptr %3, align 8, !tbaa !5
  %595 = load ptr, ptr %4, align 8, !tbaa !5
  %596 = load ptr, ptr %4, align 8, !tbaa !5
  %597 = getelementptr inbounds i8, ptr %596, i64 1
  %598 = call i32 @stb__clex_token(ptr noundef %594, i32 noundef 278, ptr noundef %595, ptr noundef %597)
  store i32 %598, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

599:                                              ; preds = %587, %580
  br label %355

600:                                              ; preds = %187
  %601 = load ptr, ptr %4, align 8, !tbaa !5
  %602 = getelementptr inbounds i8, ptr %601, i64 1
  %603 = load ptr, ptr %3, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.stb_lexer, ptr %603, i32 0, i32 1
  %605 = load ptr, ptr %604, align 8, !tbaa !14
  %606 = icmp ne ptr %602, %605
  br i1 %606, label %607, label %619

607:                                              ; preds = %600
  %608 = load ptr, ptr %4, align 8, !tbaa !5
  %609 = getelementptr inbounds i8, ptr %608, i64 1
  %610 = load i8, ptr %609, align 1, !tbaa !15
  %611 = sext i8 %610 to i32
  %612 = icmp eq i32 %611, 61
  br i1 %612, label %613, label %619

613:                                              ; preds = %607
  %614 = load ptr, ptr %3, align 8, !tbaa !5
  %615 = load ptr, ptr %4, align 8, !tbaa !5
  %616 = load ptr, ptr %4, align 8, !tbaa !5
  %617 = getelementptr inbounds i8, ptr %616, i64 1
  %618 = call i32 @stb__clex_token(ptr noundef %614, i32 noundef 276, ptr noundef %615, ptr noundef %617)
  store i32 %618, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

619:                                              ; preds = %607, %600
  br label %355

620:                                              ; preds = %187
  %621 = load ptr, ptr %4, align 8, !tbaa !5
  %622 = getelementptr inbounds i8, ptr %621, i64 1
  %623 = load ptr, ptr %3, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.stb_lexer, ptr %623, i32 0, i32 1
  %625 = load ptr, ptr %624, align 8, !tbaa !14
  %626 = icmp ne ptr %622, %625
  br i1 %626, label %627, label %639

627:                                              ; preds = %620
  %628 = load ptr, ptr %4, align 8, !tbaa !5
  %629 = getelementptr inbounds i8, ptr %628, i64 1
  %630 = load i8, ptr %629, align 1, !tbaa !15
  %631 = sext i8 %630 to i32
  %632 = icmp eq i32 %631, 61
  br i1 %632, label %633, label %639

633:                                              ; preds = %627
  %634 = load ptr, ptr %3, align 8, !tbaa !5
  %635 = load ptr, ptr %4, align 8, !tbaa !5
  %636 = load ptr, ptr %4, align 8, !tbaa !5
  %637 = getelementptr inbounds i8, ptr %636, i64 1
  %638 = call i32 @stb__clex_token(ptr noundef %634, i32 noundef 277, ptr noundef %635, ptr noundef %637)
  store i32 %638, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

639:                                              ; preds = %627, %620
  br label %355

640:                                              ; preds = %187
  %641 = load ptr, ptr %4, align 8, !tbaa !5
  %642 = getelementptr inbounds i8, ptr %641, i64 1
  %643 = load ptr, ptr %3, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.stb_lexer, ptr %643, i32 0, i32 1
  %645 = load ptr, ptr %644, align 8, !tbaa !14
  %646 = icmp ne ptr %642, %645
  br i1 %646, label %647, label %691

647:                                              ; preds = %640
  %648 = load ptr, ptr %4, align 8, !tbaa !5
  %649 = getelementptr inbounds i8, ptr %648, i64 1
  %650 = load i8, ptr %649, align 1, !tbaa !15
  %651 = sext i8 %650 to i32
  %652 = icmp eq i32 %651, 61
  br i1 %652, label %653, label %659

653:                                              ; preds = %647
  %654 = load ptr, ptr %3, align 8, !tbaa !5
  %655 = load ptr, ptr %4, align 8, !tbaa !5
  %656 = load ptr, ptr %4, align 8, !tbaa !5
  %657 = getelementptr inbounds i8, ptr %656, i64 1
  %658 = call i32 @stb__clex_token(ptr noundef %654, i32 noundef 266, ptr noundef %655, ptr noundef %657)
  store i32 %658, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

659:                                              ; preds = %647
  %660 = load ptr, ptr %4, align 8, !tbaa !5
  %661 = getelementptr inbounds i8, ptr %660, i64 1
  %662 = load i8, ptr %661, align 1, !tbaa !15
  %663 = sext i8 %662 to i32
  %664 = icmp eq i32 %663, 60
  br i1 %664, label %665, label %690

665:                                              ; preds = %659
  %666 = load ptr, ptr %4, align 8, !tbaa !5
  %667 = getelementptr inbounds i8, ptr %666, i64 2
  %668 = load ptr, ptr %3, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.stb_lexer, ptr %668, i32 0, i32 1
  %670 = load ptr, ptr %669, align 8, !tbaa !14
  %671 = icmp ne ptr %667, %670
  br i1 %671, label %672, label %684

672:                                              ; preds = %665
  %673 = load ptr, ptr %4, align 8, !tbaa !5
  %674 = getelementptr inbounds i8, ptr %673, i64 2
  %675 = load i8, ptr %674, align 1, !tbaa !15
  %676 = sext i8 %675 to i32
  %677 = icmp eq i32 %676, 61
  br i1 %677, label %678, label %684

678:                                              ; preds = %672
  %679 = load ptr, ptr %3, align 8, !tbaa !5
  %680 = load ptr, ptr %4, align 8, !tbaa !5
  %681 = load ptr, ptr %4, align 8, !tbaa !5
  %682 = getelementptr inbounds i8, ptr %681, i64 2
  %683 = call i32 @stb__clex_token(ptr noundef %679, i32 noundef 284, ptr noundef %680, ptr noundef %682)
  store i32 %683, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

684:                                              ; preds = %672, %665
  %685 = load ptr, ptr %3, align 8, !tbaa !5
  %686 = load ptr, ptr %4, align 8, !tbaa !5
  %687 = load ptr, ptr %4, align 8, !tbaa !5
  %688 = getelementptr inbounds i8, ptr %687, i64 1
  %689 = call i32 @stb__clex_token(ptr noundef %685, i32 noundef 270, ptr noundef %686, ptr noundef %688)
  store i32 %689, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

690:                                              ; preds = %659
  br label %691

691:                                              ; preds = %690, %640
  br label %355

692:                                              ; preds = %187
  %693 = load ptr, ptr %4, align 8, !tbaa !5
  %694 = getelementptr inbounds i8, ptr %693, i64 1
  %695 = load ptr, ptr %3, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.stb_lexer, ptr %695, i32 0, i32 1
  %697 = load ptr, ptr %696, align 8, !tbaa !14
  %698 = icmp ne ptr %694, %697
  br i1 %698, label %699, label %743

699:                                              ; preds = %692
  %700 = load ptr, ptr %4, align 8, !tbaa !5
  %701 = getelementptr inbounds i8, ptr %700, i64 1
  %702 = load i8, ptr %701, align 1, !tbaa !15
  %703 = sext i8 %702 to i32
  %704 = icmp eq i32 %703, 61
  br i1 %704, label %705, label %711

705:                                              ; preds = %699
  %706 = load ptr, ptr %3, align 8, !tbaa !5
  %707 = load ptr, ptr %4, align 8, !tbaa !5
  %708 = load ptr, ptr %4, align 8, !tbaa !5
  %709 = getelementptr inbounds i8, ptr %708, i64 1
  %710 = call i32 @stb__clex_token(ptr noundef %706, i32 noundef 267, ptr noundef %707, ptr noundef %709)
  store i32 %710, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

711:                                              ; preds = %699
  %712 = load ptr, ptr %4, align 8, !tbaa !5
  %713 = getelementptr inbounds i8, ptr %712, i64 1
  %714 = load i8, ptr %713, align 1, !tbaa !15
  %715 = sext i8 %714 to i32
  %716 = icmp eq i32 %715, 62
  br i1 %716, label %717, label %742

717:                                              ; preds = %711
  %718 = load ptr, ptr %4, align 8, !tbaa !5
  %719 = getelementptr inbounds i8, ptr %718, i64 2
  %720 = load ptr, ptr %3, align 8, !tbaa !5
  %721 = getelementptr inbounds %struct.stb_lexer, ptr %720, i32 0, i32 1
  %722 = load ptr, ptr %721, align 8, !tbaa !14
  %723 = icmp ne ptr %719, %722
  br i1 %723, label %724, label %736

724:                                              ; preds = %717
  %725 = load ptr, ptr %4, align 8, !tbaa !5
  %726 = getelementptr inbounds i8, ptr %725, i64 2
  %727 = load i8, ptr %726, align 1, !tbaa !15
  %728 = sext i8 %727 to i32
  %729 = icmp eq i32 %728, 61
  br i1 %729, label %730, label %736

730:                                              ; preds = %724
  %731 = load ptr, ptr %3, align 8, !tbaa !5
  %732 = load ptr, ptr %4, align 8, !tbaa !5
  %733 = load ptr, ptr %4, align 8, !tbaa !5
  %734 = getelementptr inbounds i8, ptr %733, i64 2
  %735 = call i32 @stb__clex_token(ptr noundef %731, i32 noundef 285, ptr noundef %732, ptr noundef %734)
  store i32 %735, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

736:                                              ; preds = %724, %717
  %737 = load ptr, ptr %3, align 8, !tbaa !5
  %738 = load ptr, ptr %4, align 8, !tbaa !5
  %739 = load ptr, ptr %4, align 8, !tbaa !5
  %740 = getelementptr inbounds i8, ptr %739, i64 1
  %741 = call i32 @stb__clex_token(ptr noundef %737, i32 noundef 271, ptr noundef %738, ptr noundef %740)
  store i32 %741, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

742:                                              ; preds = %711
  br label %743

743:                                              ; preds = %742, %692
  br label %355

744:                                              ; preds = %187
  %745 = load ptr, ptr %3, align 8, !tbaa !5
  %746 = load ptr, ptr %4, align 8, !tbaa !5
  %747 = call i32 @stb__clex_parse_string(ptr noundef %745, ptr noundef %746, i32 noundef 261)
  store i32 %747, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

748:                                              ; preds = %187
  %749 = load ptr, ptr %3, align 8, !tbaa !5
  %750 = load ptr, ptr %4, align 8, !tbaa !5
  %751 = call i32 @stb__clex_parse_string(ptr noundef %749, ptr noundef %750, i32 noundef 262)
  store i32 %751, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1123

752:                                              ; preds = %187
  %753 = load ptr, ptr %4, align 8, !tbaa !5
  %754 = getelementptr inbounds i8, ptr %753, i64 1
  %755 = load ptr, ptr %3, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.stb_lexer, ptr %755, i32 0, i32 1
  %757 = load ptr, ptr %756, align 8, !tbaa !14
  %758 = icmp ne ptr %754, %757
  br i1 %758, label %759, label %957

759:                                              ; preds = %752
  %760 = load ptr, ptr %4, align 8, !tbaa !5
  %761 = getelementptr inbounds i8, ptr %760, i64 1
  %762 = load i8, ptr %761, align 1, !tbaa !15
  %763 = sext i8 %762 to i32
  %764 = icmp eq i32 %763, 120
  br i1 %764, label %771, label %765

765:                                              ; preds = %759
  %766 = load ptr, ptr %4, align 8, !tbaa !5
  %767 = getelementptr inbounds i8, ptr %766, i64 1
  %768 = load i8, ptr %767, align 1, !tbaa !15
  %769 = sext i8 %768 to i32
  %770 = icmp eq i32 %769, 88
  br i1 %770, label %771, label %956

771:                                              ; preds = %765, %759
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #2
  %772 = load ptr, ptr %4, align 8, !tbaa !5
  %773 = getelementptr inbounds i8, ptr %772, i64 2
  store ptr %773, ptr %9, align 8, !tbaa !5
  br label %774

774:                                              ; preds = %817, %771
  %775 = load ptr, ptr %9, align 8, !tbaa !5
  %776 = load ptr, ptr %3, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.stb_lexer, ptr %776, i32 0, i32 1
  %778 = load ptr, ptr %777, align 8, !tbaa !14
  %779 = icmp ne ptr %775, %778
  br i1 %779, label %780, label %814

780:                                              ; preds = %774
  %781 = load ptr, ptr %9, align 8, !tbaa !5
  %782 = load i8, ptr %781, align 1, !tbaa !15
  %783 = sext i8 %782 to i32
  %784 = icmp sge i32 %783, 48
  br i1 %784, label %785, label %790

785:                                              ; preds = %780
  %786 = load ptr, ptr %9, align 8, !tbaa !5
  %787 = load i8, ptr %786, align 1, !tbaa !15
  %788 = sext i8 %787 to i32
  %789 = icmp sle i32 %788, 57
  br i1 %789, label %812, label %790

790:                                              ; preds = %785, %780
  %791 = load ptr, ptr %9, align 8, !tbaa !5
  %792 = load i8, ptr %791, align 1, !tbaa !15
  %793 = sext i8 %792 to i32
  %794 = icmp sge i32 %793, 97
  br i1 %794, label %795, label %800

795:                                              ; preds = %790
  %796 = load ptr, ptr %9, align 8, !tbaa !5
  %797 = load i8, ptr %796, align 1, !tbaa !15
  %798 = sext i8 %797 to i32
  %799 = icmp sle i32 %798, 102
  br i1 %799, label %812, label %800

800:                                              ; preds = %795, %790
  %801 = load ptr, ptr %9, align 8, !tbaa !5
  %802 = load i8, ptr %801, align 1, !tbaa !15
  %803 = sext i8 %802 to i32
  %804 = icmp sge i32 %803, 65
  br i1 %804, label %805, label %810

805:                                              ; preds = %800
  %806 = load ptr, ptr %9, align 8, !tbaa !5
  %807 = load i8, ptr %806, align 1, !tbaa !15
  %808 = sext i8 %807 to i32
  %809 = icmp sle i32 %808, 70
  br label %810

810:                                              ; preds = %805, %800
  %811 = phi i1 [ false, %800 ], [ %809, %805 ]
  br label %812

812:                                              ; preds = %810, %795, %785
  %813 = phi i1 [ true, %795 ], [ true, %785 ], [ %811, %810 ]
  br label %814

814:                                              ; preds = %812, %774
  %815 = phi i1 [ false, %774 ], [ %813, %812 ]
  br i1 %815, label %816, label %820

816:                                              ; preds = %814
  br label %817

817:                                              ; preds = %816
  %818 = load ptr, ptr %9, align 8, !tbaa !5
  %819 = getelementptr inbounds i8, ptr %818, i32 1
  store ptr %819, ptr %9, align 8, !tbaa !5
  br label %774, !llvm.loop !27

820:                                              ; preds = %814
  %821 = load ptr, ptr %9, align 8, !tbaa !5
  %822 = load ptr, ptr %3, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.stb_lexer, ptr %822, i32 0, i32 1
  %824 = load ptr, ptr %823, align 8, !tbaa !14
  %825 = icmp ne ptr %821, %824
  br i1 %825, label %826, label %860

826:                                              ; preds = %820
  %827 = load ptr, ptr %9, align 8, !tbaa !5
  %828 = load i8, ptr %827, align 1, !tbaa !15
  %829 = sext i8 %828 to i32
  %830 = icmp eq i32 %829, 46
  br i1 %830, label %841, label %831

831:                                              ; preds = %826
  %832 = load ptr, ptr %9, align 8, !tbaa !5
  %833 = load i8, ptr %832, align 1, !tbaa !15
  %834 = sext i8 %833 to i32
  %835 = icmp eq i32 %834, 112
  br i1 %835, label %841, label %836

836:                                              ; preds = %831
  %837 = load ptr, ptr %9, align 8, !tbaa !5
  %838 = load i8, ptr %837, align 1, !tbaa !15
  %839 = sext i8 %838 to i32
  %840 = icmp eq i32 %839, 80
  br i1 %840, label %841, label %859

841:                                              ; preds = %836, %831, %826
  %842 = load ptr, ptr %4, align 8, !tbaa !5
  %843 = call double @stb__clex_parse_float(ptr noundef %842, ptr noundef %9)
  %844 = load ptr, ptr %3, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.stb_lexer, ptr %844, i32 0, i32 8
  store double %843, ptr %845, align 8, !tbaa !28
  %846 = load ptr, ptr %4, align 8, !tbaa !5
  %847 = load ptr, ptr %9, align 8, !tbaa !5
  %848 = icmp eq ptr %846, %847
  br i1 %848, label %849, label %854

849:                                              ; preds = %841
  %850 = load ptr, ptr %3, align 8, !tbaa !5
  %851 = load ptr, ptr %4, align 8, !tbaa !5
  %852 = load ptr, ptr %9, align 8, !tbaa !5
  %853 = call i32 @stb__clex_token(ptr noundef %850, i32 noundef 257, ptr noundef %851, ptr noundef %852)
  store i32 %853, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %955

854:                                              ; preds = %841
  %855 = load ptr, ptr %3, align 8, !tbaa !5
  %856 = load ptr, ptr %4, align 8, !tbaa !5
  %857 = load ptr, ptr %9, align 8, !tbaa !5
  %858 = call i32 @stb__clex_parse_suffixes(ptr noundef %855, i64 noundef 259, ptr noundef %856, ptr noundef %857, ptr noundef @.str)
  store i32 %858, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %955

859:                                              ; preds = %836
  br label %860

860:                                              ; preds = %859, %820
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #2
  store i64 0, ptr %10, align 8, !tbaa !29
  %861 = load ptr, ptr %4, align 8, !tbaa !5
  %862 = getelementptr inbounds i8, ptr %861, i64 2
  store ptr %862, ptr %9, align 8, !tbaa !5
  br label %863

863:                                              ; preds = %932, %860
  %864 = load ptr, ptr %9, align 8, !tbaa !5
  %865 = load ptr, ptr %3, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.stb_lexer, ptr %865, i32 0, i32 1
  %867 = load ptr, ptr %866, align 8, !tbaa !14
  %868 = icmp ne ptr %864, %867
  br i1 %868, label %869, label %935

869:                                              ; preds = %863
  %870 = load ptr, ptr %9, align 8, !tbaa !5
  %871 = load i8, ptr %870, align 1, !tbaa !15
  %872 = sext i8 %871 to i32
  %873 = icmp sge i32 %872, 48
  br i1 %873, label %874, label %888

874:                                              ; preds = %869
  %875 = load ptr, ptr %9, align 8, !tbaa !5
  %876 = load i8, ptr %875, align 1, !tbaa !15
  %877 = sext i8 %876 to i32
  %878 = icmp sle i32 %877, 57
  br i1 %878, label %879, label %888

879:                                              ; preds = %874
  %880 = load i64, ptr %10, align 8, !tbaa !29
  %881 = mul nsw i64 %880, 16
  %882 = load ptr, ptr %9, align 8, !tbaa !5
  %883 = load i8, ptr %882, align 1, !tbaa !15
  %884 = sext i8 %883 to i32
  %885 = sub nsw i32 %884, 48
  %886 = sext i32 %885 to i64
  %887 = add nsw i64 %881, %886
  store i64 %887, ptr %10, align 8, !tbaa !29
  br label %931

888:                                              ; preds = %874, %869
  %889 = load ptr, ptr %9, align 8, !tbaa !5
  %890 = load i8, ptr %889, align 1, !tbaa !15
  %891 = sext i8 %890 to i32
  %892 = icmp sge i32 %891, 97
  br i1 %892, label %893, label %908

893:                                              ; preds = %888
  %894 = load ptr, ptr %9, align 8, !tbaa !5
  %895 = load i8, ptr %894, align 1, !tbaa !15
  %896 = sext i8 %895 to i32
  %897 = icmp sle i32 %896, 102
  br i1 %897, label %898, label %908

898:                                              ; preds = %893
  %899 = load i64, ptr %10, align 8, !tbaa !29
  %900 = mul nsw i64 %899, 16
  %901 = load ptr, ptr %9, align 8, !tbaa !5
  %902 = load i8, ptr %901, align 1, !tbaa !15
  %903 = sext i8 %902 to i32
  %904 = sub nsw i32 %903, 97
  %905 = sext i32 %904 to i64
  %906 = add nsw i64 %900, %905
  %907 = add nsw i64 %906, 10
  store i64 %907, ptr %10, align 8, !tbaa !29
  br label %930

908:                                              ; preds = %893, %888
  %909 = load ptr, ptr %9, align 8, !tbaa !5
  %910 = load i8, ptr %909, align 1, !tbaa !15
  %911 = sext i8 %910 to i32
  %912 = icmp sge i32 %911, 65
  br i1 %912, label %913, label %928

913:                                              ; preds = %908
  %914 = load ptr, ptr %9, align 8, !tbaa !5
  %915 = load i8, ptr %914, align 1, !tbaa !15
  %916 = sext i8 %915 to i32
  %917 = icmp sle i32 %916, 70
  br i1 %917, label %918, label %928

918:                                              ; preds = %913
  %919 = load i64, ptr %10, align 8, !tbaa !29
  %920 = mul nsw i64 %919, 16
  %921 = load ptr, ptr %9, align 8, !tbaa !5
  %922 = load i8, ptr %921, align 1, !tbaa !15
  %923 = sext i8 %922 to i32
  %924 = sub nsw i32 %923, 65
  %925 = sext i32 %924 to i64
  %926 = add nsw i64 %920, %925
  %927 = add nsw i64 %926, 10
  store i64 %927, ptr %10, align 8, !tbaa !29
  br label %929

928:                                              ; preds = %913, %908
  br label %935

929:                                              ; preds = %918
  br label %930

930:                                              ; preds = %929, %898
  br label %931

931:                                              ; preds = %930, %879
  br label %932

932:                                              ; preds = %931
  %933 = load ptr, ptr %9, align 8, !tbaa !5
  %934 = getelementptr inbounds i8, ptr %933, i32 1
  store ptr %934, ptr %9, align 8, !tbaa !5
  br label %863, !llvm.loop !30

935:                                              ; preds = %928, %863
  %936 = load i64, ptr %10, align 8, !tbaa !29
  %937 = load ptr, ptr %3, align 8, !tbaa !5
  %938 = getelementptr inbounds %struct.stb_lexer, ptr %937, i32 0, i32 9
  store i64 %936, ptr %938, align 8, !tbaa !31
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #2
  %939 = load ptr, ptr %9, align 8, !tbaa !5
  %940 = load ptr, ptr %4, align 8, !tbaa !5
  %941 = getelementptr inbounds i8, ptr %940, i64 2
  %942 = icmp eq ptr %939, %941
  br i1 %942, label %943, label %950

943:                                              ; preds = %935
  %944 = load ptr, ptr %3, align 8, !tbaa !5
  %945 = load ptr, ptr %4, align 8, !tbaa !5
  %946 = getelementptr inbounds i8, ptr %945, i64 -2
  %947 = load ptr, ptr %4, align 8, !tbaa !5
  %948 = getelementptr inbounds i8, ptr %947, i64 -1
  %949 = call i32 @stb__clex_token(ptr noundef %944, i32 noundef 257, ptr noundef %946, ptr noundef %948)
  store i32 %949, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %955

950:                                              ; preds = %935
  %951 = load ptr, ptr %3, align 8, !tbaa !5
  %952 = load ptr, ptr %4, align 8, !tbaa !5
  %953 = load ptr, ptr %9, align 8, !tbaa !5
  %954 = call i32 @stb__clex_parse_suffixes(ptr noundef %951, i64 noundef 258, ptr noundef %952, ptr noundef %953, ptr noundef @.str.1)
  store i32 %954, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %955

955:                                              ; preds = %950, %943, %854, %849
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #2
  br label %1123

956:                                              ; preds = %765
  br label %957

957:                                              ; preds = %956, %752
  br label %958

958:                                              ; preds = %957, %187, %187, %187, %187, %187, %187, %187, %187, %187
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #2
  %959 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %959, ptr %11, align 8, !tbaa !5
  br label %960

960:                                              ; preds = %980, %958
  %961 = load ptr, ptr %11, align 8, !tbaa !5
  %962 = load ptr, ptr %3, align 8, !tbaa !5
  %963 = getelementptr inbounds %struct.stb_lexer, ptr %962, i32 0, i32 1
  %964 = load ptr, ptr %963, align 8, !tbaa !14
  %965 = icmp ne ptr %961, %964
  br i1 %965, label %966, label %978

966:                                              ; preds = %960
  %967 = load ptr, ptr %11, align 8, !tbaa !5
  %968 = load i8, ptr %967, align 1, !tbaa !15
  %969 = sext i8 %968 to i32
  %970 = icmp sge i32 %969, 48
  br i1 %970, label %971, label %976

971:                                              ; preds = %966
  %972 = load ptr, ptr %11, align 8, !tbaa !5
  %973 = load i8, ptr %972, align 1, !tbaa !15
  %974 = sext i8 %973 to i32
  %975 = icmp sle i32 %974, 57
  br label %976

976:                                              ; preds = %971, %966
  %977 = phi i1 [ false, %966 ], [ %975, %971 ]
  br label %978

978:                                              ; preds = %976, %960
  %979 = phi i1 [ false, %960 ], [ %977, %976 ]
  br i1 %979, label %980, label %983

980:                                              ; preds = %978
  %981 = load ptr, ptr %11, align 8, !tbaa !5
  %982 = getelementptr inbounds i8, ptr %981, i32 1
  store ptr %982, ptr %11, align 8, !tbaa !5
  br label %960, !llvm.loop !32

983:                                              ; preds = %978
  %984 = load ptr, ptr %11, align 8, !tbaa !5
  %985 = load ptr, ptr %3, align 8, !tbaa !5
  %986 = getelementptr inbounds %struct.stb_lexer, ptr %985, i32 0, i32 1
  %987 = load ptr, ptr %986, align 8, !tbaa !14
  %988 = icmp ne ptr %984, %987
  br i1 %988, label %989, label %1014

989:                                              ; preds = %983
  %990 = load ptr, ptr %11, align 8, !tbaa !5
  %991 = load i8, ptr %990, align 1, !tbaa !15
  %992 = sext i8 %991 to i32
  %993 = icmp eq i32 %992, 46
  br i1 %993, label %1004, label %994

994:                                              ; preds = %989
  %995 = load ptr, ptr %11, align 8, !tbaa !5
  %996 = load i8, ptr %995, align 1, !tbaa !15
  %997 = sext i8 %996 to i32
  %998 = icmp eq i32 %997, 101
  br i1 %998, label %1004, label %999

999:                                              ; preds = %994
  %1000 = load ptr, ptr %11, align 8, !tbaa !5
  %1001 = load i8, ptr %1000, align 1, !tbaa !15
  %1002 = sext i8 %1001 to i32
  %1003 = icmp eq i32 %1002, 69
  br i1 %1003, label %1004, label %1013

1004:                                             ; preds = %999, %994, %989
  %1005 = load ptr, ptr %4, align 8, !tbaa !5
  %1006 = call double @stb__clex_parse_float(ptr noundef %1005, ptr noundef %11)
  %1007 = load ptr, ptr %3, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.stb_lexer, ptr %1007, i32 0, i32 8
  store double %1006, ptr %1008, align 8, !tbaa !28
  %1009 = load ptr, ptr %3, align 8, !tbaa !5
  %1010 = load ptr, ptr %4, align 8, !tbaa !5
  %1011 = load ptr, ptr %11, align 8, !tbaa !5
  %1012 = call i32 @stb__clex_parse_suffixes(ptr noundef %1009, i64 noundef 259, ptr noundef %1010, ptr noundef %1011, ptr noundef @.str)
  store i32 %1012, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1015

1013:                                             ; preds = %999
  br label %1014

1014:                                             ; preds = %1013, %983
  store i32 0, ptr %6, align 4
  br label %1015

1015:                                             ; preds = %1014, %1004
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #2
  %1016 = load i32, ptr %6, align 4
  switch i32 %1016, label %1123 [
    i32 0, label %1017
  ]

1017:                                             ; preds = %1015
  %1018 = load ptr, ptr %4, align 8, !tbaa !5
  %1019 = getelementptr inbounds i8, ptr %1018, i64 0
  %1020 = load i8, ptr %1019, align 1, !tbaa !15
  %1021 = sext i8 %1020 to i32
  %1022 = icmp eq i32 %1021, 48
  br i1 %1022, label %1023, label %1084

1023:                                             ; preds = %1017
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #2
  %1024 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %1024, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #2
  store i64 0, ptr %13, align 8, !tbaa !29
  br label %1025

1025:                                             ; preds = %1051, %1023
  %1026 = load ptr, ptr %12, align 8, !tbaa !5
  %1027 = load ptr, ptr %3, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.stb_lexer, ptr %1027, i32 0, i32 1
  %1029 = load ptr, ptr %1028, align 8, !tbaa !14
  %1030 = icmp ne ptr %1026, %1029
  br i1 %1030, label %1031, label %1054

1031:                                             ; preds = %1025
  %1032 = load ptr, ptr %12, align 8, !tbaa !5
  %1033 = load i8, ptr %1032, align 1, !tbaa !15
  %1034 = sext i8 %1033 to i32
  %1035 = icmp sge i32 %1034, 48
  br i1 %1035, label %1036, label %1050

1036:                                             ; preds = %1031
  %1037 = load ptr, ptr %12, align 8, !tbaa !5
  %1038 = load i8, ptr %1037, align 1, !tbaa !15
  %1039 = sext i8 %1038 to i32
  %1040 = icmp sle i32 %1039, 55
  br i1 %1040, label %1041, label %1050

1041:                                             ; preds = %1036
  %1042 = load i64, ptr %13, align 8, !tbaa !29
  %1043 = mul nsw i64 %1042, 8
  %1044 = load ptr, ptr %12, align 8, !tbaa !5
  %1045 = load i8, ptr %1044, align 1, !tbaa !15
  %1046 = sext i8 %1045 to i32
  %1047 = sub nsw i32 %1046, 48
  %1048 = sext i32 %1047 to i64
  %1049 = add nsw i64 %1043, %1048
  store i64 %1049, ptr %13, align 8, !tbaa !29
  br label %1051

1050:                                             ; preds = %1036, %1031
  br label %1054

1051:                                             ; preds = %1041
  %1052 = load ptr, ptr %12, align 8, !tbaa !5
  %1053 = getelementptr inbounds i8, ptr %1052, i32 1
  store ptr %1053, ptr %12, align 8, !tbaa !5
  br label %1025, !llvm.loop !33

1054:                                             ; preds = %1050, %1025
  %1055 = load ptr, ptr %12, align 8, !tbaa !5
  %1056 = load ptr, ptr %3, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.stb_lexer, ptr %1056, i32 0, i32 1
  %1058 = load ptr, ptr %1057, align 8, !tbaa !14
  %1059 = icmp ne ptr %1055, %1058
  br i1 %1059, label %1060, label %1075

1060:                                             ; preds = %1054
  %1061 = load ptr, ptr %12, align 8, !tbaa !5
  %1062 = load i8, ptr %1061, align 1, !tbaa !15
  %1063 = sext i8 %1062 to i32
  %1064 = icmp eq i32 %1063, 56
  br i1 %1064, label %1070, label %1065

1065:                                             ; preds = %1060
  %1066 = load ptr, ptr %12, align 8, !tbaa !5
  %1067 = load i8, ptr %1066, align 1, !tbaa !15
  %1068 = sext i8 %1067 to i32
  %1069 = icmp eq i32 %1068, 57
  br i1 %1069, label %1070, label %1075

1070:                                             ; preds = %1065, %1060
  %1071 = load ptr, ptr %3, align 8, !tbaa !5
  %1072 = load ptr, ptr %4, align 8, !tbaa !5
  %1073 = load ptr, ptr %12, align 8, !tbaa !5
  %1074 = call i32 @stb__clex_token(ptr noundef %1071, i32 noundef 257, ptr noundef %1072, ptr noundef %1073)
  store i32 %1074, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1083

1075:                                             ; preds = %1065, %1054
  %1076 = load i64, ptr %13, align 8, !tbaa !29
  %1077 = load ptr, ptr %3, align 8, !tbaa !5
  %1078 = getelementptr inbounds %struct.stb_lexer, ptr %1077, i32 0, i32 9
  store i64 %1076, ptr %1078, align 8, !tbaa !31
  %1079 = load ptr, ptr %3, align 8, !tbaa !5
  %1080 = load ptr, ptr %4, align 8, !tbaa !5
  %1081 = load ptr, ptr %12, align 8, !tbaa !5
  %1082 = call i32 @stb__clex_parse_suffixes(ptr noundef %1079, i64 noundef 258, ptr noundef %1080, ptr noundef %1081, ptr noundef @.str.1)
  store i32 %1082, ptr %2, align 4
  store i32 1, ptr %6, align 4
  br label %1083

1083:                                             ; preds = %1075, %1070
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #2
  br label %1123

1084:                                             ; preds = %1017
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #2
  %1085 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %1085, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #2
  store i64 0, ptr %15, align 8, !tbaa !29
  br label %1086

1086:                                             ; preds = %1112, %1084
  %1087 = load ptr, ptr %14, align 8, !tbaa !5
  %1088 = load ptr, ptr %3, align 8, !tbaa !5
  %1089 = getelementptr inbounds %struct.stb_lexer, ptr %1088, i32 0, i32 1
  %1090 = load ptr, ptr %1089, align 8, !tbaa !14
  %1091 = icmp ne ptr %1087, %1090
  br i1 %1091, label %1092, label %1115

1092:                                             ; preds = %1086
  %1093 = load ptr, ptr %14, align 8, !tbaa !5
  %1094 = load i8, ptr %1093, align 1, !tbaa !15
  %1095 = sext i8 %1094 to i32
  %1096 = icmp sge i32 %1095, 48
  br i1 %1096, label %1097, label %1111

1097:                                             ; preds = %1092
  %1098 = load ptr, ptr %14, align 8, !tbaa !5
  %1099 = load i8, ptr %1098, align 1, !tbaa !15
  %1100 = sext i8 %1099 to i32
  %1101 = icmp sle i32 %1100, 57
  br i1 %1101, label %1102, label %1111

1102:                                             ; preds = %1097
  %1103 = load i64, ptr %15, align 8, !tbaa !29
  %1104 = mul nsw i64 %1103, 10
  %1105 = load ptr, ptr %14, align 8, !tbaa !5
  %1106 = load i8, ptr %1105, align 1, !tbaa !15
  %1107 = sext i8 %1106 to i32
  %1108 = sub nsw i32 %1107, 48
  %1109 = sext i32 %1108 to i64
  %1110 = add nsw i64 %1104, %1109
  store i64 %1110, ptr %15, align 8, !tbaa !29
  br label %1112

1111:                                             ; preds = %1097, %1092
  br label %1115

1112:                                             ; preds = %1102
  %1113 = load ptr, ptr %14, align 8, !tbaa !5
  %1114 = getelementptr inbounds i8, ptr %1113, i32 1
  store ptr %1114, ptr %14, align 8, !tbaa !5
  br label %1086, !llvm.loop !34

1115:                                             ; preds = %1111, %1086
  %1116 = load i64, ptr %15, align 8, !tbaa !29
  %1117 = load ptr, ptr %3, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.stb_lexer, ptr %1117, i32 0, i32 9
  store i64 %1116, ptr %1118, align 8, !tbaa !31
  %1119 = load ptr, ptr %3, align 8, !tbaa !5
  %1120 = load ptr, ptr %4, align 8, !tbaa !5
  %1121 = load ptr, ptr %14, align 8, !tbaa !5
  %1122 = call i32 @stb__clex_parse_suffixes(ptr noundef %1119, i64 noundef 258, ptr noundef %1120, ptr noundef %1121, ptr noundef @.str.1)
  store i32 %1122, ptr %2, align 4
  store i32 1, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #2
  br label %1123

1123:                                             ; preds = %1115, %1083, %1015, %955, %748, %744, %736, %730, %705, %684, %678, %653, %633, %613, %593, %573, %553, %532, %520, %499, %487, %466, %454, %433, %421, %409, %388, %376, %355, %353, %184, %140
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #2
  %1124 = load i32, ptr %2, align 4
  ret i32 %1124
}

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_iswhite(i32 noundef) #1

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_token(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #1

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_eof(ptr noundef) #1

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_parse_string(ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: nounwind uwtable
declare hidden double @stb__clex_parse_float(ptr noundef, ptr noundef) #1

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_parse_suffixes(ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !6, i64 16}
!10 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !11, i64 32, !6, i64 40, !6, i64 48, !12, i64 56, !13, i64 64, !12, i64 72, !6, i64 80, !11, i64 88}
!11 = !{!"int", !7, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = !{!10, !6, i64 8}
!15 = !{!7, !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = !{!11, !11, i64 0}
!22 = !{!10, !6, i64 24}
!23 = !{!10, !6, i64 80}
!24 = !{!10, !11, i64 88}
!25 = !{!10, !11, i64 32}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = !{!10, !13, i64 64}
!29 = !{!12, !12, i64 0}
!30 = distinct !{!30, !17}
!31 = !{!10, !12, i64 72}
!32 = distinct !{!32, !17}
!33 = distinct !{!33, !17}
!34 = distinct !{!34, !17}


; 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 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
define dso_local i32 @stb_c_lexer_get_token(ptr noundef %0) local_unnamed_addr #1 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = getelementptr inbounds i8, ptr %0, i64 16
  %5 = load ptr, ptr %4, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %0, i64 8
  %.pre = load ptr, ptr %6, align 8, !tbaa !13
  br label %.backedge453

.backedge453:                                     ; preds = %.backedge453.backedge, %1
  %7 = phi ptr [ %.pre, %1 ], [ %13, %.backedge453.backedge ]
  %.0309 = phi ptr [ %5, %1 ], [ %.0309.be, %.backedge453.backedge ]
  %.not471 = icmp eq ptr %.0309, %7
  br i1 %.not471, label %.critedge, label %.lr.ph

.lr.ph:                                           ; preds = %.backedge453, %11
  %.1310472 = phi ptr [ %12, %11 ], [ %.0309, %.backedge453 ]
  %8 = load i8, ptr %.1310472, align 1, !tbaa !14
  %9 = sext i8 %8 to i32
  %10 = tail call i32 @stb__clex_iswhite(i32 noundef %9)
  %.not369 = icmp eq i32 %10, 0
  %.pre584.pre = load ptr, ptr %6, align 8, !tbaa !13
  br i1 %.not369, label %.critedge, label %11

11:                                               ; preds = %.lr.ph
  %12 = getelementptr inbounds i8, ptr %.1310472, i64 1
  %.not = icmp eq ptr %12, %.pre584.pre
  br i1 %.not, label %.critedge, label %.lr.ph, !llvm.loop !15

.critedge:                                        ; preds = %.lr.ph, %11, %.backedge453
  %13 = phi ptr [ %7, %.backedge453 ], [ %.pre584.pre, %11 ], [ %.pre584.pre, %.lr.ph ]
  %.1310.lcssa = phi ptr [ %.0309, %.backedge453 ], [ %.1310472, %.lr.ph ], [ %12, %11 ]
  %.1310.lcssa569 = ptrtoint ptr %.1310.lcssa to i64
  %14 = ptrtoint ptr %13 to i64
  %.not370 = icmp eq ptr %.1310.lcssa, %13
  br i1 %.not370, label %42, label %15

15:                                               ; preds = %.critedge
  %16 = load i8, ptr %.1310.lcssa, align 1, !tbaa !14
  switch i8 %16, label %44 [
    i8 47, label %17
    i8 35, label %.lr.ph477.preheader
    i8 43, label %80
    i8 45, label %88
    i8 38, label %98
    i8 124, label %106
    i8 61, label %114
    i8 33, label %122
    i8 94, label %129
    i8 37, label %136
    i8 42, label %143
    i8 57, label %.lr.ph518.preheader
    i8 60, label %156
    i8 62, label %171
    i8 34, label %186
    i8 39, label %188
    i8 48, label %190
    i8 49, label %.lr.ph518.preheader
    i8 50, label %.lr.ph518.preheader
    i8 51, label %.lr.ph518.preheader
    i8 52, label %.lr.ph518.preheader
    i8 53, label %.lr.ph518.preheader
    i8 54, label %.lr.ph518.preheader
    i8 55, label %.lr.ph518.preheader
    i8 56, label %.lr.ph518.preheader
  ]

17:                                               ; preds = %15
  %18 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %19 = load i8, ptr %18, align 1, !tbaa !14
  switch i8 %19, label %.thread [
    i8 47, label %.lr.ph493.preheader
    i8 42, label %24
  ]

.lr.ph493.preheader:                              ; preds = %17
  %20 = sub i64 %14, %.1310.lcssa569
  %scevgep571 = getelementptr i8, ptr %.1310.lcssa, i64 %20
  br label %.lr.ph493

.lr.ph493:                                        ; preds = %.lr.ph493.preheader, %22
  %.2311492 = phi ptr [ %23, %22 ], [ %.1310.lcssa, %.lr.ph493.preheader ]
  %21 = load i8, ptr %.2311492, align 1, !tbaa !14
  switch i8 %21, label %22 [
    i8 13, label %.backedge453.backedge
    i8 10, label %.backedge453.backedge
  ]

22:                                               ; preds = %.lr.ph493
  %23 = getelementptr inbounds i8, ptr %.2311492, i64 1
  %.not410 = icmp eq ptr %23, %13
  br i1 %.not410, label %.backedge453.backedge, label %.lr.ph493, !llvm.loop !17

24:                                               ; preds = %17
  %25 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 2
  %.not406483 = icmp eq ptr %25, %13
  br i1 %.not406483, label %.thread430, label %.lr.ph485

.lr.ph485:                                        ; preds = %24, %.critedge7
  %.3312484 = phi ptr [ %30, %.critedge7 ], [ %25, %24 ]
  %26 = load i8, ptr %.3312484, align 1, !tbaa !14
  %.not407 = icmp eq i8 %26, 42
  br i1 %.not407, label %27, label %.critedge7

27:                                               ; preds = %.lr.ph485
  %28 = getelementptr inbounds i8, ptr %.3312484, i64 1
  %29 = load i8, ptr %28, align 1, !tbaa !14
  %.not408 = icmp eq i8 %29, 47
  br i1 %.not408, label %36, label %.critedge7

.critedge7:                                       ; preds = %.lr.ph485, %27
  %30 = getelementptr inbounds i8, ptr %.3312484, i64 1
  %.not406 = icmp eq ptr %30, %13
  br i1 %.not406, label %.thread430.loopexit, label %.lr.ph485, !llvm.loop !18

.thread430.loopexit:                              ; preds = %.critedge7
  %31 = sub i64 %14, %.1310.lcssa569
  br label %.thread430

.thread430:                                       ; preds = %24, %.thread430.loopexit
  %32 = phi i64 [ %31, %.thread430.loopexit ], [ 2, %24 ]
  %33 = getelementptr i8, ptr %.1310.lcssa, i64 %32
  %34 = getelementptr inbounds i8, ptr %33, i64 -1
  %35 = tail call i32 @stb__clex_token(ptr noundef %0, i32 noundef 257, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %34)
  br label %273

36:                                               ; preds = %27
  %37 = getelementptr inbounds i8, ptr %.3312484, i64 2
  br label %.backedge453.backedge

.backedge453.backedge:                            ; preds = %40, %.lr.ph477, %.lr.ph477, %22, %.lr.ph493, %.lr.ph493, %36
  %.0309.be = phi ptr [ %37, %36 ], [ %scevgep571, %22 ], [ %.2311492, %.lr.ph493 ], [ %.2311492, %.lr.ph493 ], [ %scevgep, %40 ], [ %.5314476, %.lr.ph477 ], [ %.5314476, %.lr.ph477 ]
  br label %.backedge453

.lr.ph477.preheader:                              ; preds = %15
  %38 = sub i64 %14, %.1310.lcssa569
  %scevgep = getelementptr i8, ptr %.1310.lcssa, i64 %38
  br label %.lr.ph477

.lr.ph477:                                        ; preds = %.lr.ph477.preheader, %40
  %.5314476 = phi ptr [ %41, %40 ], [ %.1310.lcssa, %.lr.ph477.preheader ]
  %39 = load i8, ptr %.5314476, align 1, !tbaa !14
  switch i8 %39, label %40 [
    i8 13, label %.backedge453.backedge
    i8 10, label %.backedge453.backedge
  ]

40:                                               ; preds = %.lr.ph477
  %41 = getelementptr inbounds i8, ptr %.5314476, i64 1
  %.not403 = icmp eq ptr %41, %13
  br i1 %.not403, label %.backedge453.backedge, label %.lr.ph477, !llvm.loop !19

42:                                               ; preds = %.critedge
  %43 = tail call i32 @stb__clex_eof(ptr noundef nonnull %0)
  br label %273

44:                                               ; preds = %15
  %45 = add i8 %16, -97
  %or.cond = icmp ult i8 %45, 26
  br i1 %or.cond, label %49, label %46

46:                                               ; preds = %44
  %47 = add i8 %16, -65
  %or.cond413 = icmp ult i8 %47, 26
  %48 = icmp slt i8 %16, 0
  %or.cond443 = or i1 %48, %or.cond413
  br i1 %or.cond443, label %49, label %switch.early.test

switch.early.test:                                ; preds = %46
  switch i8 %16, label %77 [
    i8 95, label %49
    i8 36, label %49
  ]

49:                                               ; preds = %switch.early.test, %switch.early.test, %46, %44
  %50 = getelementptr inbounds i8, ptr %0, i64 24
  %51 = load ptr, ptr %50, align 8, !tbaa !20
  %52 = getelementptr inbounds i8, ptr %0, i64 80
  store ptr %51, ptr %52, align 8, !tbaa !21
  %53 = getelementptr inbounds i8, ptr %0, i64 88
  store i32 0, ptr %53, align 8, !tbaa !22
  %54 = getelementptr inbounds i8, ptr %0, i64 32
  %55 = load i32, ptr %54, align 8, !tbaa !23
  %.not402536 = icmp sgt i32 %55, 1
  br i1 %.not402536, label %.lr.ph539, label %._crit_edge540

._crit_edge540.loopexit:                          ; preds = %.backedge
  %56 = and i64 %indvars.iv, 4294967295
  br label %._crit_edge540

._crit_edge540:                                   ; preds = %._crit_edge540.loopexit, %49
  %.0304.lcssa = phi i64 [ 0, %49 ], [ %56, %._crit_edge540.loopexit ]
  %57 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 %.0304.lcssa
  %58 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 257, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %57)
  br label %273

.lr.ph539:                                        ; preds = %49, %.backedge
  %indvars.iv579 = phi i64 [ %indvars.iv.next580, %.backedge ], [ 0, %49 ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %.backedge ], [ 1, %49 ]
  %59 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 %indvars.iv579
  %60 = load i8, ptr %59, align 1, !tbaa !14
  %61 = load ptr, ptr %52, align 8, !tbaa !21
  %62 = getelementptr inbounds i8, ptr %61, i64 %indvars.iv579
  store i8 %60, ptr %62, align 1, !tbaa !14
  %63 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 %indvars.iv
  %64 = load i8, ptr %63, align 1, !tbaa !14
  %.fr = freeze i8 %64
  %65 = and i8 %.fr, -33
  %66 = add i8 %65, -65
  %or.cond445 = icmp ult i8 %66, 26
  %67 = add i8 %.fr, -48
  %or.cond418 = icmp ult i8 %67, 10
  %or.cond446 = or i1 %or.cond418, %or.cond445
  %68 = icmp slt i8 %.fr, 0
  %or.cond630 = or i1 %or.cond446, %68
  br i1 %or.cond630, label %.backedge, label %switch.early.test543

switch.early.test543:                             ; preds = %.lr.ph539
  switch i8 %.fr, label %71 [
    i8 95, label %.backedge
    i8 36, label %.backedge
  ]

.backedge:                                        ; preds = %switch.early.test543, %switch.early.test543, %.lr.ph539
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %69 = load i32, ptr %54, align 8, !tbaa !23
  %70 = sext i32 %69 to i64
  %.not402 = icmp slt i64 %indvars.iv.next, %70
  %indvars.iv.next580 = add nuw nsw i64 %indvars.iv579, 1
  br i1 %.not402, label %.lr.ph539, label %._crit_edge540.loopexit, !llvm.loop !24

71:                                               ; preds = %switch.early.test543
  %72 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 %indvars.iv
  %73 = load ptr, ptr %52, align 8, !tbaa !21
  %74 = getelementptr inbounds i8, ptr %73, i64 %indvars.iv
  store i8 0, ptr %74, align 1, !tbaa !14
  %75 = getelementptr inbounds i8, ptr %72, i64 -1
  %76 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 260, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %75)
  br label %273

77:                                               ; preds = %switch.early.test, %173, %158, %116, %108, %100, %90, %82, %171, %156, %.thread, %151, %143, %145, %136, %138, %129, %131, %122, %124, %114, %106, %98, %88, %80
  %78 = zext nneg i8 %16 to i32
  %79 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef %78, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %.1310.lcssa)
  br label %273

80:                                               ; preds = %15
  %81 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not401 = icmp eq ptr %81, %13
  br i1 %.not401, label %77, label %82

82:                                               ; preds = %80
  %83 = load i8, ptr %81, align 1, !tbaa !14
  switch i8 %83, label %77 [
    i8 43, label %84
    i8 61, label %86
  ]

84:                                               ; preds = %82
  %85 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 272, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %81)
  br label %273

86:                                               ; preds = %82
  %87 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 274, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %81)
  br label %273

88:                                               ; preds = %15
  %89 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not400 = icmp eq ptr %89, %13
  br i1 %.not400, label %77, label %90

90:                                               ; preds = %88
  %91 = load i8, ptr %89, align 1, !tbaa !14
  switch i8 %91, label %77 [
    i8 45, label %92
    i8 61, label %94
    i8 62, label %96
  ]

92:                                               ; preds = %90
  %93 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 273, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %89)
  br label %273

94:                                               ; preds = %90
  %95 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 275, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %89)
  br label %273

96:                                               ; preds = %90
  %97 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 282, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %89)
  br label %273

98:                                               ; preds = %15
  %99 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not399 = icmp eq ptr %99, %13
  br i1 %.not399, label %77, label %100

100:                                              ; preds = %98
  %101 = load i8, ptr %99, align 1, !tbaa !14
  switch i8 %101, label %77 [
    i8 38, label %102
    i8 61, label %104
  ]

102:                                              ; preds = %100
  %103 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 268, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %99)
  br label %273

104:                                              ; preds = %100
  %105 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 279, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %99)
  br label %273

106:                                              ; preds = %15
  %107 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not398 = icmp eq ptr %107, %13
  br i1 %.not398, label %77, label %108

108:                                              ; preds = %106
  %109 = load i8, ptr %107, align 1, !tbaa !14
  switch i8 %109, label %77 [
    i8 124, label %110
    i8 61, label %112
  ]

110:                                              ; preds = %108
  %111 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 269, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %107)
  br label %273

112:                                              ; preds = %108
  %113 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 280, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %107)
  br label %273

114:                                              ; preds = %15
  %115 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not397 = icmp eq ptr %115, %13
  br i1 %.not397, label %77, label %116

116:                                              ; preds = %114
  %117 = load i8, ptr %115, align 1, !tbaa !14
  switch i8 %117, label %77 [
    i8 61, label %118
    i8 62, label %120
  ]

118:                                              ; preds = %116
  %119 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 264, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %115)
  br label %273

120:                                              ; preds = %116
  %121 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 283, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %115)
  br label %273

122:                                              ; preds = %15
  %123 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not396 = icmp eq ptr %123, %13
  br i1 %.not396, label %77, label %124

124:                                              ; preds = %122
  %125 = load i8, ptr %123, align 1, !tbaa !14
  %126 = icmp eq i8 %125, 61
  br i1 %126, label %127, label %77

127:                                              ; preds = %124
  %128 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 265, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %123)
  br label %273

129:                                              ; preds = %15
  %130 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not395 = icmp eq ptr %130, %13
  br i1 %.not395, label %77, label %131

131:                                              ; preds = %129
  %132 = load i8, ptr %130, align 1, !tbaa !14
  %133 = icmp eq i8 %132, 61
  br i1 %133, label %134, label %77

134:                                              ; preds = %131
  %135 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 281, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %130)
  br label %273

136:                                              ; preds = %15
  %137 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not394 = icmp eq ptr %137, %13
  br i1 %.not394, label %77, label %138

138:                                              ; preds = %136
  %139 = load i8, ptr %137, align 1, !tbaa !14
  %140 = icmp eq i8 %139, 61
  br i1 %140, label %141, label %77

141:                                              ; preds = %138
  %142 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 278, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %137)
  br label %273

143:                                              ; preds = %15
  %144 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not393 = icmp eq ptr %144, %13
  br i1 %.not393, label %77, label %145

145:                                              ; preds = %143
  %146 = load i8, ptr %144, align 1, !tbaa !14
  %147 = icmp eq i8 %146, 61
  br i1 %147, label %148, label %77

148:                                              ; preds = %145
  %149 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 276, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %144)
  br label %273

.thread:                                          ; preds = %17
  %150 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not392 = icmp eq ptr %150, %13
  br i1 %.not392, label %77, label %151

151:                                              ; preds = %.thread
  %152 = load i8, ptr %150, align 1, !tbaa !14
  %153 = icmp eq i8 %152, 61
  br i1 %153, label %154, label %77

154:                                              ; preds = %151
  %155 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 277, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %150)
  br label %273

156:                                              ; preds = %15
  %157 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not390 = icmp eq ptr %157, %13
  br i1 %.not390, label %77, label %158

158:                                              ; preds = %156
  %159 = load i8, ptr %157, align 1, !tbaa !14
  switch i8 %159, label %77 [
    i8 61, label %160
    i8 60, label %162
  ]

160:                                              ; preds = %158
  %161 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 266, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %157)
  br label %273

162:                                              ; preds = %158
  %163 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 2
  %.not391 = icmp eq ptr %163, %13
  br i1 %.not391, label %169, label %164

164:                                              ; preds = %162
  %165 = load i8, ptr %163, align 1, !tbaa !14
  %166 = icmp eq i8 %165, 61
  br i1 %166, label %167, label %169

167:                                              ; preds = %164
  %168 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 284, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %163)
  br label %273

169:                                              ; preds = %164, %162
  %170 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 270, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %157)
  br label %273

171:                                              ; preds = %15
  %172 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not388 = icmp eq ptr %172, %13
  br i1 %.not388, label %77, label %173

173:                                              ; preds = %171
  %174 = load i8, ptr %172, align 1, !tbaa !14
  switch i8 %174, label %77 [
    i8 61, label %175
    i8 62, label %177
  ]

175:                                              ; preds = %173
  %176 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 267, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %172)
  br label %273

177:                                              ; preds = %173
  %178 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 2
  %.not389 = icmp eq ptr %178, %13
  br i1 %.not389, label %184, label %179

179:                                              ; preds = %177
  %180 = load i8, ptr %178, align 1, !tbaa !14
  %181 = icmp eq i8 %180, 61
  br i1 %181, label %182, label %184

182:                                              ; preds = %179
  %183 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 285, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %178)
  br label %273

184:                                              ; preds = %179, %177
  %185 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 271, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %172)
  br label %273

186:                                              ; preds = %15
  %187 = tail call i32 @stb__clex_parse_string(ptr noundef nonnull %0, ptr noundef nonnull %.1310.lcssa, i32 noundef 261)
  br label %273

188:                                              ; preds = %15
  %189 = tail call i32 @stb__clex_parse_string(ptr noundef nonnull %0, ptr noundef nonnull %.1310.lcssa, i32 noundef 262)
  br label %273

190:                                              ; preds = %15
  %191 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 1
  %.not373 = icmp eq ptr %191, %13
  br i1 %.not373, label %.lr.ph518.preheader, label %192

192:                                              ; preds = %190
  %193 = load i8, ptr %191, align 1, !tbaa !14
  switch i8 %193, label %.lr.ph518.preheader [
    i8 120, label %194
    i8 88, label %194
  ]

194:                                              ; preds = %192, %192
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #2
  %.ptr444 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 2
  store ptr %.ptr444, ptr %2, align 8, !tbaa !25
  %.not381499 = icmp eq ptr %.ptr444, %13
  br i1 %.not381499, label %._crit_edge.thread, label %.lr.ph501

.lr.ph501:                                        ; preds = %194, %.critedge15
  %storemerge380500 = phi ptr [ %197, %.critedge15 ], [ %.ptr444, %194 ]
  %195 = load i8, ptr %storemerge380500, align 1, !tbaa !14
  %.fr544 = freeze i8 %195
  %196 = add i8 %.fr544, -48
  %or.cond420 = icmp ult i8 %196, 10
  br i1 %or.cond420, label %.critedge15, label %switch.early.test449

switch.early.test449:                             ; preds = %.lr.ph501
  switch i8 %.fr544, label %.critedge13.thread [
    i8 102, label %.critedge15
    i8 101, label %.critedge15
    i8 100, label %.critedge15
    i8 99, label %.critedge15
    i8 98, label %.critedge15
    i8 97, label %.critedge15
    i8 70, label %.critedge15
    i8 69, label %.critedge15
    i8 68, label %.critedge15
    i8 67, label %.critedge15
    i8 66, label %.critedge15
    i8 65, label %.critedge15
    i8 46, label %198
    i8 112, label %198
    i8 80, label %198
  ]

.critedge15:                                      ; preds = %switch.early.test449, %switch.early.test449, %switch.early.test449, %switch.early.test449, %switch.early.test449, %switch.early.test449, %switch.early.test449, %switch.early.test449, %switch.early.test449, %switch.early.test449, %switch.early.test449, %switch.early.test449, %.lr.ph501
  %197 = getelementptr inbounds i8, ptr %storemerge380500, i64 1
  store ptr %197, ptr %2, align 8, !tbaa !25
  %.not381 = icmp eq ptr %197, %13
  br i1 %.not381, label %.critedge13.thread, label %.lr.ph501, !llvm.loop !26

198:                                              ; preds = %switch.early.test449, %switch.early.test449, %switch.early.test449
  %199 = call double @stb__clex_parse_float(ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %2)
  %200 = getelementptr inbounds i8, ptr %0, i64 64
  store double %199, ptr %200, align 8, !tbaa !27
  %201 = load ptr, ptr %2, align 8, !tbaa !25
  %202 = icmp eq ptr %.1310.lcssa, %201
  br i1 %202, label %203, label %205

203:                                              ; preds = %198
  %204 = call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 257, ptr noundef nonnull %.1310.lcssa, ptr noundef %201)
  br label %238

205:                                              ; preds = %198
  %206 = call i32 @stb__clex_parse_suffixes(ptr noundef nonnull %0, i64 noundef 259, ptr noundef nonnull %.1310.lcssa, ptr noundef %201, ptr noundef nonnull @.str)
  br label %238

.critedge13.thread:                               ; preds = %.critedge15, %switch.early.test449
  store ptr %.ptr444, ptr %2, align 8, !tbaa !25
  br i1 %.not381499, label %._crit_edge.thread, label %.lr.ph507.preheader

.lr.ph507.preheader:                              ; preds = %.critedge13.thread
  %207 = sub i64 %14, %.1310.lcssa569
  br label %.lr.ph507

.lr.ph507:                                        ; preds = %.lr.ph507.preheader, %228
  %storemerge383.ptr506 = phi ptr [ %storemerge383.ptr, %228 ], [ %.ptr444, %.lr.ph507.preheader ]
  %.0303505 = phi i64 [ %.1, %228 ], [ 0, %.lr.ph507.preheader ]
  %storemerge383.idx504 = phi i64 [ %storemerge383.add, %228 ], [ 2, %.lr.ph507.preheader ]
  %208 = load i8, ptr %storemerge383.ptr506, align 1, !tbaa !14
  %209 = add i8 %208, -48
  %or.cond423 = icmp ult i8 %209, 10
  br i1 %or.cond423, label %210, label %214

210:                                              ; preds = %.lr.ph507
  %211 = shl nsw i64 %.0303505, 4
  %212 = zext nneg i8 %209 to i64
  %213 = or disjoint i64 %211, %212
  br label %228

214:                                              ; preds = %.lr.ph507
  %215 = add i8 %208, -97
  %or.cond424 = icmp ult i8 %215, 6
  br i1 %or.cond424, label %216, label %221

216:                                              ; preds = %214
  %217 = shl nsw i64 %.0303505, 4
  %218 = zext nneg i8 %215 to i64
  %219 = or disjoint i64 %217, 10
  %220 = add nuw nsw i64 %219, %218
  br label %228

221:                                              ; preds = %214
  %222 = add i8 %208, -65
  %or.cond425 = icmp ult i8 %222, 6
  br i1 %or.cond425, label %223, label %._crit_edge

223:                                              ; preds = %221
  %224 = shl nsw i64 %.0303505, 4
  %225 = zext nneg i8 %222 to i64
  %226 = or disjoint i64 %224, 10
  %227 = add nuw nsw i64 %226, %225
  br label %228

228:                                              ; preds = %210, %223, %216
  %.1 = phi i64 [ %213, %210 ], [ %220, %216 ], [ %227, %223 ]
  %storemerge383.add = add nuw i64 %storemerge383.idx504, 1
  %storemerge383.ptr = getelementptr inbounds i8, ptr %.1310.lcssa, i64 %storemerge383.add
  store ptr %storemerge383.ptr, ptr %2, align 8, !tbaa !25
  %exitcond = icmp eq i64 %storemerge383.add, %207
  br i1 %exitcond, label %._crit_edge, label %.lr.ph507, !llvm.loop !28

._crit_edge.thread:                               ; preds = %194, %.critedge13.thread
  %229 = getelementptr inbounds i8, ptr %0, i64 72
  store i64 0, ptr %229, align 8, !tbaa !29
  br label %232

._crit_edge:                                      ; preds = %228, %221
  %storemerge383.idx.lcssa.ph = phi i64 [ %207, %228 ], [ %storemerge383.idx504, %221 ]
  %.0303.lcssa.ph = phi i64 [ %.1, %228 ], [ %.0303505, %221 ]
  %storemerge383.ptr.lcssa.ph = phi ptr [ %storemerge383.ptr, %228 ], [ %storemerge383.ptr506, %221 ]
  %230 = icmp eq i64 %storemerge383.idx.lcssa.ph, 2
  %231 = getelementptr inbounds i8, ptr %0, i64 72
  store i64 %.0303.lcssa.ph, ptr %231, align 8, !tbaa !29
  br i1 %230, label %232, label %236

232:                                              ; preds = %._crit_edge.thread, %._crit_edge
  %233 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 -2
  %234 = getelementptr inbounds i8, ptr %.1310.lcssa, i64 -1
  %235 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 257, ptr noundef nonnull %233, ptr noundef nonnull %234)
  br label %238

236:                                              ; preds = %._crit_edge
  %237 = tail call i32 @stb__clex_parse_suffixes(ptr noundef nonnull %0, i64 noundef 258, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %storemerge383.ptr.lcssa.ph, ptr noundef nonnull @.str.1)
  br label %238

238:                                              ; preds = %236, %232, %205, %203
  %.3 = phi i32 [ %204, %203 ], [ %206, %205 ], [ %235, %232 ], [ %237, %236 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #2
  br label %273

.lr.ph518.preheader:                              ; preds = %15, %15, %15, %15, %15, %15, %15, %15, %15, %190, %192
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #2
  store ptr %.1310.lcssa, ptr %3, align 8, !tbaa !25
  br label %.lr.ph518

.lr.ph518:                                        ; preds = %.lr.ph518.preheader, %241
  %storemerge516 = phi ptr [ %242, %241 ], [ %.1310.lcssa, %.lr.ph518.preheader ]
  %239 = load i8, ptr %storemerge516, align 1, !tbaa !14
  %240 = add i8 %239, -48
  %or.cond426 = icmp ult i8 %240, 10
  br i1 %or.cond426, label %241, label %.critedge17

241:                                              ; preds = %.lr.ph518
  %242 = getelementptr inbounds i8, ptr %storemerge516, i64 1
  store ptr %242, ptr %3, align 8, !tbaa !25
  %.not374 = icmp eq ptr %242, %13
  br i1 %.not374, label %.critedge17.thread, label %.lr.ph518, !llvm.loop !30

.critedge17:                                      ; preds = %.lr.ph518
  switch i8 %239, label %.critedge17.thread [
    i8 46, label %243
    i8 101, label %243
    i8 69, label %243
  ]

243:                                              ; preds = %.critedge17, %.critedge17, %.critedge17
  %244 = call double @stb__clex_parse_float(ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %3)
  %245 = getelementptr inbounds i8, ptr %0, i64 64
  store double %244, ptr %245, align 8, !tbaa !27
  %246 = load ptr, ptr %3, align 8, !tbaa !25
  %247 = call i32 @stb__clex_parse_suffixes(ptr noundef %0, i64 noundef 259, ptr noundef nonnull %.1310.lcssa, ptr noundef %246, ptr noundef nonnull @.str)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #2
  br label %273

.critedge17.thread:                               ; preds = %241, %.critedge17
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #2
  %248 = load i8, ptr %.1310.lcssa, align 1, !tbaa !14
  %249 = icmp eq i8 %248, 48
  %scevgep577 = getelementptr i8, ptr %.1310.lcssa, i64 %14
  %250 = sub i64 0, %.1310.lcssa569
  %scevgep578 = getelementptr i8, ptr %scevgep577, i64 %250
  br i1 %249, label %.lr.ph532, label %.lr.ph522

.lr.ph532:                                        ; preds = %.critedge17.thread, %253
  %.0301531 = phi i64 [ %256, %253 ], [ 0, %.critedge17.thread ]
  %.0302530 = phi ptr [ %257, %253 ], [ %.1310.lcssa, %.critedge17.thread ]
  %251 = load i8, ptr %.0302530, align 1, !tbaa !14
  %252 = and i8 %251, -8
  %or.cond427 = icmp eq i8 %252, 48
  br i1 %or.cond427, label %253, label %258

253:                                              ; preds = %.lr.ph532
  %254 = shl nsw i64 %.0301531, 3
  %narrow379 = add nsw i8 %251, -48
  %255 = zext nneg i8 %narrow379 to i64
  %256 = or disjoint i64 %254, %255
  %257 = getelementptr inbounds i8, ptr %.0302530, i64 1
  %.not377 = icmp eq ptr %257, %13
  br i1 %.not377, label %.thread442, label %.lr.ph532, !llvm.loop !31

258:                                              ; preds = %.lr.ph532
  %259 = and i8 %251, -2
  %switch = icmp eq i8 %259, 56
  br i1 %switch, label %260, label %.thread442

260:                                              ; preds = %258
  %261 = tail call i32 @stb__clex_token(ptr noundef nonnull %0, i32 noundef 257, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %.0302530)
  br label %273

.thread442:                                       ; preds = %253, %258
  %.0302459 = phi ptr [ %.0302530, %258 ], [ %scevgep578, %253 ]
  %.0301457 = phi i64 [ %.0301531, %258 ], [ %256, %253 ]
  %262 = getelementptr inbounds i8, ptr %0, i64 72
  store i64 %.0301457, ptr %262, align 8, !tbaa !29
  %263 = tail call i32 @stb__clex_parse_suffixes(ptr noundef nonnull %0, i64 noundef 258, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %.0302459, ptr noundef nonnull @.str.1)
  br label %273

.lr.ph522:                                        ; preds = %.critedge17.thread, %266
  %.0521 = phi i64 [ %269, %266 ], [ 0, %.critedge17.thread ]
  %.0300520 = phi ptr [ %270, %266 ], [ %.1310.lcssa, %.critedge17.thread ]
  %264 = load i8, ptr %.0300520, align 1, !tbaa !14
  %265 = add i8 %264, -48
  %or.cond428 = icmp ult i8 %265, 10
  br i1 %or.cond428, label %266, label %._crit_edge523

266:                                              ; preds = %.lr.ph522
  %267 = mul nsw i64 %.0521, 10
  %268 = zext nneg i8 %265 to i64
  %269 = add nsw i64 %267, %268
  %270 = getelementptr inbounds i8, ptr %.0300520, i64 1
  %.not376 = icmp eq ptr %270, %13
  br i1 %.not376, label %._crit_edge523, label %.lr.ph522, !llvm.loop !32

._crit_edge523:                                   ; preds = %266, %.lr.ph522
  %.0300.lcssa.ph = phi ptr [ %scevgep578, %266 ], [ %.0300520, %.lr.ph522 ]
  %.0.lcssa.ph = phi i64 [ %269, %266 ], [ %.0521, %.lr.ph522 ]
  %271 = getelementptr inbounds i8, ptr %0, i64 72
  store i64 %.0.lcssa.ph, ptr %271, align 8, !tbaa !29
  %272 = tail call i32 @stb__clex_parse_suffixes(ptr noundef nonnull %0, i64 noundef 258, ptr noundef nonnull %.1310.lcssa, ptr noundef nonnull %.0300.lcssa.ph, ptr noundef nonnull @.str.1)
  br label %273

273:                                              ; preds = %243, %.thread430, %260, %.thread442, %._crit_edge540, %71, %._crit_edge523, %238, %188, %186, %184, %182, %175, %169, %167, %160, %154, %148, %141, %134, %127, %120, %118, %112, %110, %104, %102, %96, %94, %92, %86, %84, %77, %42
  %.6 = phi i32 [ %43, %42 ], [ %79, %77 ], [ %272, %._crit_edge523 ], [ %247, %243 ], [ %.3, %238 ], [ %189, %188 ], [ %187, %186 ], [ %176, %175 ], [ %183, %182 ], [ %185, %184 ], [ %161, %160 ], [ %168, %167 ], [ %170, %169 ], [ %155, %154 ], [ %149, %148 ], [ %142, %141 ], [ %135, %134 ], [ %128, %127 ], [ %119, %118 ], [ %121, %120 ], [ %111, %110 ], [ %113, %112 ], [ %103, %102 ], [ %105, %104 ], [ %93, %92 ], [ %95, %94 ], [ %97, %96 ], [ %85, %84 ], [ %87, %86 ], [ %58, %._crit_edge540 ], [ %76, %71 ], [ %261, %260 ], [ %263, %.thread442 ], [ %35, %.thread430 ]
  ret i32 %.6
}

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_iswhite(i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_token(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_eof(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_parse_string(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden double @stb__clex_parse_float(ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i32 @stb__clex_parse_suffixes(ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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, !7, i64 16}
!6 = !{!"", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !7, i64 40, !7, i64 48, !11, i64 56, !12, i64 64, !11, i64 72, !7, i64 80, !10, i64 88}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"long", !8, i64 0}
!12 = !{!"double", !8, i64 0}
!13 = !{!6, !7, i64 8}
!14 = !{!8, !8, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = !{!6, !7, i64 24}
!21 = !{!6, !7, i64 80}
!22 = !{!6, !10, i64 88}
!23 = !{!6, !10, i64 32}
!24 = distinct !{!24, !16}
!25 = !{!7, !7, i64 0}
!26 = distinct !{!26, !16}
!27 = !{!6, !12, i64 64}
!28 = distinct !{!28, !16}
!29 = !{!6, !11, i64 72}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass