; LLVM IR from nickmqb/muon :: bootstrap/mu.ll_Parser (readToken__)

; 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.string__ = type { ptr, i32 }
%struct.tag_____IAllocator__ = type { ptr, ptr, ptr, ptr }
%struct.tag_____Error__ = type { ptr, %struct.tag_____IntRange__, %struct.string__ }
%struct.tag_____IntRange__ = type { i32, i32 }
%struct.tag_____Token__ = type { i32, %struct.string__, %struct.tag_____IntRange__, %struct.tag_____IntRange__, i32 }
%struct.tag_____ParserState__ = type { %struct.string__, i32, ptr, ptr, i32, i32, i32, i32, i32, ptr, %struct.tag_____IntRange__, i32, i32, ptr, i32, ptr, ptr, ptr }

@mu_____string290 = external dso_local global %struct.string__, align 8
@mu_____string292 = external dso_local global %struct.string__, align 8
@mu_____string291 = external dso_local global %struct.string__, align 8
@top_____currentAllocator__ = external dso_local thread_local global %struct.tag_____IAllocator__, align 8
@top_____abandonFn__ = external dso_local thread_local global ptr, align 8

; 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 speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #1

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

; Function Attrs: nounwind uwtable
declare dso_local void @List__add__Error____(ptr noundef, ptr noundef byval(%struct.tag_____Error__) align 8) #4

; Function Attrs: nounwind uwtable
declare dso_local void @Error__at__(ptr dead_on_unwind noalias writable sret(%struct.tag_____Error__) align 8, ptr noundef, i64, ptr, i32) #4

; Function Attrs: nounwind uwtable
declare dso_local void @StringBuilder__writeChar__(ptr noundef, i8 noundef signext) #4

; Function Attrs: nounwind uwtable
declare dso_local i64 @IntRange__cons__(i32 noundef, i32 noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local void @StringBuilder__clear__(ptr noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local { ptr, i32 } @string__slice__(ptr, i32, i32 noundef, i32 noundef) #4

; Function Attrs: nounwind uwtable
define dso_local void @Parser__readToken__(ptr noundef %0) #4 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i8, align 1
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i8, align 1
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i8, align 1
  %15 = alloca i8, align 1
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i8, align 1
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i8, align 1
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i8, align 1
  %27 = alloca i8, align 1
  %28 = alloca i8, align 1
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i8, align 1
  %33 = alloca ptr, align 8
  %34 = alloca %struct.tag_____Token__, align 8
  %35 = alloca %struct.string__, align 8
  %36 = alloca %struct.tag_____IntRange__, align 4
  %37 = alloca %struct.tag_____IntRange__, align 4
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca i8, align 1
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca i8, align 1
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca i8, align 1
  %51 = alloca i8, align 1
  %52 = alloca i8, align 1
  %53 = alloca i8, align 1
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca i8, align 1
  %61 = alloca i8, align 1
  %62 = alloca %struct.tag_____Error__, align 8
  %63 = alloca ptr, align 8
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i8, align 1
  %69 = alloca i8, align 1
  %70 = alloca %struct.tag_____Error__, align 8
  %71 = alloca %struct.tag_____Error__, align 8
  %72 = alloca %struct.tag_____IntRange__, align 4
  %73 = alloca ptr, align 8
  %74 = alloca i32, align 4
  %75 = alloca i8, align 1
  %76 = alloca i8, align 1
  %77 = alloca i8, align 1
  %78 = alloca i8, align 1
  %79 = alloca ptr, align 8
  %80 = alloca i32, align 4
  %81 = alloca i8, align 1
  %82 = alloca ptr, align 8
  %83 = alloca i32, align 4
  %84 = alloca i8, align 1
  %85 = alloca i8, align 1
  %86 = alloca i8, align 1
  %87 = alloca i8, align 1
  %88 = alloca i8, align 1
  %89 = alloca i8, align 1
  %90 = alloca ptr, align 8
  %91 = alloca i32, align 4
  %92 = alloca ptr, align 8
  %93 = alloca i32, align 4
  %94 = alloca ptr, align 8
  %95 = alloca i32, align 4
  %96 = alloca ptr, align 8
  %97 = alloca i32, align 4
  %98 = alloca ptr, align 8
  %99 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #5
  %100 = load ptr, ptr %2, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.tag_____ParserState__, ptr %100, i32 0, i32 1
  %102 = load i32, ptr %101, align 8, !tbaa !9
  store i32 %102, ptr %3, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #5
  store i32 0, ptr %4, align 4, !tbaa !14
  br label %103

103:                                              ; preds = %492, %1
  br label %104

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #5
  %105 = load ptr, ptr %2, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.tag_____ParserState__, ptr %105, i32 0, i32 0
  store ptr %106, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  %107 = load ptr, ptr %2, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.tag_____ParserState__, ptr %107, i32 0, i32 1
  %109 = load i32, ptr %108, align 8, !tbaa !9
  store i32 %109, ptr %6, align 4, !tbaa !14
  %110 = load i32, ptr %6, align 4, !tbaa !14
  %111 = load ptr, ptr %5, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.string__, ptr %111, i32 0, i32 1
  %113 = load i32, ptr %112, align 8, !tbaa !15
  %114 = icmp ult i32 %110, %113
  br i1 %114, label %118, label %115

115:                                              ; preds = %104
  %116 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %117 = load ptr, ptr %116, align 8, !tbaa !5
  call void %117(i32 noundef -3)
  br label %118

118:                                              ; preds = %115, %104
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #5
  %119 = load ptr, ptr %5, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.string__, ptr %119, i32 0, i32 0
  %121 = load ptr, ptr %120, align 8, !tbaa !16
  %122 = load i32, ptr %6, align 4, !tbaa !14
  %123 = zext i32 %122 to i64
  %124 = getelementptr inbounds i8, ptr %121, i64 %123
  %125 = load i8, ptr %124, align 1, !tbaa !17
  store i8 %125, ptr %7, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  store i32 0, ptr %8, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  store i32 0, ptr %9, align 4, !tbaa !14
  %126 = load ptr, ptr %2, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.tag_____ParserState__, ptr %126, i32 0, i32 1
  %128 = load i32, ptr %127, align 8, !tbaa !9
  %129 = load ptr, ptr %2, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.tag_____ParserState__, ptr %129, i32 0, i32 4
  %131 = load i32, ptr %130, align 8, !tbaa !18
  %132 = icmp eq i32 %128, %131
  br i1 %132, label %133, label %203

133:                                              ; preds = %118
  br label %134

134:                                              ; preds = %187, %133
  br label %135

135:                                              ; preds = %134
  %136 = load i8, ptr %7, align 1, !tbaa !17
  %137 = sext i8 %136 to i32
  %138 = icmp eq i32 %137, 9
  br i1 %138, label %139, label %142

139:                                              ; preds = %135
  %140 = load i32, ptr %8, align 4, !tbaa !14
  %141 = add nsw i32 %140, 1
  store i32 %141, ptr %8, align 4, !tbaa !14
  br label %167

142:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #5
  %143 = load i8, ptr %7, align 1, !tbaa !17
  %144 = sext i8 %143 to i32
  %145 = icmp eq i32 %144, 32
  %146 = zext i1 %145 to i32
  %147 = trunc i32 %146 to i8
  store i8 %147, ptr %10, align 1, !tbaa !17
  %148 = load i8, ptr %10, align 1, !tbaa !17
  %149 = icmp ne i8 %148, 0
  br i1 %149, label %156, label %150

150:                                              ; preds = %142
  %151 = load i8, ptr %7, align 1, !tbaa !17
  %152 = sext i8 %151 to i32
  %153 = icmp eq i32 %152, 13
  %154 = zext i1 %153 to i32
  %155 = trunc i32 %154 to i8
  store i8 %155, ptr %10, align 1, !tbaa !17
  br label %156

156:                                              ; preds = %150, %142
  %157 = load i8, ptr %10, align 1, !tbaa !17
  %158 = icmp ne i8 %157, 0
  br i1 %158, label %159, label %162

159:                                              ; preds = %156
  %160 = load i32, ptr %9, align 4, !tbaa !14
  %161 = add nsw i32 %160, 1
  store i32 %161, ptr %9, align 4, !tbaa !14
  br label %163

162:                                              ; preds = %156
  store i32 6, ptr %11, align 4
  br label %164

163:                                              ; preds = %159
  store i32 0, ptr %11, align 4
  br label %164

164:                                              ; preds = %163, %162
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #5
  %165 = load i32, ptr %11, align 4
  switch i32 %165, label %490 [
    i32 0, label %166
    i32 6, label %195
  ]

166:                                              ; preds = %164
  br label %167

167:                                              ; preds = %166, %139
  %168 = load ptr, ptr %2, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.tag_____ParserState__, ptr %168, i32 0, i32 1
  %170 = load i32, ptr %169, align 8, !tbaa !9
  %171 = add nsw i32 %170, 1
  %172 = load ptr, ptr %2, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.tag_____ParserState__, ptr %172, i32 0, i32 1
  store i32 %171, ptr %173, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  %174 = load ptr, ptr %2, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.tag_____ParserState__, ptr %174, i32 0, i32 0
  store ptr %175, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  %176 = load ptr, ptr %2, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.tag_____ParserState__, ptr %176, i32 0, i32 1
  %178 = load i32, ptr %177, align 8, !tbaa !9
  store i32 %178, ptr %13, align 4, !tbaa !14
  %179 = load i32, ptr %13, align 4, !tbaa !14
  %180 = load ptr, ptr %12, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.string__, ptr %180, i32 0, i32 1
  %182 = load i32, ptr %181, align 8, !tbaa !15
  %183 = icmp ult i32 %179, %182
  br i1 %183, label %187, label %184

184:                                              ; preds = %167
  %185 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %186 = load ptr, ptr %185, align 8, !tbaa !5
  call void %186(i32 noundef -3)
  br label %187

187:                                              ; preds = %184, %167
  %188 = load ptr, ptr %12, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.string__, ptr %188, i32 0, i32 0
  %190 = load ptr, ptr %189, align 8, !tbaa !16
  %191 = load i32, ptr %13, align 4, !tbaa !14
  %192 = zext i32 %191 to i64
  %193 = getelementptr inbounds i8, ptr %190, i64 %192
  %194 = load i8, ptr %193, align 1, !tbaa !17
  store i8 %194, ptr %7, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  br label %134

195:                                              ; preds = %164
  %196 = load i32, ptr %8, align 4, !tbaa !14
  %197 = load ptr, ptr %2, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.tag_____ParserState__, ptr %197, i32 0, i32 6
  %199 = load i32, ptr %198, align 8, !tbaa !19
  %200 = mul nsw i32 %196, %199
  %201 = load i32, ptr %9, align 4, !tbaa !14
  %202 = add nsw i32 %200, %201
  store i32 %202, ptr %4, align 4, !tbaa !14
  br label %265

203:                                              ; preds = %118
  br label %204

204:                                              ; preds = %263, %203
  br label %205

205:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #5
  %206 = load i8, ptr %7, align 1, !tbaa !17
  %207 = sext i8 %206 to i32
  %208 = icmp eq i32 %207, 9
  %209 = zext i1 %208 to i32
  %210 = trunc i32 %209 to i8
  store i8 %210, ptr %14, align 1, !tbaa !17
  %211 = load i8, ptr %14, align 1, !tbaa !17
  %212 = icmp ne i8 %211, 0
  br i1 %212, label %219, label %213

213:                                              ; preds = %205
  %214 = load i8, ptr %7, align 1, !tbaa !17
  %215 = sext i8 %214 to i32
  %216 = icmp eq i32 %215, 32
  %217 = zext i1 %216 to i32
  %218 = trunc i32 %217 to i8
  store i8 %218, ptr %14, align 1, !tbaa !17
  br label %219

219:                                              ; preds = %213, %205
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #5
  %220 = load i8, ptr %14, align 1, !tbaa !17
  store i8 %220, ptr %15, align 1, !tbaa !17
  %221 = load i8, ptr %15, align 1, !tbaa !17
  %222 = icmp ne i8 %221, 0
  br i1 %222, label %229, label %223

223:                                              ; preds = %219
  %224 = load i8, ptr %7, align 1, !tbaa !17
  %225 = sext i8 %224 to i32
  %226 = icmp eq i32 %225, 13
  %227 = zext i1 %226 to i32
  %228 = trunc i32 %227 to i8
  store i8 %228, ptr %15, align 1, !tbaa !17
  br label %229

229:                                              ; preds = %223, %219
  %230 = load i8, ptr %15, align 1, !tbaa !17
  %231 = icmp ne i8 %230, 0
  br i1 %231, label %233, label %232

232:                                              ; preds = %229
  store i32 8, ptr %11, align 4
  br label %261

233:                                              ; preds = %229
  %234 = load ptr, ptr %2, align 8, !tbaa !5
  %235 = getelementptr inbounds %struct.tag_____ParserState__, ptr %234, i32 0, i32 1
  %236 = load i32, ptr %235, align 8, !tbaa !9
  %237 = add nsw i32 %236, 1
  %238 = load ptr, ptr %2, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.tag_____ParserState__, ptr %238, i32 0, i32 1
  store i32 %237, ptr %239, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  %240 = load ptr, ptr %2, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.tag_____ParserState__, ptr %240, i32 0, i32 0
  store ptr %241, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  %242 = load ptr, ptr %2, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.tag_____ParserState__, ptr %242, i32 0, i32 1
  %244 = load i32, ptr %243, align 8, !tbaa !9
  store i32 %244, ptr %17, align 4, !tbaa !14
  %245 = load i32, ptr %17, align 4, !tbaa !14
  %246 = load ptr, ptr %16, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.string__, ptr %246, i32 0, i32 1
  %248 = load i32, ptr %247, align 8, !tbaa !15
  %249 = icmp ult i32 %245, %248
  br i1 %249, label %253, label %250

250:                                              ; preds = %233
  %251 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %252 = load ptr, ptr %251, align 8, !tbaa !5
  call void %252(i32 noundef -3)
  br label %253

253:                                              ; preds = %250, %233
  %254 = load ptr, ptr %16, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.string__, ptr %254, i32 0, i32 0
  %256 = load ptr, ptr %255, align 8, !tbaa !16
  %257 = load i32, ptr %17, align 4, !tbaa !14
  %258 = zext i32 %257 to i64
  %259 = getelementptr inbounds i8, ptr %256, i64 %258
  %260 = load i8, ptr %259, align 1, !tbaa !17
  store i8 %260, ptr %7, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  store i32 0, ptr %11, align 4
  br label %261

261:                                              ; preds = %253, %232
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #5
  %262 = load i32, ptr %11, align 4
  switch i32 %262, label %1943 [
    i32 0, label %263
    i32 8, label %264
  ]

263:                                              ; preds = %261
  br label %204

264:                                              ; preds = %261
  store i32 2147483647, ptr %4, align 4, !tbaa !14
  br label %265

265:                                              ; preds = %264, %195
  %266 = load i8, ptr %7, align 1, !tbaa !17
  %267 = sext i8 %266 to i32
  %268 = icmp eq i32 %267, 47
  %269 = zext i1 %268 to i32
  %270 = trunc i32 %269 to i8
  store i8 %270, ptr %18, align 1, !tbaa !17
  %271 = load i8, ptr %18, align 1, !tbaa !17
  %272 = icmp ne i8 %271, 0
  br i1 %272, label %273, label %300

273:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %274 = load ptr, ptr %2, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.tag_____ParserState__, ptr %274, i32 0, i32 0
  store ptr %275, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  %276 = load ptr, ptr %2, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct.tag_____ParserState__, ptr %276, i32 0, i32 1
  %278 = load i32, ptr %277, align 8, !tbaa !9
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr %20, align 4, !tbaa !14
  %280 = load i32, ptr %20, align 4, !tbaa !14
  %281 = load ptr, ptr %19, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.string__, ptr %281, i32 0, i32 1
  %283 = load i32, ptr %282, align 8, !tbaa !15
  %284 = icmp ult i32 %280, %283
  br i1 %284, label %288, label %285

285:                                              ; preds = %273
  %286 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %287 = load ptr, ptr %286, align 8, !tbaa !5
  call void %287(i32 noundef -3)
  br label %288

288:                                              ; preds = %285, %273
  %289 = load ptr, ptr %19, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.string__, ptr %289, i32 0, i32 0
  %291 = load ptr, ptr %290, align 8, !tbaa !16
  %292 = load i32, ptr %20, align 4, !tbaa !14
  %293 = zext i32 %292 to i64
  %294 = getelementptr inbounds i8, ptr %291, i64 %293
  %295 = load i8, ptr %294, align 1, !tbaa !17
  %296 = sext i8 %295 to i32
  %297 = icmp eq i32 %296, 47
  %298 = zext i1 %297 to i32
  %299 = trunc i32 %298 to i8
  store i8 %299, ptr %18, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  br label %300

300:                                              ; preds = %288, %265
  %301 = load i8, ptr %18, align 1, !tbaa !17
  %302 = icmp ne i8 %301, 0
  br i1 %302, label %303, label %382

303:                                              ; preds = %300
  %304 = load ptr, ptr %2, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.tag_____ParserState__, ptr %304, i32 0, i32 1
  %306 = load i32, ptr %305, align 8, !tbaa !9
  %307 = add nsw i32 %306, 2
  %308 = load ptr, ptr %2, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.tag_____ParserState__, ptr %308, i32 0, i32 1
  store i32 %307, ptr %309, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %310 = load ptr, ptr %2, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.tag_____ParserState__, ptr %310, i32 0, i32 0
  store ptr %311, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  %312 = load ptr, ptr %2, align 8, !tbaa !5
  %313 = getelementptr inbounds %struct.tag_____ParserState__, ptr %312, i32 0, i32 1
  %314 = load i32, ptr %313, align 8, !tbaa !9
  store i32 %314, ptr %22, align 4, !tbaa !14
  %315 = load i32, ptr %22, align 4, !tbaa !14
  %316 = load ptr, ptr %21, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.string__, ptr %316, i32 0, i32 1
  %318 = load i32, ptr %317, align 8, !tbaa !15
  %319 = icmp ult i32 %315, %318
  br i1 %319, label %323, label %320

320:                                              ; preds = %303
  %321 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %322 = load ptr, ptr %321, align 8, !tbaa !5
  call void %322(i32 noundef -3)
  br label %323

323:                                              ; preds = %320, %303
  %324 = load ptr, ptr %21, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.string__, ptr %324, i32 0, i32 0
  %326 = load ptr, ptr %325, align 8, !tbaa !16
  %327 = load i32, ptr %22, align 4, !tbaa !14
  %328 = zext i32 %327 to i64
  %329 = getelementptr inbounds i8, ptr %326, i64 %328
  %330 = load i8, ptr %329, align 1, !tbaa !17
  store i8 %330, ptr %7, align 1, !tbaa !17
  br label %331

331:                                              ; preds = %380, %323
  br label %332

332:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #5
  %333 = load i8, ptr %7, align 1, !tbaa !17
  %334 = sext i8 %333 to i32
  %335 = icmp ne i32 %334, 10
  %336 = zext i1 %335 to i32
  %337 = trunc i32 %336 to i8
  store i8 %337, ptr %23, align 1, !tbaa !17
  %338 = load i8, ptr %23, align 1, !tbaa !17
  %339 = icmp ne i8 %338, 0
  br i1 %339, label %340, label %346

340:                                              ; preds = %332
  %341 = load i8, ptr %7, align 1, !tbaa !17
  %342 = sext i8 %341 to i32
  %343 = icmp ne i32 %342, 0
  %344 = zext i1 %343 to i32
  %345 = trunc i32 %344 to i8
  store i8 %345, ptr %23, align 1, !tbaa !17
  br label %346

346:                                              ; preds = %340, %332
  %347 = load i8, ptr %23, align 1, !tbaa !17
  %348 = icmp ne i8 %347, 0
  br i1 %348, label %350, label %349

349:                                              ; preds = %346
  store i32 10, ptr %11, align 4
  br label %378

350:                                              ; preds = %346
  %351 = load ptr, ptr %2, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.tag_____ParserState__, ptr %351, i32 0, i32 1
  %353 = load i32, ptr %352, align 8, !tbaa !9
  %354 = add nsw i32 %353, 1
  %355 = load ptr, ptr %2, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.tag_____ParserState__, ptr %355, i32 0, i32 1
  store i32 %354, ptr %356, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %357 = load ptr, ptr %2, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.tag_____ParserState__, ptr %357, i32 0, i32 0
  store ptr %358, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  %359 = load ptr, ptr %2, align 8, !tbaa !5
  %360 = getelementptr inbounds %struct.tag_____ParserState__, ptr %359, i32 0, i32 1
  %361 = load i32, ptr %360, align 8, !tbaa !9
  store i32 %361, ptr %25, align 4, !tbaa !14
  %362 = load i32, ptr %25, align 4, !tbaa !14
  %363 = load ptr, ptr %24, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.string__, ptr %363, i32 0, i32 1
  %365 = load i32, ptr %364, align 8, !tbaa !15
  %366 = icmp ult i32 %362, %365
  br i1 %366, label %370, label %367

367:                                              ; preds = %350
  %368 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %369 = load ptr, ptr %368, align 8, !tbaa !5
  call void %369(i32 noundef -3)
  br label %370

370:                                              ; preds = %367, %350
  %371 = load ptr, ptr %24, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.string__, ptr %371, i32 0, i32 0
  %373 = load ptr, ptr %372, align 8, !tbaa !16
  %374 = load i32, ptr %25, align 4, !tbaa !14
  %375 = zext i32 %374 to i64
  %376 = getelementptr inbounds i8, ptr %373, i64 %375
  %377 = load i8, ptr %376, align 1, !tbaa !17
  store i8 %377, ptr %7, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  store i32 0, ptr %11, align 4
  br label %378

378:                                              ; preds = %370, %349
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #5
  %379 = load i32, ptr %11, align 4
  switch i32 %379, label %1943 [
    i32 0, label %380
    i32 10, label %381
  ]

380:                                              ; preds = %378
  br label %331

381:                                              ; preds = %378
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %489

382:                                              ; preds = %300
  %383 = load i8, ptr %7, align 1, !tbaa !17
  %384 = sext i8 %383 to i32
  %385 = icmp eq i32 %384, 10
  br i1 %385, label %386, label %398

386:                                              ; preds = %382
  %387 = load ptr, ptr %2, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.tag_____ParserState__, ptr %387, i32 0, i32 1
  %389 = load i32, ptr %388, align 8, !tbaa !9
  %390 = add nsw i32 %389, 1
  %391 = load ptr, ptr %2, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.tag_____ParserState__, ptr %391, i32 0, i32 1
  store i32 %390, ptr %392, align 8, !tbaa !9
  %393 = load ptr, ptr %2, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.tag_____ParserState__, ptr %393, i32 0, i32 1
  %395 = load i32, ptr %394, align 8, !tbaa !9
  %396 = load ptr, ptr %2, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.tag_____ParserState__, ptr %396, i32 0, i32 4
  store i32 %395, ptr %397, align 8, !tbaa !18
  br label %488

398:                                              ; preds = %382
  %399 = load i32, ptr %4, align 4, !tbaa !14
  %400 = icmp slt i32 %399, 2147483647
  br i1 %400, label %401, label %487

401:                                              ; preds = %398
  %402 = load ptr, ptr %2, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.tag_____ParserState__, ptr %402, i32 0, i32 7
  %404 = load i32, ptr %403, align 4, !tbaa !20
  %405 = icmp eq i32 %404, 1
  br i1 %405, label %406, label %412

406:                                              ; preds = %401
  %407 = load i32, ptr %9, align 4, !tbaa !14
  %408 = icmp sgt i32 %407, 0
  br i1 %408, label %409, label %411

409:                                              ; preds = %406
  %410 = load ptr, ptr %2, align 8, !tbaa !5
  call void @Parser__mixingTabsSpaces__(ptr noundef %410)
  br label %411

411:                                              ; preds = %409, %406
  br label %486

412:                                              ; preds = %401
  %413 = load ptr, ptr %2, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.tag_____ParserState__, ptr %413, i32 0, i32 7
  %415 = load i32, ptr %414, align 4, !tbaa !20
  %416 = icmp eq i32 %415, 2
  br i1 %416, label %417, label %423

417:                                              ; preds = %412
  %418 = load i32, ptr %8, align 4, !tbaa !14
  %419 = icmp sgt i32 %418, 0
  br i1 %419, label %420, label %422

420:                                              ; preds = %417
  %421 = load ptr, ptr %2, align 8, !tbaa !5
  call void @Parser__mixingTabsSpaces__(ptr noundef %421)
  br label %422

422:                                              ; preds = %420, %417
  br label %485

423:                                              ; preds = %412
  %424 = load ptr, ptr %2, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.tag_____ParserState__, ptr %424, i32 0, i32 7
  %426 = load i32, ptr %425, align 4, !tbaa !20
  %427 = icmp eq i32 %426, 0
  br i1 %427, label %428, label %484

428:                                              ; preds = %423
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #5
  %429 = load i32, ptr %8, align 4, !tbaa !14
  %430 = icmp sgt i32 %429, 0
  %431 = zext i1 %430 to i32
  %432 = trunc i32 %431 to i8
  store i8 %432, ptr %26, align 1, !tbaa !17
  %433 = load i8, ptr %26, align 1, !tbaa !17
  %434 = icmp ne i8 %433, 0
  br i1 %434, label %435, label %440

435:                                              ; preds = %428
  %436 = load i32, ptr %9, align 4, !tbaa !14
  %437 = icmp eq i32 %436, 0
  %438 = zext i1 %437 to i32
  %439 = trunc i32 %438 to i8
  store i8 %439, ptr %26, align 1, !tbaa !17
  br label %440

440:                                              ; preds = %435, %428
  %441 = load i8, ptr %26, align 1, !tbaa !17
  %442 = icmp ne i8 %441, 0
  br i1 %442, label %443, label %446

443:                                              ; preds = %440
  %444 = load ptr, ptr %2, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.tag_____ParserState__, ptr %444, i32 0, i32 7
  store i32 1, ptr %445, align 4, !tbaa !20
  br label %483

446:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #5
  %447 = load i32, ptr %9, align 4, !tbaa !14
  %448 = icmp sgt i32 %447, 0
  %449 = zext i1 %448 to i32
  %450 = trunc i32 %449 to i8
  store i8 %450, ptr %27, align 1, !tbaa !17
  %451 = load i8, ptr %27, align 1, !tbaa !17
  %452 = icmp ne i8 %451, 0
  br i1 %452, label %453, label %458

453:                                              ; preds = %446
  %454 = load i32, ptr %8, align 4, !tbaa !14
  %455 = icmp eq i32 %454, 0
  %456 = zext i1 %455 to i32
  %457 = trunc i32 %456 to i8
  store i8 %457, ptr %27, align 1, !tbaa !17
  br label %458

458:                                              ; preds = %453, %446
  %459 = load i8, ptr %27, align 1, !tbaa !17
  %460 = icmp ne i8 %459, 0
  br i1 %460, label %461, label %464

461:                                              ; preds = %458
  %462 = load ptr, ptr %2, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.tag_____ParserState__, ptr %462, i32 0, i32 7
  store i32 2, ptr %463, align 4, !tbaa !20
  br label %482

464:                                              ; preds = %458
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #5
  %465 = load i32, ptr %9, align 4, !tbaa !14
  %466 = icmp sgt i32 %465, 0
  %467 = zext i1 %466 to i32
  %468 = trunc i32 %467 to i8
  store i8 %468, ptr %28, align 1, !tbaa !17
  %469 = load i8, ptr %28, align 1, !tbaa !17
  %470 = icmp ne i8 %469, 0
  br i1 %470, label %471, label %476

471:                                              ; preds = %464
  %472 = load i32, ptr %8, align 4, !tbaa !14
  %473 = icmp sgt i32 %472, 0
  %474 = zext i1 %473 to i32
  %475 = trunc i32 %474 to i8
  store i8 %475, ptr %28, align 1, !tbaa !17
  br label %476

476:                                              ; preds = %471, %464
  %477 = load i8, ptr %28, align 1, !tbaa !17
  %478 = icmp ne i8 %477, 0
  br i1 %478, label %479, label %481

479:                                              ; preds = %476
  %480 = load ptr, ptr %2, align 8, !tbaa !5
  call void @Parser__mixingTabsSpaces__(ptr noundef %480)
  br label %481

481:                                              ; preds = %479, %476
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #5
  br label %482

482:                                              ; preds = %481, %461
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  br label %483

483:                                              ; preds = %482, %443
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #5
  br label %484

484:                                              ; preds = %483, %423
  br label %485

485:                                              ; preds = %484, %422
  br label %486

486:                                              ; preds = %485, %411
  br label %487

487:                                              ; preds = %486, %398
  store i32 11, ptr %11, align 4
  br label %490

488:                                              ; preds = %386
  br label %489

489:                                              ; preds = %488, %381
  store i32 0, ptr %11, align 4
  br label %490

490:                                              ; preds = %489, %487, %164
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  %491 = load i32, ptr %11, align 4
  switch i32 %491, label %1943 [
    i32 0, label %492
    i32 11, label %493
  ]

492:                                              ; preds = %490
  br label %103

493:                                              ; preds = %490
  %494 = load ptr, ptr %2, align 8, !tbaa !5
  %495 = getelementptr inbounds %struct.tag_____ParserState__, ptr %494, i32 0, i32 1
  %496 = load i32, ptr %495, align 8, !tbaa !9
  store i32 %496, ptr %29, align 4, !tbaa !14
  %497 = load ptr, ptr %2, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.tag_____ParserState__, ptr %497, i32 0, i32 0
  store ptr %498, ptr %30, align 8, !tbaa !5
  %499 = load ptr, ptr %2, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.tag_____ParserState__, ptr %499, i32 0, i32 1
  %501 = load i32, ptr %500, align 8, !tbaa !9
  store i32 %501, ptr %31, align 4, !tbaa !14
  %502 = load i32, ptr %31, align 4, !tbaa !14
  %503 = load ptr, ptr %30, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.string__, ptr %503, i32 0, i32 1
  %505 = load i32, ptr %504, align 8, !tbaa !15
  %506 = icmp ult i32 %502, %505
  br i1 %506, label %510, label %507

507:                                              ; preds = %493
  %508 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %509 = load ptr, ptr %508, align 8, !tbaa !5
  call void %509(i32 noundef -3)
  br label %510

510:                                              ; preds = %507, %493
  %511 = load ptr, ptr %30, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.string__, ptr %511, i32 0, i32 0
  %513 = load ptr, ptr %512, align 8, !tbaa !16
  %514 = load i32, ptr %31, align 4, !tbaa !14
  %515 = zext i32 %514 to i64
  %516 = getelementptr inbounds i8, ptr %513, i64 %515
  %517 = load i8, ptr %516, align 1, !tbaa !17
  store i8 %517, ptr %32, align 1, !tbaa !17
  %518 = load i8, ptr %32, align 1, !tbaa !17
  %519 = sext i8 %518 to i32
  %520 = icmp eq i32 %519, 0
  br i1 %520, label %521, label %577

521:                                              ; preds = %510
  %522 = load ptr, ptr %2, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.tag_____ParserState__, ptr %522, i32 0, i32 1
  %524 = load i32, ptr %523, align 8, !tbaa !9
  %525 = add nsw i32 %524, 1
  %526 = load ptr, ptr %2, align 8, !tbaa !5
  %527 = getelementptr inbounds %struct.tag_____ParserState__, ptr %526, i32 0, i32 1
  store i32 %525, ptr %527, align 8, !tbaa !9
  %528 = load ptr, ptr %2, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.tag_____ParserState__, ptr %528, i32 0, i32 3
  %530 = load ptr, ptr %529, align 8, !tbaa !21
  %531 = getelementptr inbounds %struct.tag_____Token__, ptr %530, i32 0, i32 2
  %532 = getelementptr inbounds %struct.tag_____IntRange__, ptr %531, i32 0, i32 1
  %533 = load i32, ptr %532, align 4, !tbaa !22
  %534 = load ptr, ptr %2, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct.tag_____ParserState__, ptr %534, i32 0, i32 12
  store i32 %533, ptr %535, align 4, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %536 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____currentAllocator__)
  %537 = getelementptr inbounds %struct.tag_____IAllocator__, ptr %536, i32 0, i32 1
  %538 = load ptr, ptr %537, align 8, !tbaa !25
  %539 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____currentAllocator__)
  %540 = getelementptr inbounds %struct.tag_____IAllocator__, ptr %539, i32 0, i32 0
  %541 = load ptr, ptr %540, align 8, !tbaa !27
  %542 = call ptr %538(ptr noundef %541, i64 noundef 48)
  store ptr %542, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr %34) #5
  call void @llvm.memset.p0.i64(ptr align 8 %34, i8 0, i64 48, i1 false)
  %543 = getelementptr inbounds %struct.tag_____Token__, ptr %34, i32 0, i32 0
  store i32 17, ptr %543, align 8, !tbaa !28
  %544 = getelementptr inbounds %struct.tag_____Token__, ptr %34, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #5
  %545 = load ptr, ptr %2, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.tag_____ParserState__, ptr %545, i32 0, i32 0
  %547 = load i32, ptr %29, align 4, !tbaa !14
  %548 = load ptr, ptr %2, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.tag_____ParserState__, ptr %548, i32 0, i32 1
  %550 = load i32, ptr %549, align 8, !tbaa !9
  %551 = getelementptr inbounds { ptr, i32 }, ptr %546, i32 0, i32 0
  %552 = load ptr, ptr %551, align 8
  %553 = getelementptr inbounds { ptr, i32 }, ptr %546, i32 0, i32 1
  %554 = load i32, ptr %553, align 8
  %555 = call { ptr, i32 } @string__slice__(ptr %552, i32 %554, i32 noundef %547, i32 noundef %550)
  %556 = getelementptr inbounds { ptr, i32 }, ptr %35, i32 0, i32 0
  %557 = extractvalue { ptr, i32 } %555, 0
  store ptr %557, ptr %556, align 8
  %558 = getelementptr inbounds { ptr, i32 }, ptr %35, i32 0, i32 1
  %559 = extractvalue { ptr, i32 } %555, 1
  store i32 %559, ptr %558, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %544, ptr align 8 %35, i64 16, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #5
  %560 = getelementptr inbounds %struct.tag_____Token__, ptr %34, i32 0, i32 4
  store i32 0, ptr %560, align 8, !tbaa !30
  %561 = getelementptr inbounds %struct.tag_____Token__, ptr %34, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  %562 = load i32, ptr %29, align 4, !tbaa !14
  %563 = load ptr, ptr %2, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.tag_____ParserState__, ptr %563, i32 0, i32 1
  %565 = load i32, ptr %564, align 8, !tbaa !9
  %566 = call i64 @IntRange__cons__(i32 noundef %562, i32 noundef %565)
  store i64 %566, ptr %36, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %561, ptr align 4 %36, i64 8, i1 false), !tbaa.struct !31
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  %567 = getelementptr inbounds %struct.tag_____Token__, ptr %34, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  %568 = load i32, ptr %3, align 4, !tbaa !14
  %569 = load ptr, ptr %2, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct.tag_____ParserState__, ptr %569, i32 0, i32 1
  %571 = load i32, ptr %570, align 8, !tbaa !9
  %572 = call i64 @IntRange__cons__(i32 noundef %568, i32 noundef %571)
  store i64 %572, ptr %37, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %567, ptr align 4 %37, i64 8, i1 false), !tbaa.struct !31
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  %573 = load ptr, ptr %33, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %573, ptr align 8 %34, i64 48, i1 false), !tbaa.struct !32
  %574 = load ptr, ptr %33, align 8, !tbaa !5
  %575 = load ptr, ptr %2, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.tag_____ParserState__, ptr %575, i32 0, i32 3
  store ptr %574, ptr %576, align 8, !tbaa !21
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  br label %1942

577:                                              ; preds = %510
  %578 = load i8, ptr %32, align 1, !tbaa !17
  %579 = sext i8 %578 to i32
  %580 = icmp eq i32 %579, 44
  br i1 %580, label %581, label %592

581:                                              ; preds = %577
  %582 = load ptr, ptr %2, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.tag_____ParserState__, ptr %582, i32 0, i32 1
  %584 = load i32, ptr %583, align 8, !tbaa !9
  %585 = add nsw i32 %584, 1
  %586 = load ptr, ptr %2, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.tag_____ParserState__, ptr %586, i32 0, i32 1
  store i32 %585, ptr %587, align 8, !tbaa !9
  %588 = load ptr, ptr %2, align 8, !tbaa !5
  %589 = load i32, ptr %3, align 4, !tbaa !14
  %590 = load i32, ptr %29, align 4, !tbaa !14
  %591 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %588, i32 noundef %589, i32 noundef %590, i32 noundef %591, i32 noundef 13)
  br label %1941

592:                                              ; preds = %577
  %593 = load i8, ptr %32, align 1, !tbaa !17
  %594 = sext i8 %593 to i32
  %595 = icmp eq i32 %594, 59
  br i1 %595, label %596, label %607

596:                                              ; preds = %592
  %597 = load ptr, ptr %2, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.tag_____ParserState__, ptr %597, i32 0, i32 1
  %599 = load i32, ptr %598, align 8, !tbaa !9
  %600 = add nsw i32 %599, 1
  %601 = load ptr, ptr %2, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.tag_____ParserState__, ptr %601, i32 0, i32 1
  store i32 %600, ptr %602, align 8, !tbaa !9
  %603 = load ptr, ptr %2, align 8, !tbaa !5
  %604 = load i32, ptr %3, align 4, !tbaa !14
  %605 = load i32, ptr %29, align 4, !tbaa !14
  %606 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %603, i32 noundef %604, i32 noundef %605, i32 noundef %606, i32 noundef 14)
  br label %1940

607:                                              ; preds = %592
  %608 = load i8, ptr %32, align 1, !tbaa !17
  %609 = sext i8 %608 to i32
  %610 = icmp eq i32 %609, 58
  br i1 %610, label %611, label %672

611:                                              ; preds = %607
  %612 = load ptr, ptr %2, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.tag_____ParserState__, ptr %612, i32 0, i32 1
  %614 = load i32, ptr %613, align 8, !tbaa !9
  %615 = add nsw i32 %614, 1
  %616 = load ptr, ptr %2, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.tag_____ParserState__, ptr %616, i32 0, i32 1
  store i32 %615, ptr %617, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  %618 = load ptr, ptr %2, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.tag_____ParserState__, ptr %618, i32 0, i32 0
  store ptr %619, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  %620 = load ptr, ptr %2, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.tag_____ParserState__, ptr %620, i32 0, i32 1
  %622 = load i32, ptr %621, align 8, !tbaa !9
  store i32 %622, ptr %39, align 4, !tbaa !14
  %623 = load i32, ptr %39, align 4, !tbaa !14
  %624 = load ptr, ptr %38, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.string__, ptr %624, i32 0, i32 1
  %626 = load i32, ptr %625, align 8, !tbaa !15
  %627 = icmp ult i32 %623, %626
  br i1 %627, label %631, label %628

628:                                              ; preds = %611
  %629 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %630 = load ptr, ptr %629, align 8, !tbaa !5
  call void %630(i32 noundef -3)
  br label %631

631:                                              ; preds = %628, %611
  %632 = load ptr, ptr %38, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.string__, ptr %632, i32 0, i32 0
  %634 = load ptr, ptr %633, align 8, !tbaa !16
  %635 = load i32, ptr %39, align 4, !tbaa !14
  %636 = zext i32 %635 to i64
  %637 = getelementptr inbounds i8, ptr %634, i64 %636
  %638 = load i8, ptr %637, align 1, !tbaa !17
  store i8 %638, ptr %32, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #5
  %639 = load i8, ptr %32, align 1, !tbaa !17
  %640 = sext i8 %639 to i32
  %641 = icmp eq i32 %640, 61
  %642 = zext i1 %641 to i32
  %643 = trunc i32 %642 to i8
  store i8 %643, ptr %40, align 1, !tbaa !17
  %644 = load i8, ptr %40, align 1, !tbaa !17
  %645 = icmp ne i8 %644, 0
  br i1 %645, label %652, label %646

646:                                              ; preds = %631
  %647 = load i8, ptr %32, align 1, !tbaa !17
  %648 = sext i8 %647 to i32
  %649 = icmp eq i32 %648, 58
  %650 = zext i1 %649 to i32
  %651 = trunc i32 %650 to i8
  store i8 %651, ptr %40, align 1, !tbaa !17
  br label %652

652:                                              ; preds = %646, %631
  %653 = load i8, ptr %40, align 1, !tbaa !17
  %654 = icmp ne i8 %653, 0
  br i1 %654, label %655, label %666

655:                                              ; preds = %652
  %656 = load ptr, ptr %2, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.tag_____ParserState__, ptr %656, i32 0, i32 1
  %658 = load i32, ptr %657, align 8, !tbaa !9
  %659 = add nsw i32 %658, 1
  %660 = load ptr, ptr %2, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.tag_____ParserState__, ptr %660, i32 0, i32 1
  store i32 %659, ptr %661, align 8, !tbaa !9
  %662 = load ptr, ptr %2, align 8, !tbaa !5
  %663 = load i32, ptr %3, align 4, !tbaa !14
  %664 = load i32, ptr %29, align 4, !tbaa !14
  %665 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %662, i32 noundef %663, i32 noundef %664, i32 noundef %665, i32 noundef 4)
  br label %671

666:                                              ; preds = %652
  %667 = load ptr, ptr %2, align 8, !tbaa !5
  %668 = load i32, ptr %3, align 4, !tbaa !14
  %669 = load i32, ptr %29, align 4, !tbaa !14
  %670 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %667, i32 noundef %668, i32 noundef %669, i32 noundef %670, i32 noundef 15)
  br label %671

671:                                              ; preds = %666, %655
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  br label %1939

672:                                              ; preds = %607
  %673 = load i8, ptr %32, align 1, !tbaa !17
  %674 = sext i8 %673 to i32
  %675 = icmp eq i32 %674, 40
  br i1 %675, label %676, label %687

676:                                              ; preds = %672
  %677 = load ptr, ptr %2, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.tag_____ParserState__, ptr %677, i32 0, i32 1
  %679 = load i32, ptr %678, align 8, !tbaa !9
  %680 = add nsw i32 %679, 1
  %681 = load ptr, ptr %2, align 8, !tbaa !5
  %682 = getelementptr inbounds %struct.tag_____ParserState__, ptr %681, i32 0, i32 1
  store i32 %680, ptr %682, align 8, !tbaa !9
  %683 = load ptr, ptr %2, align 8, !tbaa !5
  %684 = load i32, ptr %3, align 4, !tbaa !14
  %685 = load i32, ptr %29, align 4, !tbaa !14
  %686 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %683, i32 noundef %684, i32 noundef %685, i32 noundef %686, i32 noundef 5)
  br label %1938

687:                                              ; preds = %672
  %688 = load i8, ptr %32, align 1, !tbaa !17
  %689 = sext i8 %688 to i32
  %690 = icmp eq i32 %689, 41
  br i1 %690, label %691, label %702

691:                                              ; preds = %687
  %692 = load ptr, ptr %2, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.tag_____ParserState__, ptr %692, i32 0, i32 1
  %694 = load i32, ptr %693, align 8, !tbaa !9
  %695 = add nsw i32 %694, 1
  %696 = load ptr, ptr %2, align 8, !tbaa !5
  %697 = getelementptr inbounds %struct.tag_____ParserState__, ptr %696, i32 0, i32 1
  store i32 %695, ptr %697, align 8, !tbaa !9
  %698 = load ptr, ptr %2, align 8, !tbaa !5
  %699 = load i32, ptr %3, align 4, !tbaa !14
  %700 = load i32, ptr %29, align 4, !tbaa !14
  %701 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %698, i32 noundef %699, i32 noundef %700, i32 noundef %701, i32 noundef 6)
  br label %1937

702:                                              ; preds = %687
  %703 = load i8, ptr %32, align 1, !tbaa !17
  %704 = sext i8 %703 to i32
  %705 = icmp eq i32 %704, 123
  br i1 %705, label %706, label %717

706:                                              ; preds = %702
  %707 = load ptr, ptr %2, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.tag_____ParserState__, ptr %707, i32 0, i32 1
  %709 = load i32, ptr %708, align 8, !tbaa !9
  %710 = add nsw i32 %709, 1
  %711 = load ptr, ptr %2, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.tag_____ParserState__, ptr %711, i32 0, i32 1
  store i32 %710, ptr %712, align 8, !tbaa !9
  %713 = load ptr, ptr %2, align 8, !tbaa !5
  %714 = load i32, ptr %3, align 4, !tbaa !14
  %715 = load i32, ptr %29, align 4, !tbaa !14
  %716 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %713, i32 noundef %714, i32 noundef %715, i32 noundef %716, i32 noundef 7)
  br label %1936

717:                                              ; preds = %702
  %718 = load i8, ptr %32, align 1, !tbaa !17
  %719 = sext i8 %718 to i32
  %720 = icmp eq i32 %719, 125
  br i1 %720, label %721, label %732

721:                                              ; preds = %717
  %722 = load ptr, ptr %2, align 8, !tbaa !5
  %723 = getelementptr inbounds %struct.tag_____ParserState__, ptr %722, i32 0, i32 1
  %724 = load i32, ptr %723, align 8, !tbaa !9
  %725 = add nsw i32 %724, 1
  %726 = load ptr, ptr %2, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.tag_____ParserState__, ptr %726, i32 0, i32 1
  store i32 %725, ptr %727, align 8, !tbaa !9
  %728 = load ptr, ptr %2, align 8, !tbaa !5
  %729 = load i32, ptr %3, align 4, !tbaa !14
  %730 = load i32, ptr %29, align 4, !tbaa !14
  %731 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %728, i32 noundef %729, i32 noundef %730, i32 noundef %731, i32 noundef 8)
  br label %1935

732:                                              ; preds = %717
  %733 = load i8, ptr %32, align 1, !tbaa !17
  %734 = sext i8 %733 to i32
  %735 = icmp eq i32 %734, 91
  br i1 %735, label %736, label %747

736:                                              ; preds = %732
  %737 = load ptr, ptr %2, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.tag_____ParserState__, ptr %737, i32 0, i32 1
  %739 = load i32, ptr %738, align 8, !tbaa !9
  %740 = add nsw i32 %739, 1
  %741 = load ptr, ptr %2, align 8, !tbaa !5
  %742 = getelementptr inbounds %struct.tag_____ParserState__, ptr %741, i32 0, i32 1
  store i32 %740, ptr %742, align 8, !tbaa !9
  %743 = load ptr, ptr %2, align 8, !tbaa !5
  %744 = load i32, ptr %3, align 4, !tbaa !14
  %745 = load i32, ptr %29, align 4, !tbaa !14
  %746 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %743, i32 noundef %744, i32 noundef %745, i32 noundef %746, i32 noundef 9)
  br label %1934

747:                                              ; preds = %732
  %748 = load i8, ptr %32, align 1, !tbaa !17
  %749 = sext i8 %748 to i32
  %750 = icmp eq i32 %749, 93
  br i1 %750, label %751, label %762

751:                                              ; preds = %747
  %752 = load ptr, ptr %2, align 8, !tbaa !5
  %753 = getelementptr inbounds %struct.tag_____ParserState__, ptr %752, i32 0, i32 1
  %754 = load i32, ptr %753, align 8, !tbaa !9
  %755 = add nsw i32 %754, 1
  %756 = load ptr, ptr %2, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.tag_____ParserState__, ptr %756, i32 0, i32 1
  store i32 %755, ptr %757, align 8, !tbaa !9
  %758 = load ptr, ptr %2, align 8, !tbaa !5
  %759 = load i32, ptr %3, align 4, !tbaa !14
  %760 = load i32, ptr %29, align 4, !tbaa !14
  %761 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %758, i32 noundef %759, i32 noundef %760, i32 noundef %761, i32 noundef 10)
  br label %1933

762:                                              ; preds = %747
  %763 = load i8, ptr %32, align 1, !tbaa !17
  %764 = sext i8 %763 to i32
  %765 = icmp eq i32 %764, 60
  br i1 %765, label %766, label %862

766:                                              ; preds = %762
  %767 = load ptr, ptr %2, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.tag_____ParserState__, ptr %767, i32 0, i32 1
  %769 = load i32, ptr %768, align 8, !tbaa !9
  %770 = add nsw i32 %769, 1
  %771 = load ptr, ptr %2, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.tag_____ParserState__, ptr %771, i32 0, i32 1
  store i32 %770, ptr %772, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  %773 = load ptr, ptr %2, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.tag_____ParserState__, ptr %773, i32 0, i32 0
  store ptr %774, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  %775 = load ptr, ptr %2, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.tag_____ParserState__, ptr %775, i32 0, i32 1
  %777 = load i32, ptr %776, align 8, !tbaa !9
  store i32 %777, ptr %42, align 4, !tbaa !14
  %778 = load i32, ptr %42, align 4, !tbaa !14
  %779 = load ptr, ptr %41, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.string__, ptr %779, i32 0, i32 1
  %781 = load i32, ptr %780, align 8, !tbaa !15
  %782 = icmp ult i32 %778, %781
  br i1 %782, label %786, label %783

783:                                              ; preds = %766
  %784 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %785 = load ptr, ptr %784, align 8, !tbaa !5
  call void %785(i32 noundef -3)
  br label %786

786:                                              ; preds = %783, %766
  %787 = load ptr, ptr %41, align 8, !tbaa !5
  %788 = getelementptr inbounds %struct.string__, ptr %787, i32 0, i32 0
  %789 = load ptr, ptr %788, align 8, !tbaa !16
  %790 = load i32, ptr %42, align 4, !tbaa !14
  %791 = zext i32 %790 to i64
  %792 = getelementptr inbounds i8, ptr %789, i64 %791
  %793 = load i8, ptr %792, align 1, !tbaa !17
  store i8 %793, ptr %32, align 1, !tbaa !17
  %794 = load i8, ptr %32, align 1, !tbaa !17
  %795 = sext i8 %794 to i32
  %796 = icmp eq i32 %795, 61
  br i1 %796, label %797, label %808

797:                                              ; preds = %786
  %798 = load ptr, ptr %2, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.tag_____ParserState__, ptr %798, i32 0, i32 1
  %800 = load i32, ptr %799, align 8, !tbaa !9
  %801 = add nsw i32 %800, 1
  %802 = load ptr, ptr %2, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.tag_____ParserState__, ptr %802, i32 0, i32 1
  store i32 %801, ptr %803, align 8, !tbaa !9
  %804 = load ptr, ptr %2, align 8, !tbaa !5
  %805 = load i32, ptr %3, align 4, !tbaa !14
  %806 = load i32, ptr %29, align 4, !tbaa !14
  %807 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %804, i32 noundef %805, i32 noundef %806, i32 noundef %807, i32 noundef 4)
  br label %861

808:                                              ; preds = %786
  %809 = load i8, ptr %32, align 1, !tbaa !17
  %810 = sext i8 %809 to i32
  %811 = icmp eq i32 %810, 60
  br i1 %811, label %812, label %855

812:                                              ; preds = %808
  %813 = load ptr, ptr %2, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.tag_____ParserState__, ptr %813, i32 0, i32 1
  %815 = load i32, ptr %814, align 8, !tbaa !9
  %816 = add nsw i32 %815, 1
  %817 = load ptr, ptr %2, align 8, !tbaa !5
  %818 = getelementptr inbounds %struct.tag_____ParserState__, ptr %817, i32 0, i32 1
  store i32 %816, ptr %818, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  %819 = load ptr, ptr %2, align 8, !tbaa !5
  %820 = getelementptr inbounds %struct.tag_____ParserState__, ptr %819, i32 0, i32 0
  store ptr %820, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  %821 = load ptr, ptr %2, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.tag_____ParserState__, ptr %821, i32 0, i32 1
  %823 = load i32, ptr %822, align 8, !tbaa !9
  store i32 %823, ptr %44, align 4, !tbaa !14
  %824 = load i32, ptr %44, align 4, !tbaa !14
  %825 = load ptr, ptr %43, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.string__, ptr %825, i32 0, i32 1
  %827 = load i32, ptr %826, align 8, !tbaa !15
  %828 = icmp ult i32 %824, %827
  br i1 %828, label %832, label %829

829:                                              ; preds = %812
  %830 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %831 = load ptr, ptr %830, align 8, !tbaa !5
  call void %831(i32 noundef -3)
  br label %832

832:                                              ; preds = %829, %812
  %833 = load ptr, ptr %43, align 8, !tbaa !5
  %834 = getelementptr inbounds %struct.string__, ptr %833, i32 0, i32 0
  %835 = load ptr, ptr %834, align 8, !tbaa !16
  %836 = load i32, ptr %44, align 4, !tbaa !14
  %837 = zext i32 %836 to i64
  %838 = getelementptr inbounds i8, ptr %835, i64 %837
  %839 = load i8, ptr %838, align 1, !tbaa !17
  store i8 %839, ptr %32, align 1, !tbaa !17
  %840 = load i8, ptr %32, align 1, !tbaa !17
  %841 = sext i8 %840 to i32
  %842 = icmp eq i32 %841, 61
  br i1 %842, label %843, label %850

843:                                              ; preds = %832
  %844 = load ptr, ptr %2, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.tag_____ParserState__, ptr %844, i32 0, i32 1
  %846 = load i32, ptr %845, align 8, !tbaa !9
  %847 = add nsw i32 %846, 1
  %848 = load ptr, ptr %2, align 8, !tbaa !5
  %849 = getelementptr inbounds %struct.tag_____ParserState__, ptr %848, i32 0, i32 1
  store i32 %847, ptr %849, align 8, !tbaa !9
  br label %850

850:                                              ; preds = %843, %832
  %851 = load ptr, ptr %2, align 8, !tbaa !5
  %852 = load i32, ptr %3, align 4, !tbaa !14
  %853 = load i32, ptr %29, align 4, !tbaa !14
  %854 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %851, i32 noundef %852, i32 noundef %853, i32 noundef %854, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  br label %860

855:                                              ; preds = %808
  %856 = load ptr, ptr %2, align 8, !tbaa !5
  %857 = load i32, ptr %3, align 4, !tbaa !14
  %858 = load i32, ptr %29, align 4, !tbaa !14
  %859 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %856, i32 noundef %857, i32 noundef %858, i32 noundef %859, i32 noundef 11)
  br label %860

860:                                              ; preds = %855, %850
  br label %861

861:                                              ; preds = %860, %797
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  br label %1932

862:                                              ; preds = %762
  %863 = load i8, ptr %32, align 1, !tbaa !17
  %864 = sext i8 %863 to i32
  %865 = icmp eq i32 %864, 62
  br i1 %865, label %866, label %986

866:                                              ; preds = %862
  %867 = load ptr, ptr %2, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.tag_____ParserState__, ptr %867, i32 0, i32 1
  %869 = load i32, ptr %868, align 8, !tbaa !9
  %870 = add nsw i32 %869, 1
  %871 = load ptr, ptr %2, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.tag_____ParserState__, ptr %871, i32 0, i32 1
  store i32 %870, ptr %872, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  %873 = load ptr, ptr %2, align 8, !tbaa !5
  %874 = getelementptr inbounds %struct.tag_____ParserState__, ptr %873, i32 0, i32 0
  store ptr %874, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  %875 = load ptr, ptr %2, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.tag_____ParserState__, ptr %875, i32 0, i32 1
  %877 = load i32, ptr %876, align 8, !tbaa !9
  store i32 %877, ptr %46, align 4, !tbaa !14
  %878 = load i32, ptr %46, align 4, !tbaa !14
  %879 = load ptr, ptr %45, align 8, !tbaa !5
  %880 = getelementptr inbounds %struct.string__, ptr %879, i32 0, i32 1
  %881 = load i32, ptr %880, align 8, !tbaa !15
  %882 = icmp ult i32 %878, %881
  br i1 %882, label %886, label %883

883:                                              ; preds = %866
  %884 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %885 = load ptr, ptr %884, align 8, !tbaa !5
  call void %885(i32 noundef -3)
  br label %886

886:                                              ; preds = %883, %866
  %887 = load ptr, ptr %45, align 8, !tbaa !5
  %888 = getelementptr inbounds %struct.string__, ptr %887, i32 0, i32 0
  %889 = load ptr, ptr %888, align 8, !tbaa !16
  %890 = load i32, ptr %46, align 4, !tbaa !14
  %891 = zext i32 %890 to i64
  %892 = getelementptr inbounds i8, ptr %889, i64 %891
  %893 = load i8, ptr %892, align 1, !tbaa !17
  store i8 %893, ptr %32, align 1, !tbaa !17
  %894 = load i8, ptr %32, align 1, !tbaa !17
  %895 = sext i8 %894 to i32
  %896 = icmp eq i32 %895, 61
  br i1 %896, label %897, label %908

897:                                              ; preds = %886
  %898 = load ptr, ptr %2, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.tag_____ParserState__, ptr %898, i32 0, i32 1
  %900 = load i32, ptr %899, align 8, !tbaa !9
  %901 = add nsw i32 %900, 1
  %902 = load ptr, ptr %2, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.tag_____ParserState__, ptr %902, i32 0, i32 1
  store i32 %901, ptr %903, align 8, !tbaa !9
  %904 = load ptr, ptr %2, align 8, !tbaa !5
  %905 = load i32, ptr %3, align 4, !tbaa !14
  %906 = load i32, ptr %29, align 4, !tbaa !14
  %907 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %904, i32 noundef %905, i32 noundef %906, i32 noundef %907, i32 noundef 4)
  br label %985

908:                                              ; preds = %886
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #5
  %909 = load i8, ptr %32, align 1, !tbaa !17
  %910 = sext i8 %909 to i32
  %911 = icmp eq i32 %910, 62
  %912 = zext i1 %911 to i32
  %913 = trunc i32 %912 to i8
  store i8 %913, ptr %47, align 1, !tbaa !17
  %914 = load i8, ptr %47, align 1, !tbaa !17
  %915 = icmp ne i8 %914, 0
  br i1 %915, label %916, label %943

916:                                              ; preds = %908
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  %917 = load ptr, ptr %2, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.tag_____ParserState__, ptr %917, i32 0, i32 0
  store ptr %918, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  %919 = load ptr, ptr %2, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.tag_____ParserState__, ptr %919, i32 0, i32 1
  %921 = load i32, ptr %920, align 8, !tbaa !9
  %922 = add nsw i32 %921, 1
  store i32 %922, ptr %49, align 4, !tbaa !14
  %923 = load i32, ptr %49, align 4, !tbaa !14
  %924 = load ptr, ptr %48, align 8, !tbaa !5
  %925 = getelementptr inbounds %struct.string__, ptr %924, i32 0, i32 1
  %926 = load i32, ptr %925, align 8, !tbaa !15
  %927 = icmp ult i32 %923, %926
  br i1 %927, label %931, label %928

928:                                              ; preds = %916
  %929 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %930 = load ptr, ptr %929, align 8, !tbaa !5
  call void %930(i32 noundef -3)
  br label %931

931:                                              ; preds = %928, %916
  %932 = load ptr, ptr %48, align 8, !tbaa !5
  %933 = getelementptr inbounds %struct.string__, ptr %932, i32 0, i32 0
  %934 = load ptr, ptr %933, align 8, !tbaa !16
  %935 = load i32, ptr %49, align 4, !tbaa !14
  %936 = zext i32 %935 to i64
  %937 = getelementptr inbounds i8, ptr %934, i64 %936
  %938 = load i8, ptr %937, align 1, !tbaa !17
  %939 = sext i8 %938 to i32
  %940 = icmp eq i32 %939, 61
  %941 = zext i1 %940 to i32
  %942 = trunc i32 %941 to i8
  store i8 %942, ptr %47, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  br label %943

943:                                              ; preds = %931, %908
  %944 = load i8, ptr %47, align 1, !tbaa !17
  %945 = icmp ne i8 %944, 0
  br i1 %945, label %946, label %957

946:                                              ; preds = %943
  %947 = load ptr, ptr %2, align 8, !tbaa !5
  %948 = getelementptr inbounds %struct.tag_____ParserState__, ptr %947, i32 0, i32 1
  %949 = load i32, ptr %948, align 8, !tbaa !9
  %950 = add nsw i32 %949, 2
  %951 = load ptr, ptr %2, align 8, !tbaa !5
  %952 = getelementptr inbounds %struct.tag_____ParserState__, ptr %951, i32 0, i32 1
  store i32 %950, ptr %952, align 8, !tbaa !9
  %953 = load ptr, ptr %2, align 8, !tbaa !5
  %954 = load i32, ptr %3, align 4, !tbaa !14
  %955 = load i32, ptr %29, align 4, !tbaa !14
  %956 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %953, i32 noundef %954, i32 noundef %955, i32 noundef %956, i32 noundef 4)
  br label %984

957:                                              ; preds = %943
  %958 = load ptr, ptr %2, align 8, !tbaa !5
  %959 = getelementptr inbounds %struct.tag_____ParserState__, ptr %958, i32 0, i32 8
  %960 = load i32, ptr %959, align 8, !tbaa !33
  %961 = icmp sgt i32 %960, 0
  br i1 %961, label %962, label %967

962:                                              ; preds = %957
  %963 = load ptr, ptr %2, align 8, !tbaa !5
  %964 = load i32, ptr %3, align 4, !tbaa !14
  %965 = load i32, ptr %29, align 4, !tbaa !14
  %966 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %963, i32 noundef %964, i32 noundef %965, i32 noundef %966, i32 noundef 12)
  br label %983

967:                                              ; preds = %957
  %968 = load i8, ptr %32, align 1, !tbaa !17
  %969 = sext i8 %968 to i32
  %970 = icmp eq i32 %969, 62
  br i1 %970, label %971, label %978

971:                                              ; preds = %967
  %972 = load ptr, ptr %2, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.tag_____ParserState__, ptr %972, i32 0, i32 1
  %974 = load i32, ptr %973, align 8, !tbaa !9
  %975 = add nsw i32 %974, 1
  %976 = load ptr, ptr %2, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.tag_____ParserState__, ptr %976, i32 0, i32 1
  store i32 %975, ptr %977, align 8, !tbaa !9
  br label %978

978:                                              ; preds = %971, %967
  %979 = load ptr, ptr %2, align 8, !tbaa !5
  %980 = load i32, ptr %3, align 4, !tbaa !14
  %981 = load i32, ptr %29, align 4, !tbaa !14
  %982 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %979, i32 noundef %980, i32 noundef %981, i32 noundef %982, i32 noundef 4)
  br label %983

983:                                              ; preds = %978, %962
  br label %984

984:                                              ; preds = %983, %946
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #5
  br label %985

985:                                              ; preds = %984, %897
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  br label %1931

986:                                              ; preds = %862
  %987 = load i8, ptr %32, align 1, !tbaa !17
  %988 = sext i8 %987 to i32
  %989 = icmp eq i32 %988, 35
  br i1 %989, label %990, label %1001

990:                                              ; preds = %986
  %991 = load ptr, ptr %2, align 8, !tbaa !5
  %992 = getelementptr inbounds %struct.tag_____ParserState__, ptr %991, i32 0, i32 1
  %993 = load i32, ptr %992, align 8, !tbaa !9
  %994 = add nsw i32 %993, 1
  %995 = load ptr, ptr %2, align 8, !tbaa !5
  %996 = getelementptr inbounds %struct.tag_____ParserState__, ptr %995, i32 0, i32 1
  store i32 %994, ptr %996, align 8, !tbaa !9
  %997 = load ptr, ptr %2, align 8, !tbaa !5
  %998 = load i32, ptr %3, align 4, !tbaa !14
  %999 = load i32, ptr %29, align 4, !tbaa !14
  %1000 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %997, i32 noundef %998, i32 noundef %999, i32 noundef %1000, i32 noundef 16)
  br label %1930

1001:                                             ; preds = %986
  %1002 = load i8, ptr %32, align 1, !tbaa !17
  %1003 = sext i8 %1002 to i32
  %1004 = icmp eq i32 %1003, 94
  br i1 %1004, label %1005, label %1016

1005:                                             ; preds = %1001
  %1006 = load ptr, ptr %2, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1006, i32 0, i32 1
  %1008 = load i32, ptr %1007, align 8, !tbaa !9
  %1009 = add nsw i32 %1008, 1
  %1010 = load ptr, ptr %2, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1010, i32 0, i32 1
  store i32 %1009, ptr %1011, align 8, !tbaa !9
  %1012 = load ptr, ptr %2, align 8, !tbaa !5
  %1013 = load i32, ptr %3, align 4, !tbaa !14
  %1014 = load i32, ptr %29, align 4, !tbaa !14
  %1015 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1012, i32 noundef %1013, i32 noundef %1014, i32 noundef %1015, i32 noundef 4)
  br label %1929

1016:                                             ; preds = %1001
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #5
  %1017 = load i8, ptr %32, align 1, !tbaa !17
  %1018 = zext i8 %1017 to i32
  %1019 = icmp sge i32 %1018, 65
  %1020 = zext i1 %1019 to i32
  %1021 = trunc i32 %1020 to i8
  store i8 %1021, ptr %50, align 1, !tbaa !17
  %1022 = load i8, ptr %50, align 1, !tbaa !17
  %1023 = icmp ne i8 %1022, 0
  br i1 %1023, label %1024, label %1030

1024:                                             ; preds = %1016
  %1025 = load i8, ptr %32, align 1, !tbaa !17
  %1026 = zext i8 %1025 to i32
  %1027 = icmp sle i32 %1026, 90
  %1028 = zext i1 %1027 to i32
  %1029 = trunc i32 %1028 to i8
  store i8 %1029, ptr %50, align 1, !tbaa !17
  br label %1030

1030:                                             ; preds = %1024, %1016
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #5
  %1031 = load i8, ptr %50, align 1, !tbaa !17
  store i8 %1031, ptr %51, align 1, !tbaa !17
  %1032 = load i8, ptr %51, align 1, !tbaa !17
  %1033 = icmp ne i8 %1032, 0
  br i1 %1033, label %1050, label %1034

1034:                                             ; preds = %1030
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #5
  %1035 = load i8, ptr %32, align 1, !tbaa !17
  %1036 = zext i8 %1035 to i32
  %1037 = icmp sge i32 %1036, 97
  %1038 = zext i1 %1037 to i32
  %1039 = trunc i32 %1038 to i8
  store i8 %1039, ptr %52, align 1, !tbaa !17
  %1040 = load i8, ptr %52, align 1, !tbaa !17
  %1041 = icmp ne i8 %1040, 0
  br i1 %1041, label %1042, label %1048

1042:                                             ; preds = %1034
  %1043 = load i8, ptr %32, align 1, !tbaa !17
  %1044 = zext i8 %1043 to i32
  %1045 = icmp sle i32 %1044, 122
  %1046 = zext i1 %1045 to i32
  %1047 = trunc i32 %1046 to i8
  store i8 %1047, ptr %52, align 1, !tbaa !17
  br label %1048

1048:                                             ; preds = %1042, %1034
  %1049 = load i8, ptr %52, align 1, !tbaa !17
  store i8 %1049, ptr %51, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  br label %1050

1050:                                             ; preds = %1048, %1030
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #5
  %1051 = load i8, ptr %51, align 1, !tbaa !17
  store i8 %1051, ptr %53, align 1, !tbaa !17
  %1052 = load i8, ptr %53, align 1, !tbaa !17
  %1053 = icmp ne i8 %1052, 0
  br i1 %1053, label %1060, label %1054

1054:                                             ; preds = %1050
  %1055 = load i8, ptr %32, align 1, !tbaa !17
  %1056 = sext i8 %1055 to i32
  %1057 = icmp eq i32 %1056, 95
  %1058 = zext i1 %1057 to i32
  %1059 = trunc i32 %1058 to i8
  store i8 %1059, ptr %53, align 1, !tbaa !17
  br label %1060

1060:                                             ; preds = %1054, %1050
  %1061 = load i8, ptr %53, align 1, !tbaa !17
  %1062 = icmp ne i8 %1061, 0
  br i1 %1062, label %1063, label %1130

1063:                                             ; preds = %1060
  %1064 = load ptr, ptr %2, align 8, !tbaa !5
  %1065 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1064, i32 0, i32 1
  %1066 = load i32, ptr %1065, align 8, !tbaa !9
  %1067 = add nsw i32 %1066, 1
  %1068 = load ptr, ptr %2, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1068, i32 0, i32 1
  store i32 %1067, ptr %1069, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  %1070 = load ptr, ptr %2, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1070, i32 0, i32 0
  store ptr %1071, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  %1072 = load ptr, ptr %2, align 8, !tbaa !5
  %1073 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1072, i32 0, i32 1
  %1074 = load i32, ptr %1073, align 8, !tbaa !9
  store i32 %1074, ptr %55, align 4, !tbaa !14
  %1075 = load i32, ptr %55, align 4, !tbaa !14
  %1076 = load ptr, ptr %54, align 8, !tbaa !5
  %1077 = getelementptr inbounds %struct.string__, ptr %1076, i32 0, i32 1
  %1078 = load i32, ptr %1077, align 8, !tbaa !15
  %1079 = icmp ult i32 %1075, %1078
  br i1 %1079, label %1083, label %1080

1080:                                             ; preds = %1063
  %1081 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1082 = load ptr, ptr %1081, align 8, !tbaa !5
  call void %1082(i32 noundef -3)
  br label %1083

1083:                                             ; preds = %1080, %1063
  %1084 = load ptr, ptr %54, align 8, !tbaa !5
  %1085 = getelementptr inbounds %struct.string__, ptr %1084, i32 0, i32 0
  %1086 = load ptr, ptr %1085, align 8, !tbaa !16
  %1087 = load i32, ptr %55, align 4, !tbaa !14
  %1088 = zext i32 %1087 to i64
  %1089 = getelementptr inbounds i8, ptr %1086, i64 %1088
  %1090 = load i8, ptr %1089, align 1, !tbaa !17
  store i8 %1090, ptr %32, align 1, !tbaa !17
  br label %1091

1091:                                             ; preds = %1117, %1083
  br label %1092

1092:                                             ; preds = %1091
  %1093 = load i8, ptr %32, align 1, !tbaa !17
  %1094 = call zeroext i8 @Parser__isIdentifierChar__(i8 noundef signext %1093)
  %1095 = icmp ne i8 %1094, 0
  br i1 %1095, label %1097, label %1096

1096:                                             ; preds = %1092
  br label %1125

1097:                                             ; preds = %1092
  %1098 = load ptr, ptr %2, align 8, !tbaa !5
  %1099 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1098, i32 0, i32 1
  %1100 = load i32, ptr %1099, align 8, !tbaa !9
  %1101 = add nsw i32 %1100, 1
  %1102 = load ptr, ptr %2, align 8, !tbaa !5
  %1103 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1102, i32 0, i32 1
  store i32 %1101, ptr %1103, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #5
  %1104 = load ptr, ptr %2, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1104, i32 0, i32 0
  store ptr %1105, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  %1106 = load ptr, ptr %2, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1106, i32 0, i32 1
  %1108 = load i32, ptr %1107, align 8, !tbaa !9
  store i32 %1108, ptr %57, align 4, !tbaa !14
  %1109 = load i32, ptr %57, align 4, !tbaa !14
  %1110 = load ptr, ptr %56, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.string__, ptr %1110, i32 0, i32 1
  %1112 = load i32, ptr %1111, align 8, !tbaa !15
  %1113 = icmp ult i32 %1109, %1112
  br i1 %1113, label %1117, label %1114

1114:                                             ; preds = %1097
  %1115 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1116 = load ptr, ptr %1115, align 8, !tbaa !5
  call void %1116(i32 noundef -3)
  br label %1117

1117:                                             ; preds = %1114, %1097
  %1118 = load ptr, ptr %56, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.string__, ptr %1118, i32 0, i32 0
  %1120 = load ptr, ptr %1119, align 8, !tbaa !16
  %1121 = load i32, ptr %57, align 4, !tbaa !14
  %1122 = zext i32 %1121 to i64
  %1123 = getelementptr inbounds i8, ptr %1120, i64 %1122
  %1124 = load i8, ptr %1123, align 1, !tbaa !17
  store i8 %1124, ptr %32, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  br label %1091

1125:                                             ; preds = %1096
  %1126 = load ptr, ptr %2, align 8, !tbaa !5
  %1127 = load i32, ptr %3, align 4, !tbaa !14
  %1128 = load i32, ptr %29, align 4, !tbaa !14
  %1129 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1126, i32 noundef %1127, i32 noundef %1128, i32 noundef %1129, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  br label %1928

1130:                                             ; preds = %1060
  %1131 = load i8, ptr %32, align 1, !tbaa !17
  %1132 = sext i8 %1131 to i32
  %1133 = icmp eq i32 %1132, 34
  br i1 %1133, label %1134, label %1269

1134:                                             ; preds = %1130
  %1135 = load ptr, ptr %2, align 8, !tbaa !5
  %1136 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1135, i32 0, i32 1
  %1137 = load i32, ptr %1136, align 8, !tbaa !9
  %1138 = add nsw i32 %1137, 1
  %1139 = load ptr, ptr %2, align 8, !tbaa !5
  %1140 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1139, i32 0, i32 1
  store i32 %1138, ptr %1140, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  %1141 = load ptr, ptr %2, align 8, !tbaa !5
  %1142 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1141, i32 0, i32 0
  store ptr %1142, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #5
  %1143 = load ptr, ptr %2, align 8, !tbaa !5
  %1144 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1143, i32 0, i32 1
  %1145 = load i32, ptr %1144, align 8, !tbaa !9
  store i32 %1145, ptr %59, align 4, !tbaa !14
  %1146 = load i32, ptr %59, align 4, !tbaa !14
  %1147 = load ptr, ptr %58, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.string__, ptr %1147, i32 0, i32 1
  %1149 = load i32, ptr %1148, align 8, !tbaa !15
  %1150 = icmp ult i32 %1146, %1149
  br i1 %1150, label %1154, label %1151

1151:                                             ; preds = %1134
  %1152 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1153 = load ptr, ptr %1152, align 8, !tbaa !5
  call void %1153(i32 noundef -3)
  br label %1154

1154:                                             ; preds = %1151, %1134
  %1155 = load ptr, ptr %58, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.string__, ptr %1155, i32 0, i32 0
  %1157 = load ptr, ptr %1156, align 8, !tbaa !16
  %1158 = load i32, ptr %59, align 4, !tbaa !14
  %1159 = zext i32 %1158 to i64
  %1160 = getelementptr inbounds i8, ptr %1157, i64 %1159
  %1161 = load i8, ptr %1160, align 1, !tbaa !17
  store i8 %1161, ptr %32, align 1, !tbaa !17
  %1162 = load ptr, ptr %2, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1162, i32 0, i32 17
  %1164 = load ptr, ptr %1163, align 8, !tbaa !34
  call void @StringBuilder__clear__(ptr noundef %1164)
  br label %1165

1165:                                             ; preds = %1256, %1154
  br label %1166

1166:                                             ; preds = %1165
  %1167 = load i8, ptr %32, align 1, !tbaa !17
  %1168 = sext i8 %1167 to i32
  %1169 = icmp eq i32 %1168, 92
  br i1 %1169, label %1170, label %1176

1170:                                             ; preds = %1166
  %1171 = load ptr, ptr %2, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1171, i32 0, i32 17
  %1173 = load ptr, ptr %1172, align 8, !tbaa !34
  %1174 = load ptr, ptr %2, align 8, !tbaa !5
  %1175 = call signext i8 @Parser__readEscapeSequence__(ptr noundef %1174)
  call void @StringBuilder__writeChar__(ptr noundef %1173, i8 noundef signext %1175)
  br label %1242

1176:                                             ; preds = %1166
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #5
  %1177 = load i8, ptr %32, align 1, !tbaa !17
  %1178 = sext i8 %1177 to i32
  %1179 = icmp eq i32 %1178, 10
  %1180 = zext i1 %1179 to i32
  %1181 = trunc i32 %1180 to i8
  store i8 %1181, ptr %60, align 1, !tbaa !17
  %1182 = load i8, ptr %60, align 1, !tbaa !17
  %1183 = icmp ne i8 %1182, 0
  br i1 %1183, label %1190, label %1184

1184:                                             ; preds = %1176
  %1185 = load i8, ptr %32, align 1, !tbaa !17
  %1186 = sext i8 %1185 to i32
  %1187 = icmp eq i32 %1186, 13
  %1188 = zext i1 %1187 to i32
  %1189 = trunc i32 %1188 to i8
  store i8 %1189, ptr %60, align 1, !tbaa !17
  br label %1190

1190:                                             ; preds = %1184, %1176
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #5
  %1191 = load i8, ptr %60, align 1, !tbaa !17
  store i8 %1191, ptr %61, align 1, !tbaa !17
  %1192 = load i8, ptr %61, align 1, !tbaa !17
  %1193 = icmp ne i8 %1192, 0
  br i1 %1193, label %1200, label %1194

1194:                                             ; preds = %1190
  %1195 = load i8, ptr %32, align 1, !tbaa !17
  %1196 = sext i8 %1195 to i32
  %1197 = icmp eq i32 %1196, 0
  %1198 = zext i1 %1197 to i32
  %1199 = trunc i32 %1198 to i8
  store i8 %1199, ptr %61, align 1, !tbaa !17
  br label %1200

1200:                                             ; preds = %1194, %1190
  %1201 = load i8, ptr %61, align 1, !tbaa !17
  %1202 = icmp ne i8 %1201, 0
  br i1 %1202, label %1203, label %1215

1203:                                             ; preds = %1200
  %1204 = load ptr, ptr %2, align 8, !tbaa !5
  %1205 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1204, i32 0, i32 9
  %1206 = load ptr, ptr %1205, align 8, !tbaa !35
  %1207 = load ptr, ptr %2, align 8, !tbaa !5
  %1208 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1207, i32 0, i32 2
  %1209 = load ptr, ptr %1208, align 8, !tbaa !36
  %1210 = load ptr, ptr %2, align 8, !tbaa !5
  %1211 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1210, i32 0, i32 1
  %1212 = load i32, ptr %1211, align 8, !tbaa !9
  %1213 = load ptr, ptr @mu_____string290, align 8
  %1214 = load i32, ptr getelementptr inbounds ({ ptr, i32 }, ptr @mu_____string290, i32 0, i32 1), align 8
  call void @Error__atIndex__(ptr dead_on_unwind writable sret(%struct.tag_____Error__) align 8 %62, ptr noundef %1209, i32 noundef %1212, ptr %1213, i32 %1214)
  call void @List__add__Error____(ptr noundef %1206, ptr noundef byval(%struct.tag_____Error__) align 8 %62)
  store i32 16, ptr %11, align 4
  br label %1239

1215:                                             ; preds = %1200
  %1216 = load i8, ptr %32, align 1, !tbaa !17
  %1217 = sext i8 %1216 to i32
  %1218 = icmp eq i32 %1217, 34
  br i1 %1218, label %1219, label %1226

1219:                                             ; preds = %1215
  %1220 = load ptr, ptr %2, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1220, i32 0, i32 1
  %1222 = load i32, ptr %1221, align 8, !tbaa !9
  %1223 = add nsw i32 %1222, 1
  %1224 = load ptr, ptr %2, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1224, i32 0, i32 1
  store i32 %1223, ptr %1225, align 8, !tbaa !9
  store i32 16, ptr %11, align 4
  br label %1239

1226:                                             ; preds = %1215
  %1227 = load ptr, ptr %2, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1227, i32 0, i32 17
  %1229 = load ptr, ptr %1228, align 8, !tbaa !34
  %1230 = load i8, ptr %32, align 1, !tbaa !17
  call void @StringBuilder__writeChar__(ptr noundef %1229, i8 noundef signext %1230)
  %1231 = load ptr, ptr %2, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1231, i32 0, i32 1
  %1233 = load i32, ptr %1232, align 8, !tbaa !9
  %1234 = add nsw i32 %1233, 1
  %1235 = load ptr, ptr %2, align 8, !tbaa !5
  %1236 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1235, i32 0, i32 1
  store i32 %1234, ptr %1236, align 8, !tbaa !9
  br label %1237

1237:                                             ; preds = %1226
  br label %1238

1238:                                             ; preds = %1237
  store i32 0, ptr %11, align 4
  br label %1239

1239:                                             ; preds = %1238, %1219, %1203
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #5
  %1240 = load i32, ptr %11, align 4
  switch i32 %1240, label %1943 [
    i32 0, label %1241
    i32 16, label %1264
  ]

1241:                                             ; preds = %1239
  br label %1242

1242:                                             ; preds = %1241, %1170
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  %1243 = load ptr, ptr %2, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1243, i32 0, i32 0
  store ptr %1244, ptr %63, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #5
  %1245 = load ptr, ptr %2, align 8, !tbaa !5
  %1246 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1245, i32 0, i32 1
  %1247 = load i32, ptr %1246, align 8, !tbaa !9
  store i32 %1247, ptr %64, align 4, !tbaa !14
  %1248 = load i32, ptr %64, align 4, !tbaa !14
  %1249 = load ptr, ptr %63, align 8, !tbaa !5
  %1250 = getelementptr inbounds %struct.string__, ptr %1249, i32 0, i32 1
  %1251 = load i32, ptr %1250, align 8, !tbaa !15
  %1252 = icmp ult i32 %1248, %1251
  br i1 %1252, label %1256, label %1253

1253:                                             ; preds = %1242
  %1254 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1255 = load ptr, ptr %1254, align 8, !tbaa !5
  call void %1255(i32 noundef -3)
  br label %1256

1256:                                             ; preds = %1253, %1242
  %1257 = load ptr, ptr %63, align 8, !tbaa !5
  %1258 = getelementptr inbounds %struct.string__, ptr %1257, i32 0, i32 0
  %1259 = load ptr, ptr %1258, align 8, !tbaa !16
  %1260 = load i32, ptr %64, align 4, !tbaa !14
  %1261 = zext i32 %1260 to i64
  %1262 = getelementptr inbounds i8, ptr %1259, i64 %1261
  %1263 = load i8, ptr %1262, align 1, !tbaa !17
  store i8 %1263, ptr %32, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  br label %1165

1264:                                             ; preds = %1239
  %1265 = load ptr, ptr %2, align 8, !tbaa !5
  %1266 = load i32, ptr %3, align 4, !tbaa !14
  %1267 = load i32, ptr %29, align 4, !tbaa !14
  %1268 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1265, i32 noundef %1266, i32 noundef %1267, i32 noundef %1268, i32 noundef 2)
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  br label %1927

1269:                                             ; preds = %1130
  %1270 = load i8, ptr %32, align 1, !tbaa !17
  %1271 = sext i8 %1270 to i32
  %1272 = icmp eq i32 %1271, 39
  br i1 %1272, label %1273, label %1420

1273:                                             ; preds = %1269
  %1274 = load ptr, ptr %2, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1274, i32 0, i32 1
  %1276 = load i32, ptr %1275, align 8, !tbaa !9
  %1277 = add nsw i32 %1276, 1
  %1278 = load ptr, ptr %2, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1278, i32 0, i32 1
  store i32 %1277, ptr %1279, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  %1280 = load ptr, ptr %2, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1280, i32 0, i32 0
  store ptr %1281, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  %1282 = load ptr, ptr %2, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1282, i32 0, i32 1
  %1284 = load i32, ptr %1283, align 8, !tbaa !9
  store i32 %1284, ptr %66, align 4, !tbaa !14
  %1285 = load i32, ptr %66, align 4, !tbaa !14
  %1286 = load ptr, ptr %65, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.string__, ptr %1286, i32 0, i32 1
  %1288 = load i32, ptr %1287, align 8, !tbaa !15
  %1289 = icmp ult i32 %1285, %1288
  br i1 %1289, label %1293, label %1290

1290:                                             ; preds = %1273
  %1291 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1292 = load ptr, ptr %1291, align 8, !tbaa !5
  call void %1292(i32 noundef -3)
  br label %1293

1293:                                             ; preds = %1290, %1273
  %1294 = load ptr, ptr %65, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.string__, ptr %1294, i32 0, i32 0
  %1296 = load ptr, ptr %1295, align 8, !tbaa !16
  %1297 = load i32, ptr %66, align 4, !tbaa !14
  %1298 = zext i32 %1297 to i64
  %1299 = getelementptr inbounds i8, ptr %1296, i64 %1298
  %1300 = load i8, ptr %1299, align 1, !tbaa !17
  store i8 %1300, ptr %32, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  store i32 0, ptr %67, align 4, !tbaa !14
  br label %1301

1301:                                             ; preds = %1407, %1293
  br label %1302

1302:                                             ; preds = %1301
  %1303 = load i8, ptr %32, align 1, !tbaa !17
  %1304 = sext i8 %1303 to i32
  %1305 = icmp eq i32 %1304, 92
  br i1 %1305, label %1306, label %1311

1306:                                             ; preds = %1302
  %1307 = load ptr, ptr %2, align 8, !tbaa !5
  %1308 = call signext i8 @Parser__readEscapeSequence__(ptr noundef %1307)
  %1309 = load i32, ptr %67, align 4, !tbaa !14
  %1310 = add nsw i32 %1309, 1
  store i32 %1310, ptr %67, align 4, !tbaa !14
  br label %1393

1311:                                             ; preds = %1302
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #5
  %1312 = load i8, ptr %32, align 1, !tbaa !17
  %1313 = sext i8 %1312 to i32
  %1314 = icmp eq i32 %1313, 10
  %1315 = zext i1 %1314 to i32
  %1316 = trunc i32 %1315 to i8
  store i8 %1316, ptr %68, align 1, !tbaa !17
  %1317 = load i8, ptr %68, align 1, !tbaa !17
  %1318 = icmp ne i8 %1317, 0
  br i1 %1318, label %1325, label %1319

1319:                                             ; preds = %1311
  %1320 = load i8, ptr %32, align 1, !tbaa !17
  %1321 = sext i8 %1320 to i32
  %1322 = icmp eq i32 %1321, 13
  %1323 = zext i1 %1322 to i32
  %1324 = trunc i32 %1323 to i8
  store i8 %1324, ptr %68, align 1, !tbaa !17
  br label %1325

1325:                                             ; preds = %1319, %1311
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #5
  %1326 = load i8, ptr %68, align 1, !tbaa !17
  store i8 %1326, ptr %69, align 1, !tbaa !17
  %1327 = load i8, ptr %69, align 1, !tbaa !17
  %1328 = icmp ne i8 %1327, 0
  br i1 %1328, label %1335, label %1329

1329:                                             ; preds = %1325
  %1330 = load i8, ptr %32, align 1, !tbaa !17
  %1331 = sext i8 %1330 to i32
  %1332 = icmp eq i32 %1331, 0
  %1333 = zext i1 %1332 to i32
  %1334 = trunc i32 %1333 to i8
  store i8 %1334, ptr %69, align 1, !tbaa !17
  br label %1335

1335:                                             ; preds = %1329, %1325
  %1336 = load i8, ptr %69, align 1, !tbaa !17
  %1337 = icmp ne i8 %1336, 0
  br i1 %1337, label %1338, label %1350

1338:                                             ; preds = %1335
  %1339 = load ptr, ptr %2, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1339, i32 0, i32 9
  %1341 = load ptr, ptr %1340, align 8, !tbaa !35
  %1342 = load ptr, ptr %2, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1342, i32 0, i32 2
  %1344 = load ptr, ptr %1343, align 8, !tbaa !36
  %1345 = load ptr, ptr %2, align 8, !tbaa !5
  %1346 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1345, i32 0, i32 1
  %1347 = load i32, ptr %1346, align 8, !tbaa !9
  %1348 = load ptr, ptr @mu_____string291, align 8
  %1349 = load i32, ptr getelementptr inbounds ({ ptr, i32 }, ptr @mu_____string291, i32 0, i32 1), align 8
  call void @Error__atIndex__(ptr dead_on_unwind writable sret(%struct.tag_____Error__) align 8 %70, ptr noundef %1344, i32 noundef %1347, ptr %1348, i32 %1349)
  call void @List__add__Error____(ptr noundef %1341, ptr noundef byval(%struct.tag_____Error__) align 8 %70)
  store i32 19, ptr %11, align 4
  br label %1390

1350:                                             ; preds = %1335
  %1351 = load i8, ptr %32, align 1, !tbaa !17
  %1352 = sext i8 %1351 to i32
  %1353 = icmp eq i32 %1352, 39
  br i1 %1353, label %1354, label %1379

1354:                                             ; preds = %1350
  %1355 = load ptr, ptr %2, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1355, i32 0, i32 1
  %1357 = load i32, ptr %1356, align 8, !tbaa !9
  %1358 = add nsw i32 %1357, 1
  %1359 = load ptr, ptr %2, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1359, i32 0, i32 1
  store i32 %1358, ptr %1360, align 8, !tbaa !9
  %1361 = load i32, ptr %67, align 4, !tbaa !14
  %1362 = icmp ne i32 %1361, 1
  br i1 %1362, label %1363, label %1378

1363:                                             ; preds = %1354
  %1364 = load ptr, ptr %2, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1364, i32 0, i32 9
  %1366 = load ptr, ptr %1365, align 8, !tbaa !35
  %1367 = load ptr, ptr %2, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1367, i32 0, i32 2
  %1369 = load ptr, ptr %1368, align 8, !tbaa !36
  %1370 = load i32, ptr %29, align 4, !tbaa !14
  %1371 = load ptr, ptr %2, align 8, !tbaa !5
  %1372 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1371, i32 0, i32 1
  %1373 = load i32, ptr %1372, align 8, !tbaa !9
  %1374 = call i64 @IntRange__cons__(i32 noundef %1370, i32 noundef %1373)
  store i64 %1374, ptr %72, align 4
  %1375 = load i64, ptr %72, align 4
  %1376 = load ptr, ptr @mu_____string292, align 8
  %1377 = load i32, ptr getelementptr inbounds ({ ptr, i32 }, ptr @mu_____string292, i32 0, i32 1), align 8
  call void @Error__at__(ptr dead_on_unwind writable sret(%struct.tag_____Error__) align 8 %71, ptr noundef %1369, i64 %1375, ptr %1376, i32 %1377)
  call void @List__add__Error____(ptr noundef %1366, ptr noundef byval(%struct.tag_____Error__) align 8 %71)
  br label %1378

1378:                                             ; preds = %1363, %1354
  store i32 19, ptr %11, align 4
  br label %1390

1379:                                             ; preds = %1350
  %1380 = load ptr, ptr %2, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1380, i32 0, i32 1
  %1382 = load i32, ptr %1381, align 8, !tbaa !9
  %1383 = add nsw i32 %1382, 1
  %1384 = load ptr, ptr %2, align 8, !tbaa !5
  %1385 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1384, i32 0, i32 1
  store i32 %1383, ptr %1385, align 8, !tbaa !9
  %1386 = load i32, ptr %67, align 4, !tbaa !14
  %1387 = add nsw i32 %1386, 1
  store i32 %1387, ptr %67, align 4, !tbaa !14
  br label %1388

1388:                                             ; preds = %1379
  br label %1389

1389:                                             ; preds = %1388
  store i32 0, ptr %11, align 4
  br label %1390

1390:                                             ; preds = %1389, %1378, %1338
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #5
  %1391 = load i32, ptr %11, align 4
  switch i32 %1391, label %1943 [
    i32 0, label %1392
    i32 19, label %1415
  ]

1392:                                             ; preds = %1390
  br label %1393

1393:                                             ; preds = %1392, %1306
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  %1394 = load ptr, ptr %2, align 8, !tbaa !5
  %1395 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1394, i32 0, i32 0
  store ptr %1395, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #5
  %1396 = load ptr, ptr %2, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1396, i32 0, i32 1
  %1398 = load i32, ptr %1397, align 8, !tbaa !9
  store i32 %1398, ptr %74, align 4, !tbaa !14
  %1399 = load i32, ptr %74, align 4, !tbaa !14
  %1400 = load ptr, ptr %73, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.string__, ptr %1400, i32 0, i32 1
  %1402 = load i32, ptr %1401, align 8, !tbaa !15
  %1403 = icmp ult i32 %1399, %1402
  br i1 %1403, label %1407, label %1404

1404:                                             ; preds = %1393
  %1405 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1406 = load ptr, ptr %1405, align 8, !tbaa !5
  call void %1406(i32 noundef -3)
  br label %1407

1407:                                             ; preds = %1404, %1393
  %1408 = load ptr, ptr %73, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.string__, ptr %1408, i32 0, i32 0
  %1410 = load ptr, ptr %1409, align 8, !tbaa !16
  %1411 = load i32, ptr %74, align 4, !tbaa !14
  %1412 = zext i32 %1411 to i64
  %1413 = getelementptr inbounds i8, ptr %1410, i64 %1412
  %1414 = load i8, ptr %1413, align 1, !tbaa !17
  store i8 %1414, ptr %32, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  br label %1301

1415:                                             ; preds = %1390
  %1416 = load ptr, ptr %2, align 8, !tbaa !5
  %1417 = load i32, ptr %3, align 4, !tbaa !14
  %1418 = load i32, ptr %29, align 4, !tbaa !14
  %1419 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1416, i32 noundef %1417, i32 noundef %1418, i32 noundef %1419, i32 noundef 3)
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  br label %1926

1420:                                             ; preds = %1269
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #5
  %1421 = load i8, ptr %32, align 1, !tbaa !17
  %1422 = sext i8 %1421 to i32
  %1423 = icmp eq i32 %1422, 45
  %1424 = zext i1 %1423 to i32
  %1425 = trunc i32 %1424 to i8
  store i8 %1425, ptr %75, align 1, !tbaa !17
  %1426 = load i8, ptr %75, align 1, !tbaa !17
  %1427 = icmp ne i8 %1426, 0
  br i1 %1427, label %1434, label %1428

1428:                                             ; preds = %1420
  %1429 = load i8, ptr %32, align 1, !tbaa !17
  %1430 = sext i8 %1429 to i32
  %1431 = icmp eq i32 %1430, 46
  %1432 = zext i1 %1431 to i32
  %1433 = trunc i32 %1432 to i8
  store i8 %1433, ptr %75, align 1, !tbaa !17
  br label %1434

1434:                                             ; preds = %1428, %1420
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #5
  %1435 = load i8, ptr %75, align 1, !tbaa !17
  store i8 %1435, ptr %76, align 1, !tbaa !17
  %1436 = load i8, ptr %76, align 1, !tbaa !17
  %1437 = icmp ne i8 %1436, 0
  br i1 %1437, label %1454, label %1438

1438:                                             ; preds = %1434
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #5
  %1439 = load i8, ptr %32, align 1, !tbaa !17
  %1440 = zext i8 %1439 to i32
  %1441 = icmp sge i32 %1440, 48
  %1442 = zext i1 %1441 to i32
  %1443 = trunc i32 %1442 to i8
  store i8 %1443, ptr %77, align 1, !tbaa !17
  %1444 = load i8, ptr %77, align 1, !tbaa !17
  %1445 = icmp ne i8 %1444, 0
  br i1 %1445, label %1446, label %1452

1446:                                             ; preds = %1438
  %1447 = load i8, ptr %32, align 1, !tbaa !17
  %1448 = zext i8 %1447 to i32
  %1449 = icmp sle i32 %1448, 57
  %1450 = zext i1 %1449 to i32
  %1451 = trunc i32 %1450 to i8
  store i8 %1451, ptr %77, align 1, !tbaa !17
  br label %1452

1452:                                             ; preds = %1446, %1438
  %1453 = load i8, ptr %77, align 1, !tbaa !17
  store i8 %1453, ptr %76, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #5
  br label %1454

1454:                                             ; preds = %1452, %1434
  %1455 = load i8, ptr %76, align 1, !tbaa !17
  %1456 = icmp ne i8 %1455, 0
  br i1 %1456, label %1457, label %1576

1457:                                             ; preds = %1454
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #5
  %1458 = load i8, ptr %32, align 1, !tbaa !17
  store i8 %1458, ptr %78, align 1, !tbaa !17
  %1459 = load ptr, ptr %2, align 8, !tbaa !5
  %1460 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1459, i32 0, i32 1
  %1461 = load i32, ptr %1460, align 8, !tbaa !9
  %1462 = add nsw i32 %1461, 1
  %1463 = load ptr, ptr %2, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1463, i32 0, i32 1
  store i32 %1462, ptr %1464, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  %1465 = load ptr, ptr %2, align 8, !tbaa !5
  %1466 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1465, i32 0, i32 0
  store ptr %1466, ptr %79, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #5
  %1467 = load ptr, ptr %2, align 8, !tbaa !5
  %1468 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1467, i32 0, i32 1
  %1469 = load i32, ptr %1468, align 8, !tbaa !9
  store i32 %1469, ptr %80, align 4, !tbaa !14
  %1470 = load i32, ptr %80, align 4, !tbaa !14
  %1471 = load ptr, ptr %79, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.string__, ptr %1471, i32 0, i32 1
  %1473 = load i32, ptr %1472, align 8, !tbaa !15
  %1474 = icmp ult i32 %1470, %1473
  br i1 %1474, label %1478, label %1475

1475:                                             ; preds = %1457
  %1476 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1477 = load ptr, ptr %1476, align 8, !tbaa !5
  call void %1477(i32 noundef -3)
  br label %1478

1478:                                             ; preds = %1475, %1457
  %1479 = load ptr, ptr %79, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.string__, ptr %1479, i32 0, i32 0
  %1481 = load ptr, ptr %1480, align 8, !tbaa !16
  %1482 = load i32, ptr %80, align 4, !tbaa !14
  %1483 = zext i32 %1482 to i64
  %1484 = getelementptr inbounds i8, ptr %1481, i64 %1483
  %1485 = load i8, ptr %1484, align 1, !tbaa !17
  store i8 %1485, ptr %32, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #5
  %1486 = load i8, ptr %78, align 1, !tbaa !17
  %1487 = sext i8 %1486 to i32
  %1488 = icmp eq i32 %1487, 48
  %1489 = zext i1 %1488 to i32
  %1490 = trunc i32 %1489 to i8
  store i8 %1490, ptr %81, align 1, !tbaa !17
  %1491 = load i8, ptr %81, align 1, !tbaa !17
  %1492 = icmp ne i8 %1491, 0
  br i1 %1492, label %1493, label %1499

1493:                                             ; preds = %1478
  %1494 = load i8, ptr %32, align 1, !tbaa !17
  %1495 = sext i8 %1494 to i32
  %1496 = icmp eq i32 %1495, 120
  %1497 = zext i1 %1496 to i32
  %1498 = trunc i32 %1497 to i8
  store i8 %1498, ptr %81, align 1, !tbaa !17
  br label %1499

1499:                                             ; preds = %1493, %1478
  %1500 = load i8, ptr %81, align 1, !tbaa !17
  %1501 = icmp ne i8 %1500, 0
  br i1 %1501, label %1502, label %1513

1502:                                             ; preds = %1499
  %1503 = load ptr, ptr %2, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1503, i32 0, i32 1
  %1505 = load i32, ptr %1504, align 8, !tbaa !9
  %1506 = add nsw i32 %1505, 1
  %1507 = load ptr, ptr %2, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1507, i32 0, i32 1
  store i32 %1506, ptr %1508, align 8, !tbaa !9
  %1509 = load ptr, ptr %2, align 8, !tbaa !5
  %1510 = load i32, ptr %3, align 4, !tbaa !14
  %1511 = load i32, ptr %29, align 4, !tbaa !14
  %1512 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishHexNumber__(ptr noundef %1509, i32 noundef %1510, i32 noundef %1511, i32 noundef %1512)
  br label %1575

1513:                                             ; preds = %1499
  %1514 = load i8, ptr %78, align 1, !tbaa !17
  %1515 = sext i8 %1514 to i32
  %1516 = icmp eq i32 %1515, 46
  br i1 %1516, label %1517, label %1538

1517:                                             ; preds = %1513
  %1518 = load i8, ptr %32, align 1, !tbaa !17
  %1519 = call zeroext i8 @Parser__isDigit__(i8 noundef signext %1518)
  %1520 = icmp ne i8 %1519, 0
  br i1 %1520, label %1526, label %1521

1521:                                             ; preds = %1517
  %1522 = load ptr, ptr %2, align 8, !tbaa !5
  %1523 = load i32, ptr %3, align 4, !tbaa !14
  %1524 = load i32, ptr %29, align 4, !tbaa !14
  %1525 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1522, i32 noundef %1523, i32 noundef %1524, i32 noundef %1525, i32 noundef 4)
  br label %1537

1526:                                             ; preds = %1517
  %1527 = load ptr, ptr %2, align 8, !tbaa !5
  %1528 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1527, i32 0, i32 1
  %1529 = load i32, ptr %1528, align 8, !tbaa !9
  %1530 = sub nsw i32 %1529, 1
  %1531 = load ptr, ptr %2, align 8, !tbaa !5
  %1532 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1531, i32 0, i32 1
  store i32 %1530, ptr %1532, align 8, !tbaa !9
  %1533 = load ptr, ptr %2, align 8, !tbaa !5
  %1534 = load i32, ptr %3, align 4, !tbaa !14
  %1535 = load i32, ptr %29, align 4, !tbaa !14
  %1536 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishFloatNumber__(ptr noundef %1533, i32 noundef %1534, i32 noundef %1535, i32 noundef %1536)
  br label %1537

1537:                                             ; preds = %1526, %1521
  br label %1574

1538:                                             ; preds = %1513
  %1539 = load i8, ptr %78, align 1, !tbaa !17
  %1540 = sext i8 %1539 to i32
  %1541 = icmp eq i32 %1540, 45
  br i1 %1541, label %1542, label %1568

1542:                                             ; preds = %1538
  %1543 = load i8, ptr %32, align 1, !tbaa !17
  %1544 = call zeroext i8 @Parser__isDigit__(i8 noundef signext %1543)
  %1545 = icmp ne i8 %1544, 0
  br i1 %1545, label %1562, label %1546

1546:                                             ; preds = %1542
  %1547 = load i8, ptr %32, align 1, !tbaa !17
  %1548 = sext i8 %1547 to i32
  %1549 = icmp eq i32 %1548, 61
  br i1 %1549, label %1550, label %1557

1550:                                             ; preds = %1546
  %1551 = load ptr, ptr %2, align 8, !tbaa !5
  %1552 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1551, i32 0, i32 1
  %1553 = load i32, ptr %1552, align 8, !tbaa !9
  %1554 = add nsw i32 %1553, 1
  %1555 = load ptr, ptr %2, align 8, !tbaa !5
  %1556 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1555, i32 0, i32 1
  store i32 %1554, ptr %1556, align 8, !tbaa !9
  br label %1557

1557:                                             ; preds = %1550, %1546
  %1558 = load ptr, ptr %2, align 8, !tbaa !5
  %1559 = load i32, ptr %3, align 4, !tbaa !14
  %1560 = load i32, ptr %29, align 4, !tbaa !14
  %1561 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1558, i32 noundef %1559, i32 noundef %1560, i32 noundef %1561, i32 noundef 4)
  br label %1567

1562:                                             ; preds = %1542
  %1563 = load ptr, ptr %2, align 8, !tbaa !5
  %1564 = load i32, ptr %3, align 4, !tbaa !14
  %1565 = load i32, ptr %29, align 4, !tbaa !14
  %1566 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishNumber__(ptr noundef %1563, i32 noundef %1564, i32 noundef %1565, i32 noundef %1566)
  br label %1567

1567:                                             ; preds = %1562, %1557
  br label %1573

1568:                                             ; preds = %1538
  %1569 = load ptr, ptr %2, align 8, !tbaa !5
  %1570 = load i32, ptr %3, align 4, !tbaa !14
  %1571 = load i32, ptr %29, align 4, !tbaa !14
  %1572 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishNumber__(ptr noundef %1569, i32 noundef %1570, i32 noundef %1571, i32 noundef %1572)
  br label %1573

1573:                                             ; preds = %1568, %1567
  br label %1574

1574:                                             ; preds = %1573, %1537
  br label %1575

1575:                                             ; preds = %1574, %1502
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #5
  br label %1925

1576:                                             ; preds = %1454
  %1577 = load i8, ptr %32, align 1, !tbaa !17
  %1578 = sext i8 %1577 to i32
  %1579 = icmp eq i32 %1578, 61
  br i1 %1579, label %1580, label %1623

1580:                                             ; preds = %1576
  %1581 = load ptr, ptr %2, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1581, i32 0, i32 1
  %1583 = load i32, ptr %1582, align 8, !tbaa !9
  %1584 = add nsw i32 %1583, 1
  %1585 = load ptr, ptr %2, align 8, !tbaa !5
  %1586 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1585, i32 0, i32 1
  store i32 %1584, ptr %1586, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  %1587 = load ptr, ptr %2, align 8, !tbaa !5
  %1588 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1587, i32 0, i32 0
  store ptr %1588, ptr %82, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #5
  %1589 = load ptr, ptr %2, align 8, !tbaa !5
  %1590 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1589, i32 0, i32 1
  %1591 = load i32, ptr %1590, align 8, !tbaa !9
  store i32 %1591, ptr %83, align 4, !tbaa !14
  %1592 = load i32, ptr %83, align 4, !tbaa !14
  %1593 = load ptr, ptr %82, align 8, !tbaa !5
  %1594 = getelementptr inbounds %struct.string__, ptr %1593, i32 0, i32 1
  %1595 = load i32, ptr %1594, align 8, !tbaa !15
  %1596 = icmp ult i32 %1592, %1595
  br i1 %1596, label %1600, label %1597

1597:                                             ; preds = %1580
  %1598 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1599 = load ptr, ptr %1598, align 8, !tbaa !5
  call void %1599(i32 noundef -3)
  br label %1600

1600:                                             ; preds = %1597, %1580
  %1601 = load ptr, ptr %82, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.string__, ptr %1601, i32 0, i32 0
  %1603 = load ptr, ptr %1602, align 8, !tbaa !16
  %1604 = load i32, ptr %83, align 4, !tbaa !14
  %1605 = zext i32 %1604 to i64
  %1606 = getelementptr inbounds i8, ptr %1603, i64 %1605
  %1607 = load i8, ptr %1606, align 1, !tbaa !17
  store i8 %1607, ptr %32, align 1, !tbaa !17
  %1608 = load i8, ptr %32, align 1, !tbaa !17
  %1609 = sext i8 %1608 to i32
  %1610 = icmp eq i32 %1609, 61
  br i1 %1610, label %1611, label %1618

1611:                                             ; preds = %1600
  %1612 = load ptr, ptr %2, align 8, !tbaa !5
  %1613 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1612, i32 0, i32 1
  %1614 = load i32, ptr %1613, align 8, !tbaa !9
  %1615 = add nsw i32 %1614, 1
  %1616 = load ptr, ptr %2, align 8, !tbaa !5
  %1617 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1616, i32 0, i32 1
  store i32 %1615, ptr %1617, align 8, !tbaa !9
  br label %1618

1618:                                             ; preds = %1611, %1600
  %1619 = load ptr, ptr %2, align 8, !tbaa !5
  %1620 = load i32, ptr %3, align 4, !tbaa !14
  %1621 = load i32, ptr %29, align 4, !tbaa !14
  %1622 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1619, i32 noundef %1620, i32 noundef %1621, i32 noundef %1622, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #5
  br label %1924

1623:                                             ; preds = %1576
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #5
  %1624 = load i8, ptr %32, align 1, !tbaa !17
  %1625 = sext i8 %1624 to i32
  %1626 = icmp eq i32 %1625, 126
  %1627 = zext i1 %1626 to i32
  %1628 = trunc i32 %1627 to i8
  store i8 %1628, ptr %84, align 1, !tbaa !17
  %1629 = load i8, ptr %84, align 1, !tbaa !17
  %1630 = icmp ne i8 %1629, 0
  br i1 %1630, label %1637, label %1631

1631:                                             ; preds = %1623
  %1632 = load i8, ptr %32, align 1, !tbaa !17
  %1633 = sext i8 %1632 to i32
  %1634 = icmp eq i32 %1633, 36
  %1635 = zext i1 %1634 to i32
  %1636 = trunc i32 %1635 to i8
  store i8 %1636, ptr %84, align 1, !tbaa !17
  br label %1637

1637:                                             ; preds = %1631, %1623
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #5
  %1638 = load i8, ptr %84, align 1, !tbaa !17
  store i8 %1638, ptr %85, align 1, !tbaa !17
  %1639 = load i8, ptr %85, align 1, !tbaa !17
  %1640 = icmp ne i8 %1639, 0
  br i1 %1640, label %1647, label %1641

1641:                                             ; preds = %1637
  %1642 = load i8, ptr %32, align 1, !tbaa !17
  %1643 = sext i8 %1642 to i32
  %1644 = icmp eq i32 %1643, 63
  %1645 = zext i1 %1644 to i32
  %1646 = trunc i32 %1645 to i8
  store i8 %1646, ptr %85, align 1, !tbaa !17
  br label %1647

1647:                                             ; preds = %1641, %1637
  %1648 = load i8, ptr %85, align 1, !tbaa !17
  %1649 = icmp ne i8 %1648, 0
  br i1 %1649, label %1650, label %1661

1650:                                             ; preds = %1647
  %1651 = load ptr, ptr %2, align 8, !tbaa !5
  %1652 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1651, i32 0, i32 1
  %1653 = load i32, ptr %1652, align 8, !tbaa !9
  %1654 = add nsw i32 %1653, 1
  %1655 = load ptr, ptr %2, align 8, !tbaa !5
  %1656 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1655, i32 0, i32 1
  store i32 %1654, ptr %1656, align 8, !tbaa !9
  %1657 = load ptr, ptr %2, align 8, !tbaa !5
  %1658 = load i32, ptr %3, align 4, !tbaa !14
  %1659 = load i32, ptr %29, align 4, !tbaa !14
  %1660 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1657, i32 noundef %1658, i32 noundef %1659, i32 noundef %1660, i32 noundef 4)
  br label %1923

1661:                                             ; preds = %1647
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #5
  %1662 = load i8, ptr %32, align 1, !tbaa !17
  %1663 = sext i8 %1662 to i32
  %1664 = icmp eq i32 %1663, 42
  %1665 = zext i1 %1664 to i32
  %1666 = trunc i32 %1665 to i8
  store i8 %1666, ptr %86, align 1, !tbaa !17
  %1667 = load i8, ptr %86, align 1, !tbaa !17
  %1668 = icmp ne i8 %1667, 0
  br i1 %1668, label %1675, label %1669

1669:                                             ; preds = %1661
  %1670 = load i8, ptr %32, align 1, !tbaa !17
  %1671 = sext i8 %1670 to i32
  %1672 = icmp eq i32 %1671, 47
  %1673 = zext i1 %1672 to i32
  %1674 = trunc i32 %1673 to i8
  store i8 %1674, ptr %86, align 1, !tbaa !17
  br label %1675

1675:                                             ; preds = %1669, %1661
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #5
  %1676 = load i8, ptr %86, align 1, !tbaa !17
  store i8 %1676, ptr %87, align 1, !tbaa !17
  %1677 = load i8, ptr %87, align 1, !tbaa !17
  %1678 = icmp ne i8 %1677, 0
  br i1 %1678, label %1685, label %1679

1679:                                             ; preds = %1675
  %1680 = load i8, ptr %32, align 1, !tbaa !17
  %1681 = sext i8 %1680 to i32
  %1682 = icmp eq i32 %1681, 37
  %1683 = zext i1 %1682 to i32
  %1684 = trunc i32 %1683 to i8
  store i8 %1684, ptr %87, align 1, !tbaa !17
  br label %1685

1685:                                             ; preds = %1679, %1675
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #5
  %1686 = load i8, ptr %87, align 1, !tbaa !17
  store i8 %1686, ptr %88, align 1, !tbaa !17
  %1687 = load i8, ptr %88, align 1, !tbaa !17
  %1688 = icmp ne i8 %1687, 0
  br i1 %1688, label %1695, label %1689

1689:                                             ; preds = %1685
  %1690 = load i8, ptr %32, align 1, !tbaa !17
  %1691 = sext i8 %1690 to i32
  %1692 = icmp eq i32 %1691, 43
  %1693 = zext i1 %1692 to i32
  %1694 = trunc i32 %1693 to i8
  store i8 %1694, ptr %88, align 1, !tbaa !17
  br label %1695

1695:                                             ; preds = %1689, %1685
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #5
  %1696 = load i8, ptr %88, align 1, !tbaa !17
  store i8 %1696, ptr %89, align 1, !tbaa !17
  %1697 = load i8, ptr %89, align 1, !tbaa !17
  %1698 = icmp ne i8 %1697, 0
  br i1 %1698, label %1705, label %1699

1699:                                             ; preds = %1695
  %1700 = load i8, ptr %32, align 1, !tbaa !17
  %1701 = sext i8 %1700 to i32
  %1702 = icmp eq i32 %1701, 33
  %1703 = zext i1 %1702 to i32
  %1704 = trunc i32 %1703 to i8
  store i8 %1704, ptr %89, align 1, !tbaa !17
  br label %1705

1705:                                             ; preds = %1699, %1695
  %1706 = load i8, ptr %89, align 1, !tbaa !17
  %1707 = icmp ne i8 %1706, 0
  br i1 %1707, label %1708, label %1751

1708:                                             ; preds = %1705
  %1709 = load ptr, ptr %2, align 8, !tbaa !5
  %1710 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1709, i32 0, i32 1
  %1711 = load i32, ptr %1710, align 8, !tbaa !9
  %1712 = add nsw i32 %1711, 1
  %1713 = load ptr, ptr %2, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1713, i32 0, i32 1
  store i32 %1712, ptr %1714, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #5
  %1715 = load ptr, ptr %2, align 8, !tbaa !5
  %1716 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1715, i32 0, i32 0
  store ptr %1716, ptr %90, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #5
  %1717 = load ptr, ptr %2, align 8, !tbaa !5
  %1718 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1717, i32 0, i32 1
  %1719 = load i32, ptr %1718, align 8, !tbaa !9
  store i32 %1719, ptr %91, align 4, !tbaa !14
  %1720 = load i32, ptr %91, align 4, !tbaa !14
  %1721 = load ptr, ptr %90, align 8, !tbaa !5
  %1722 = getelementptr inbounds %struct.string__, ptr %1721, i32 0, i32 1
  %1723 = load i32, ptr %1722, align 8, !tbaa !15
  %1724 = icmp ult i32 %1720, %1723
  br i1 %1724, label %1728, label %1725

1725:                                             ; preds = %1708
  %1726 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1727 = load ptr, ptr %1726, align 8, !tbaa !5
  call void %1727(i32 noundef -3)
  br label %1728

1728:                                             ; preds = %1725, %1708
  %1729 = load ptr, ptr %90, align 8, !tbaa !5
  %1730 = getelementptr inbounds %struct.string__, ptr %1729, i32 0, i32 0
  %1731 = load ptr, ptr %1730, align 8, !tbaa !16
  %1732 = load i32, ptr %91, align 4, !tbaa !14
  %1733 = zext i32 %1732 to i64
  %1734 = getelementptr inbounds i8, ptr %1731, i64 %1733
  %1735 = load i8, ptr %1734, align 1, !tbaa !17
  store i8 %1735, ptr %32, align 1, !tbaa !17
  %1736 = load i8, ptr %32, align 1, !tbaa !17
  %1737 = sext i8 %1736 to i32
  %1738 = icmp eq i32 %1737, 61
  br i1 %1738, label %1739, label %1746

1739:                                             ; preds = %1728
  %1740 = load ptr, ptr %2, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1740, i32 0, i32 1
  %1742 = load i32, ptr %1741, align 8, !tbaa !9
  %1743 = add nsw i32 %1742, 1
  %1744 = load ptr, ptr %2, align 8, !tbaa !5
  %1745 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1744, i32 0, i32 1
  store i32 %1743, ptr %1745, align 8, !tbaa !9
  br label %1746

1746:                                             ; preds = %1739, %1728
  %1747 = load ptr, ptr %2, align 8, !tbaa !5
  %1748 = load i32, ptr %3, align 4, !tbaa !14
  %1749 = load i32, ptr %29, align 4, !tbaa !14
  %1750 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1747, i32 noundef %1748, i32 noundef %1749, i32 noundef %1750, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #5
  br label %1922

1751:                                             ; preds = %1705
  %1752 = load i8, ptr %32, align 1, !tbaa !17
  %1753 = sext i8 %1752 to i32
  %1754 = icmp eq i32 %1753, 38
  br i1 %1754, label %1755, label %1830

1755:                                             ; preds = %1751
  %1756 = load ptr, ptr %2, align 8, !tbaa !5
  %1757 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1756, i32 0, i32 1
  %1758 = load i32, ptr %1757, align 8, !tbaa !9
  %1759 = add nsw i32 %1758, 1
  %1760 = load ptr, ptr %2, align 8, !tbaa !5
  %1761 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1760, i32 0, i32 1
  store i32 %1759, ptr %1761, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #5
  %1762 = load ptr, ptr %2, align 8, !tbaa !5
  %1763 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1762, i32 0, i32 0
  store ptr %1763, ptr %92, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #5
  %1764 = load ptr, ptr %2, align 8, !tbaa !5
  %1765 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1764, i32 0, i32 1
  %1766 = load i32, ptr %1765, align 8, !tbaa !9
  store i32 %1766, ptr %93, align 4, !tbaa !14
  %1767 = load i32, ptr %93, align 4, !tbaa !14
  %1768 = load ptr, ptr %92, align 8, !tbaa !5
  %1769 = getelementptr inbounds %struct.string__, ptr %1768, i32 0, i32 1
  %1770 = load i32, ptr %1769, align 8, !tbaa !15
  %1771 = icmp ult i32 %1767, %1770
  br i1 %1771, label %1775, label %1772

1772:                                             ; preds = %1755
  %1773 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1774 = load ptr, ptr %1773, align 8, !tbaa !5
  call void %1774(i32 noundef -3)
  br label %1775

1775:                                             ; preds = %1772, %1755
  %1776 = load ptr, ptr %92, align 8, !tbaa !5
  %1777 = getelementptr inbounds %struct.string__, ptr %1776, i32 0, i32 0
  %1778 = load ptr, ptr %1777, align 8, !tbaa !16
  %1779 = load i32, ptr %93, align 4, !tbaa !14
  %1780 = zext i32 %1779 to i64
  %1781 = getelementptr inbounds i8, ptr %1778, i64 %1780
  %1782 = load i8, ptr %1781, align 1, !tbaa !17
  store i8 %1782, ptr %32, align 1, !tbaa !17
  %1783 = load i8, ptr %32, align 1, !tbaa !17
  %1784 = sext i8 %1783 to i32
  %1785 = icmp eq i32 %1784, 38
  br i1 %1785, label %1786, label %1814

1786:                                             ; preds = %1775
  %1787 = load ptr, ptr %2, align 8, !tbaa !5
  %1788 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1787, i32 0, i32 1
  %1789 = load i32, ptr %1788, align 8, !tbaa !9
  %1790 = add nsw i32 %1789, 1
  %1791 = load ptr, ptr %2, align 8, !tbaa !5
  %1792 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1791, i32 0, i32 1
  store i32 %1790, ptr %1792, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  %1793 = load ptr, ptr %2, align 8, !tbaa !5
  %1794 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1793, i32 0, i32 0
  store ptr %1794, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #5
  %1795 = load ptr, ptr %2, align 8, !tbaa !5
  %1796 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1795, i32 0, i32 1
  %1797 = load i32, ptr %1796, align 8, !tbaa !9
  store i32 %1797, ptr %95, align 4, !tbaa !14
  %1798 = load i32, ptr %95, align 4, !tbaa !14
  %1799 = load ptr, ptr %94, align 8, !tbaa !5
  %1800 = getelementptr inbounds %struct.string__, ptr %1799, i32 0, i32 1
  %1801 = load i32, ptr %1800, align 8, !tbaa !15
  %1802 = icmp ult i32 %1798, %1801
  br i1 %1802, label %1806, label %1803

1803:                                             ; preds = %1786
  %1804 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1805 = load ptr, ptr %1804, align 8, !tbaa !5
  call void %1805(i32 noundef -3)
  br label %1806

1806:                                             ; preds = %1803, %1786
  %1807 = load ptr, ptr %94, align 8, !tbaa !5
  %1808 = getelementptr inbounds %struct.string__, ptr %1807, i32 0, i32 0
  %1809 = load ptr, ptr %1808, align 8, !tbaa !16
  %1810 = load i32, ptr %95, align 4, !tbaa !14
  %1811 = zext i32 %1810 to i64
  %1812 = getelementptr inbounds i8, ptr %1809, i64 %1811
  %1813 = load i8, ptr %1812, align 1, !tbaa !17
  store i8 %1813, ptr %32, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  br label %1814

1814:                                             ; preds = %1806, %1775
  %1815 = load i8, ptr %32, align 1, !tbaa !17
  %1816 = sext i8 %1815 to i32
  %1817 = icmp eq i32 %1816, 61
  br i1 %1817, label %1818, label %1825

1818:                                             ; preds = %1814
  %1819 = load ptr, ptr %2, align 8, !tbaa !5
  %1820 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1819, i32 0, i32 1
  %1821 = load i32, ptr %1820, align 8, !tbaa !9
  %1822 = add nsw i32 %1821, 1
  %1823 = load ptr, ptr %2, align 8, !tbaa !5
  %1824 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1823, i32 0, i32 1
  store i32 %1822, ptr %1824, align 8, !tbaa !9
  br label %1825

1825:                                             ; preds = %1818, %1814
  %1826 = load ptr, ptr %2, align 8, !tbaa !5
  %1827 = load i32, ptr %3, align 4, !tbaa !14
  %1828 = load i32, ptr %29, align 4, !tbaa !14
  %1829 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1826, i32 noundef %1827, i32 noundef %1828, i32 noundef %1829, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  br label %1921

1830:                                             ; preds = %1751
  %1831 = load i8, ptr %32, align 1, !tbaa !17
  %1832 = sext i8 %1831 to i32
  %1833 = icmp eq i32 %1832, 124
  br i1 %1833, label %1834, label %1909

1834:                                             ; preds = %1830
  %1835 = load ptr, ptr %2, align 8, !tbaa !5
  %1836 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1835, i32 0, i32 1
  %1837 = load i32, ptr %1836, align 8, !tbaa !9
  %1838 = add nsw i32 %1837, 1
  %1839 = load ptr, ptr %2, align 8, !tbaa !5
  %1840 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1839, i32 0, i32 1
  store i32 %1838, ptr %1840, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #5
  %1841 = load ptr, ptr %2, align 8, !tbaa !5
  %1842 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1841, i32 0, i32 0
  store ptr %1842, ptr %96, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #5
  %1843 = load ptr, ptr %2, align 8, !tbaa !5
  %1844 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1843, i32 0, i32 1
  %1845 = load i32, ptr %1844, align 8, !tbaa !9
  store i32 %1845, ptr %97, align 4, !tbaa !14
  %1846 = load i32, ptr %97, align 4, !tbaa !14
  %1847 = load ptr, ptr %96, align 8, !tbaa !5
  %1848 = getelementptr inbounds %struct.string__, ptr %1847, i32 0, i32 1
  %1849 = load i32, ptr %1848, align 8, !tbaa !15
  %1850 = icmp ult i32 %1846, %1849
  br i1 %1850, label %1854, label %1851

1851:                                             ; preds = %1834
  %1852 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1853 = load ptr, ptr %1852, align 8, !tbaa !5
  call void %1853(i32 noundef -3)
  br label %1854

1854:                                             ; preds = %1851, %1834
  %1855 = load ptr, ptr %96, align 8, !tbaa !5
  %1856 = getelementptr inbounds %struct.string__, ptr %1855, i32 0, i32 0
  %1857 = load ptr, ptr %1856, align 8, !tbaa !16
  %1858 = load i32, ptr %97, align 4, !tbaa !14
  %1859 = zext i32 %1858 to i64
  %1860 = getelementptr inbounds i8, ptr %1857, i64 %1859
  %1861 = load i8, ptr %1860, align 1, !tbaa !17
  store i8 %1861, ptr %32, align 1, !tbaa !17
  %1862 = load i8, ptr %32, align 1, !tbaa !17
  %1863 = sext i8 %1862 to i32
  %1864 = icmp eq i32 %1863, 124
  br i1 %1864, label %1865, label %1893

1865:                                             ; preds = %1854
  %1866 = load ptr, ptr %2, align 8, !tbaa !5
  %1867 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1866, i32 0, i32 1
  %1868 = load i32, ptr %1867, align 8, !tbaa !9
  %1869 = add nsw i32 %1868, 1
  %1870 = load ptr, ptr %2, align 8, !tbaa !5
  %1871 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1870, i32 0, i32 1
  store i32 %1869, ptr %1871, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #5
  %1872 = load ptr, ptr %2, align 8, !tbaa !5
  %1873 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1872, i32 0, i32 0
  store ptr %1873, ptr %98, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #5
  %1874 = load ptr, ptr %2, align 8, !tbaa !5
  %1875 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1874, i32 0, i32 1
  %1876 = load i32, ptr %1875, align 8, !tbaa !9
  store i32 %1876, ptr %99, align 4, !tbaa !14
  %1877 = load i32, ptr %99, align 4, !tbaa !14
  %1878 = load ptr, ptr %98, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.string__, ptr %1878, i32 0, i32 1
  %1880 = load i32, ptr %1879, align 8, !tbaa !15
  %1881 = icmp ult i32 %1877, %1880
  br i1 %1881, label %1885, label %1882

1882:                                             ; preds = %1865
  %1883 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %1884 = load ptr, ptr %1883, align 8, !tbaa !5
  call void %1884(i32 noundef -3)
  br label %1885

1885:                                             ; preds = %1882, %1865
  %1886 = load ptr, ptr %98, align 8, !tbaa !5
  %1887 = getelementptr inbounds %struct.string__, ptr %1886, i32 0, i32 0
  %1888 = load ptr, ptr %1887, align 8, !tbaa !16
  %1889 = load i32, ptr %99, align 4, !tbaa !14
  %1890 = zext i32 %1889 to i64
  %1891 = getelementptr inbounds i8, ptr %1888, i64 %1890
  %1892 = load i8, ptr %1891, align 1, !tbaa !17
  store i8 %1892, ptr %32, align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  br label %1893

1893:                                             ; preds = %1885, %1854
  %1894 = load i8, ptr %32, align 1, !tbaa !17
  %1895 = sext i8 %1894 to i32
  %1896 = icmp eq i32 %1895, 61
  br i1 %1896, label %1897, label %1904

1897:                                             ; preds = %1893
  %1898 = load ptr, ptr %2, align 8, !tbaa !5
  %1899 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1898, i32 0, i32 1
  %1900 = load i32, ptr %1899, align 8, !tbaa !9
  %1901 = add nsw i32 %1900, 1
  %1902 = load ptr, ptr %2, align 8, !tbaa !5
  %1903 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1902, i32 0, i32 1
  store i32 %1901, ptr %1903, align 8, !tbaa !9
  br label %1904

1904:                                             ; preds = %1897, %1893
  %1905 = load ptr, ptr %2, align 8, !tbaa !5
  %1906 = load i32, ptr %3, align 4, !tbaa !14
  %1907 = load i32, ptr %29, align 4, !tbaa !14
  %1908 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1905, i32 noundef %1906, i32 noundef %1907, i32 noundef %1908, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  br label %1920

1909:                                             ; preds = %1830
  %1910 = load ptr, ptr %2, align 8, !tbaa !5
  %1911 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1910, i32 0, i32 1
  %1912 = load i32, ptr %1911, align 8, !tbaa !9
  %1913 = add nsw i32 %1912, 1
  %1914 = load ptr, ptr %2, align 8, !tbaa !5
  %1915 = getelementptr inbounds %struct.tag_____ParserState__, ptr %1914, i32 0, i32 1
  store i32 %1913, ptr %1915, align 8, !tbaa !9
  %1916 = load ptr, ptr %2, align 8, !tbaa !5
  %1917 = load i32, ptr %3, align 4, !tbaa !14
  %1918 = load i32, ptr %29, align 4, !tbaa !14
  %1919 = load i32, ptr %4, align 4, !tbaa !14
  call void @Parser__finishToken__(ptr noundef %1916, i32 noundef %1917, i32 noundef %1918, i32 noundef %1919, i32 noundef 18)
  br label %1920

1920:                                             ; preds = %1909, %1904
  br label %1921

1921:                                             ; preds = %1920, %1825
  br label %1922

1922:                                             ; preds = %1921, %1746
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #5
  br label %1923

1923:                                             ; preds = %1922, %1650
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #5
  br label %1924

1924:                                             ; preds = %1923, %1618
  br label %1925

1925:                                             ; preds = %1924, %1575
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #5
  br label %1926

1926:                                             ; preds = %1925, %1415
  br label %1927

1927:                                             ; preds = %1926, %1264
  br label %1928

1928:                                             ; preds = %1927, %1125
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #5
  br label %1929

1929:                                             ; preds = %1928, %1005
  br label %1930

1930:                                             ; preds = %1929, %990
  br label %1931

1931:                                             ; preds = %1930, %985
  br label %1932

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

1933:                                             ; preds = %1932, %751
  br label %1934

1934:                                             ; preds = %1933, %736
  br label %1935

1935:                                             ; preds = %1934, %721
  br label %1936

1936:                                             ; preds = %1935, %706
  br label %1937

1937:                                             ; preds = %1936, %691
  br label %1938

1938:                                             ; preds = %1937, %676
  br label %1939

1939:                                             ; preds = %1938, %671
  br label %1940

1940:                                             ; preds = %1939, %596
  br label %1941

1941:                                             ; preds = %1940, %581
  br label %1942

1942:                                             ; preds = %1941, %521
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #5
  ret void

1943:                                             ; preds = %1390, %1239, %490, %378, %261
  unreachable
}

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__mixingTabsSpaces__(ptr noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local signext i8 @Parser__readEscapeSequence__(ptr noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__finishHexNumber__(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__finishToken__(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local void @Error__atIndex__(ptr dead_on_unwind noalias writable sret(%struct.tag_____Error__) align 8, ptr noundef, i32 noundef, ptr, i32) #4

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @Parser__isDigit__(i8 noundef signext) #4

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @Parser__isIdentifierChar__(i8 noundef signext) #4

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__finishFloatNumber__(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__finishNumber__(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #4

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #5 = { 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, !12, i64 16}
!10 = !{!"tag_____ParserState__", !11, i64 0, !12, i64 16, !6, i64 24, !6, i64 32, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !6, i64 64, !13, i64 72, !12, i64 80, !12, i64 84, !6, i64 88, !12, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!11 = !{!"", !6, i64 0, !12, i64 8}
!12 = !{!"int", !7, i64 0}
!13 = !{!"tag_____IntRange__", !12, i64 0, !12, i64 4}
!14 = !{!12, !12, i64 0}
!15 = !{!11, !12, i64 8}
!16 = !{!11, !6, i64 0}
!17 = !{!7, !7, i64 0}
!18 = !{!10, !12, i64 40}
!19 = !{!10, !12, i64 48}
!20 = !{!10, !12, i64 52}
!21 = !{!10, !6, i64 32}
!22 = !{!23, !12, i64 28}
!23 = !{!"tag_____Token__", !12, i64 0, !11, i64 8, !13, i64 24, !13, i64 32, !12, i64 40}
!24 = !{!10, !12, i64 84}
!25 = !{!26, !6, i64 8}
!26 = !{!"tag_____IAllocator__", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!27 = !{!26, !6, i64 0}
!28 = !{!23, !12, i64 0}
!29 = !{i64 0, i64 8, !5, i64 8, i64 4, !14}
!30 = !{!23, !12, i64 40}
!31 = !{i64 0, i64 4, !14, i64 4, i64 4, !14}
!32 = !{i64 0, i64 4, !14, i64 8, i64 8, !5, i64 16, i64 4, !14, i64 24, i64 4, !14, i64 28, i64 4, !14, i64 32, i64 4, !14, i64 36, i64 4, !14, i64 40, i64 4, !14}
!33 = !{!10, !12, i64 56}
!34 = !{!10, !6, i64 120}
!35 = !{!10, !6, i64 64}
!36 = !{!10, !6, i64 24}


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

%struct.string__ = type { ptr, i32 }
%struct.tag_____IAllocator__ = type { ptr, ptr, ptr, ptr }
%struct.tag_____Error__ = type { ptr, %struct.tag_____IntRange__, %struct.string__ }
%struct.tag_____IntRange__ = type { i32, i32 }

@mu_____string290 = external dso_local local_unnamed_addr global %struct.string__, align 8
@mu_____string292 = external dso_local local_unnamed_addr global %struct.string__, align 8
@mu_____string291 = external dso_local local_unnamed_addr global %struct.string__, align 8
@top_____currentAllocator__ = external dso_local thread_local local_unnamed_addr global %struct.tag_____IAllocator__, align 8
@top_____abandonFn__ = external dso_local thread_local local_unnamed_addr global ptr, align 8

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #0

; Function Attrs: nounwind uwtable
declare dso_local void @List__add__Error____(ptr noundef, ptr noundef byval(%struct.tag_____Error__) align 8) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @Error__at__(ptr dead_on_unwind noalias writable sret(%struct.tag_____Error__) align 8, ptr noundef, i64, ptr, i32) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @StringBuilder__writeChar__(ptr noundef, i8 noundef signext) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local i64 @IntRange__cons__(i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @StringBuilder__clear__(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local { ptr, i32 } @string__slice__(ptr, i32, i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @Parser__readToken__(ptr noundef %0) local_unnamed_addr #1 {
  %2 = alloca %struct.tag_____Error__, align 8
  %3 = alloca %struct.tag_____Error__, align 8
  %4 = alloca %struct.tag_____Error__, align 8
  %5 = getelementptr inbounds i8, ptr %0, i64 16
  %6 = load i32, ptr %5, align 8, !tbaa !5
  %7 = getelementptr inbounds i8, ptr %0, i64 8
  %8 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____abandonFn__)
  %9 = getelementptr inbounds i8, ptr %0, i64 40
  %10 = getelementptr inbounds i8, ptr %0, i64 48
  br label %.thread720

.thread720:                                       ; preds = %.thread720.backedge, %1
  %11 = phi i32 [ %6, %1 ], [ %.be, %.thread720.backedge ]
  %12 = load i32, ptr %7, align 8, !tbaa !13
  %13 = icmp ult i32 %11, %12
  br i1 %13, label %16, label %14

14:                                               ; preds = %.thread720
  %15 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %15(i32 noundef -3) #2
  %.pre816 = load i32, ptr %5, align 8, !tbaa !5
  br label %16

16:                                               ; preds = %14, %.thread720
  %17 = phi i32 [ %.pre816, %14 ], [ %11, %.thread720 ]
  %18 = load ptr, ptr %0, align 8, !tbaa !15
  %19 = zext i32 %11 to i64
  %20 = getelementptr inbounds i8, ptr %18, i64 %19
  %21 = load i8, ptr %20, align 1, !tbaa !16
  %22 = load i32, ptr %9, align 8, !tbaa !17
  %23 = icmp eq i32 %17, %22
  br i1 %23, label %.preheader, label %.preheader811

.preheader:                                       ; preds = %16, %37
  %24 = phi ptr [ %38, %37 ], [ %18, %16 ]
  %.0598 = phi i32 [ %.2600, %37 ], [ 0, %16 ]
  %.0595 = phi i32 [ %.1596, %37 ], [ 0, %16 ]
  %.0592 = phi i8 [ %41, %37 ], [ %21, %16 ]
  switch i8 %.0592, label %28 [
    i8 9, label %26
    i8 32, label %.thread
  ]

.thread:                                          ; preds = %.preheader
  %25 = add nsw i32 %.0598, 1
  br label %30

26:                                               ; preds = %.preheader
  %27 = add nsw i32 %.0595, 1
  br label %30

28:                                               ; preds = %.preheader
  %.not = icmp eq i8 %.0592, 13
  %29 = add nsw i32 %.0598, 1
  br i1 %.not, label %30, label %42

30:                                               ; preds = %.thread, %28, %26
  %.2600 = phi i32 [ %.0598, %26 ], [ %29, %28 ], [ %25, %.thread ]
  %.1596 = phi i32 [ %27, %26 ], [ %.0595, %28 ], [ %.0595, %.thread ]
  %31 = load i32, ptr %5, align 8, !tbaa !5
  %32 = add nsw i32 %31, 1
  store i32 %32, ptr %5, align 8, !tbaa !5
  %33 = load i32, ptr %7, align 8, !tbaa !13
  %34 = icmp ult i32 %32, %33
  br i1 %34, label %37, label %35

35:                                               ; preds = %30
  %36 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %36(i32 noundef -3) #2
  %.pre839 = load ptr, ptr %0, align 8, !tbaa !15
  br label %37

37:                                               ; preds = %35, %30
  %38 = phi ptr [ %.pre839, %35 ], [ %24, %30 ]
  %39 = zext i32 %32 to i64
  %40 = getelementptr inbounds i8, ptr %38, i64 %39
  %41 = load i8, ptr %40, align 1, !tbaa !16
  br label %.preheader

42:                                               ; preds = %28
  %43 = load i32, ptr %10, align 8, !tbaa !18
  %44 = mul nsw i32 %43, %.0595
  %45 = add nsw i32 %44, %.0598
  br label %.thread713

.preheader811:                                    ; preds = %16, %54
  %46 = phi ptr [ %55, %54 ], [ %18, %16 ]
  %.1593 = phi i8 [ %58, %54 ], [ %21, %16 ]
  switch i8 %.1593, label %.thread713 [
    i8 32, label %47
    i8 13, label %47
    i8 9, label %47
  ]

47:                                               ; preds = %.preheader811, %.preheader811, %.preheader811
  %48 = load i32, ptr %5, align 8, !tbaa !5
  %49 = add nsw i32 %48, 1
  store i32 %49, ptr %5, align 8, !tbaa !5
  %50 = load i32, ptr %7, align 8, !tbaa !13
  %51 = icmp ult i32 %49, %50
  br i1 %51, label %54, label %52

52:                                               ; preds = %47
  %53 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %53(i32 noundef -3) #2
  %.pre817 = load ptr, ptr %0, align 8, !tbaa !15
  br label %54

54:                                               ; preds = %47, %52
  %55 = phi ptr [ %46, %47 ], [ %.pre817, %52 ]
  %56 = zext i32 %49 to i64
  %57 = getelementptr inbounds i8, ptr %55, i64 %56
  %58 = load i8, ptr %57, align 1, !tbaa !16
  br label %.preheader811

.thread713:                                       ; preds = %.preheader811, %42
  %59 = phi ptr [ %24, %42 ], [ %46, %.preheader811 ]
  %.3601 = phi i32 [ %.0598, %42 ], [ 0, %.preheader811 ]
  %.2597 = phi i32 [ %.0595, %42 ], [ 0, %.preheader811 ]
  %.3 = phi i8 [ %.0592, %42 ], [ %.1593, %.preheader811 ]
  %.1 = phi i32 [ %45, %42 ], [ 2147483647, %.preheader811 ]
  switch i8 %.3, label %.thread724 [
    i8 47, label %60
    i8 10, label %86
  ]

60:                                               ; preds = %.thread713
  %61 = load i32, ptr %5, align 8, !tbaa !5
  %62 = add nsw i32 %61, 1
  %63 = load i32, ptr %7, align 8, !tbaa !13
  %64 = icmp ult i32 %62, %63
  br i1 %64, label %67, label %65

65:                                               ; preds = %60
  %66 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %66(i32 noundef -3) #2
  %.pre818 = load ptr, ptr %0, align 8, !tbaa !15
  br label %67

67:                                               ; preds = %60, %65
  %68 = phi ptr [ %59, %60 ], [ %.pre818, %65 ]
  %69 = zext i32 %62 to i64
  %70 = getelementptr inbounds i8, ptr %68, i64 %69
  %71 = load i8, ptr %70, align 1, !tbaa !16
  %.not762 = icmp eq i8 %71, 47
  br i1 %.not762, label %72, label %.thread724

72:                                               ; preds = %67
  %73 = load i32, ptr %5, align 8, !tbaa !5
  %74 = add nsw i32 %73, 2
  store i32 %74, ptr %5, align 8, !tbaa !5
  %75 = load i32, ptr %7, align 8, !tbaa !13
  %76 = icmp ult i32 %74, %75
  br i1 %76, label %.preheader852, label %.sink.split849

.sink.split849:                                   ; preds = %81, %72
  %.sink843.ph = phi i32 [ %74, %72 ], [ %83, %81 ]
  %77 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %77(i32 noundef -3) #2
  %.pre821 = load ptr, ptr %0, align 8, !tbaa !15
  br label %.preheader852

.preheader852:                                    ; preds = %72, %.sink.split849
  %.sink843.ph853 = phi i32 [ %.sink843.ph, %.sink.split849 ], [ %74, %72 ]
  %.sink.ph = phi ptr [ %.pre821, %.sink.split849 ], [ %68, %72 ]
  br label %78

78:                                               ; preds = %.preheader852, %81
  %.sink843 = phi i32 [ %83, %81 ], [ %.sink843.ph853, %.preheader852 ]
  %79 = zext i32 %.sink843 to i64
  %80 = getelementptr inbounds i8, ptr %.sink.ph, i64 %79
  %.4 = load i8, ptr %80, align 1, !tbaa !16
  switch i8 %.4, label %81 [
    i8 10, label %.thread720.loopexit
    i8 0, label %.thread720.loopexit
  ]

81:                                               ; preds = %78
  %82 = load i32, ptr %5, align 8, !tbaa !5
  %83 = add nsw i32 %82, 1
  store i32 %83, ptr %5, align 8, !tbaa !5
  %84 = load i32, ptr %7, align 8, !tbaa !13
  %85 = icmp ult i32 %83, %84
  br i1 %85, label %78, label %.sink.split849

86:                                               ; preds = %.thread713
  %87 = load i32, ptr %5, align 8, !tbaa !5
  %88 = add nsw i32 %87, 1
  store i32 %88, ptr %5, align 8, !tbaa !5
  store i32 %88, ptr %9, align 8, !tbaa !17
  br label %.thread720.backedge

.thread724:                                       ; preds = %.thread713, %67
  %.not672 = icmp eq i32 %.1, 2147483647
  br i1 %.not672, label %108, label %89

89:                                               ; preds = %.thread724
  %90 = getelementptr inbounds i8, ptr %0, i64 52
  %91 = load i32, ptr %90, align 4, !tbaa !19
  switch i32 %91, label %108 [
    i32 1, label %92
    i32 2, label %95
    i32 0, label %98
  ]

92:                                               ; preds = %89
  %93 = icmp sgt i32 %.3601, 0
  br i1 %93, label %94, label %108

94:                                               ; preds = %92
  tail call void @Parser__mixingTabsSpaces__(ptr noundef nonnull %0)
  br label %108

95:                                               ; preds = %89
  %96 = icmp sgt i32 %.2597, 0
  br i1 %96, label %97, label %108

97:                                               ; preds = %95
  tail call void @Parser__mixingTabsSpaces__(ptr noundef nonnull %0)
  br label %108

98:                                               ; preds = %89
  %99 = icmp sgt i32 %.2597, 0
  %100 = icmp eq i32 %.3601, 0
  %narrow.not766 = select i1 %99, i1 %100, i1 false
  br i1 %narrow.not766, label %101, label %102

101:                                              ; preds = %98
  store i32 1, ptr %90, align 4, !tbaa !19
  br label %108

102:                                              ; preds = %98
  %103 = icmp slt i32 %.3601, 1
  %104 = icmp ne i32 %.2597, 0
  %narrow.not769 = select i1 %103, i1 true, i1 %104
  br i1 %narrow.not769, label %106, label %105

105:                                              ; preds = %102
  store i32 2, ptr %90, align 4, !tbaa !19
  br label %108

106:                                              ; preds = %102
  %.not770 = xor i1 %99, true
  %.not675 = or i1 %103, %.not770
  br i1 %.not675, label %108, label %107

107:                                              ; preds = %106
  tail call void @Parser__mixingTabsSpaces__(ptr noundef nonnull %0)
  br label %108

.thread720.loopexit:                              ; preds = %78, %78
  %.pre.pre = load i32, ptr %5, align 8, !tbaa !5
  br label %.thread720.backedge

.thread720.backedge:                              ; preds = %.thread720.loopexit, %86
  %.be = phi i32 [ %.pre.pre, %.thread720.loopexit ], [ %88, %86 ]
  br label %.thread720

108:                                              ; preds = %101, %106, %107, %105, %89, %94, %92, %95, %97, %.thread724
  %109 = load i32, ptr %5, align 8, !tbaa !5
  %110 = load i32, ptr %7, align 8, !tbaa !13
  %111 = icmp ult i32 %109, %110
  br i1 %111, label %114, label %112

112:                                              ; preds = %108
  %113 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %113(i32 noundef -3) #2
  br label %114

114:                                              ; preds = %112, %108
  %115 = load ptr, ptr %0, align 8, !tbaa !15
  %116 = zext i32 %109 to i64
  %117 = getelementptr inbounds i8, ptr %115, i64 %116
  %118 = load i8, ptr %117, align 1, !tbaa !16
  switch i8 %118, label %261 [
    i8 0, label %119
    i8 44, label %142
    i8 59, label %145
    i8 58, label %148
    i8 40, label %164
    i8 41, label %167
    i8 123, label %170
    i8 125, label %173
    i8 91, label %176
    i8 93, label %179
    i8 60, label %182
    i8 62, label %215
    i8 35, label %255
    i8 94, label %258
  ]

119:                                              ; preds = %114
  %120 = load i32, ptr %5, align 8, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr %5, align 8, !tbaa !5
  %122 = getelementptr inbounds i8, ptr %0, i64 32
  %123 = load ptr, ptr %122, align 8, !tbaa !20
  %124 = getelementptr inbounds i8, ptr %123, i64 28
  %125 = load i32, ptr %124, align 4, !tbaa !21
  %126 = getelementptr inbounds i8, ptr %0, i64 84
  store i32 %125, ptr %126, align 4, !tbaa !23
  %127 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @top_____currentAllocator__)
  %128 = getelementptr inbounds i8, ptr %127, i64 8
  %129 = load ptr, ptr %128, align 8, !tbaa !24
  %130 = load ptr, ptr %127, align 8, !tbaa !26
  %131 = tail call ptr %129(ptr noundef %130, i64 noundef 48) #2
  %132 = load i32, ptr %5, align 8, !tbaa !5
  %133 = load ptr, ptr %0, align 8
  %134 = load i32, ptr %7, align 8
  %135 = tail call { ptr, i32 } @string__slice__(ptr %133, i32 %134, i32 noundef %109, i32 noundef %132)
  %136 = extractvalue { ptr, i32 } %135, 0
  %137 = extractvalue { ptr, i32 } %135, 1
  %138 = load i32, ptr %5, align 8, !tbaa !5
  %139 = tail call i64 @IntRange__cons__(i32 noundef %109, i32 noundef %138)
  %140 = load i32, ptr %5, align 8, !tbaa !5
  %141 = tail call i64 @IntRange__cons__(i32 noundef %6, i32 noundef %140)
  store i32 17, ptr %131, align 8, !tbaa !27
  %.sroa.5121.0..sroa_idx = getelementptr inbounds i8, ptr %131, i64 4
  store i32 0, ptr %.sroa.5121.0..sroa_idx, align 4
  %.sroa.5122.0..sroa_idx = getelementptr inbounds i8, ptr %131, i64 8
  store ptr %136, ptr %.sroa.5122.0..sroa_idx, align 8, !tbaa !14
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %131, i64 16
  store i32 %137, ptr %.sroa.6.0..sroa_idx, align 8, !tbaa !27
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %131, i64 24
  store i64 %139, ptr %.sroa.8.0..sroa_idx, align 8
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %131, i64 32
  store i64 %141, ptr %.sroa.9.0..sroa_idx, align 8
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %131, i64 40
  store i32 0, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !27
  %.sroa.11.0..sroa_idx = getelementptr inbounds i8, ptr %131, i64 44
  store i32 0, ptr %.sroa.11.0..sroa_idx, align 4
  store ptr %131, ptr %122, align 8, !tbaa !20
  br label %509

142:                                              ; preds = %114
  %143 = load i32, ptr %5, align 8, !tbaa !5
  %144 = add nsw i32 %143, 1
  store i32 %144, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 13)
  br label %509

145:                                              ; preds = %114
  %146 = load i32, ptr %5, align 8, !tbaa !5
  %147 = add nsw i32 %146, 1
  store i32 %147, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 14)
  br label %509

148:                                              ; preds = %114
  %149 = load i32, ptr %5, align 8, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr %5, align 8, !tbaa !5
  %151 = load i32, ptr %7, align 8, !tbaa !13
  %152 = icmp ult i32 %150, %151
  br i1 %152, label %155, label %153

153:                                              ; preds = %148
  %154 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %154(i32 noundef -3) #2
  %.pre826 = load ptr, ptr %0, align 8, !tbaa !15
  br label %155

155:                                              ; preds = %153, %148
  %156 = phi ptr [ %.pre826, %153 ], [ %115, %148 ]
  %157 = zext i32 %150 to i64
  %158 = getelementptr inbounds i8, ptr %156, i64 %157
  %159 = load i8, ptr %158, align 1, !tbaa !16
  switch i8 %159, label %163 [
    i8 61, label %160
    i8 58, label %160
  ]

160:                                              ; preds = %155, %155
  %161 = load i32, ptr %5, align 8, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

163:                                              ; preds = %155
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 15)
  br label %509

164:                                              ; preds = %114
  %165 = load i32, ptr %5, align 8, !tbaa !5
  %166 = add nsw i32 %165, 1
  store i32 %166, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 5)
  br label %509

167:                                              ; preds = %114
  %168 = load i32, ptr %5, align 8, !tbaa !5
  %169 = add nsw i32 %168, 1
  store i32 %169, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 6)
  br label %509

170:                                              ; preds = %114
  %171 = load i32, ptr %5, align 8, !tbaa !5
  %172 = add nsw i32 %171, 1
  store i32 %172, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 7)
  br label %509

173:                                              ; preds = %114
  %174 = load i32, ptr %5, align 8, !tbaa !5
  %175 = add nsw i32 %174, 1
  store i32 %175, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 8)
  br label %509

176:                                              ; preds = %114
  %177 = load i32, ptr %5, align 8, !tbaa !5
  %178 = add nsw i32 %177, 1
  store i32 %178, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 9)
  br label %509

179:                                              ; preds = %114
  %180 = load i32, ptr %5, align 8, !tbaa !5
  %181 = add nsw i32 %180, 1
  store i32 %181, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 10)
  br label %509

182:                                              ; preds = %114
  %183 = load i32, ptr %5, align 8, !tbaa !5
  %184 = add nsw i32 %183, 1
  store i32 %184, ptr %5, align 8, !tbaa !5
  %185 = load i32, ptr %7, align 8, !tbaa !13
  %186 = icmp ult i32 %184, %185
  br i1 %186, label %189, label %187

187:                                              ; preds = %182
  %188 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %188(i32 noundef -3) #2
  %.pre824 = load ptr, ptr %0, align 8, !tbaa !15
  br label %189

189:                                              ; preds = %187, %182
  %190 = phi ptr [ %.pre824, %187 ], [ %115, %182 ]
  %191 = zext i32 %184 to i64
  %192 = getelementptr inbounds i8, ptr %190, i64 %191
  %193 = load i8, ptr %192, align 1, !tbaa !16
  switch i8 %193, label %214 [
    i8 61, label %194
    i8 60, label %197
  ]

194:                                              ; preds = %189
  %195 = load i32, ptr %5, align 8, !tbaa !5
  %196 = add nsw i32 %195, 1
  store i32 %196, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

197:                                              ; preds = %189
  %198 = load i32, ptr %5, align 8, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr %5, align 8, !tbaa !5
  %200 = load i32, ptr %7, align 8, !tbaa !13
  %201 = icmp ult i32 %199, %200
  br i1 %201, label %204, label %202

202:                                              ; preds = %197
  %203 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %203(i32 noundef -3) #2
  %.pre825 = load ptr, ptr %0, align 8, !tbaa !15
  br label %204

204:                                              ; preds = %202, %197
  %205 = phi ptr [ %.pre825, %202 ], [ %190, %197 ]
  %206 = zext i32 %199 to i64
  %207 = getelementptr inbounds i8, ptr %205, i64 %206
  %208 = load i8, ptr %207, align 1, !tbaa !16
  %209 = icmp eq i8 %208, 61
  br i1 %209, label %210, label %213

210:                                              ; preds = %204
  %211 = load i32, ptr %5, align 8, !tbaa !5
  %212 = add nsw i32 %211, 1
  store i32 %212, ptr %5, align 8, !tbaa !5
  br label %213

213:                                              ; preds = %210, %204
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

214:                                              ; preds = %189
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 11)
  br label %509

215:                                              ; preds = %114
  %216 = load i32, ptr %5, align 8, !tbaa !5
  %217 = add nsw i32 %216, 1
  store i32 %217, ptr %5, align 8, !tbaa !5
  %218 = load i32, ptr %7, align 8, !tbaa !13
  %219 = icmp ult i32 %217, %218
  br i1 %219, label %222, label %220

220:                                              ; preds = %215
  %221 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %221(i32 noundef -3) #2
  %.pre822 = load ptr, ptr %0, align 8, !tbaa !15
  br label %222

222:                                              ; preds = %220, %215
  %223 = phi ptr [ %.pre822, %220 ], [ %115, %215 ]
  %224 = zext i32 %217 to i64
  %225 = getelementptr inbounds i8, ptr %223, i64 %224
  %226 = load i8, ptr %225, align 1, !tbaa !16
  switch i8 %226, label %.critedge.thread [
    i8 61, label %227
    i8 62, label %230
  ]

227:                                              ; preds = %222
  %228 = load i32, ptr %5, align 8, !tbaa !5
  %229 = add nsw i32 %228, 1
  store i32 %229, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

230:                                              ; preds = %222
  %231 = load i32, ptr %5, align 8, !tbaa !5
  %232 = add nsw i32 %231, 1
  %233 = load i32, ptr %7, align 8, !tbaa !13
  %234 = icmp ult i32 %232, %233
  br i1 %234, label %237, label %235

235:                                              ; preds = %230
  %236 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %236(i32 noundef -3) #2
  %.pre823 = load ptr, ptr %0, align 8, !tbaa !15
  br label %237

237:                                              ; preds = %235, %230
  %238 = phi ptr [ %.pre823, %235 ], [ %223, %230 ]
  %239 = zext i32 %232 to i64
  %240 = getelementptr inbounds i8, ptr %238, i64 %239
  %241 = load i8, ptr %240, align 1, !tbaa !16
  %.not771 = icmp eq i8 %241, 61
  br i1 %.not771, label %242, label %.critedge

242:                                              ; preds = %237
  %243 = load i32, ptr %5, align 8, !tbaa !5
  %244 = add nsw i32 %243, 2
  store i32 %244, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

.critedge:                                        ; preds = %237
  %245 = getelementptr inbounds i8, ptr %0, i64 56
  %246 = load i32, ptr %245, align 8, !tbaa !28
  %247 = icmp sgt i32 %246, 0
  br i1 %247, label %251, label %252

.critedge.thread:                                 ; preds = %222
  %248 = getelementptr inbounds i8, ptr %0, i64 56
  %249 = load i32, ptr %248, align 8, !tbaa !28
  %250 = icmp sgt i32 %249, 0
  br i1 %250, label %251, label %.thread728

251:                                              ; preds = %.critedge.thread, %.critedge
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 12)
  br label %509

252:                                              ; preds = %.critedge
  %253 = load i32, ptr %5, align 8, !tbaa !5
  %254 = add nsw i32 %253, 1
  store i32 %254, ptr %5, align 8, !tbaa !5
  br label %.thread728

.thread728:                                       ; preds = %.critedge.thread, %252
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

255:                                              ; preds = %114
  %256 = load i32, ptr %5, align 8, !tbaa !5
  %257 = add nsw i32 %256, 1
  store i32 %257, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 16)
  br label %509

258:                                              ; preds = %114
  %259 = load i32, ptr %5, align 8, !tbaa !5
  %260 = add nsw i32 %259, 1
  store i32 %260, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

261:                                              ; preds = %114
  %262 = and i8 %118, -33
  %263 = add i8 %262, -91
  %narrow773 = icmp ult i8 %263, -26
  %264 = icmp ne i8 %118, 95
  %narrow.not775 = and i1 %264, %narrow773
  br i1 %narrow.not775, label %288, label %265

265:                                              ; preds = %261
  %266 = load i32, ptr %5, align 8, !tbaa !5
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr %5, align 8, !tbaa !5
  %268 = load i32, ptr %7, align 8, !tbaa !13
  %269 = icmp ult i32 %267, %268
  br i1 %269, label %272, label %270

270:                                              ; preds = %265
  %271 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %271(i32 noundef -3) #2
  %.pre827 = load ptr, ptr %0, align 8, !tbaa !15
  br label %272

272:                                              ; preds = %270, %265
  %273 = phi ptr [ %.pre827, %270 ], [ %115, %265 ]
  %274 = zext i32 %267 to i64
  %275 = getelementptr inbounds i8, ptr %273, i64 %274
  %.0623813 = load i8, ptr %275, align 1, !tbaa !16
  %276 = tail call zeroext i8 @Parser__isIdentifierChar__(i8 noundef signext %.0623813)
  %.not697814 = icmp eq i8 %276, 0
  br i1 %.not697814, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %272, %283
  %277 = load i32, ptr %5, align 8, !tbaa !5
  %278 = add nsw i32 %277, 1
  store i32 %278, ptr %5, align 8, !tbaa !5
  %279 = load i32, ptr %7, align 8, !tbaa !13
  %280 = icmp ult i32 %278, %279
  br i1 %280, label %283, label %281

281:                                              ; preds = %.lr.ph
  %282 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %282(i32 noundef -3) #2
  br label %283

283:                                              ; preds = %281, %.lr.ph
  %284 = load ptr, ptr %0, align 8, !tbaa !15
  %285 = zext i32 %278 to i64
  %286 = getelementptr inbounds i8, ptr %284, i64 %285
  %.0623 = load i8, ptr %286, align 1, !tbaa !16
  %287 = tail call zeroext i8 @Parser__isIdentifierChar__(i8 noundef signext %.0623)
  %.not697 = icmp eq i8 %287, 0
  br i1 %.not697, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %283, %272
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 0)
  br label %509

288:                                              ; preds = %261
  switch i8 %118, label %370 [
    i8 34, label %289
    i8 39, label %333
  ]

289:                                              ; preds = %288
  %290 = load i32, ptr %5, align 8, !tbaa !5
  %291 = add nsw i32 %290, 1
  store i32 %291, ptr %5, align 8, !tbaa !5
  %292 = load i32, ptr %7, align 8, !tbaa !13
  %293 = icmp ult i32 %291, %292
  br i1 %293, label %296, label %294

294:                                              ; preds = %289
  %295 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %295(i32 noundef -3) #2
  %.pre830 = load ptr, ptr %0, align 8, !tbaa !15
  br label %296

296:                                              ; preds = %294, %289
  %297 = phi ptr [ %.pre830, %294 ], [ %115, %289 ]
  %298 = zext i32 %291 to i64
  %299 = getelementptr inbounds i8, ptr %297, i64 %298
  %300 = load i8, ptr %299, align 1, !tbaa !16
  %301 = getelementptr inbounds i8, ptr %0, i64 120
  %302 = load ptr, ptr %301, align 8, !tbaa !29
  tail call void @StringBuilder__clear__(ptr noundef %302)
  br label %303

303:                                              ; preds = %327, %296
  %.1624 = phi i8 [ %300, %296 ], [ %331, %327 ]
  switch i8 %.1624, label %317 [
    i8 92, label %304
    i8 10, label %.thread733
    i8 13, label %.thread733
    i8 0, label %.thread733
    i8 34, label %314
  ]

304:                                              ; preds = %303
  %305 = load ptr, ptr %301, align 8, !tbaa !29
  %306 = tail call signext i8 @Parser__readEscapeSequence__(ptr noundef nonnull %0)
  tail call void @StringBuilder__writeChar__(ptr noundef %305, i8 noundef signext %306)
  %.pre831 = load i32, ptr %5, align 8, !tbaa !5
  br label %321

.thread733:                                       ; preds = %303, %303, %303
  %307 = getelementptr inbounds i8, ptr %0, i64 64
  %308 = load ptr, ptr %307, align 8, !tbaa !30
  %309 = getelementptr inbounds i8, ptr %0, i64 24
  %310 = load ptr, ptr %309, align 8, !tbaa !31
  %311 = load i32, ptr %5, align 8, !tbaa !5
  %312 = load ptr, ptr @mu_____string290, align 8
  %313 = load i32, ptr getelementptr inbounds (i8, ptr @mu_____string290, i64 8), align 8
  call void @Error__atIndex__(ptr dead_on_unwind nonnull writable sret(%struct.tag_____Error__) align 8 %2, ptr noundef %310, i32 noundef %311, ptr %312, i32 %313)
  call void @List__add__Error____(ptr noundef %308, ptr noundef nonnull byval(%struct.tag_____Error__) align 8 %2)
  br label %332

314:                                              ; preds = %303
  %315 = load i32, ptr %5, align 8, !tbaa !5
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr %5, align 8, !tbaa !5
  br label %332

317:                                              ; preds = %303
  %318 = load ptr, ptr %301, align 8, !tbaa !29
  tail call void @StringBuilder__writeChar__(ptr noundef %318, i8 noundef signext %.1624)
  %319 = load i32, ptr %5, align 8, !tbaa !5
  %320 = add nsw i32 %319, 1
  store i32 %320, ptr %5, align 8, !tbaa !5
  br label %321

321:                                              ; preds = %317, %304
  %322 = phi i32 [ %320, %317 ], [ %.pre831, %304 ]
  %323 = load i32, ptr %7, align 8, !tbaa !13
  %324 = icmp ult i32 %322, %323
  br i1 %324, label %327, label %325

325:                                              ; preds = %321
  %326 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %326(i32 noundef -3) #2
  br label %327

327:                                              ; preds = %325, %321
  %328 = load ptr, ptr %0, align 8, !tbaa !15
  %329 = zext i32 %322 to i64
  %330 = getelementptr inbounds i8, ptr %328, i64 %329
  %331 = load i8, ptr %330, align 1, !tbaa !16
  br label %303

332:                                              ; preds = %.thread733, %314
  call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 2)
  br label %509

333:                                              ; preds = %288
  %334 = load i32, ptr %5, align 8, !tbaa !5
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr %5, align 8, !tbaa !5
  %336 = load i32, ptr %7, align 8, !tbaa !13
  %337 = icmp ult i32 %335, %336
  br i1 %337, label %339, label %.sink.split.sink.split

.sink.split.sink.split:                           ; preds = %333, %365
  %.sink846.ph.ph = phi i32 [ %366, %365 ], [ %335, %333 ]
  %.0633.ph.ph = phi i32 [ %.2635, %365 ], [ 0, %333 ]
  %338 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %338(i32 noundef -3) #2
  br label %.sink.split

.sink.split:                                      ; preds = %.sink.split.sink.split, %365
  %.sink846.ph = phi i32 [ %366, %365 ], [ %.sink846.ph.ph, %.sink.split.sink.split ]
  %.0633.ph = phi i32 [ %.2635, %365 ], [ %.0633.ph.ph, %.sink.split.sink.split ]
  %.pre828 = load ptr, ptr %0, align 8, !tbaa !15
  br label %339

339:                                              ; preds = %.sink.split, %333
  %.sink846 = phi i32 [ %335, %333 ], [ %.sink846.ph, %.sink.split ]
  %.sink844 = phi ptr [ %115, %333 ], [ %.pre828, %.sink.split ]
  %.0633 = phi i32 [ 0, %333 ], [ %.0633.ph, %.sink.split ]
  %340 = zext i32 %.sink846 to i64
  %341 = getelementptr inbounds i8, ptr %.sink844, i64 %340
  %.2625 = load i8, ptr %341, align 1, !tbaa !16
  switch i8 %.2625, label %362 [
    i8 92, label %342
    i8 10, label %.thread743
    i8 13, label %.thread743
    i8 0, label %.thread743
    i8 39, label %351
  ]

342:                                              ; preds = %339
  %343 = tail call signext i8 @Parser__readEscapeSequence__(ptr noundef nonnull %0)
  %.pre829 = load i32, ptr %5, align 8, !tbaa !5
  br label %365

.thread743:                                       ; preds = %339, %339, %339
  %344 = getelementptr inbounds i8, ptr %0, i64 64
  %345 = load ptr, ptr %344, align 8, !tbaa !30
  %346 = getelementptr inbounds i8, ptr %0, i64 24
  %347 = load ptr, ptr %346, align 8, !tbaa !31
  %348 = load i32, ptr %5, align 8, !tbaa !5
  %349 = load ptr, ptr @mu_____string291, align 8
  %350 = load i32, ptr getelementptr inbounds (i8, ptr @mu_____string291, i64 8), align 8
  call void @Error__atIndex__(ptr dead_on_unwind nonnull writable sret(%struct.tag_____Error__) align 8 %3, ptr noundef %347, i32 noundef %348, ptr %349, i32 %350)
  call void @List__add__Error____(ptr noundef %345, ptr noundef nonnull byval(%struct.tag_____Error__) align 8 %3)
  br label %369

351:                                              ; preds = %339
  %352 = load i32, ptr %5, align 8, !tbaa !5
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr %5, align 8, !tbaa !5
  %.not694 = icmp eq i32 %.0633, 1
  br i1 %.not694, label %369, label %354

354:                                              ; preds = %351
  %355 = getelementptr inbounds i8, ptr %0, i64 64
  %356 = load ptr, ptr %355, align 8, !tbaa !30
  %357 = getelementptr inbounds i8, ptr %0, i64 24
  %358 = load ptr, ptr %357, align 8, !tbaa !31
  %359 = tail call i64 @IntRange__cons__(i32 noundef %109, i32 noundef %353)
  %360 = load ptr, ptr @mu_____string292, align 8
  %361 = load i32, ptr getelementptr inbounds (i8, ptr @mu_____string292, i64 8), align 8
  call void @Error__at__(ptr dead_on_unwind nonnull writable sret(%struct.tag_____Error__) align 8 %4, ptr noundef %358, i64 %359, ptr %360, i32 %361)
  call void @List__add__Error____(ptr noundef %356, ptr noundef nonnull byval(%struct.tag_____Error__) align 8 %4)
  br label %369

362:                                              ; preds = %339
  %363 = load i32, ptr %5, align 8, !tbaa !5
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr %5, align 8, !tbaa !5
  br label %365

365:                                              ; preds = %362, %342
  %366 = phi i32 [ %364, %362 ], [ %.pre829, %342 ]
  %.2635 = add nuw nsw i32 %.0633, 1
  %367 = load i32, ptr %7, align 8, !tbaa !13
  %368 = icmp ult i32 %366, %367
  br i1 %368, label %.sink.split, label %.sink.split.sink.split

369:                                              ; preds = %.thread743, %354, %351
  call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 3)
  br label %509

370:                                              ; preds = %288
  %371 = add i8 %118, -47
  %narrow = icmp ult i8 %371, -2
  %372 = add i8 %118, -58
  %narrow776 = icmp ult i8 %372, -10
  %narrow777.not = and i1 %narrow, %narrow776
  br i1 %narrow777.not, label %407, label %373

373:                                              ; preds = %370
  %374 = load i32, ptr %5, align 8, !tbaa !5
  %375 = add nsw i32 %374, 1
  store i32 %375, ptr %5, align 8, !tbaa !5
  %376 = load i32, ptr %7, align 8, !tbaa !13
  %377 = icmp ult i32 %375, %376
  br i1 %377, label %380, label %378

378:                                              ; preds = %373
  %379 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %379(i32 noundef -3) #2
  %.pre832 = load ptr, ptr %0, align 8, !tbaa !15
  br label %380

380:                                              ; preds = %378, %373
  %381 = phi ptr [ %.pre832, %378 ], [ %115, %373 ]
  %382 = zext i32 %375 to i64
  %383 = getelementptr inbounds i8, ptr %381, i64 %382
  %384 = load i8, ptr %383, align 1, !tbaa !16
  %385 = icmp ne i8 %118, 48
  %386 = icmp ne i8 %384, 120
  %spec.select709 = select i1 %385, i1 true, i1 %386
  br i1 %spec.select709, label %390, label %387

387:                                              ; preds = %380
  %388 = load i32, ptr %5, align 8, !tbaa !5
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishHexNumber__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1)
  br label %509

390:                                              ; preds = %380
  switch i8 %118, label %406 [
    i8 46, label %391
    i8 45, label %397
  ]

391:                                              ; preds = %390
  %392 = tail call zeroext i8 @Parser__isDigit__(i8 noundef signext %384)
  %.not691 = icmp eq i8 %392, 0
  br i1 %.not691, label %393, label %394

393:                                              ; preds = %391
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

394:                                              ; preds = %391
  %395 = load i32, ptr %5, align 8, !tbaa !5
  %396 = add nsw i32 %395, -1
  store i32 %396, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishFloatNumber__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1)
  br label %509

397:                                              ; preds = %390
  %398 = tail call zeroext i8 @Parser__isDigit__(i8 noundef signext %384)
  %.not690 = icmp eq i8 %398, 0
  br i1 %.not690, label %399, label %405

399:                                              ; preds = %397
  %400 = icmp eq i8 %384, 61
  br i1 %400, label %401, label %404

401:                                              ; preds = %399
  %402 = load i32, ptr %5, align 8, !tbaa !5
  %403 = add nsw i32 %402, 1
  store i32 %403, ptr %5, align 8, !tbaa !5
  br label %404

404:                                              ; preds = %401, %399
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

405:                                              ; preds = %397
  tail call void @Parser__finishNumber__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1)
  br label %509

406:                                              ; preds = %390
  tail call void @Parser__finishNumber__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1)
  br label %509

407:                                              ; preds = %370
  switch i8 %118, label %506 [
    i8 61, label %408
    i8 126, label %.thread754
    i8 63, label %.thread754
    i8 36, label %.thread754
    i8 47, label %427
    i8 43, label %427
    i8 42, label %427
    i8 37, label %427
    i8 33, label %427
    i8 38, label %444
    i8 124, label %475
  ]

408:                                              ; preds = %407
  %409 = load i32, ptr %5, align 8, !tbaa !5
  %410 = add nsw i32 %409, 1
  store i32 %410, ptr %5, align 8, !tbaa !5
  %411 = load i32, ptr %7, align 8, !tbaa !13
  %412 = icmp ult i32 %410, %411
  br i1 %412, label %415, label %413

413:                                              ; preds = %408
  %414 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %414(i32 noundef -3) #2
  %.pre838 = load ptr, ptr %0, align 8, !tbaa !15
  br label %415

415:                                              ; preds = %413, %408
  %416 = phi ptr [ %.pre838, %413 ], [ %115, %408 ]
  %417 = zext i32 %410 to i64
  %418 = getelementptr inbounds i8, ptr %416, i64 %417
  %419 = load i8, ptr %418, align 1, !tbaa !16
  %420 = icmp eq i8 %419, 61
  br i1 %420, label %421, label %424

421:                                              ; preds = %415
  %422 = load i32, ptr %5, align 8, !tbaa !5
  %423 = add nsw i32 %422, 1
  store i32 %423, ptr %5, align 8, !tbaa !5
  br label %424

424:                                              ; preds = %421, %415
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

.thread754:                                       ; preds = %407, %407, %407
  %425 = load i32, ptr %5, align 8, !tbaa !5
  %426 = add nsw i32 %425, 1
  store i32 %426, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

427:                                              ; preds = %407, %407, %407, %407, %407
  %428 = load i32, ptr %5, align 8, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr %5, align 8, !tbaa !5
  %430 = load i32, ptr %7, align 8, !tbaa !13
  %431 = icmp ult i32 %429, %430
  br i1 %431, label %434, label %432

432:                                              ; preds = %427
  %433 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %433(i32 noundef -3) #2
  %.pre837 = load ptr, ptr %0, align 8, !tbaa !15
  br label %434

434:                                              ; preds = %432, %427
  %435 = phi ptr [ %.pre837, %432 ], [ %115, %427 ]
  %436 = zext i32 %429 to i64
  %437 = getelementptr inbounds i8, ptr %435, i64 %436
  %438 = load i8, ptr %437, align 1, !tbaa !16
  %439 = icmp eq i8 %438, 61
  br i1 %439, label %440, label %443

440:                                              ; preds = %434
  %441 = load i32, ptr %5, align 8, !tbaa !5
  %442 = add nsw i32 %441, 1
  store i32 %442, ptr %5, align 8, !tbaa !5
  br label %443

443:                                              ; preds = %440, %434
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

444:                                              ; preds = %407
  %445 = load i32, ptr %5, align 8, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr %5, align 8, !tbaa !5
  %447 = load i32, ptr %7, align 8, !tbaa !13
  %448 = icmp ult i32 %446, %447
  br i1 %448, label %451, label %449

449:                                              ; preds = %444
  %450 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %450(i32 noundef -3) #2
  %.pre835 = load ptr, ptr %0, align 8, !tbaa !15
  br label %451

451:                                              ; preds = %449, %444
  %452 = phi ptr [ %.pre835, %449 ], [ %115, %444 ]
  %453 = zext i32 %446 to i64
  %454 = getelementptr inbounds i8, ptr %452, i64 %453
  %455 = load i8, ptr %454, align 1, !tbaa !16
  %456 = icmp eq i8 %455, 38
  br i1 %456, label %457, label %469

457:                                              ; preds = %451
  %458 = load i32, ptr %5, align 8, !tbaa !5
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr %5, align 8, !tbaa !5
  %460 = load i32, ptr %7, align 8, !tbaa !13
  %461 = icmp ult i32 %459, %460
  br i1 %461, label %464, label %462

462:                                              ; preds = %457
  %463 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %463(i32 noundef -3) #2
  %.pre836 = load ptr, ptr %0, align 8, !tbaa !15
  br label %464

464:                                              ; preds = %462, %457
  %465 = phi ptr [ %.pre836, %462 ], [ %452, %457 ]
  %466 = zext i32 %459 to i64
  %467 = getelementptr inbounds i8, ptr %465, i64 %466
  %468 = load i8, ptr %467, align 1, !tbaa !16
  br label %469

469:                                              ; preds = %464, %451
  %.3626 = phi i8 [ %468, %464 ], [ %455, %451 ]
  %470 = icmp eq i8 %.3626, 61
  br i1 %470, label %471, label %474

471:                                              ; preds = %469
  %472 = load i32, ptr %5, align 8, !tbaa !5
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr %5, align 8, !tbaa !5
  br label %474

474:                                              ; preds = %471, %469
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

475:                                              ; preds = %407
  %476 = load i32, ptr %5, align 8, !tbaa !5
  %477 = add nsw i32 %476, 1
  store i32 %477, ptr %5, align 8, !tbaa !5
  %478 = load i32, ptr %7, align 8, !tbaa !13
  %479 = icmp ult i32 %477, %478
  br i1 %479, label %482, label %480

480:                                              ; preds = %475
  %481 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %481(i32 noundef -3) #2
  %.pre833 = load ptr, ptr %0, align 8, !tbaa !15
  br label %482

482:                                              ; preds = %480, %475
  %483 = phi ptr [ %.pre833, %480 ], [ %115, %475 ]
  %484 = zext i32 %477 to i64
  %485 = getelementptr inbounds i8, ptr %483, i64 %484
  %486 = load i8, ptr %485, align 1, !tbaa !16
  %487 = icmp eq i8 %486, 124
  br i1 %487, label %488, label %500

488:                                              ; preds = %482
  %489 = load i32, ptr %5, align 8, !tbaa !5
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr %5, align 8, !tbaa !5
  %491 = load i32, ptr %7, align 8, !tbaa !13
  %492 = icmp ult i32 %490, %491
  br i1 %492, label %495, label %493

493:                                              ; preds = %488
  %494 = load ptr, ptr %8, align 8, !tbaa !14
  tail call void %494(i32 noundef -3) #2
  %.pre834 = load ptr, ptr %0, align 8, !tbaa !15
  br label %495

495:                                              ; preds = %493, %488
  %496 = phi ptr [ %.pre834, %493 ], [ %483, %488 ]
  %497 = zext i32 %490 to i64
  %498 = getelementptr inbounds i8, ptr %496, i64 %497
  %499 = load i8, ptr %498, align 1, !tbaa !16
  br label %500

500:                                              ; preds = %495, %482
  %.4627 = phi i8 [ %499, %495 ], [ %486, %482 ]
  %501 = icmp eq i8 %.4627, 61
  br i1 %501, label %502, label %505

502:                                              ; preds = %500
  %503 = load i32, ptr %5, align 8, !tbaa !5
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr %5, align 8, !tbaa !5
  br label %505

505:                                              ; preds = %502, %500
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 4)
  br label %509

506:                                              ; preds = %407
  %507 = load i32, ptr %5, align 8, !tbaa !5
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr %5, align 8, !tbaa !5
  tail call void @Parser__finishToken__(ptr noundef nonnull %0, i32 noundef %6, i32 noundef %109, i32 noundef %.1, i32 noundef 18)
  br label %509

509:                                              ; preds = %._crit_edge, %369, %332, %.thread754, %474, %506, %505, %443, %387, %406, %405, %404, %393, %394, %424, %227, %251, %.thread728, %242, %194, %214, %213, %160, %163, %142, %167, %173, %179, %258, %255, %176, %170, %164, %145, %119
  ret void
}

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__mixingTabsSpaces__(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local signext i8 @Parser__readEscapeSequence__(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__finishHexNumber__(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__finishToken__(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @Error__atIndex__(ptr dead_on_unwind noalias writable sret(%struct.tag_____Error__) align 8, ptr noundef, i32 noundef, ptr, i32) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @Parser__isDigit__(i8 noundef signext) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @Parser__isIdentifierChar__(i8 noundef signext) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__finishFloatNumber__(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @Parser__finishNumber__(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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, !11, i64 16}
!6 = !{!"tag_____ParserState__", !7, i64 0, !11, i64 16, !8, i64 24, !8, i64 32, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !8, i64 64, !12, i64 72, !11, i64 80, !11, i64 84, !8, i64 88, !11, i64 96, !8, i64 104, !8, i64 112, !8, i64 120}
!7 = !{!"", !8, i64 0, !11, i64 8}
!8 = !{!"any pointer", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C/C++ TBAA"}
!11 = !{!"int", !9, i64 0}
!12 = !{!"tag_____IntRange__", !11, i64 0, !11, i64 4}
!13 = !{!7, !11, i64 8}
!14 = !{!8, !8, i64 0}
!15 = !{!7, !8, i64 0}
!16 = !{!9, !9, i64 0}
!17 = !{!6, !11, i64 40}
!18 = !{!6, !11, i64 48}
!19 = !{!6, !11, i64 52}
!20 = !{!6, !8, i64 32}
!21 = !{!22, !11, i64 28}
!22 = !{!"tag_____Token__", !11, i64 0, !7, i64 8, !12, i64 24, !12, i64 32, !11, i64 40}
!23 = !{!6, !11, i64 84}
!24 = !{!25, !8, i64 8}
!25 = !{!"tag_____IAllocator__", !8, i64 0, !8, i64 8, !8, i64 16, !8, i64 24}
!26 = !{!25, !8, i64 0}
!27 = !{!11, !11, i64 0}
!28 = !{!6, !11, i64 56}
!29 = !{!6, !8, i64 120}
!30 = !{!6, !8, i64 64}
!31 = !{!6, !8, i64 24}


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