; LLVM IR from thepowersgang/mrustc :: tools/standalone_miri/lex.ll (ZN5Lexer7advanceEv)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%struct.Token = type { i32, %"class.std::__cxx11::basic_string", %"union.Token::Numbers" }
%"union.Token::Numbers" = type { %class.U128 }
%class.U128 = type { i64, i64 }
%union.anon.1 = type { double }
%class.Lexer = type { %"class.std::__cxx11::basic_string", i32, %"class.std::basic_ifstream", %struct.Token, i8, %struct.Token }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.0 }
%union.anon.0 = type { i32 }

@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZTIPKc = external constant ptr
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [22 x i8], align 1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #0

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(680)) #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_throw(ptr, ptr, ptr)

; 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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Lexer7advanceEv(ptr noundef nonnull align 8 dereferenceable(680) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i8, align 1
  %4 = alloca i32, align 4
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %struct.Token, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %struct.Token, align 8
  %13 = alloca %struct.Token, align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %struct.Token, align 8
  %17 = alloca %class.U128, align 8
  %18 = alloca i64, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i8, align 1
  %22 = alloca %union.anon.1, align 8
  %23 = alloca %struct.Token, align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %struct.Token, align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %class.U128, align 8
  %28 = alloca %struct.Token, align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %struct.Token, align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %struct.Token, align 8
  %34 = alloca %struct.Token, align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %struct.Token, align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %struct.Token, align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %struct.Token, align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %struct.Token, align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %struct.Token, align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %struct.Token, align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca %struct.Token, align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca %struct.Token, align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %struct.Token, align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %struct.Token, align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca %struct.Token, align 8
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca %struct.Token, align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %struct.Token, align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca %struct.Token, align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %struct.Token, align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %struct.Token, align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca %struct.Token, align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca %struct.Token, align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %struct.Token, align 8
  %73 = alloca %"class.std::allocator", align 1
  %74 = alloca %struct.Token, align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca %struct.Token, align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca %struct.Token, align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca %struct.Token, align 8
  %81 = alloca %"class.std::allocator", align 1
  %82 = alloca %struct.Token, align 8
  %83 = alloca %"class.std::allocator", align 1
  %84 = alloca %struct.Token, align 8
  %85 = alloca %"class.std::allocator", align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %86 = load ptr, ptr %2, align 8
  %87 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 4
  %88 = load i8, ptr %87, align 8, !tbaa !9, !range !26, !noundef !27
  %89 = trunc i8 %88 to i1
  br i1 %89, label %90, label %95

90:                                               ; preds = %1
  %91 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 5
  %92 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %93 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %92, ptr noundef nonnull align 8 dereferenceable(56) %91) #8
  %94 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 4
  store i8 0, ptr %94, align 8, !tbaa !9
  br label %1237

95:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 1, ptr %3) #8
  br label %96

96:                                               ; preds = %215, %95
  br label %97

97:                                               ; preds = %122, %96
  %98 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %99 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %98)
  %100 = trunc i32 %99 to i8
  store i8 %100, ptr %3, align 1, !tbaa !28
  %101 = sext i8 %100 to i32
  %102 = call i32 @isblank(i32 noundef %101) #9
  %103 = icmp ne i32 %102, 0
  br i1 %103, label %112, label %104

104:                                              ; preds = %97
  %105 = load i8, ptr %3, align 1, !tbaa !28
  %106 = sext i8 %105 to i32
  %107 = icmp eq i32 %106, 10
  br i1 %107, label %112, label %108

108:                                              ; preds = %104
  %109 = load i8, ptr %3, align 1, !tbaa !28
  %110 = sext i8 %109 to i32
  %111 = icmp eq i32 %110, 13
  br label %112

112:                                              ; preds = %108, %104, %97
  %113 = phi i1 [ true, %104 ], [ true, %97 ], [ %111, %108 ]
  br i1 %113, label %114, label %123

114:                                              ; preds = %112
  %115 = load i8, ptr %3, align 1, !tbaa !28
  %116 = sext i8 %115 to i32
  %117 = icmp eq i32 %116, 10
  br i1 %117, label %118, label %122

118:                                              ; preds = %114
  %119 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 1
  %120 = load i32, ptr %119, align 8, !tbaa !29
  %121 = add i32 %120, 1
  store i32 %121, ptr %119, align 8, !tbaa !29
  br label %122

122:                                              ; preds = %118, %114
  br label %97, !llvm.loop !30

123:                                              ; preds = %112
  %124 = load i8, ptr %3, align 1, !tbaa !28
  %125 = sext i8 %124 to i32
  %126 = icmp eq i32 %125, 47
  br i1 %126, label %127, label %214

127:                                              ; preds = %123
  %128 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %129 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %128)
  %130 = icmp eq i32 %129, 42
  br i1 %130, label %131, label %184

131:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #8
  store i32 0, ptr %4, align 4, !tbaa !32
  br label %132

132:                                              ; preds = %182, %131
  %133 = load i8, ptr %3, align 1, !tbaa !28
  %134 = sext i8 %133 to i32
  %135 = icmp sge i32 %134, 0
  br i1 %135, label %136, label %183

136:                                              ; preds = %132
  %137 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %138 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %137)
  %139 = trunc i32 %138 to i8
  store i8 %139, ptr %3, align 1, !tbaa !28
  %140 = load i8, ptr %3, align 1, !tbaa !28
  %141 = sext i8 %140 to i32
  %142 = icmp eq i32 %141, 10
  br i1 %142, label %143, label %147

143:                                              ; preds = %136
  %144 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 1
  %145 = load i32, ptr %144, align 8, !tbaa !29
  %146 = add i32 %145, 1
  store i32 %146, ptr %144, align 8, !tbaa !29
  br label %147

147:                                              ; preds = %143, %136
  %148 = load i8, ptr %3, align 1, !tbaa !28
  %149 = sext i8 %148 to i32
  %150 = icmp eq i32 %149, 47
  br i1 %150, label %151, label %162

151:                                              ; preds = %147
  %152 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %153 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %152)
  %154 = icmp eq i32 %153, 42
  br i1 %154, label %155, label %158

155:                                              ; preds = %151
  %156 = load i32, ptr %4, align 4, !tbaa !32
  %157 = add i32 %156, 1
  store i32 %157, ptr %4, align 4, !tbaa !32
  br label %161

158:                                              ; preds = %151
  %159 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %160 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %159)
  br label %161

161:                                              ; preds = %158, %155
  br label %182

162:                                              ; preds = %147
  %163 = load i8, ptr %3, align 1, !tbaa !28
  %164 = sext i8 %163 to i32
  %165 = icmp eq i32 %164, 42
  br i1 %165, label %166, label %181

166:                                              ; preds = %162
  %167 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %168 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %167)
  %169 = icmp eq i32 %168, 47
  br i1 %169, label %170, label %177

170:                                              ; preds = %166
  %171 = load i32, ptr %4, align 4, !tbaa !32
  %172 = icmp eq i32 %171, 0
  br i1 %172, label %173, label %174

173:                                              ; preds = %170
  br label %183

174:                                              ; preds = %170
  %175 = load i32, ptr %4, align 4, !tbaa !32
  %176 = add i32 %175, -1
  store i32 %176, ptr %4, align 4, !tbaa !32
  br label %180

177:                                              ; preds = %166
  %178 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %179 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %178)
  br label %180

180:                                              ; preds = %177, %174
  br label %181

181:                                              ; preds = %180, %162
  br label %182

182:                                              ; preds = %181, %161
  br label %132, !llvm.loop !33

183:                                              ; preds = %173, %132
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #8
  br label %215

184:                                              ; preds = %127
  %185 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %186 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %185)
  br label %187

187:                                              ; preds = %184
  %188 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %189 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %188)
  %190 = icmp eq i32 %189, 47
  br i1 %190, label %191, label %210

191:                                              ; preds = %187
  br label %192

192:                                              ; preds = %202, %191
  %193 = load i8, ptr %3, align 1, !tbaa !28
  %194 = sext i8 %193 to i32
  %195 = icmp sge i32 %194, 0
  br i1 %195, label %196, label %200

196:                                              ; preds = %192
  %197 = load i8, ptr %3, align 1, !tbaa !28
  %198 = sext i8 %197 to i32
  %199 = icmp ne i32 %198, 10
  br label %200

200:                                              ; preds = %196, %192
  %201 = phi i1 [ false, %192 ], [ %199, %196 ]
  br i1 %201, label %202, label %206

202:                                              ; preds = %200
  %203 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %204 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %203)
  %205 = trunc i32 %204 to i8
  store i8 %205, ptr %3, align 1, !tbaa !28
  br label %192, !llvm.loop !34

206:                                              ; preds = %200
  %207 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 1
  %208 = load i32, ptr %207, align 8, !tbaa !29
  %209 = add i32 %208, 1
  store i32 %209, ptr %207, align 8, !tbaa !29
  br label %215

210:                                              ; preds = %187
  %211 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %212 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %211)
  br label %213

213:                                              ; preds = %210
  br label %214

214:                                              ; preds = %213, %123
  br label %216

215:                                              ; preds = %206, %183
  br i1 true, label %96, label %216, !llvm.loop !35

216:                                              ; preds = %215, %214
  %217 = load i8, ptr %3, align 1, !tbaa !28
  %218 = sext i8 %217 to i32
  %219 = icmp eq i32 %218, 35
  br i1 %219, label %220, label %269

220:                                              ; preds = %216
  %221 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %222 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %221)
  %223 = trunc i32 %222 to i8
  store i8 %223, ptr %3, align 1, !tbaa !28
  %224 = load i8, ptr %3, align 1, !tbaa !28
  %225 = sext i8 %224 to i32
  %226 = call i32 @isdigit(i32 noundef %225) #9
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %228, label %266

228:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %229 unwind label %242

229:                                              ; preds = %228
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #8
  br label %230

230:                                              ; preds = %240, %229
  %231 = load i8, ptr %3, align 1, !tbaa !28
  %232 = sext i8 %231 to i32
  %233 = call i32 @isdigit(i32 noundef %232) #9
  %234 = icmp ne i32 %233, 0
  br i1 %234, label %235, label %250

235:                                              ; preds = %230
  %236 = load i8, ptr %3, align 1, !tbaa !28
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %5, i8 noundef signext %236)
          to label %237 unwind label %246

237:                                              ; preds = %235
  %238 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %239 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %238)
          to label %240 unwind label %246

240:                                              ; preds = %237
  %241 = trunc i32 %239 to i8
  store i8 %241, ptr %3, align 1, !tbaa !28
  br label %230, !llvm.loop !36

242:                                              ; preds = %228
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %7, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #8
  br label %265

246:                                              ; preds = %250, %237, %235
  %247 = landingpad { ptr, i32 }
          cleanup
  %248 = extractvalue { ptr, i32 } %247, 0
  store ptr %248, ptr %7, align 8
  %249 = extractvalue { ptr, i32 } %247, 1
  store i32 %249, ptr %8, align 4
  br label %264

250:                                              ; preds = %230
  %251 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %252 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %253 unwind label %246

253:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 56, ptr %9) #8
  %254 = getelementptr inbounds %struct.Token, ptr %9, i32 0, i32 0
  store i32 2, ptr %254, align 8, !tbaa !37
  %255 = getelementptr inbounds %struct.Token, ptr %9, i32 0, i32 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  %256 = getelementptr inbounds %struct.Token, ptr %9, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %256)
          to label %257 unwind label %260

257:                                              ; preds = %253
  %258 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %259 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %258, ptr noundef nonnull align 8 dereferenceable(56) %9) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %9) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %9) #8
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #8
  br label %1235

260:                                              ; preds = %253
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %7, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %9) #8
  br label %264

264:                                              ; preds = %260, %246
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  br label %265

265:                                              ; preds = %264, %242
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #8
  br label %1238

266:                                              ; preds = %220
  %267 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %268 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %267)
  store i8 35, ptr %3, align 1, !tbaa !28
  br label %269

269:                                              ; preds = %266, %216
  %270 = load i8, ptr %3, align 1, !tbaa !28
  %271 = sext i8 %270 to i32
  %272 = icmp eq i32 %271, 98
  br i1 %272, label %273, label %295

273:                                              ; preds = %269
  %274 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %275 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %274)
  %276 = trunc i32 %275 to i8
  store i8 %276, ptr %3, align 1, !tbaa !28
  %277 = load i8, ptr %3, align 1, !tbaa !28
  %278 = sext i8 %277 to i32
  %279 = icmp eq i32 %278, 34
  br i1 %279, label %280, label %291

280:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #8
  call void @_ZN5Lexer12parse_stringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(680) %86)
  call void @llvm.lifetime.start.p0(i64 56, ptr %12) #8
  %281 = getelementptr inbounds %struct.Token, ptr %12, i32 0, i32 0
  store i32 6, ptr %281, align 8, !tbaa !37
  %282 = getelementptr inbounds %struct.Token, ptr %12, i32 0, i32 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  %283 = getelementptr inbounds %struct.Token, ptr %12, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %283)
          to label %284 unwind label %287

284:                                              ; preds = %280
  %285 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %286 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %285, ptr noundef nonnull align 8 dereferenceable(56) %12) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %12) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %12) #8
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  br label %1235

287:                                              ; preds = %280
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %7, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  br label %1238

291:                                              ; preds = %273
  %292 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %293 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %292)
  br label %294

294:                                              ; preds = %291
  store i8 98, ptr %3, align 1, !tbaa !28
  br label %295

295:                                              ; preds = %294, %269
  %296 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %297 = load ptr, ptr %296, align 8, !tbaa !38
  %298 = getelementptr i8, ptr %297, i64 -24
  %299 = load i64, ptr %298, align 8
  %300 = getelementptr inbounds i8, ptr %296, i64 %299
  %301 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %300)
  br i1 %301, label %302, label %319

302:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 56, ptr %13) #8
  %303 = getelementptr inbounds %struct.Token, ptr %13, i32 0, i32 0
  store i32 0, ptr %303, align 8, !tbaa !37
  %304 = getelementptr inbounds %struct.Token, ptr %13, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %304, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %305 unwind label %310

305:                                              ; preds = %302
  %306 = getelementptr inbounds %struct.Token, ptr %13, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %306)
          to label %307 unwind label %314

307:                                              ; preds = %305
  %308 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %309 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %308, ptr noundef nonnull align 8 dereferenceable(56) %13) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %13) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %13) #8
  br label %1234

310:                                              ; preds = %302
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %7, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %8, align 4
  br label %318

314:                                              ; preds = %305
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %7, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #8
  br label %318

318:                                              ; preds = %314, %310
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %13) #8
  br label %1238

319:                                              ; preds = %295
  %320 = load i8, ptr %3, align 1, !tbaa !28
  %321 = sext i8 %320 to i32
  %322 = call i32 @isalpha(i32 noundef %321) #9
  %323 = icmp ne i32 %322, 0
  br i1 %323, label %328, label %324

324:                                              ; preds = %319
  %325 = load i8, ptr %3, align 1, !tbaa !28
  %326 = sext i8 %325 to i32
  %327 = icmp eq i32 %326, 95
  br i1 %327, label %328, label %374

328:                                              ; preds = %324, %319
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %329

329:                                              ; preds = %353, %328
  %330 = load i8, ptr %3, align 1, !tbaa !28
  %331 = sext i8 %330 to i32
  %332 = call i32 @isalnum(i32 noundef %331) #9
  %333 = icmp ne i32 %332, 0
  br i1 %333, label %346, label %334

334:                                              ; preds = %329
  %335 = load i8, ptr %3, align 1, !tbaa !28
  %336 = sext i8 %335 to i32
  %337 = icmp eq i32 %336, 95
  br i1 %337, label %346, label %338

338:                                              ; preds = %334
  %339 = load i8, ptr %3, align 1, !tbaa !28
  %340 = sext i8 %339 to i32
  %341 = icmp eq i32 %340, 35
  br i1 %341, label %346, label %342

342:                                              ; preds = %338
  %343 = load i8, ptr %3, align 1, !tbaa !28
  %344 = sext i8 %343 to i32
  %345 = icmp eq i32 %344, 36
  br label %346

346:                                              ; preds = %342, %338, %334, %329
  %347 = phi i1 [ true, %338 ], [ true, %334 ], [ true, %329 ], [ %345, %342 ]
  br i1 %347, label %348, label %359

348:                                              ; preds = %346
  %349 = load i8, ptr %3, align 1, !tbaa !28
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %15, i8 noundef signext %349)
          to label %350 unwind label %355

350:                                              ; preds = %348
  %351 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %352 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %351)
          to label %353 unwind label %355

353:                                              ; preds = %350
  %354 = trunc i32 %352 to i8
  store i8 %354, ptr %3, align 1, !tbaa !28
  br label %329, !llvm.loop !40

355:                                              ; preds = %359, %350, %348
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %7, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %8, align 4
  br label %373

359:                                              ; preds = %346
  %360 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %361 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %360)
          to label %362 unwind label %355

362:                                              ; preds = %359
  call void @llvm.lifetime.start.p0(i64 56, ptr %16) #8
  %363 = getelementptr inbounds %struct.Token, ptr %16, i32 0, i32 0
  store i32 2, ptr %363, align 8, !tbaa !37
  %364 = getelementptr inbounds %struct.Token, ptr %16, i32 0, i32 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  %365 = getelementptr inbounds %struct.Token, ptr %16, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %365)
          to label %366 unwind label %369

366:                                              ; preds = %362
  %367 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %368 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %367, ptr noundef nonnull align 8 dereferenceable(56) %16) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %16) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  br label %1233

369:                                              ; preds = %362
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %7, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %16) #8
  br label %373

373:                                              ; preds = %369, %355
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  br label %1238

374:                                              ; preds = %324
  %375 = load i8, ptr %3, align 1, !tbaa !28
  %376 = sext i8 %375 to i32
  %377 = call i32 @isdigit(i32 noundef %376) #9
  %378 = icmp ne i32 %377, 0
  br i1 %378, label %379, label %684

379:                                              ; preds = %374
  %380 = load i8, ptr %3, align 1, !tbaa !28
  %381 = sext i8 %380 to i32
  %382 = icmp eq i32 %381, 48
  br i1 %382, label %383, label %635

383:                                              ; preds = %379
  %384 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %385 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %384)
  %386 = trunc i32 %385 to i8
  store i8 %386, ptr %3, align 1, !tbaa !28
  %387 = load i8, ptr %3, align 1, !tbaa !28
  %388 = sext i8 %387 to i32
  %389 = icmp eq i32 %388, 120
  br i1 %389, label %390, label %631

390:                                              ; preds = %383
  %391 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %392 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %391)
  %393 = trunc i32 %392 to i8
  store i8 %393, ptr %3, align 1, !tbaa !28
  %394 = load i8, ptr %3, align 1, !tbaa !28
  %395 = sext i8 %394 to i32
  %396 = call i32 @isxdigit(i32 noundef %395) #9
  %397 = icmp ne i32 %396, 0
  br i1 %397, label %400, label %398

398:                                              ; preds = %390
  %399 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %399, align 16, !tbaa !5
  call void @__cxa_throw(ptr %399, ptr @_ZTIPKc, ptr null) #10
  unreachable

400:                                              ; preds = %390
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #8
  call void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %17, i64 noundef 0, i64 noundef 0)
  br label %401

401:                                              ; preds = %440, %400
  %402 = load i8, ptr %3, align 1, !tbaa !28
  %403 = sext i8 %402 to i32
  %404 = call i32 @isxdigit(i32 noundef %403) #9
  %405 = icmp ne i32 %404, 0
  br i1 %405, label %406, label %444

406:                                              ; preds = %401
  %407 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128mLEj(ptr noundef nonnull align 8 dereferenceable(16) %17, i32 noundef 16)
  %408 = load i8, ptr %3, align 1, !tbaa !28
  %409 = sext i8 %408 to i32
  %410 = icmp sle i32 %409, 57
  br i1 %410, label %411, label %416

411:                                              ; preds = %406
  %412 = load i8, ptr %3, align 1, !tbaa !28
  %413 = sext i8 %412 to i32
  %414 = sub nsw i32 %413, 48
  %415 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128pLEj(ptr noundef nonnull align 8 dereferenceable(16) %17, i32 noundef %414)
  br label %440

416:                                              ; preds = %406
  %417 = load i8, ptr %3, align 1, !tbaa !28
  %418 = sext i8 %417 to i32
  %419 = icmp sle i32 %418, 70
  br i1 %419, label %420, label %426

420:                                              ; preds = %416
  %421 = load i8, ptr %3, align 1, !tbaa !28
  %422 = sext i8 %421 to i32
  %423 = sub nsw i32 %422, 65
  %424 = add nsw i32 %423, 10
  %425 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128pLEj(ptr noundef nonnull align 8 dereferenceable(16) %17, i32 noundef %424)
  br label %439

426:                                              ; preds = %416
  %427 = load i8, ptr %3, align 1, !tbaa !28
  %428 = sext i8 %427 to i32
  %429 = icmp sle i32 %428, 102
  br i1 %429, label %430, label %436

430:                                              ; preds = %426
  %431 = load i8, ptr %3, align 1, !tbaa !28
  %432 = sext i8 %431 to i32
  %433 = sub nsw i32 %432, 97
  %434 = add nsw i32 %433, 10
  %435 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128pLEj(ptr noundef nonnull align 8 dereferenceable(16) %17, i32 noundef %434)
  br label %438

436:                                              ; preds = %426
  %437 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.19, ptr %437, align 16, !tbaa !5
  call void @__cxa_throw(ptr %437, ptr @_ZTIPKc, ptr null) #10
  unreachable

438:                                              ; preds = %430
  br label %439

439:                                              ; preds = %438, %420
  br label %440

440:                                              ; preds = %439, %411
  %441 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %442 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %441)
  %443 = trunc i32 %442 to i8
  store i8 %443, ptr %3, align 1, !tbaa !28
  br label %401, !llvm.loop !41

444:                                              ; preds = %401
  %445 = load i8, ptr %3, align 1, !tbaa !28
  %446 = sext i8 %445 to i32
  %447 = icmp eq i32 %446, 46
  br i1 %447, label %452, label %448

448:                                              ; preds = %444
  %449 = load i8, ptr %3, align 1, !tbaa !28
  %450 = sext i8 %449 to i32
  %451 = icmp eq i32 %450, 112
  br i1 %451, label %452, label %608

452:                                              ; preds = %448, %444
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  store i64 0, ptr %18, align 8, !tbaa !42
  %453 = load i8, ptr %3, align 1, !tbaa !28
  %454 = sext i8 %453 to i32
  %455 = icmp eq i32 %454, 46
  br i1 %455, label %456, label %522

456:                                              ; preds = %452
  %457 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %458 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %457)
  %459 = trunc i32 %458 to i8
  store i8 %459, ptr %3, align 1, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  store i32 0, ptr %19, align 4, !tbaa !32
  br label %460

460:                                              ; preds = %506, %456
  %461 = load i8, ptr %3, align 1, !tbaa !28
  %462 = sext i8 %461 to i32
  %463 = call i32 @isxdigit(i32 noundef %462) #9
  %464 = icmp ne i32 %463, 0
  br i1 %464, label %465, label %512

465:                                              ; preds = %460
  %466 = load i64, ptr %18, align 8, !tbaa !42
  %467 = mul i64 %466, 16
  store i64 %467, ptr %18, align 8, !tbaa !42
  %468 = load i8, ptr %3, align 1, !tbaa !28
  %469 = sext i8 %468 to i32
  %470 = icmp sle i32 %469, 57
  br i1 %470, label %471, label %478

471:                                              ; preds = %465
  %472 = load i8, ptr %3, align 1, !tbaa !28
  %473 = sext i8 %472 to i32
  %474 = sub nsw i32 %473, 48
  %475 = sext i32 %474 to i64
  %476 = load i64, ptr %18, align 8, !tbaa !42
  %477 = add i64 %476, %475
  store i64 %477, ptr %18, align 8, !tbaa !42
  br label %506

478:                                              ; preds = %465
  %479 = load i8, ptr %3, align 1, !tbaa !28
  %480 = sext i8 %479 to i32
  %481 = icmp sle i32 %480, 70
  br i1 %481, label %482, label %490

482:                                              ; preds = %478
  %483 = load i8, ptr %3, align 1, !tbaa !28
  %484 = sext i8 %483 to i32
  %485 = sub nsw i32 %484, 65
  %486 = add nsw i32 %485, 10
  %487 = sext i32 %486 to i64
  %488 = load i64, ptr %18, align 8, !tbaa !42
  %489 = add i64 %488, %487
  store i64 %489, ptr %18, align 8, !tbaa !42
  br label %505

490:                                              ; preds = %478
  %491 = load i8, ptr %3, align 1, !tbaa !28
  %492 = sext i8 %491 to i32
  %493 = icmp sle i32 %492, 102
  br i1 %493, label %494, label %502

494:                                              ; preds = %490
  %495 = load i8, ptr %3, align 1, !tbaa !28
  %496 = sext i8 %495 to i32
  %497 = sub nsw i32 %496, 97
  %498 = add nsw i32 %497, 10
  %499 = sext i32 %498 to i64
  %500 = load i64, ptr %18, align 8, !tbaa !42
  %501 = add i64 %500, %499
  store i64 %501, ptr %18, align 8, !tbaa !42
  br label %504

502:                                              ; preds = %490
  %503 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.19, ptr %503, align 16, !tbaa !5
  call void @__cxa_throw(ptr %503, ptr @_ZTIPKc, ptr null) #10
  unreachable

504:                                              ; preds = %494
  br label %505

505:                                              ; preds = %504, %482
  br label %506

506:                                              ; preds = %505, %471
  %507 = load i32, ptr %19, align 4, !tbaa !32
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr %19, align 4, !tbaa !32
  %509 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %510 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %509)
  %511 = trunc i32 %510 to i8
  store i8 %511, ptr %3, align 1, !tbaa !28
  br label %460, !llvm.loop !43

512:                                              ; preds = %460
  br label %513

513:                                              ; preds = %516, %512
  %514 = load i32, ptr %19, align 4, !tbaa !32
  %515 = icmp slt i32 %514, 13
  br i1 %515, label %516, label %521

516:                                              ; preds = %513
  %517 = load i64, ptr %18, align 8, !tbaa !42
  %518 = mul i64 %517, 16
  store i64 %518, ptr %18, align 8, !tbaa !42
  %519 = load i32, ptr %19, align 4, !tbaa !32
  %520 = add nsw i32 %519, 1
  store i32 %520, ptr %19, align 4, !tbaa !32
  br label %513, !llvm.loop !44

521:                                              ; preds = %513
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %522

522:                                              ; preds = %521, %452
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  store i32 0, ptr %20, align 4, !tbaa !32
  %523 = load i8, ptr %3, align 1, !tbaa !28
  %524 = sext i8 %523 to i32
  %525 = icmp eq i32 %524, 112
  br i1 %525, label %526, label %568

526:                                              ; preds = %522
  %527 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %528 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %527)
  %529 = trunc i32 %528 to i8
  store i8 %529, ptr %3, align 1, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #8
  store i8 0, ptr %21, align 1, !tbaa !45
  %530 = load i8, ptr %3, align 1, !tbaa !28
  %531 = sext i8 %530 to i32
  %532 = icmp eq i32 %531, 45
  br i1 %532, label %533, label %537

533:                                              ; preds = %526
  store i8 1, ptr %21, align 1, !tbaa !45
  %534 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %535 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %534)
  %536 = trunc i32 %535 to i8
  store i8 %536, ptr %3, align 1, !tbaa !28
  br label %537

537:                                              ; preds = %533, %526
  %538 = load i8, ptr %3, align 1, !tbaa !28
  %539 = sext i8 %538 to i32
  %540 = call i32 @isdigit(i32 noundef %539) #9
  %541 = icmp ne i32 %540, 0
  br i1 %541, label %544, label %542

542:                                              ; preds = %537
  %543 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %543, align 16, !tbaa !5
  call void @__cxa_throw(ptr %543, ptr @_ZTIPKc, ptr null) #10
  unreachable

544:                                              ; preds = %537
  br label %545

545:                                              ; preds = %550, %544
  %546 = load i8, ptr %3, align 1, !tbaa !28
  %547 = sext i8 %546 to i32
  %548 = call i32 @isdigit(i32 noundef %547) #9
  %549 = icmp ne i32 %548, 0
  br i1 %549, label %550, label %561

550:                                              ; preds = %545
  %551 = load i32, ptr %20, align 4, !tbaa !32
  %552 = mul nsw i32 %551, 10
  store i32 %552, ptr %20, align 4, !tbaa !32
  %553 = load i8, ptr %3, align 1, !tbaa !28
  %554 = sext i8 %553 to i32
  %555 = sub nsw i32 %554, 48
  %556 = load i32, ptr %20, align 4, !tbaa !32
  %557 = add nsw i32 %556, %555
  store i32 %557, ptr %20, align 4, !tbaa !32
  %558 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %559 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %558)
  %560 = trunc i32 %559 to i8
  store i8 %560, ptr %3, align 1, !tbaa !28
  br label %545, !llvm.loop !46

561:                                              ; preds = %545
  %562 = load i8, ptr %21, align 1, !tbaa !45, !range !26, !noundef !27
  %563 = trunc i8 %562 to i1
  br i1 %563, label %564, label %567

564:                                              ; preds = %561
  %565 = load i32, ptr %20, align 4, !tbaa !32
  %566 = sub nsw i32 0, %565
  store i32 %566, ptr %20, align 4, !tbaa !32
  br label %567

567:                                              ; preds = %564, %561
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #8
  br label %568

568:                                              ; preds = %567, %522
  %569 = call noundef zeroext i1 @_ZNK4U128neEj(ptr noundef nonnull align 8 dereferenceable(16) %17, i32 noundef 1)
  br i1 %569, label %570, label %575

570:                                              ; preds = %568
  %571 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %86)
  %572 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %571, ptr noundef @.str.20)
  %573 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %572, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %574 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %574, align 16, !tbaa !5
  call void @__cxa_throw(ptr %574, ptr @_ZTIPKc, ptr null) #10
  unreachable

575:                                              ; preds = %568
  %576 = load i64, ptr %18, align 8, !tbaa !42
  %577 = icmp uge i64 %576, 4503599627370496
  br i1 %577, label %578, label %583

578:                                              ; preds = %575
  %579 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %86)
  %580 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef @.str.21)
  %581 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %580, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %582 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %582, align 16, !tbaa !5
  call void @__cxa_throw(ptr %582, ptr @_ZTIPKc, ptr null) #10
  unreachable

583:                                              ; preds = %575
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %584 = load i32, ptr %20, align 4, !tbaa !32
  %585 = sext i32 %584 to i64
  %586 = shl i64 %585, 52
  %587 = load i64, ptr %18, align 8, !tbaa !42
  %588 = or i64 %586, %587
  store i64 %588, ptr %22, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 56, ptr %23) #8
  %589 = getelementptr inbounds %struct.Token, ptr %23, i32 0, i32 0
  store i32 4, ptr %589, align 8, !tbaa !37
  %590 = getelementptr inbounds %struct.Token, ptr %23, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %590, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %591 unwind label %599

591:                                              ; preds = %583
  %592 = getelementptr inbounds %struct.Token, ptr %23, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %592)
          to label %593 unwind label %603

593:                                              ; preds = %591
  %594 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %595 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %594, ptr noundef nonnull align 8 dereferenceable(56) %23) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %23) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %23) #8
  %596 = load double, ptr %22, align 8, !tbaa !28
  %597 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %598 = getelementptr inbounds %struct.Token, ptr %597, i32 0, i32 2
  store double %596, ptr %598, align 8, !tbaa !28
  store i32 1, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %629

599:                                              ; preds = %583
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %7, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %8, align 4
  br label %607

603:                                              ; preds = %591
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %7, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %590) #8
  br label %607

607:                                              ; preds = %603, %599
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %630

608:                                              ; preds = %448
  %609 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %610 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %609)
  call void @llvm.lifetime.start.p0(i64 56, ptr %25) #8
  %611 = getelementptr inbounds %struct.Token, ptr %25, i32 0, i32 0
  store i32 3, ptr %611, align 8, !tbaa !37
  %612 = getelementptr inbounds %struct.Token, ptr %25, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %612, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %613 unwind label %620

613:                                              ; preds = %608
  %614 = getelementptr inbounds %struct.Token, ptr %25, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %614)
          to label %615 unwind label %624

615:                                              ; preds = %613
  %616 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %617 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %616, ptr noundef nonnull align 8 dereferenceable(56) %25) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %25) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %25) #8
  %618 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %619 = getelementptr inbounds %struct.Token, ptr %618, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %619, ptr align 8 %17, i64 16, i1 false), !tbaa.struct !47
  store i32 1, ptr %10, align 4
  br label %629

620:                                              ; preds = %608
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %7, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %8, align 4
  br label %628

624:                                              ; preds = %613
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %7, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %612) #8
  br label %628

628:                                              ; preds = %624, %620
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %25) #8
  br label %630

629:                                              ; preds = %615, %593
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #8
  br label %1235

630:                                              ; preds = %628, %607
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #8
  br label %1238

631:                                              ; preds = %383
  %632 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %633 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %632)
  store i8 48, ptr %3, align 1, !tbaa !28
  br label %634

634:                                              ; preds = %631
  br label %635

635:                                              ; preds = %634, %379
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #8
  call void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %27, i64 noundef 0, i64 noundef 0)
  br label %636

636:                                              ; preds = %641, %635
  %637 = load i8, ptr %3, align 1, !tbaa !28
  %638 = sext i8 %637 to i32
  %639 = call i32 @isdigit(i32 noundef %638) #9
  %640 = icmp ne i32 %639, 0
  br i1 %640, label %641, label %650

641:                                              ; preds = %636
  %642 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128mLEj(ptr noundef nonnull align 8 dereferenceable(16) %27, i32 noundef 10)
  %643 = load i8, ptr %3, align 1, !tbaa !28
  %644 = sext i8 %643 to i32
  %645 = sub nsw i32 %644, 48
  %646 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128pLEj(ptr noundef nonnull align 8 dereferenceable(16) %27, i32 noundef %645)
  %647 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %648 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %647)
  %649 = trunc i32 %648 to i8
  store i8 %649, ptr %3, align 1, !tbaa !28
  br label %636, !llvm.loop !48

650:                                              ; preds = %636
  %651 = load i8, ptr %3, align 1, !tbaa !28
  %652 = sext i8 %651 to i32
  %653 = icmp eq i32 %652, 46
  br i1 %653, label %658, label %654

654:                                              ; preds = %650
  %655 = load i8, ptr %3, align 1, !tbaa !28
  %656 = sext i8 %655 to i32
  %657 = icmp eq i32 %656, 101
  br i1 %657, label %658, label %663

658:                                              ; preds = %654, %650
  %659 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %86)
  %660 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %659, ptr noundef @.str.22)
  %661 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %660, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %662 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.23, ptr %662, align 16, !tbaa !5
  call void @__cxa_throw(ptr %662, ptr @_ZTIPKc, ptr null) #10
  unreachable

663:                                              ; preds = %654
  %664 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %665 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %664)
  call void @llvm.lifetime.start.p0(i64 56, ptr %28) #8
  %666 = getelementptr inbounds %struct.Token, ptr %28, i32 0, i32 0
  store i32 3, ptr %666, align 8, !tbaa !37
  %667 = getelementptr inbounds %struct.Token, ptr %28, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %667, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %668 unwind label %675

668:                                              ; preds = %663
  %669 = getelementptr inbounds %struct.Token, ptr %28, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %669)
          to label %670 unwind label %679

670:                                              ; preds = %668
  %671 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %672 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %671, ptr noundef nonnull align 8 dereferenceable(56) %28) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %28) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %28) #8
  %673 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %674 = getelementptr inbounds %struct.Token, ptr %673, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %674, ptr align 8 %27, i64 16, i1 false), !tbaa.struct !47
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #8
  br label %1232

675:                                              ; preds = %663
  %676 = landingpad { ptr, i32 }
          cleanup
  %677 = extractvalue { ptr, i32 } %676, 0
  store ptr %677, ptr %7, align 8
  %678 = extractvalue { ptr, i32 } %676, 1
  store i32 %678, ptr %8, align 4
  br label %683

679:                                              ; preds = %668
  %680 = landingpad { ptr, i32 }
          cleanup
  %681 = extractvalue { ptr, i32 } %680, 0
  store ptr %681, ptr %7, align 8
  %682 = extractvalue { ptr, i32 } %680, 1
  store i32 %682, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %667) #8
  br label %683

683:                                              ; preds = %679, %675
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #8
  br label %1238

684:                                              ; preds = %374
  %685 = load i8, ptr %3, align 1, !tbaa !28
  %686 = sext i8 %685 to i32
  %687 = icmp eq i32 %686, 34
  br i1 %687, label %688, label %699

688:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  call void @_ZN5Lexer12parse_stringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(680) %86)
  call void @llvm.lifetime.start.p0(i64 56, ptr %31) #8
  %689 = getelementptr inbounds %struct.Token, ptr %31, i32 0, i32 0
  store i32 5, ptr %689, align 8, !tbaa !37
  %690 = getelementptr inbounds %struct.Token, ptr %31, i32 0, i32 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %690, ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  %691 = getelementptr inbounds %struct.Token, ptr %31, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %691)
          to label %692 unwind label %695

692:                                              ; preds = %688
  %693 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %694 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %693, ptr noundef nonnull align 8 dereferenceable(56) %31) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %31) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %1231

695:                                              ; preds = %688
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %7, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %690) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %1238

699:                                              ; preds = %684
  %700 = load i8, ptr %3, align 1, !tbaa !28
  %701 = sext i8 %700 to i32
  %702 = icmp eq i32 %701, 39
  br i1 %702, label %703, label %755

703:                                              ; preds = %699
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  %704 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %705 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %704)
          to label %706 unwind label %727

706:                                              ; preds = %703
  %707 = trunc i32 %705 to i8
  store i8 %707, ptr %3, align 1, !tbaa !28
  br label %708

708:                                              ; preds = %725, %706
  %709 = load i8, ptr %3, align 1, !tbaa !28
  %710 = sext i8 %709 to i32
  %711 = icmp eq i32 %710, 95
  br i1 %711, label %717, label %712

712:                                              ; preds = %708
  %713 = load i8, ptr %3, align 1, !tbaa !28
  %714 = sext i8 %713 to i32
  %715 = call i32 @isalnum(i32 noundef %714) #9
  %716 = icmp ne i32 %715, 0
  br label %717

717:                                              ; preds = %712, %708
  %718 = phi i1 [ true, %708 ], [ %716, %712 ]
  br i1 %718, label %719, label %731

719:                                              ; preds = %717
  %720 = load i8, ptr %3, align 1, !tbaa !28
  %721 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %32, i8 noundef signext %720)
          to label %722 unwind label %727

722:                                              ; preds = %719
  %723 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %724 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %723)
          to label %725 unwind label %727

725:                                              ; preds = %722
  %726 = trunc i32 %724 to i8
  store i8 %726, ptr %3, align 1, !tbaa !28
  br label %708, !llvm.loop !49

727:                                              ; preds = %741, %739, %737, %734, %731, %722, %719, %703
  %728 = landingpad { ptr, i32 }
          cleanup
  %729 = extractvalue { ptr, i32 } %728, 0
  store ptr %729, ptr %7, align 8
  %730 = extractvalue { ptr, i32 } %728, 1
  store i32 %730, ptr %8, align 4
  br label %754

731:                                              ; preds = %717
  %732 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %733 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %732)
          to label %734 unwind label %727

734:                                              ; preds = %731
  %735 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.19)
          to label %736 unwind label %727

736:                                              ; preds = %734
  br i1 %735, label %737, label %743

737:                                              ; preds = %736
  %738 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %86)
          to label %739 unwind label %727

739:                                              ; preds = %737
  %740 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %738, ptr noundef @.str.24)
          to label %741 unwind label %727

741:                                              ; preds = %739
  %742 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %742, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr %742, ptr @_ZTIPKc, ptr null) #10
          to label %1244 unwind label %727

743:                                              ; preds = %736
  call void @llvm.lifetime.start.p0(i64 56, ptr %33) #8
  %744 = getelementptr inbounds %struct.Token, ptr %33, i32 0, i32 0
  store i32 7, ptr %744, align 8, !tbaa !37
  %745 = getelementptr inbounds %struct.Token, ptr %33, i32 0, i32 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %745, ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  %746 = getelementptr inbounds %struct.Token, ptr %33, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %746)
          to label %747 unwind label %750

747:                                              ; preds = %743
  %748 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %749 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %748, ptr noundef nonnull align 8 dereferenceable(56) %33) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %33) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %33) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  br label %1230

750:                                              ; preds = %743
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %7, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %745) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %33) #8
  br label %754

754:                                              ; preds = %750, %727
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  br label %1238

755:                                              ; preds = %699
  %756 = load i8, ptr %3, align 1, !tbaa !28
  %757 = sext i8 %756 to i32
  switch i32 %757, label %1221 [
    i32 58, label %758
    i32 59, label %798
    i32 46, label %815
    i32 44, label %832
    i32 61, label %849
    i32 38, label %866
    i32 42, label %883
    i32 47, label %900
    i32 37, label %917
    i32 45, label %934
    i32 43, label %951
    i32 94, label %968
    i32 124, label %985
    i32 33, label %1002
    i32 64, label %1019
    i32 40, label %1036
    i32 41, label %1053
    i32 60, label %1070
    i32 62, label %1136
    i32 91, label %1153
    i32 93, label %1170
    i32 123, label %1187
    i32 125, label %1204
  ]

758:                                              ; preds = %755
  %759 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %760 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %759)
  switch i32 %760, label %778 [
    i32 58, label %761
  ]

761:                                              ; preds = %758
  call void @llvm.lifetime.start.p0(i64 56, ptr %34) #8
  %762 = getelementptr inbounds %struct.Token, ptr %34, i32 0, i32 0
  store i32 1, ptr %762, align 8, !tbaa !37
  %763 = getelementptr inbounds %struct.Token, ptr %34, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %763, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %764 unwind label %769

764:                                              ; preds = %761
  %765 = getelementptr inbounds %struct.Token, ptr %34, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %765)
          to label %766 unwind label %773

766:                                              ; preds = %764
  %767 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %768 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %767, ptr noundef nonnull align 8 dereferenceable(56) %34) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %34) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %34) #8
  br label %797

769:                                              ; preds = %761
  %770 = landingpad { ptr, i32 }
          cleanup
  %771 = extractvalue { ptr, i32 } %770, 0
  store ptr %771, ptr %7, align 8
  %772 = extractvalue { ptr, i32 } %770, 1
  store i32 %772, ptr %8, align 4
  br label %777

773:                                              ; preds = %764
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %7, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %763) #8
  br label %777

777:                                              ; preds = %773, %769
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %34) #8
  br label %1238

778:                                              ; preds = %758
  %779 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %780 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %779)
  call void @llvm.lifetime.start.p0(i64 56, ptr %36) #8
  %781 = getelementptr inbounds %struct.Token, ptr %36, i32 0, i32 0
  store i32 1, ptr %781, align 8, !tbaa !37
  %782 = getelementptr inbounds %struct.Token, ptr %36, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %782, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %783 unwind label %788

783:                                              ; preds = %778
  %784 = getelementptr inbounds %struct.Token, ptr %36, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %784)
          to label %785 unwind label %792

785:                                              ; preds = %783
  %786 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %787 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %786, ptr noundef nonnull align 8 dereferenceable(56) %36) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %36) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %36) #8
  br label %797

788:                                              ; preds = %778
  %789 = landingpad { ptr, i32 }
          cleanup
  %790 = extractvalue { ptr, i32 } %789, 0
  store ptr %790, ptr %7, align 8
  %791 = extractvalue { ptr, i32 } %789, 1
  store i32 %791, ptr %8, align 4
  br label %796

792:                                              ; preds = %783
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %7, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %782) #8
  br label %796

796:                                              ; preds = %792, %788
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %36) #8
  br label %1238

797:                                              ; preds = %785, %766
  br label %1229

798:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %38) #8
  %799 = getelementptr inbounds %struct.Token, ptr %38, i32 0, i32 0
  store i32 1, ptr %799, align 8, !tbaa !37
  %800 = getelementptr inbounds %struct.Token, ptr %38, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %800, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %801 unwind label %806

801:                                              ; preds = %798
  %802 = getelementptr inbounds %struct.Token, ptr %38, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %802)
          to label %803 unwind label %810

803:                                              ; preds = %801
  %804 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %805 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %804, ptr noundef nonnull align 8 dereferenceable(56) %38) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %38) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %38) #8
  br label %1229

806:                                              ; preds = %798
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %7, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %8, align 4
  br label %814

810:                                              ; preds = %801
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %7, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %800) #8
  br label %814

814:                                              ; preds = %810, %806
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %38) #8
  br label %1238

815:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %40) #8
  %816 = getelementptr inbounds %struct.Token, ptr %40, i32 0, i32 0
  store i32 1, ptr %816, align 8, !tbaa !37
  %817 = getelementptr inbounds %struct.Token, ptr %40, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %817, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %818 unwind label %823

818:                                              ; preds = %815
  %819 = getelementptr inbounds %struct.Token, ptr %40, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %819)
          to label %820 unwind label %827

820:                                              ; preds = %818
  %821 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %822 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %821, ptr noundef nonnull align 8 dereferenceable(56) %40) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %40) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %40) #8
  br label %1229

823:                                              ; preds = %815
  %824 = landingpad { ptr, i32 }
          cleanup
  %825 = extractvalue { ptr, i32 } %824, 0
  store ptr %825, ptr %7, align 8
  %826 = extractvalue { ptr, i32 } %824, 1
  store i32 %826, ptr %8, align 4
  br label %831

827:                                              ; preds = %818
  %828 = landingpad { ptr, i32 }
          cleanup
  %829 = extractvalue { ptr, i32 } %828, 0
  store ptr %829, ptr %7, align 8
  %830 = extractvalue { ptr, i32 } %828, 1
  store i32 %830, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %817) #8
  br label %831

831:                                              ; preds = %827, %823
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %40) #8
  br label %1238

832:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %42) #8
  %833 = getelementptr inbounds %struct.Token, ptr %42, i32 0, i32 0
  store i32 1, ptr %833, align 8, !tbaa !37
  %834 = getelementptr inbounds %struct.Token, ptr %42, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %834, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %835 unwind label %840

835:                                              ; preds = %832
  %836 = getelementptr inbounds %struct.Token, ptr %42, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %836)
          to label %837 unwind label %844

837:                                              ; preds = %835
  %838 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %839 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %838, ptr noundef nonnull align 8 dereferenceable(56) %42) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %42) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %42) #8
  br label %1229

840:                                              ; preds = %832
  %841 = landingpad { ptr, i32 }
          cleanup
  %842 = extractvalue { ptr, i32 } %841, 0
  store ptr %842, ptr %7, align 8
  %843 = extractvalue { ptr, i32 } %841, 1
  store i32 %843, ptr %8, align 4
  br label %848

844:                                              ; preds = %835
  %845 = landingpad { ptr, i32 }
          cleanup
  %846 = extractvalue { ptr, i32 } %845, 0
  store ptr %846, ptr %7, align 8
  %847 = extractvalue { ptr, i32 } %845, 1
  store i32 %847, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %834) #8
  br label %848

848:                                              ; preds = %844, %840
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %42) #8
  br label %1238

849:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %44) #8
  %850 = getelementptr inbounds %struct.Token, ptr %44, i32 0, i32 0
  store i32 1, ptr %850, align 8, !tbaa !37
  %851 = getelementptr inbounds %struct.Token, ptr %44, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %851, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %852 unwind label %857

852:                                              ; preds = %849
  %853 = getelementptr inbounds %struct.Token, ptr %44, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %853)
          to label %854 unwind label %861

854:                                              ; preds = %852
  %855 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %856 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %855, ptr noundef nonnull align 8 dereferenceable(56) %44) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %44) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %44) #8
  br label %1229

857:                                              ; preds = %849
  %858 = landingpad { ptr, i32 }
          cleanup
  %859 = extractvalue { ptr, i32 } %858, 0
  store ptr %859, ptr %7, align 8
  %860 = extractvalue { ptr, i32 } %858, 1
  store i32 %860, ptr %8, align 4
  br label %865

861:                                              ; preds = %852
  %862 = landingpad { ptr, i32 }
          cleanup
  %863 = extractvalue { ptr, i32 } %862, 0
  store ptr %863, ptr %7, align 8
  %864 = extractvalue { ptr, i32 } %862, 1
  store i32 %864, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %851) #8
  br label %865

865:                                              ; preds = %861, %857
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %44) #8
  br label %1238

866:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %46) #8
  %867 = getelementptr inbounds %struct.Token, ptr %46, i32 0, i32 0
  store i32 1, ptr %867, align 8, !tbaa !37
  %868 = getelementptr inbounds %struct.Token, ptr %46, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %868, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %869 unwind label %874

869:                                              ; preds = %866
  %870 = getelementptr inbounds %struct.Token, ptr %46, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %870)
          to label %871 unwind label %878

871:                                              ; preds = %869
  %872 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %873 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %872, ptr noundef nonnull align 8 dereferenceable(56) %46) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #8
  br label %1229

874:                                              ; preds = %866
  %875 = landingpad { ptr, i32 }
          cleanup
  %876 = extractvalue { ptr, i32 } %875, 0
  store ptr %876, ptr %7, align 8
  %877 = extractvalue { ptr, i32 } %875, 1
  store i32 %877, ptr %8, align 4
  br label %882

878:                                              ; preds = %869
  %879 = landingpad { ptr, i32 }
          cleanup
  %880 = extractvalue { ptr, i32 } %879, 0
  store ptr %880, ptr %7, align 8
  %881 = extractvalue { ptr, i32 } %879, 1
  store i32 %881, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %868) #8
  br label %882

882:                                              ; preds = %878, %874
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #8
  br label %1238

883:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %48) #8
  %884 = getelementptr inbounds %struct.Token, ptr %48, i32 0, i32 0
  store i32 1, ptr %884, align 8, !tbaa !37
  %885 = getelementptr inbounds %struct.Token, ptr %48, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %885, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %886 unwind label %891

886:                                              ; preds = %883
  %887 = getelementptr inbounds %struct.Token, ptr %48, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %887)
          to label %888 unwind label %895

888:                                              ; preds = %886
  %889 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %890 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %889, ptr noundef nonnull align 8 dereferenceable(56) %48) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %48) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %48) #8
  br label %1229

891:                                              ; preds = %883
  %892 = landingpad { ptr, i32 }
          cleanup
  %893 = extractvalue { ptr, i32 } %892, 0
  store ptr %893, ptr %7, align 8
  %894 = extractvalue { ptr, i32 } %892, 1
  store i32 %894, ptr %8, align 4
  br label %899

895:                                              ; preds = %886
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %7, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %885) #8
  br label %899

899:                                              ; preds = %895, %891
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %48) #8
  br label %1238

900:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %50) #8
  %901 = getelementptr inbounds %struct.Token, ptr %50, i32 0, i32 0
  store i32 1, ptr %901, align 8, !tbaa !37
  %902 = getelementptr inbounds %struct.Token, ptr %50, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %902, ptr noundef @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %903 unwind label %908

903:                                              ; preds = %900
  %904 = getelementptr inbounds %struct.Token, ptr %50, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %904)
          to label %905 unwind label %912

905:                                              ; preds = %903
  %906 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %907 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %906, ptr noundef nonnull align 8 dereferenceable(56) %50) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %50) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %50) #8
  br label %1229

908:                                              ; preds = %900
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %7, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %8, align 4
  br label %916

912:                                              ; preds = %903
  %913 = landingpad { ptr, i32 }
          cleanup
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %7, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %902) #8
  br label %916

916:                                              ; preds = %912, %908
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %50) #8
  br label %1238

917:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %52) #8
  %918 = getelementptr inbounds %struct.Token, ptr %52, i32 0, i32 0
  store i32 1, ptr %918, align 8, !tbaa !37
  %919 = getelementptr inbounds %struct.Token, ptr %52, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %919, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %920 unwind label %925

920:                                              ; preds = %917
  %921 = getelementptr inbounds %struct.Token, ptr %52, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %921)
          to label %922 unwind label %929

922:                                              ; preds = %920
  %923 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %924 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %923, ptr noundef nonnull align 8 dereferenceable(56) %52) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %52) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %52) #8
  br label %1229

925:                                              ; preds = %917
  %926 = landingpad { ptr, i32 }
          cleanup
  %927 = extractvalue { ptr, i32 } %926, 0
  store ptr %927, ptr %7, align 8
  %928 = extractvalue { ptr, i32 } %926, 1
  store i32 %928, ptr %8, align 4
  br label %933

929:                                              ; preds = %920
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %7, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %919) #8
  br label %933

933:                                              ; preds = %929, %925
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %52) #8
  br label %1238

934:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %54) #8
  %935 = getelementptr inbounds %struct.Token, ptr %54, i32 0, i32 0
  store i32 1, ptr %935, align 8, !tbaa !37
  %936 = getelementptr inbounds %struct.Token, ptr %54, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %936, ptr noundef @.str.35, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %937 unwind label %942

937:                                              ; preds = %934
  %938 = getelementptr inbounds %struct.Token, ptr %54, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %938)
          to label %939 unwind label %946

939:                                              ; preds = %937
  %940 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %941 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %940, ptr noundef nonnull align 8 dereferenceable(56) %54) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %54) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %54) #8
  br label %1229

942:                                              ; preds = %934
  %943 = landingpad { ptr, i32 }
          cleanup
  %944 = extractvalue { ptr, i32 } %943, 0
  store ptr %944, ptr %7, align 8
  %945 = extractvalue { ptr, i32 } %943, 1
  store i32 %945, ptr %8, align 4
  br label %950

946:                                              ; preds = %937
  %947 = landingpad { ptr, i32 }
          cleanup
  %948 = extractvalue { ptr, i32 } %947, 0
  store ptr %948, ptr %7, align 8
  %949 = extractvalue { ptr, i32 } %947, 1
  store i32 %949, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %936) #8
  br label %950

950:                                              ; preds = %946, %942
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %54) #8
  br label %1238

951:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %56) #8
  %952 = getelementptr inbounds %struct.Token, ptr %56, i32 0, i32 0
  store i32 1, ptr %952, align 8, !tbaa !37
  %953 = getelementptr inbounds %struct.Token, ptr %56, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %953, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %954 unwind label %959

954:                                              ; preds = %951
  %955 = getelementptr inbounds %struct.Token, ptr %56, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %955)
          to label %956 unwind label %963

956:                                              ; preds = %954
  %957 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %958 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %957, ptr noundef nonnull align 8 dereferenceable(56) %56) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %56) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %56) #8
  br label %1229

959:                                              ; preds = %951
  %960 = landingpad { ptr, i32 }
          cleanup
  %961 = extractvalue { ptr, i32 } %960, 0
  store ptr %961, ptr %7, align 8
  %962 = extractvalue { ptr, i32 } %960, 1
  store i32 %962, ptr %8, align 4
  br label %967

963:                                              ; preds = %954
  %964 = landingpad { ptr, i32 }
          cleanup
  %965 = extractvalue { ptr, i32 } %964, 0
  store ptr %965, ptr %7, align 8
  %966 = extractvalue { ptr, i32 } %964, 1
  store i32 %966, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %953) #8
  br label %967

967:                                              ; preds = %963, %959
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %56) #8
  br label %1238

968:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %58) #8
  %969 = getelementptr inbounds %struct.Token, ptr %58, i32 0, i32 0
  store i32 1, ptr %969, align 8, !tbaa !37
  %970 = getelementptr inbounds %struct.Token, ptr %58, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %970, ptr noundef @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %971 unwind label %976

971:                                              ; preds = %968
  %972 = getelementptr inbounds %struct.Token, ptr %58, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %972)
          to label %973 unwind label %980

973:                                              ; preds = %971
  %974 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %975 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %974, ptr noundef nonnull align 8 dereferenceable(56) %58) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %58) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %58) #8
  br label %1229

976:                                              ; preds = %968
  %977 = landingpad { ptr, i32 }
          cleanup
  %978 = extractvalue { ptr, i32 } %977, 0
  store ptr %978, ptr %7, align 8
  %979 = extractvalue { ptr, i32 } %977, 1
  store i32 %979, ptr %8, align 4
  br label %984

980:                                              ; preds = %971
  %981 = landingpad { ptr, i32 }
          cleanup
  %982 = extractvalue { ptr, i32 } %981, 0
  store ptr %982, ptr %7, align 8
  %983 = extractvalue { ptr, i32 } %981, 1
  store i32 %983, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %970) #8
  br label %984

984:                                              ; preds = %980, %976
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %58) #8
  br label %1238

985:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %60) #8
  %986 = getelementptr inbounds %struct.Token, ptr %60, i32 0, i32 0
  store i32 1, ptr %986, align 8, !tbaa !37
  %987 = getelementptr inbounds %struct.Token, ptr %60, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %987, ptr noundef @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %988 unwind label %993

988:                                              ; preds = %985
  %989 = getelementptr inbounds %struct.Token, ptr %60, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %989)
          to label %990 unwind label %997

990:                                              ; preds = %988
  %991 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %992 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %991, ptr noundef nonnull align 8 dereferenceable(56) %60) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %60) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %60) #8
  br label %1229

993:                                              ; preds = %985
  %994 = landingpad { ptr, i32 }
          cleanup
  %995 = extractvalue { ptr, i32 } %994, 0
  store ptr %995, ptr %7, align 8
  %996 = extractvalue { ptr, i32 } %994, 1
  store i32 %996, ptr %8, align 4
  br label %1001

997:                                              ; preds = %988
  %998 = landingpad { ptr, i32 }
          cleanup
  %999 = extractvalue { ptr, i32 } %998, 0
  store ptr %999, ptr %7, align 8
  %1000 = extractvalue { ptr, i32 } %998, 1
  store i32 %1000, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %987) #8
  br label %1001

1001:                                             ; preds = %997, %993
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %60) #8
  br label %1238

1002:                                             ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %62) #8
  %1003 = getelementptr inbounds %struct.Token, ptr %62, i32 0, i32 0
  store i32 1, ptr %1003, align 8, !tbaa !37
  %1004 = getelementptr inbounds %struct.Token, ptr %62, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1004, ptr noundef @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %1005 unwind label %1010

1005:                                             ; preds = %1002
  %1006 = getelementptr inbounds %struct.Token, ptr %62, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1006)
          to label %1007 unwind label %1014

1007:                                             ; preds = %1005
  %1008 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1009 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1008, ptr noundef nonnull align 8 dereferenceable(56) %62) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %62) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %62) #8
  br label %1229

1010:                                             ; preds = %1002
  %1011 = landingpad { ptr, i32 }
          cleanup
  %1012 = extractvalue { ptr, i32 } %1011, 0
  store ptr %1012, ptr %7, align 8
  %1013 = extractvalue { ptr, i32 } %1011, 1
  store i32 %1013, ptr %8, align 4
  br label %1018

1014:                                             ; preds = %1005
  %1015 = landingpad { ptr, i32 }
          cleanup
  %1016 = extractvalue { ptr, i32 } %1015, 0
  store ptr %1016, ptr %7, align 8
  %1017 = extractvalue { ptr, i32 } %1015, 1
  store i32 %1017, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1004) #8
  br label %1018

1018:                                             ; preds = %1014, %1010
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %62) #8
  br label %1238

1019:                                             ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %64) #8
  %1020 = getelementptr inbounds %struct.Token, ptr %64, i32 0, i32 0
  store i32 1, ptr %1020, align 8, !tbaa !37
  %1021 = getelementptr inbounds %struct.Token, ptr %64, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1021, ptr noundef @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %1022 unwind label %1027

1022:                                             ; preds = %1019
  %1023 = getelementptr inbounds %struct.Token, ptr %64, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1023)
          to label %1024 unwind label %1031

1024:                                             ; preds = %1022
  %1025 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1026 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1025, ptr noundef nonnull align 8 dereferenceable(56) %64) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %64) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %64) #8
  br label %1229

1027:                                             ; preds = %1019
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %7, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %8, align 4
  br label %1035

1031:                                             ; preds = %1022
  %1032 = landingpad { ptr, i32 }
          cleanup
  %1033 = extractvalue { ptr, i32 } %1032, 0
  store ptr %1033, ptr %7, align 8
  %1034 = extractvalue { ptr, i32 } %1032, 1
  store i32 %1034, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1021) #8
  br label %1035

1035:                                             ; preds = %1031, %1027
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %64) #8
  br label %1238

1036:                                             ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %66) #8
  %1037 = getelementptr inbounds %struct.Token, ptr %66, i32 0, i32 0
  store i32 1, ptr %1037, align 8, !tbaa !37
  %1038 = getelementptr inbounds %struct.Token, ptr %66, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1038, ptr noundef @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %1039 unwind label %1044

1039:                                             ; preds = %1036
  %1040 = getelementptr inbounds %struct.Token, ptr %66, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1040)
          to label %1041 unwind label %1048

1041:                                             ; preds = %1039
  %1042 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1043 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1042, ptr noundef nonnull align 8 dereferenceable(56) %66) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %66) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %66) #8
  br label %1229

1044:                                             ; preds = %1036
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %7, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %8, align 4
  br label %1052

1048:                                             ; preds = %1039
  %1049 = landingpad { ptr, i32 }
          cleanup
  %1050 = extractvalue { ptr, i32 } %1049, 0
  store ptr %1050, ptr %7, align 8
  %1051 = extractvalue { ptr, i32 } %1049, 1
  store i32 %1051, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1038) #8
  br label %1052

1052:                                             ; preds = %1048, %1044
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %66) #8
  br label %1238

1053:                                             ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %68) #8
  %1054 = getelementptr inbounds %struct.Token, ptr %68, i32 0, i32 0
  store i32 1, ptr %1054, align 8, !tbaa !37
  %1055 = getelementptr inbounds %struct.Token, ptr %68, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1055, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %1056 unwind label %1061

1056:                                             ; preds = %1053
  %1057 = getelementptr inbounds %struct.Token, ptr %68, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1057)
          to label %1058 unwind label %1065

1058:                                             ; preds = %1056
  %1059 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1060 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1059, ptr noundef nonnull align 8 dereferenceable(56) %68) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %68) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #8
  br label %1229

1061:                                             ; preds = %1053
  %1062 = landingpad { ptr, i32 }
          cleanup
  %1063 = extractvalue { ptr, i32 } %1062, 0
  store ptr %1063, ptr %7, align 8
  %1064 = extractvalue { ptr, i32 } %1062, 1
  store i32 %1064, ptr %8, align 4
  br label %1069

1065:                                             ; preds = %1056
  %1066 = landingpad { ptr, i32 }
          cleanup
  %1067 = extractvalue { ptr, i32 } %1066, 0
  store ptr %1067, ptr %7, align 8
  %1068 = extractvalue { ptr, i32 } %1066, 1
  store i32 %1068, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1055) #8
  br label %1069

1069:                                             ; preds = %1065, %1061
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #8
  br label %1238

1070:                                             ; preds = %755
  %1071 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %1072 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %1071)
  %1073 = trunc i32 %1072 to i8
  store i8 %1073, ptr %3, align 1, !tbaa !28
  %1074 = load i8, ptr %3, align 1, !tbaa !28
  %1075 = sext i8 %1074 to i32
  %1076 = icmp eq i32 %1075, 60
  br i1 %1076, label %1077, label %1094

1077:                                             ; preds = %1070
  call void @llvm.lifetime.start.p0(i64 56, ptr %70) #8
  %1078 = getelementptr inbounds %struct.Token, ptr %70, i32 0, i32 0
  store i32 1, ptr %1078, align 8, !tbaa !37
  %1079 = getelementptr inbounds %struct.Token, ptr %70, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1079, ptr noundef @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %1080 unwind label %1085

1080:                                             ; preds = %1077
  %1081 = getelementptr inbounds %struct.Token, ptr %70, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1081)
          to label %1082 unwind label %1089

1082:                                             ; preds = %1080
  %1083 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1084 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1083, ptr noundef nonnull align 8 dereferenceable(56) %70) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %70) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %70) #8
  br label %1135

1085:                                             ; preds = %1077
  %1086 = landingpad { ptr, i32 }
          cleanup
  %1087 = extractvalue { ptr, i32 } %1086, 0
  store ptr %1087, ptr %7, align 8
  %1088 = extractvalue { ptr, i32 } %1086, 1
  store i32 %1088, ptr %8, align 4
  br label %1093

1089:                                             ; preds = %1080
  %1090 = landingpad { ptr, i32 }
          cleanup
  %1091 = extractvalue { ptr, i32 } %1090, 0
  store ptr %1091, ptr %7, align 8
  %1092 = extractvalue { ptr, i32 } %1090, 1
  store i32 %1092, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1079) #8
  br label %1093

1093:                                             ; preds = %1089, %1085
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %70) #8
  br label %1238

1094:                                             ; preds = %1070
  %1095 = load i8, ptr %3, align 1, !tbaa !28
  %1096 = sext i8 %1095 to i32
  %1097 = icmp eq i32 %1096, 61
  br i1 %1097, label %1098, label %1115

1098:                                             ; preds = %1094
  call void @llvm.lifetime.start.p0(i64 56, ptr %72) #8
  %1099 = getelementptr inbounds %struct.Token, ptr %72, i32 0, i32 0
  store i32 1, ptr %1099, align 8, !tbaa !37
  %1100 = getelementptr inbounds %struct.Token, ptr %72, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1100, ptr noundef @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %1101 unwind label %1106

1101:                                             ; preds = %1098
  %1102 = getelementptr inbounds %struct.Token, ptr %72, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1102)
          to label %1103 unwind label %1110

1103:                                             ; preds = %1101
  %1104 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1105 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1104, ptr noundef nonnull align 8 dereferenceable(56) %72) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %72) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %72) #8
  br label %1134

1106:                                             ; preds = %1098
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %7, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %8, align 4
  br label %1114

1110:                                             ; preds = %1101
  %1111 = landingpad { ptr, i32 }
          cleanup
  %1112 = extractvalue { ptr, i32 } %1111, 0
  store ptr %1112, ptr %7, align 8
  %1113 = extractvalue { ptr, i32 } %1111, 1
  store i32 %1113, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1100) #8
  br label %1114

1114:                                             ; preds = %1110, %1106
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %72) #8
  br label %1238

1115:                                             ; preds = %1094
  %1116 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 2
  %1117 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %1116)
  call void @llvm.lifetime.start.p0(i64 56, ptr %74) #8
  %1118 = getelementptr inbounds %struct.Token, ptr %74, i32 0, i32 0
  store i32 1, ptr %1118, align 8, !tbaa !37
  %1119 = getelementptr inbounds %struct.Token, ptr %74, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1119, ptr noundef @.str.44, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %1120 unwind label %1125

1120:                                             ; preds = %1115
  %1121 = getelementptr inbounds %struct.Token, ptr %74, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1121)
          to label %1122 unwind label %1129

1122:                                             ; preds = %1120
  %1123 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1124 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1123, ptr noundef nonnull align 8 dereferenceable(56) %74) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %74) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %74) #8
  br label %1134

1125:                                             ; preds = %1115
  %1126 = landingpad { ptr, i32 }
          cleanup
  %1127 = extractvalue { ptr, i32 } %1126, 0
  store ptr %1127, ptr %7, align 8
  %1128 = extractvalue { ptr, i32 } %1126, 1
  store i32 %1128, ptr %8, align 4
  br label %1133

1129:                                             ; preds = %1120
  %1130 = landingpad { ptr, i32 }
          cleanup
  %1131 = extractvalue { ptr, i32 } %1130, 0
  store ptr %1131, ptr %7, align 8
  %1132 = extractvalue { ptr, i32 } %1130, 1
  store i32 %1132, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1119) #8
  br label %1133

1133:                                             ; preds = %1129, %1125
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %74) #8
  br label %1238

1134:                                             ; preds = %1122, %1103
  br label %1135

1135:                                             ; preds = %1134, %1082
  br label %1229

1136:                                             ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %76) #8
  %1137 = getelementptr inbounds %struct.Token, ptr %76, i32 0, i32 0
  store i32 1, ptr %1137, align 8, !tbaa !37
  %1138 = getelementptr inbounds %struct.Token, ptr %76, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1138, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %1139 unwind label %1144

1139:                                             ; preds = %1136
  %1140 = getelementptr inbounds %struct.Token, ptr %76, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1140)
          to label %1141 unwind label %1148

1141:                                             ; preds = %1139
  %1142 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1143 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1142, ptr noundef nonnull align 8 dereferenceable(56) %76) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %76) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %76) #8
  br label %1229

1144:                                             ; preds = %1136
  %1145 = landingpad { ptr, i32 }
          cleanup
  %1146 = extractvalue { ptr, i32 } %1145, 0
  store ptr %1146, ptr %7, align 8
  %1147 = extractvalue { ptr, i32 } %1145, 1
  store i32 %1147, ptr %8, align 4
  br label %1152

1148:                                             ; preds = %1139
  %1149 = landingpad { ptr, i32 }
          cleanup
  %1150 = extractvalue { ptr, i32 } %1149, 0
  store ptr %1150, ptr %7, align 8
  %1151 = extractvalue { ptr, i32 } %1149, 1
  store i32 %1151, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1138) #8
  br label %1152

1152:                                             ; preds = %1148, %1144
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %76) #8
  br label %1238

1153:                                             ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %78) #8
  %1154 = getelementptr inbounds %struct.Token, ptr %78, i32 0, i32 0
  store i32 1, ptr %1154, align 8, !tbaa !37
  %1155 = getelementptr inbounds %struct.Token, ptr %78, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1155, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %1156 unwind label %1161

1156:                                             ; preds = %1153
  %1157 = getelementptr inbounds %struct.Token, ptr %78, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1157)
          to label %1158 unwind label %1165

1158:                                             ; preds = %1156
  %1159 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1160 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1159, ptr noundef nonnull align 8 dereferenceable(56) %78) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %78) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %78) #8
  br label %1229

1161:                                             ; preds = %1153
  %1162 = landingpad { ptr, i32 }
          cleanup
  %1163 = extractvalue { ptr, i32 } %1162, 0
  store ptr %1163, ptr %7, align 8
  %1164 = extractvalue { ptr, i32 } %1162, 1
  store i32 %1164, ptr %8, align 4
  br label %1169

1165:                                             ; preds = %1156
  %1166 = landingpad { ptr, i32 }
          cleanup
  %1167 = extractvalue { ptr, i32 } %1166, 0
  store ptr %1167, ptr %7, align 8
  %1168 = extractvalue { ptr, i32 } %1166, 1
  store i32 %1168, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1155) #8
  br label %1169

1169:                                             ; preds = %1165, %1161
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %78) #8
  br label %1238

1170:                                             ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %80) #8
  %1171 = getelementptr inbounds %struct.Token, ptr %80, i32 0, i32 0
  store i32 1, ptr %1171, align 8, !tbaa !37
  %1172 = getelementptr inbounds %struct.Token, ptr %80, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1172, ptr noundef @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %1173 unwind label %1178

1173:                                             ; preds = %1170
  %1174 = getelementptr inbounds %struct.Token, ptr %80, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1174)
          to label %1175 unwind label %1182

1175:                                             ; preds = %1173
  %1176 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1177 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1176, ptr noundef nonnull align 8 dereferenceable(56) %80) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %80) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %80) #8
  br label %1229

1178:                                             ; preds = %1170
  %1179 = landingpad { ptr, i32 }
          cleanup
  %1180 = extractvalue { ptr, i32 } %1179, 0
  store ptr %1180, ptr %7, align 8
  %1181 = extractvalue { ptr, i32 } %1179, 1
  store i32 %1181, ptr %8, align 4
  br label %1186

1182:                                             ; preds = %1173
  %1183 = landingpad { ptr, i32 }
          cleanup
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %7, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1172) #8
  br label %1186

1186:                                             ; preds = %1182, %1178
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %80) #8
  br label %1238

1187:                                             ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %82) #8
  %1188 = getelementptr inbounds %struct.Token, ptr %82, i32 0, i32 0
  store i32 1, ptr %1188, align 8, !tbaa !37
  %1189 = getelementptr inbounds %struct.Token, ptr %82, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1189, ptr noundef @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %1190 unwind label %1195

1190:                                             ; preds = %1187
  %1191 = getelementptr inbounds %struct.Token, ptr %82, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1191)
          to label %1192 unwind label %1199

1192:                                             ; preds = %1190
  %1193 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1194 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1193, ptr noundef nonnull align 8 dereferenceable(56) %82) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %82) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %82) #8
  br label %1229

1195:                                             ; preds = %1187
  %1196 = landingpad { ptr, i32 }
          cleanup
  %1197 = extractvalue { ptr, i32 } %1196, 0
  store ptr %1197, ptr %7, align 8
  %1198 = extractvalue { ptr, i32 } %1196, 1
  store i32 %1198, ptr %8, align 4
  br label %1203

1199:                                             ; preds = %1190
  %1200 = landingpad { ptr, i32 }
          cleanup
  %1201 = extractvalue { ptr, i32 } %1200, 0
  store ptr %1201, ptr %7, align 8
  %1202 = extractvalue { ptr, i32 } %1200, 1
  store i32 %1202, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1189) #8
  br label %1203

1203:                                             ; preds = %1199, %1195
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %82) #8
  br label %1238

1204:                                             ; preds = %755
  call void @llvm.lifetime.start.p0(i64 56, ptr %84) #8
  %1205 = getelementptr inbounds %struct.Token, ptr %84, i32 0, i32 0
  store i32 1, ptr %1205, align 8, !tbaa !37
  %1206 = getelementptr inbounds %struct.Token, ptr %84, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1206, ptr noundef @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %1207 unwind label %1212

1207:                                             ; preds = %1204
  %1208 = getelementptr inbounds %struct.Token, ptr %84, i32 0, i32 2
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1208)
          to label %1209 unwind label %1216

1209:                                             ; preds = %1207
  %1210 = getelementptr inbounds %class.Lexer, ptr %86, i32 0, i32 3
  %1211 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %1210, ptr noundef nonnull align 8 dereferenceable(56) %84) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %84) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %84) #8
  br label %1229

1212:                                             ; preds = %1204
  %1213 = landingpad { ptr, i32 }
          cleanup
  %1214 = extractvalue { ptr, i32 } %1213, 0
  store ptr %1214, ptr %7, align 8
  %1215 = extractvalue { ptr, i32 } %1213, 1
  store i32 %1215, ptr %8, align 4
  br label %1220

1216:                                             ; preds = %1207
  %1217 = landingpad { ptr, i32 }
          cleanup
  %1218 = extractvalue { ptr, i32 } %1217, 0
  store ptr %1218, ptr %7, align 8
  %1219 = extractvalue { ptr, i32 } %1217, 1
  store i32 %1219, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1206) #8
  br label %1220

1220:                                             ; preds = %1216, %1212
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %84) #8
  br label %1238

1221:                                             ; preds = %755
  %1222 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %86)
  %1223 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1222, ptr noundef @.str.50)
  %1224 = load i8, ptr %3, align 1, !tbaa !28
  %1225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %1223, i8 noundef signext %1224)
  %1226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1225, ptr noundef @.str.12)
  %1227 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1226, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1228 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %1228, align 16, !tbaa !5
  call void @__cxa_throw(ptr %1228, ptr @_ZTIPKc, ptr null) #10
  unreachable

1229:                                             ; preds = %1209, %1192, %1175, %1158, %1141, %1135, %1058, %1041, %1024, %1007, %990, %973, %956, %939, %922, %905, %888, %871, %854, %837, %820, %803, %797
  br label %1230

1230:                                             ; preds = %1229, %747
  br label %1231

1231:                                             ; preds = %1230, %692
  br label %1232

1232:                                             ; preds = %1231, %670
  br label %1233

1233:                                             ; preds = %1232, %366
  br label %1234

1234:                                             ; preds = %1233, %307
  store i32 0, ptr %10, align 4
  br label %1235

1235:                                             ; preds = %1234, %629, %284, %257
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #8
  %1236 = load i32, ptr %10, align 4
  switch i32 %1236, label %1244 [
    i32 0, label %1237
    i32 1, label %1237
  ]

1237:                                             ; preds = %1235, %1235, %90
  ret void

1238:                                             ; preds = %1220, %1203, %1186, %1169, %1152, %1133, %1114, %1093, %1069, %1052, %1035, %1018, %1001, %984, %967, %950, %933, %916, %899, %882, %865, %848, %831, %814, %796, %777, %754, %695, %683, %630, %373, %318, %287, %265
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #8
  br label %1239

1239:                                             ; preds = %1238
  %1240 = load ptr, ptr %7, align 8
  %1241 = load i32, ptr %8, align 4
  %1242 = insertvalue { ptr, i32 } poison, ptr %1240, 0
  %1243 = insertvalue { ptr, i32 } %1242, i32 %1241, 1
  resume { ptr, i32 } %1243

1244:                                             ; preds = %1235, %741
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(56)) #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) #1

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isblank(i32 noundef) #6

declare noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16)) #7

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16)) #7

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isdigit(i32 noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Lexer12parse_stringB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(680)) #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264)) #2 align 2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isalpha(i32 noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isalnum(i32 noundef) #6

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isxdigit(i32 noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i64 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128mLEj(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128pLEj(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4U128neEj(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

attributes #0 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { inlinehint mustprogress 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 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress 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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(read) }
attributes #10 = { noreturn }

!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++ TBAA"}
!9 = !{!10, !21, i64 616}
!10 = !{!"_ZTS5Lexer", !11, i64 0, !14, i64 32, !15, i64 40, !24, i64 560, !21, i64 616, !24, i64 624}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !12, i64 0, !13, i64 8, !7, i64 16}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!"_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE", !16, i64 0, !17, i64 16}
!16 = !{!"_ZTSSi", !13, i64 8}
!17 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !18, i64 0, !7, i64 64, !20, i64 104, !22, i64 120, !23, i64 124, !23, i64 132, !23, i64 140, !6, i64 152, !13, i64 160, !21, i64 168, !21, i64 169, !21, i64 170, !7, i64 171, !6, i64 176, !6, i64 184, !21, i64 192, !6, i64 200, !6, i64 208, !13, i64 216, !6, i64 224, !6, i64 232}
!18 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !19, i64 56}
!19 = !{!"_ZTSSt6locale", !6, i64 0}
!20 = !{!"_ZTSSt12__basic_fileIcE", !6, i64 0, !21, i64 8}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"_ZTSSt13_Ios_Openmode", !7, i64 0}
!23 = !{!"_ZTS11__mbstate_t", !14, i64 0, !7, i64 4}
!24 = !{!"_ZTS5Token", !25, i64 0, !11, i64 8, !7, i64 40}
!25 = !{!"_ZTS10TokenClass", !7, i64 0}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!7, !7, i64 0}
!29 = !{!10, !14, i64 32}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!14, !14, i64 0}
!33 = distinct !{!33, !31}
!34 = distinct !{!34, !31}
!35 = distinct !{!35, !31}
!36 = distinct !{!36, !31}
!37 = !{!24, !25, i64 0}
!38 = !{!39, !39, i64 0}
!39 = !{!"vtable pointer", !8, i64 0}
!40 = distinct !{!40, !31}
!41 = distinct !{!41, !31}
!42 = !{!13, !13, i64 0}
!43 = distinct !{!43, !31}
!44 = distinct !{!44, !31}
!45 = !{!21, !21, i64 0}
!46 = distinct !{!46, !31}
!47 = !{i64 0, i64 8, !42, i64 8, i64 8, !42}
!48 = distinct !{!48, !31}
!49 = distinct !{!49, !31}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%struct.Token = type { i32, %"class.std::__cxx11::basic_string", %"union.Token::Numbers" }
%"union.Token::Numbers" = type { %class.U128 }
%class.U128 = type { i64, i64 }

@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZTIPKc = external constant ptr
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [22 x i8], align 1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(680)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Lexer7advanceEv(ptr noundef nonnull align 8 dereferenceable(680) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::allocator", align 1
  %4 = alloca %struct.Token, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %struct.Token, align 8
  %7 = alloca %struct.Token, align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %struct.Token, align 8
  %11 = alloca %class.U128, align 8
  %12 = alloca %struct.Token, align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %struct.Token, align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %class.U128, align 8
  %17 = alloca %struct.Token, align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %struct.Token, align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %struct.Token, align 8
  %23 = alloca %struct.Token, align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %struct.Token, align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %struct.Token, align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %struct.Token, align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca %struct.Token, align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %struct.Token, align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %struct.Token, align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %struct.Token, align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %struct.Token, align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %struct.Token, align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca %struct.Token, align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %struct.Token, align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %struct.Token, align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %struct.Token, align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca %struct.Token, align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %struct.Token, align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %struct.Token, align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %struct.Token, align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %struct.Token, align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca %struct.Token, align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca %struct.Token, align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca %struct.Token, align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca %struct.Token, align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca %struct.Token, align 8
  %70 = alloca %"class.std::allocator", align 1
  %71 = alloca %struct.Token, align 8
  %72 = alloca %"class.std::allocator", align 1
  %73 = alloca %struct.Token, align 8
  %74 = alloca %"class.std::allocator", align 1
  %75 = getelementptr inbounds i8, ptr %0, i64 616
  %76 = load i8, ptr %75, align 8, !tbaa !5, !range !25, !noundef !26
  %77 = trunc nuw i8 %76 to i1
  br i1 %77, label %80, label %.preheader301

.preheader301:                                    ; preds = %1
  %78 = getelementptr inbounds i8, ptr %0, i64 40
  %79 = getelementptr inbounds i8, ptr %0, i64 32
  br label %84

80:                                               ; preds = %1
  %81 = getelementptr inbounds i8, ptr %0, i64 624
  %82 = getelementptr inbounds i8, ptr %0, i64 560
  %83 = tail call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %82, ptr noundef nonnull align 8 dereferenceable(56) %81) #8
  store i8 0, ptr %75, align 8, !tbaa !5
  br label %723

84:                                               ; preds = %.backedge, %.preheader301
  %85 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext = shl i32 %85, 24
  %86 = ashr exact i32 %sext, 24
  %87 = tail call i32 @isblank(i32 noundef %86) #9
  %.fr = freeze i32 %87
  %.not280 = icmp eq i32 %.fr, 0
  br i1 %.not280, label %switch.early.test, label %.critedge

switch.early.test:                                ; preds = %84
  switch i32 %sext, label %.loopexit300 [
    i32 167772160, label %89
    i32 218103808, label %.backedge
    i32 788529152, label %92
    i32 587202560, label %130
  ]

.critedge:                                        ; preds = %84
  %88 = icmp eq i32 %sext, 167772160
  br i1 %88, label %89, label %.backedge

89:                                               ; preds = %switch.early.test, %.critedge
  %90 = load i32, ptr %79, align 8, !tbaa !27
  %91 = add i32 %90, 1
  store i32 %91, ptr %79, align 8, !tbaa !27
  br label %.backedge

92:                                               ; preds = %switch.early.test
  %93 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %94 = icmp eq i32 %93, 42
  br i1 %94, label %.preheader297, label %118

.preheader297:                                    ; preds = %92
  %sext276.mask318 = and i32 %85, 128
  %95 = icmp eq i32 %sext276.mask318, 0
  br i1 %95, label %.lr.ph320, label %.backedge

.lr.ph320:                                        ; preds = %.preheader297, %116
  %.0169319 = phi i32 [ %.1170, %116 ], [ 0, %.preheader297 ]
  %96 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %trunc = trunc i32 %96 to i8
  switch i8 %trunc, label %116 [
    i8 10, label %97
    i8 47, label %100
    i8 42, label %107
  ]

97:                                               ; preds = %.lr.ph320
  %98 = load i32, ptr %79, align 8, !tbaa !27
  %99 = add i32 %98, 1
  store i32 %99, ptr %79, align 8, !tbaa !27
  br label %116

100:                                              ; preds = %.lr.ph320
  %101 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %102 = icmp eq i32 %101, 42
  br i1 %102, label %103, label %105

103:                                              ; preds = %100
  %104 = add i32 %.0169319, 1
  br label %116

105:                                              ; preds = %100
  %106 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  br label %116

107:                                              ; preds = %.lr.ph320
  %108 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %109 = icmp eq i32 %108, 47
  br i1 %109, label %110, label %114

110:                                              ; preds = %107
  %111 = icmp eq i32 %.0169319, 0
  br i1 %111, label %.backedge, label %112

112:                                              ; preds = %110
  %113 = add i32 %.0169319, -1
  br label %116

114:                                              ; preds = %107
  %115 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  br label %116

116:                                              ; preds = %97, %.lr.ph320, %114, %112, %103, %105
  %.1170 = phi i32 [ %104, %103 ], [ %.0169319, %105 ], [ %113, %112 ], [ %.0169319, %114 ], [ %.0169319, %97 ], [ %.0169319, %.lr.ph320 ]
  %sext276.mask = and i32 %96, 128
  %117 = icmp eq i32 %sext276.mask, 0
  br i1 %117, label %.lr.ph320, label %.backedge, !llvm.loop !28

118:                                              ; preds = %92
  %119 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %120 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %121 = icmp eq i32 %120, 47
  br i1 %121, label %.lr.ph, label %128

.lr.ph:                                           ; preds = %118, %.lr.ph
  %122 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext275 = shl i32 %122, 24
  %123 = icmp sgt i32 %sext275, -1
  %124 = icmp ne i32 %sext275, 167772160
  %125 = and i1 %123, %124
  br i1 %125, label %.lr.ph, label %._crit_edge, !llvm.loop !30

._crit_edge:                                      ; preds = %.lr.ph
  %126 = load i32, ptr %79, align 8, !tbaa !27
  %127 = add i32 %126, 1
  store i32 %127, ptr %79, align 8, !tbaa !27
  br label %.backedge

128:                                              ; preds = %118
  %129 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  br label %.loopexit300

.backedge:                                        ; preds = %._crit_edge, %.preheader297, %116, %110, %switch.early.test, %89, %.critedge
  br label %84, !llvm.loop !31

130:                                              ; preds = %switch.early.test
  %131 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext180 = shl i32 %131, 24
  %132 = ashr exact i32 %sext180, 24
  %isdigittmp = add nsw i32 %132, -48
  %isdigit = icmp ult i32 %isdigittmp, 10
  br i1 %isdigit, label %133, label %.sink.split

133:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %3)
          to label %134 unwind label %140

134:                                              ; preds = %133
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #8
  br label %135

135:                                              ; preds = %138, %134
  %.2.in = phi i32 [ %131, %134 ], [ %139, %138 ]
  %sext268 = shl i32 %.2.in, 24
  %136 = ashr exact i32 %sext268, 24
  %isdigittmp269 = add nsw i32 %136, -48
  %isdigit270 = icmp ult i32 %isdigittmp269, 10
  br i1 %isdigit270, label %137, label %142

137:                                              ; preds = %135
  %.2 = trunc i32 %.2.in to i8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext %.2)
          to label %138 unwind label %.loopexit292

138:                                              ; preds = %137
  %139 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %135 unwind label %.loopexit292, !llvm.loop !32

140:                                              ; preds = %133
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #8
  br label %153

.loopexit292:                                     ; preds = %137, %138
  %lpad.loopexit294 = landingpad { ptr, i32 }
          cleanup
  br label %152

.loopexit.split-lp293:                            ; preds = %142
  %lpad.loopexit.split-lp295 = landingpad { ptr, i32 }
          cleanup
  br label %152

142:                                              ; preds = %135
  %143 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %144 unwind label %.loopexit.split-lp293

144:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %4) #8
  store i32 2, ptr %4, align 8, !tbaa !33
  %145 = getelementptr inbounds i8, ptr %4, i64 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 8 dereferenceable(32) %2) #8
  %146 = getelementptr inbounds i8, ptr %4, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %146)
          to label %147 unwind label %150

147:                                              ; preds = %144
  %148 = getelementptr inbounds i8, ptr %0, i64 560
  %149 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %148, ptr noundef nonnull align 8 dereferenceable(56) %4) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %4) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #8
  br label %723

150:                                              ; preds = %144
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #8
  br label %152

152:                                              ; preds = %.loopexit292, %.loopexit.split-lp293, %150
  %.pn271 = phi { ptr, i32 } [ %151, %150 ], [ %lpad.loopexit294, %.loopexit292 ], [ %lpad.loopexit.split-lp295, %.loopexit.split-lp293 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #8
  br label %153

153:                                              ; preds = %152, %140
  %.pn271.pn = phi { ptr, i32 } [ %.pn271, %152 ], [ %141, %140 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #8
  br label %724

.loopexit300:                                     ; preds = %switch.early.test, %128
  %154 = trunc i32 %85 to i8
  %155 = icmp eq i8 %154, 98
  br i1 %155, label %156, label %168

156:                                              ; preds = %.loopexit300
  %157 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext181.mask = and i32 %157, 255
  %158 = icmp eq i32 %sext181.mask, 34
  br i1 %158, label %159, label %.sink.split

159:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  call void @_ZN5Lexer12parse_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(680) %0)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %6) #8
  store i32 6, ptr %6, align 8, !tbaa !33
  %160 = getelementptr inbounds i8, ptr %6, i64 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  %161 = getelementptr inbounds i8, ptr %6, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %161)
          to label %162 unwind label %165

162:                                              ; preds = %159
  %163 = getelementptr inbounds i8, ptr %0, i64 560
  %164 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %163, ptr noundef nonnull align 8 dereferenceable(56) %6) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %6) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  br label %723

165:                                              ; preds = %159
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  br label %724

.sink.split:                                      ; preds = %156, %130
  %.4.ph = phi i8 [ 35, %130 ], [ 98, %156 ]
  %167 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  br label %168

168:                                              ; preds = %.sink.split, %.loopexit300
  %.4 = phi i8 [ %154, %.loopexit300 ], [ %.4.ph, %.sink.split ]
  %169 = load ptr, ptr %78, align 8, !tbaa !34
  %170 = getelementptr i8, ptr %169, i64 -24
  %171 = load i64, ptr %170, align 8
  %172 = getelementptr inbounds i8, ptr %78, i64 %171
  %173 = tail call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %172)
  br i1 %173, label %174, label %186

174:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %7) #8
  store i32 0, ptr %7, align 8, !tbaa !33
  %175 = getelementptr inbounds i8, ptr %7, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %175, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %176 unwind label %181

176:                                              ; preds = %174
  %177 = getelementptr inbounds i8, ptr %7, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %177)
          to label %178 unwind label %183

178:                                              ; preds = %176
  %179 = getelementptr inbounds i8, ptr %0, i64 560
  %180 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %179, ptr noundef nonnull align 8 dereferenceable(56) %7) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %7) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7) #8
  br label %723

181:                                              ; preds = %174
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %185

183:                                              ; preds = %176
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #8
  br label %185

185:                                              ; preds = %183, %181
  %.pn266 = phi { ptr, i32 } [ %184, %183 ], [ %182, %181 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7) #8
  br label %724

186:                                              ; preds = %168
  %187 = sext i8 %.4 to i32
  %188 = tail call i32 @isalpha(i32 noundef %187) #9
  %189 = icmp ne i32 %188, 0
  %190 = icmp eq i8 %.4, 95
  %or.cond5 = or i1 %190, %189
  br i1 %or.cond5, label %191, label %210

191:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  br label %192

192:                                              ; preds = %197, %191
  %.5 = phi i8 [ %.4, %191 ], [ %198, %197 ]
  %193 = sext i8 %.5 to i32
  %194 = call i32 @isalnum(i32 noundef %193) #9
  %.fr282 = freeze i32 %194
  %.not283 = icmp eq i32 %.fr282, 0
  br i1 %.not283, label %switch.early.test278, label %.critedge13

switch.early.test278:                             ; preds = %192
  switch i8 %.5, label %199 [
    i8 95, label %.critedge13
    i8 36, label %.critedge13
    i8 35, label %.critedge13
  ]

.critedge13:                                      ; preds = %switch.early.test278, %switch.early.test278, %switch.early.test278, %192
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %9, i8 noundef signext %.5)
          to label %195 unwind label %.loopexit

195:                                              ; preds = %.critedge13
  %196 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %197 unwind label %.loopexit

197:                                              ; preds = %195
  %198 = trunc i32 %196 to i8
  br label %192, !llvm.loop !36

.loopexit:                                        ; preds = %.critedge13, %195
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %209

.loopexit.split-lp:                               ; preds = %199
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %209

199:                                              ; preds = %switch.early.test278
  %200 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %201 unwind label %.loopexit.split-lp

201:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %10) #8
  store i32 2, ptr %10, align 8, !tbaa !33
  %202 = getelementptr inbounds i8, ptr %10, i64 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  %203 = getelementptr inbounds i8, ptr %10, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203)
          to label %204 unwind label %207

204:                                              ; preds = %201
  %205 = getelementptr inbounds i8, ptr %0, i64 560
  %206 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %205, ptr noundef nonnull align 8 dereferenceable(56) %10) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %10) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  br label %723

207:                                              ; preds = %201
  %208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %10) #8
  br label %209

209:                                              ; preds = %.loopexit, %.loopexit.split-lp, %207
  %.pn264 = phi { ptr, i32 } [ %208, %207 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  br label %724

210:                                              ; preds = %186
  %isdigittmp182 = add nsw i32 %187, -48
  %isdigit183 = icmp ult i32 %isdigittmp182, 10
  br i1 %isdigit183, label %211, label %361

211:                                              ; preds = %210
  %212 = icmp eq i8 %.4, 48
  br i1 %212, label %213, label %.lr.ph326.preheader

213:                                              ; preds = %211
  %214 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext239.mask = and i32 %214, 255
  %215 = icmp eq i32 %sext239.mask, 120
  br i1 %215, label %216, label %335

216:                                              ; preds = %213
  %217 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext244 = shl i32 %217, 24
  %218 = ashr exact i32 %sext244, 24
  %219 = tail call i32 @isxdigit(i32 noundef %218) #9
  %.not245 = icmp eq i32 %219, 0
  br i1 %.not245, label %220, label %222

220:                                              ; preds = %216
  %221 = tail call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %221, align 16, !tbaa !37
  tail call void @__cxa_throw(ptr nonnull %221, ptr nonnull @_ZTIPKc, ptr null) #10
  unreachable

222:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #8
  call void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %11, i64 noundef 0, i64 noundef 0)
  %223 = call i32 @isxdigit(i32 noundef %218) #9
  %.not247329 = icmp eq i32 %223, 0
  br i1 %.not247329, label %._crit_edge332, label %.lr.ph331

.lr.ph331:                                        ; preds = %222, %233
  %224 = phi i32 [ %237, %233 ], [ %218, %222 ]
  %225 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128mLEj(ptr noundef nonnull align 8 dereferenceable(16) %11, i32 noundef 16)
  %226 = icmp slt i32 %224, 58
  br i1 %226, label %233, label %227

227:                                              ; preds = %.lr.ph331
  %228 = icmp ult i32 %224, 71
  br i1 %228, label %233, label %229

229:                                              ; preds = %227
  %230 = icmp ult i32 %224, 103
  br i1 %230, label %233, label %231

231:                                              ; preds = %229
  %232 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.19, ptr %232, align 16, !tbaa !37
  call void @__cxa_throw(ptr nonnull %232, ptr nonnull @_ZTIPKc, ptr null) #10
  unreachable

233:                                              ; preds = %229, %227, %.lr.ph331
  %.sink382 = phi i32 [ -48, %.lr.ph331 ], [ -55, %227 ], [ -87, %229 ]
  %234 = add nsw i32 %224, %.sink382
  %235 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128pLEj(ptr noundef nonnull align 8 dereferenceable(16) %11, i32 noundef %234)
  %236 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext246 = shl i32 %236, 24
  %237 = ashr exact i32 %sext246, 24
  %238 = call i32 @isxdigit(i32 noundef %237) #9
  %.not247 = icmp eq i32 %238, 0
  br i1 %.not247, label %._crit_edge332, label %.lr.ph331, !llvm.loop !38

._crit_edge332:                                   ; preds = %233, %222
  %.6.in.lcssa = phi i32 [ %217, %222 ], [ %236, %233 ]
  %sext246.lcssa = phi i32 [ %sext244, %222 ], [ %sext246, %233 ]
  switch i32 %sext246.lcssa, label %319 [
    i32 771751936, label %239
    i32 1879048192, label %.loopexit285
  ]

239:                                              ; preds = %._crit_edge332
  %240 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext250335 = shl i32 %240, 24
  %241 = ashr exact i32 %sext250335, 24
  %242 = call i32 @isxdigit(i32 noundef %241) #9
  %.not251336 = icmp eq i32 %242, 0
  br i1 %.not251336, label %.lr.ph346.preheader, label %.lr.ph340

.preheader284:                                    ; preds = %267
  %243 = icmp ult i32 %.0113338, 12
  br i1 %243, label %.lr.ph346.preheader, label %.loopexit285

.lr.ph346.preheader:                              ; preds = %239, %.preheader284
  %.7.in.lcssa371 = phi i32 [ %269, %.preheader284 ], [ %240, %239 ]
  %.0113.lcssa370 = phi i32 [ %268, %.preheader284 ], [ 0, %239 ]
  %.0115.lcssa369 = phi i64 [ %.1116, %.preheader284 ], [ 0, %239 ]
  %244 = sub i32 5, %.0113.lcssa370
  %xtraiter = and i32 %244, 7
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph346.prol.loopexit, label %.lr.ph346.prol

.lr.ph346.prol:                                   ; preds = %.lr.ph346.preheader, %.lr.ph346.prol
  %.1114345.prol = phi i32 [ %246, %.lr.ph346.prol ], [ %.0113.lcssa370, %.lr.ph346.preheader ]
  %.2117344.prol = phi i64 [ %245, %.lr.ph346.prol ], [ %.0115.lcssa369, %.lr.ph346.preheader ]
  %prol.iter = phi i32 [ %prol.iter.next, %.lr.ph346.prol ], [ 0, %.lr.ph346.preheader ]
  %245 = shl i64 %.2117344.prol, 4
  %246 = add i32 %.1114345.prol, 1
  %prol.iter.next = add i32 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i32 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.lr.ph346.prol.loopexit, label %.lr.ph346.prol, !llvm.loop !39

.lr.ph346.prol.loopexit:                          ; preds = %.lr.ph346.prol, %.lr.ph346.preheader
  %.lcssa393.unr = phi i64 [ poison, %.lr.ph346.preheader ], [ %245, %.lr.ph346.prol ]
  %.1114345.unr = phi i32 [ %.0113.lcssa370, %.lr.ph346.preheader ], [ %246, %.lr.ph346.prol ]
  %.2117344.unr = phi i64 [ %.0115.lcssa369, %.lr.ph346.preheader ], [ %245, %.lr.ph346.prol ]
  %247 = add i32 %.0113.lcssa370, -6
  %248 = icmp ult i32 %247, 7
  br i1 %248, label %.loopexit285, label %.lr.ph346

.lr.ph340:                                        ; preds = %239, %267
  %249 = phi i32 [ %270, %267 ], [ %241, %239 ]
  %.0113338 = phi i32 [ %268, %267 ], [ 0, %239 ]
  %.0115337 = phi i64 [ %.1116, %267 ], [ 0, %239 ]
  %250 = shl i64 %.0115337, 4
  %251 = icmp slt i32 %249, 58
  br i1 %251, label %252, label %255

252:                                              ; preds = %.lr.ph340
  %253 = add nsw i32 %249, -48
  %254 = sext i32 %253 to i64
  br label %267

255:                                              ; preds = %.lr.ph340
  %256 = icmp ult i32 %249, 71
  br i1 %256, label %257, label %260

257:                                              ; preds = %255
  %258 = add nsw i32 %249, -55
  %259 = zext nneg i32 %258 to i64
  br label %267

260:                                              ; preds = %255
  %261 = icmp ult i32 %249, 103
  br i1 %261, label %262, label %265

262:                                              ; preds = %260
  %263 = add nsw i32 %249, -87
  %264 = sext i32 %263 to i64
  br label %267

265:                                              ; preds = %260
  %266 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.19, ptr %266, align 16, !tbaa !37
  call void @__cxa_throw(ptr nonnull %266, ptr nonnull @_ZTIPKc, ptr null) #10
  unreachable

267:                                              ; preds = %257, %262, %252
  %.pn263 = phi i64 [ %254, %252 ], [ %259, %257 ], [ %264, %262 ]
  %.1116 = add i64 %.pn263, %250
  %268 = add nuw nsw i32 %.0113338, 1
  %269 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext250 = shl i32 %269, 24
  %270 = ashr exact i32 %sext250, 24
  %271 = call i32 @isxdigit(i32 noundef %270) #9
  %.not251 = icmp eq i32 %271, 0
  br i1 %.not251, label %.preheader284, label %.lr.ph340, !llvm.loop !41

.lr.ph346:                                        ; preds = %.lr.ph346.prol.loopexit, %.lr.ph346
  %.1114345 = phi i32 [ %273, %.lr.ph346 ], [ %.1114345.unr, %.lr.ph346.prol.loopexit ]
  %.2117344 = phi i64 [ %272, %.lr.ph346 ], [ %.2117344.unr, %.lr.ph346.prol.loopexit ]
  %272 = shl i64 %.2117344, 32
  %273 = add i32 %.1114345, 8
  %exitcond.not.7 = icmp eq i32 %273, 13
  br i1 %exitcond.not.7, label %.loopexit285, label %.lr.ph346, !llvm.loop !42

.loopexit285:                                     ; preds = %.lr.ph346.prol.loopexit, %.lr.ph346, %.preheader284, %._crit_edge332
  %.3118 = phi i64 [ 0, %._crit_edge332 ], [ %.1116, %.preheader284 ], [ %.lcssa393.unr, %.lr.ph346.prol.loopexit ], [ %272, %.lr.ph346 ]
  %.8.in = phi i32 [ %.6.in.lcssa, %._crit_edge332 ], [ %269, %.preheader284 ], [ %.7.in.lcssa371, %.lr.ph346 ], [ %.7.in.lcssa371, %.lr.ph346.prol.loopexit ]
  %sext252.mask = and i32 %.8.in, 255
  %274 = icmp eq i32 %sext252.mask, 112
  br i1 %274, label %275, label %291

275:                                              ; preds = %.loopexit285
  %276 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext253.mask = and i32 %276, 255
  %277 = icmp eq i32 %sext253.mask, 45
  br i1 %277, label %278, label %280

278:                                              ; preds = %275
  %279 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  br label %280

280:                                              ; preds = %278, %275
  %.9.in = phi i32 [ %279, %278 ], [ %276, %275 ]
  %sext254 = shl i32 %.9.in, 24
  %281 = ashr exact i32 %sext254, 24
  %isdigittmp255 = add nsw i32 %281, -48
  %isdigit256 = icmp ult i32 %isdigittmp255, 10
  br i1 %isdigit256, label %.lr.ph353, label %282

282:                                              ; preds = %280
  %283 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %283, align 16, !tbaa !37
  call void @__cxa_throw(ptr nonnull %283, ptr nonnull @_ZTIPKc, ptr null) #10
  unreachable

.lr.ph353:                                        ; preds = %280, %.lr.ph353
  %isdigittmp258352 = phi i32 [ %isdigittmp258, %.lr.ph353 ], [ %isdigittmp255, %280 ]
  %.0110351 = phi i32 [ %285, %.lr.ph353 ], [ 0, %280 ]
  %284 = mul nsw i32 %.0110351, 10
  %285 = add nsw i32 %isdigittmp258352, %284
  %286 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext257 = shl i32 %286, 24
  %287 = ashr exact i32 %sext257, 24
  %isdigittmp258 = add nsw i32 %287, -48
  %isdigit259 = icmp ult i32 %isdigittmp258, 10
  br i1 %isdigit259, label %.lr.ph353, label %._crit_edge354, !llvm.loop !43

._crit_edge354:                                   ; preds = %.lr.ph353
  %288 = sub nsw i32 0, %285
  %spec.select = select i1 %277, i32 %288, i32 %285
  %289 = zext i32 %spec.select to i64
  %290 = shl i64 %289, 52
  br label %291

291:                                              ; preds = %._crit_edge354, %.loopexit285
  %.2112 = phi i64 [ %290, %._crit_edge354 ], [ 0, %.loopexit285 ]
  %292 = call noundef zeroext i1 @_ZNK4U128neEj(ptr noundef nonnull align 8 dereferenceable(16) %11, i32 noundef 1)
  br i1 %292, label %293, label %298

293:                                              ; preds = %291
  %294 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %0)
  %295 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull @.str.20)
  %296 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %297 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %297, align 16, !tbaa !37
  call void @__cxa_throw(ptr nonnull %297, ptr nonnull @_ZTIPKc, ptr null) #10
  unreachable

298:                                              ; preds = %291
  %299 = icmp ugt i64 %.3118, 4503599627370495
  br i1 %299, label %300, label %305

300:                                              ; preds = %298
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %0)
  %302 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %301, ptr noundef nonnull @.str.21)
  %303 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %304 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %304, align 16, !tbaa !37
  call void @__cxa_throw(ptr nonnull %304, ptr nonnull @_ZTIPKc, ptr null) #10
  unreachable

305:                                              ; preds = %298
  %306 = or disjoint i64 %.2112, %.3118
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %12) #8
  store i32 4, ptr %12, align 8, !tbaa !33
  %307 = getelementptr inbounds i8, ptr %12, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %308 unwind label %314

308:                                              ; preds = %305
  %309 = getelementptr inbounds i8, ptr %12, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %309)
          to label %310 unwind label %316

310:                                              ; preds = %308
  %311 = getelementptr inbounds i8, ptr %0, i64 560
  %312 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %311, ptr noundef nonnull align 8 dereferenceable(56) %12) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %12) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %12) #8
  %313 = getelementptr inbounds i8, ptr %0, i64 600
  store i64 %306, ptr %313, align 8, !tbaa !44
  br label %333

314:                                              ; preds = %305
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %318

316:                                              ; preds = %308
  %317 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #8
  br label %318

318:                                              ; preds = %316, %314
  %.pn260 = phi { ptr, i32 } [ %317, %316 ], [ %315, %314 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %12) #8
  br label %334

319:                                              ; preds = %._crit_edge332
  %320 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %14) #8
  store i32 3, ptr %14, align 8, !tbaa !33
  %321 = getelementptr inbounds i8, ptr %14, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %321, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %322 unwind label %328

322:                                              ; preds = %319
  %323 = getelementptr inbounds i8, ptr %14, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %323)
          to label %324 unwind label %330

324:                                              ; preds = %322
  %325 = getelementptr inbounds i8, ptr %0, i64 560
  %326 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %325, ptr noundef nonnull align 8 dereferenceable(56) %14) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %14) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %14) #8
  %327 = getelementptr inbounds i8, ptr %0, i64 600
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %327, ptr noundef nonnull align 8 dereferenceable(16) %11, i64 16, i1 false), !tbaa.struct !45
  br label %333

328:                                              ; preds = %319
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %332

330:                                              ; preds = %322
  %331 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #8
  br label %332

332:                                              ; preds = %330, %328
  %.pn248 = phi { ptr, i32 } [ %331, %330 ], [ %329, %328 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %14) #8
  br label %334

333:                                              ; preds = %324, %310
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #8
  br label %723

334:                                              ; preds = %332, %318
  %.pn260.pn = phi { ptr, i32 } [ %.pn260, %318 ], [ %.pn248, %332 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #8
  br label %724

335:                                              ; preds = %213
  %336 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  br label %.lr.ph326.preheader

.lr.ph326.preheader:                              ; preds = %211, %335
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #8
  call void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %16, i64 noundef 0, i64 noundef 0)
  br label %.lr.ph326

.lr.ph326:                                        ; preds = %.lr.ph326.preheader, %.lr.ph326
  %isdigittmp240324 = phi i32 [ %isdigittmp240, %.lr.ph326 ], [ %isdigittmp182, %.lr.ph326.preheader ]
  %337 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128mLEj(ptr noundef nonnull align 8 dereferenceable(16) %16, i32 noundef 10)
  %338 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128pLEj(ptr noundef nonnull align 8 dereferenceable(16) %16, i32 noundef %isdigittmp240324)
  %339 = call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %sext356 = shl i32 %339, 24
  %340 = ashr exact i32 %sext356, 24
  %isdigittmp240 = add nsw i32 %340, -48
  %isdigit241 = icmp ult i32 %isdigittmp240, 10
  br i1 %isdigit241, label %.lr.ph326, label %._crit_edge327, !llvm.loop !47

._crit_edge327:                                   ; preds = %.lr.ph326
  %341 = trunc i32 %339 to i8
  switch i8 %341, label %347 [
    i8 101, label %342
    i8 46, label %342
  ]

342:                                              ; preds = %._crit_edge327, %._crit_edge327
  %343 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %0)
  %344 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %343, ptr noundef nonnull @.str.22)
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %344, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %346 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.23, ptr %346, align 16, !tbaa !37
  call void @__cxa_throw(ptr nonnull %346, ptr nonnull @_ZTIPKc, ptr null) #10
  unreachable

347:                                              ; preds = %._crit_edge327
  %348 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %17) #8
  store i32 3, ptr %17, align 8, !tbaa !33
  %349 = getelementptr inbounds i8, ptr %17, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %349, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %350 unwind label %356

350:                                              ; preds = %347
  %351 = getelementptr inbounds i8, ptr %17, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %351)
          to label %352 unwind label %358

352:                                              ; preds = %350
  %353 = getelementptr inbounds i8, ptr %0, i64 560
  %354 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %353, ptr noundef nonnull align 8 dereferenceable(56) %17) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %17) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %17) #8
  %355 = getelementptr inbounds i8, ptr %0, i64 600
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %355, ptr noundef nonnull align 8 dereferenceable(16) %16, i64 16, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #8
  br label %723

356:                                              ; preds = %347
  %357 = landingpad { ptr, i32 }
          cleanup
  br label %360

358:                                              ; preds = %350
  %359 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #8
  br label %360

360:                                              ; preds = %358, %356
  %.pn242 = phi { ptr, i32 } [ %359, %358 ], [ %357, %356 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #8
  br label %724

361:                                              ; preds = %210
  switch i8 %.4, label %716 [
    i8 34, label %362
    i8 39, label %370
    i8 58, label %398
    i8 59, label %425
    i8 46, label %437
    i8 44, label %449
    i8 61, label %461
    i8 38, label %473
    i8 42, label %485
    i8 47, label %497
    i8 37, label %509
    i8 45, label %521
    i8 43, label %533
    i8 94, label %545
    i8 124, label %557
    i8 33, label %569
    i8 64, label %581
    i8 40, label %593
    i8 41, label %605
    i8 60, label %617
    i8 62, label %656
    i8 91, label %668
    i8 93, label %680
    i8 123, label %692
    i8 125, label %704
  ]

362:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  call void @_ZN5Lexer12parse_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(680) %0)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %20) #8
  store i32 5, ptr %20, align 8, !tbaa !33
  %363 = getelementptr inbounds i8, ptr %20, i64 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  %364 = getelementptr inbounds i8, ptr %20, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %364)
          to label %365 unwind label %368

365:                                              ; preds = %362
  %366 = getelementptr inbounds i8, ptr %0, i64 560
  %367 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %366, ptr noundef nonnull align 8 dereferenceable(56) %20) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %20) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  br label %723

368:                                              ; preds = %362
  %369 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  br label %724

370:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  %371 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %.preheader286 unwind label %.loopexit.split-lp288

.preheader286:                                    ; preds = %370, %377
  %.13.in = phi i32 [ %378, %377 ], [ %371, %370 ]
  %.13 = trunc i32 %.13.in to i8
  %sext236 = shl i32 %.13.in, 24
  %372 = icmp eq i32 %sext236, 1593835520
  br i1 %372, label %.critedge21, label %373

373:                                              ; preds = %.preheader286
  %374 = ashr exact i32 %sext236, 24
  %375 = call i32 @isalnum(i32 noundef %374) #9
  %.not = icmp eq i32 %375, 0
  br i1 %.not, label %379, label %.critedge21

.critedge21:                                      ; preds = %.preheader286, %373
  %376 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %21, i8 noundef signext %.13)
          to label %377 unwind label %.loopexit287

377:                                              ; preds = %.critedge21
  %378 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %.preheader286 unwind label %.loopexit287, !llvm.loop !48

.loopexit287:                                     ; preds = %.critedge21, %377
  %lpad.loopexit289 = landingpad { ptr, i32 }
          cleanup
  br label %397

.loopexit.split-lp288:                            ; preds = %370, %379, %383, %385, %387
  %lpad.loopexit.split-lp290 = landingpad { ptr, i32 }
          cleanup
  br label %397

379:                                              ; preds = %373
  %380 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %381 unwind label %.loopexit.split-lp288

381:                                              ; preds = %379
  %382 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.19)
  br i1 %382, label %383, label %389

383:                                              ; preds = %381
  %384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %0)
          to label %385 unwind label %.loopexit.split-lp288

385:                                              ; preds = %383
  %386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef nonnull @.str.24)
          to label %387 unwind label %.loopexit.split-lp288

387:                                              ; preds = %385
  %388 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %388, align 16, !tbaa !37
  invoke void @__cxa_throw(ptr nonnull %388, ptr nonnull @_ZTIPKc, ptr null) #10
          to label %725 unwind label %.loopexit.split-lp288

389:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %22) #8
  store i32 7, ptr %22, align 8, !tbaa !33
  %390 = getelementptr inbounds i8, ptr %22, i64 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  %391 = getelementptr inbounds i8, ptr %22, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %391)
          to label %392 unwind label %395

392:                                              ; preds = %389
  %393 = getelementptr inbounds i8, ptr %0, i64 560
  %394 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %393, ptr noundef nonnull align 8 dereferenceable(56) %22) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %22) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  br label %723

395:                                              ; preds = %389
  %396 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %22) #8
  br label %397

397:                                              ; preds = %.loopexit287, %.loopexit.split-lp288, %395
  %.pn237 = phi { ptr, i32 } [ %396, %395 ], [ %lpad.loopexit289, %.loopexit287 ], [ %lpad.loopexit.split-lp290, %.loopexit.split-lp288 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  br label %724

398:                                              ; preds = %361
  %399 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %cond = icmp eq i32 %399, 58
  br i1 %cond, label %400, label %412

400:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %23) #8
  store i32 1, ptr %23, align 8, !tbaa !33
  %401 = getelementptr inbounds i8, ptr %23, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %402 unwind label %407

402:                                              ; preds = %400
  %403 = getelementptr inbounds i8, ptr %23, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %403)
          to label %404 unwind label %409

404:                                              ; preds = %402
  %405 = getelementptr inbounds i8, ptr %0, i64 560
  %406 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %405, ptr noundef nonnull align 8 dereferenceable(56) %23) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %23) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %23) #8
  br label %723

407:                                              ; preds = %400
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %411

409:                                              ; preds = %402
  %410 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #8
  br label %411

411:                                              ; preds = %409, %407
  %.pn234 = phi { ptr, i32 } [ %410, %409 ], [ %408, %407 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %23) #8
  br label %724

412:                                              ; preds = %398
  %413 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %25) #8
  store i32 1, ptr %25, align 8, !tbaa !33
  %414 = getelementptr inbounds i8, ptr %25, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %414, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %415 unwind label %420

415:                                              ; preds = %412
  %416 = getelementptr inbounds i8, ptr %25, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %416)
          to label %417 unwind label %422

417:                                              ; preds = %415
  %418 = getelementptr inbounds i8, ptr %0, i64 560
  %419 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %418, ptr noundef nonnull align 8 dereferenceable(56) %25) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %25) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %25) #8
  br label %723

420:                                              ; preds = %412
  %421 = landingpad { ptr, i32 }
          cleanup
  br label %424

422:                                              ; preds = %415
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %414) #8
  br label %424

424:                                              ; preds = %422, %420
  %.pn232 = phi { ptr, i32 } [ %423, %422 ], [ %421, %420 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %25) #8
  br label %724

425:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %27) #8
  store i32 1, ptr %27, align 8, !tbaa !33
  %426 = getelementptr inbounds i8, ptr %27, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %426, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %427 unwind label %432

427:                                              ; preds = %425
  %428 = getelementptr inbounds i8, ptr %27, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %428)
          to label %429 unwind label %434

429:                                              ; preds = %427
  %430 = getelementptr inbounds i8, ptr %0, i64 560
  %431 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %430, ptr noundef nonnull align 8 dereferenceable(56) %27) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %27) #8
  br label %723

432:                                              ; preds = %425
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %436

434:                                              ; preds = %427
  %435 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %426) #8
  br label %436

436:                                              ; preds = %434, %432
  %.pn230 = phi { ptr, i32 } [ %435, %434 ], [ %433, %432 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %27) #8
  br label %724

437:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %29) #8
  store i32 1, ptr %29, align 8, !tbaa !33
  %438 = getelementptr inbounds i8, ptr %29, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %438, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %439 unwind label %444

439:                                              ; preds = %437
  %440 = getelementptr inbounds i8, ptr %29, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %440)
          to label %441 unwind label %446

441:                                              ; preds = %439
  %442 = getelementptr inbounds i8, ptr %0, i64 560
  %443 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %442, ptr noundef nonnull align 8 dereferenceable(56) %29) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %29) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %29) #8
  br label %723

444:                                              ; preds = %437
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %448

446:                                              ; preds = %439
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #8
  br label %448

448:                                              ; preds = %446, %444
  %.pn228 = phi { ptr, i32 } [ %447, %446 ], [ %445, %444 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %29) #8
  br label %724

449:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %31) #8
  store i32 1, ptr %31, align 8, !tbaa !33
  %450 = getelementptr inbounds i8, ptr %31, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %451 unwind label %456

451:                                              ; preds = %449
  %452 = getelementptr inbounds i8, ptr %31, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %452)
          to label %453 unwind label %458

453:                                              ; preds = %451
  %454 = getelementptr inbounds i8, ptr %0, i64 560
  %455 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %454, ptr noundef nonnull align 8 dereferenceable(56) %31) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %31) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %31) #8
  br label %723

456:                                              ; preds = %449
  %457 = landingpad { ptr, i32 }
          cleanup
  br label %460

458:                                              ; preds = %451
  %459 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #8
  br label %460

460:                                              ; preds = %458, %456
  %.pn226 = phi { ptr, i32 } [ %459, %458 ], [ %457, %456 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %31) #8
  br label %724

461:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %33) #8
  store i32 1, ptr %33, align 8, !tbaa !33
  %462 = getelementptr inbounds i8, ptr %33, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %463 unwind label %468

463:                                              ; preds = %461
  %464 = getelementptr inbounds i8, ptr %33, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %464)
          to label %465 unwind label %470

465:                                              ; preds = %463
  %466 = getelementptr inbounds i8, ptr %0, i64 560
  %467 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %466, ptr noundef nonnull align 8 dereferenceable(56) %33) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %33) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %33) #8
  br label %723

468:                                              ; preds = %461
  %469 = landingpad { ptr, i32 }
          cleanup
  br label %472

470:                                              ; preds = %463
  %471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %462) #8
  br label %472

472:                                              ; preds = %470, %468
  %.pn224 = phi { ptr, i32 } [ %471, %470 ], [ %469, %468 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %33) #8
  br label %724

473:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %35) #8
  store i32 1, ptr %35, align 8, !tbaa !33
  %474 = getelementptr inbounds i8, ptr %35, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %474, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %475 unwind label %480

475:                                              ; preds = %473
  %476 = getelementptr inbounds i8, ptr %35, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %476)
          to label %477 unwind label %482

477:                                              ; preds = %475
  %478 = getelementptr inbounds i8, ptr %0, i64 560
  %479 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %478, ptr noundef nonnull align 8 dereferenceable(56) %35) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %35) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %35) #8
  br label %723

480:                                              ; preds = %473
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %484

482:                                              ; preds = %475
  %483 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %474) #8
  br label %484

484:                                              ; preds = %482, %480
  %.pn222 = phi { ptr, i32 } [ %483, %482 ], [ %481, %480 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %35) #8
  br label %724

485:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %37) #8
  store i32 1, ptr %37, align 8, !tbaa !33
  %486 = getelementptr inbounds i8, ptr %37, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %486, ptr noundef nonnull @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %487 unwind label %492

487:                                              ; preds = %485
  %488 = getelementptr inbounds i8, ptr %37, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %488)
          to label %489 unwind label %494

489:                                              ; preds = %487
  %490 = getelementptr inbounds i8, ptr %0, i64 560
  %491 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %490, ptr noundef nonnull align 8 dereferenceable(56) %37) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %37) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %37) #8
  br label %723

492:                                              ; preds = %485
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %496

494:                                              ; preds = %487
  %495 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %486) #8
  br label %496

496:                                              ; preds = %494, %492
  %.pn220 = phi { ptr, i32 } [ %495, %494 ], [ %493, %492 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %37) #8
  br label %724

497:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %39) #8
  store i32 1, ptr %39, align 8, !tbaa !33
  %498 = getelementptr inbounds i8, ptr %39, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %498, ptr noundef nonnull @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %499 unwind label %504

499:                                              ; preds = %497
  %500 = getelementptr inbounds i8, ptr %39, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %500)
          to label %501 unwind label %506

501:                                              ; preds = %499
  %502 = getelementptr inbounds i8, ptr %0, i64 560
  %503 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %502, ptr noundef nonnull align 8 dereferenceable(56) %39) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %39) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %39) #8
  br label %723

504:                                              ; preds = %497
  %505 = landingpad { ptr, i32 }
          cleanup
  br label %508

506:                                              ; preds = %499
  %507 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %498) #8
  br label %508

508:                                              ; preds = %506, %504
  %.pn218 = phi { ptr, i32 } [ %507, %506 ], [ %505, %504 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %39) #8
  br label %724

509:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %41) #8
  store i32 1, ptr %41, align 8, !tbaa !33
  %510 = getelementptr inbounds i8, ptr %41, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %510, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %511 unwind label %516

511:                                              ; preds = %509
  %512 = getelementptr inbounds i8, ptr %41, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %512)
          to label %513 unwind label %518

513:                                              ; preds = %511
  %514 = getelementptr inbounds i8, ptr %0, i64 560
  %515 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %514, ptr noundef nonnull align 8 dereferenceable(56) %41) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %41) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #8
  br label %723

516:                                              ; preds = %509
  %517 = landingpad { ptr, i32 }
          cleanup
  br label %520

518:                                              ; preds = %511
  %519 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %510) #8
  br label %520

520:                                              ; preds = %518, %516
  %.pn216 = phi { ptr, i32 } [ %519, %518 ], [ %517, %516 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #8
  br label %724

521:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %43) #8
  store i32 1, ptr %43, align 8, !tbaa !33
  %522 = getelementptr inbounds i8, ptr %43, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %522, ptr noundef nonnull @.str.35, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %523 unwind label %528

523:                                              ; preds = %521
  %524 = getelementptr inbounds i8, ptr %43, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %524)
          to label %525 unwind label %530

525:                                              ; preds = %523
  %526 = getelementptr inbounds i8, ptr %0, i64 560
  %527 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %526, ptr noundef nonnull align 8 dereferenceable(56) %43) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %43) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %43) #8
  br label %723

528:                                              ; preds = %521
  %529 = landingpad { ptr, i32 }
          cleanup
  br label %532

530:                                              ; preds = %523
  %531 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %522) #8
  br label %532

532:                                              ; preds = %530, %528
  %.pn214 = phi { ptr, i32 } [ %531, %530 ], [ %529, %528 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %43) #8
  br label %724

533:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %45) #8
  store i32 1, ptr %45, align 8, !tbaa !33
  %534 = getelementptr inbounds i8, ptr %45, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %534, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %535 unwind label %540

535:                                              ; preds = %533
  %536 = getelementptr inbounds i8, ptr %45, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %536)
          to label %537 unwind label %542

537:                                              ; preds = %535
  %538 = getelementptr inbounds i8, ptr %0, i64 560
  %539 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %538, ptr noundef nonnull align 8 dereferenceable(56) %45) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %45) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %45) #8
  br label %723

540:                                              ; preds = %533
  %541 = landingpad { ptr, i32 }
          cleanup
  br label %544

542:                                              ; preds = %535
  %543 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %534) #8
  br label %544

544:                                              ; preds = %542, %540
  %.pn212 = phi { ptr, i32 } [ %543, %542 ], [ %541, %540 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %45) #8
  br label %724

545:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %47) #8
  store i32 1, ptr %47, align 8, !tbaa !33
  %546 = getelementptr inbounds i8, ptr %47, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %546, ptr noundef nonnull @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %547 unwind label %552

547:                                              ; preds = %545
  %548 = getelementptr inbounds i8, ptr %47, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %548)
          to label %549 unwind label %554

549:                                              ; preds = %547
  %550 = getelementptr inbounds i8, ptr %0, i64 560
  %551 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %550, ptr noundef nonnull align 8 dereferenceable(56) %47) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %47) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %47) #8
  br label %723

552:                                              ; preds = %545
  %553 = landingpad { ptr, i32 }
          cleanup
  br label %556

554:                                              ; preds = %547
  %555 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %546) #8
  br label %556

556:                                              ; preds = %554, %552
  %.pn210 = phi { ptr, i32 } [ %555, %554 ], [ %553, %552 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %47) #8
  br label %724

557:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %49) #8
  store i32 1, ptr %49, align 8, !tbaa !33
  %558 = getelementptr inbounds i8, ptr %49, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %558, ptr noundef nonnull @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %559 unwind label %564

559:                                              ; preds = %557
  %560 = getelementptr inbounds i8, ptr %49, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %560)
          to label %561 unwind label %566

561:                                              ; preds = %559
  %562 = getelementptr inbounds i8, ptr %0, i64 560
  %563 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %562, ptr noundef nonnull align 8 dereferenceable(56) %49) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %49) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %49) #8
  br label %723

564:                                              ; preds = %557
  %565 = landingpad { ptr, i32 }
          cleanup
  br label %568

566:                                              ; preds = %559
  %567 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %558) #8
  br label %568

568:                                              ; preds = %566, %564
  %.pn208 = phi { ptr, i32 } [ %567, %566 ], [ %565, %564 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %49) #8
  br label %724

569:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %51) #8
  store i32 1, ptr %51, align 8, !tbaa !33
  %570 = getelementptr inbounds i8, ptr %51, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %570, ptr noundef nonnull @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %571 unwind label %576

571:                                              ; preds = %569
  %572 = getelementptr inbounds i8, ptr %51, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %572)
          to label %573 unwind label %578

573:                                              ; preds = %571
  %574 = getelementptr inbounds i8, ptr %0, i64 560
  %575 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %574, ptr noundef nonnull align 8 dereferenceable(56) %51) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %51) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %51) #8
  br label %723

576:                                              ; preds = %569
  %577 = landingpad { ptr, i32 }
          cleanup
  br label %580

578:                                              ; preds = %571
  %579 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #8
  br label %580

580:                                              ; preds = %578, %576
  %.pn206 = phi { ptr, i32 } [ %579, %578 ], [ %577, %576 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %51) #8
  br label %724

581:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %53) #8
  store i32 1, ptr %53, align 8, !tbaa !33
  %582 = getelementptr inbounds i8, ptr %53, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %582, ptr noundef nonnull @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %583 unwind label %588

583:                                              ; preds = %581
  %584 = getelementptr inbounds i8, ptr %53, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %584)
          to label %585 unwind label %590

585:                                              ; preds = %583
  %586 = getelementptr inbounds i8, ptr %0, i64 560
  %587 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %586, ptr noundef nonnull align 8 dereferenceable(56) %53) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %53) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %53) #8
  br label %723

588:                                              ; preds = %581
  %589 = landingpad { ptr, i32 }
          cleanup
  br label %592

590:                                              ; preds = %583
  %591 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %582) #8
  br label %592

592:                                              ; preds = %590, %588
  %.pn204 = phi { ptr, i32 } [ %591, %590 ], [ %589, %588 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %53) #8
  br label %724

593:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %55) #8
  store i32 1, ptr %55, align 8, !tbaa !33
  %594 = getelementptr inbounds i8, ptr %55, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %594, ptr noundef nonnull @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %595 unwind label %600

595:                                              ; preds = %593
  %596 = getelementptr inbounds i8, ptr %55, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %596)
          to label %597 unwind label %602

597:                                              ; preds = %595
  %598 = getelementptr inbounds i8, ptr %0, i64 560
  %599 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %598, ptr noundef nonnull align 8 dereferenceable(56) %55) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %55) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %55) #8
  br label %723

600:                                              ; preds = %593
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %604

602:                                              ; preds = %595
  %603 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %594) #8
  br label %604

604:                                              ; preds = %602, %600
  %.pn202 = phi { ptr, i32 } [ %603, %602 ], [ %601, %600 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %55) #8
  br label %724

605:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %57) #8
  store i32 1, ptr %57, align 8, !tbaa !33
  %606 = getelementptr inbounds i8, ptr %57, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %606, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %607 unwind label %612

607:                                              ; preds = %605
  %608 = getelementptr inbounds i8, ptr %57, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %608)
          to label %609 unwind label %614

609:                                              ; preds = %607
  %610 = getelementptr inbounds i8, ptr %0, i64 560
  %611 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %610, ptr noundef nonnull align 8 dereferenceable(56) %57) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %57) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %57) #8
  br label %723

612:                                              ; preds = %605
  %613 = landingpad { ptr, i32 }
          cleanup
  br label %616

614:                                              ; preds = %607
  %615 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %606) #8
  br label %616

616:                                              ; preds = %614, %612
  %.pn200 = phi { ptr, i32 } [ %615, %614 ], [ %613, %612 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %57) #8
  br label %724

617:                                              ; preds = %361
  %618 = tail call noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  %trunc281 = trunc i32 %618 to i8
  switch i8 %trunc281, label %643 [
    i8 60, label %619
    i8 61, label %631
  ]

619:                                              ; preds = %617
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %59) #8
  store i32 1, ptr %59, align 8, !tbaa !33
  %620 = getelementptr inbounds i8, ptr %59, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %620, ptr noundef nonnull @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %621 unwind label %626

621:                                              ; preds = %619
  %622 = getelementptr inbounds i8, ptr %59, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %622)
          to label %623 unwind label %628

623:                                              ; preds = %621
  %624 = getelementptr inbounds i8, ptr %0, i64 560
  %625 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %624, ptr noundef nonnull align 8 dereferenceable(56) %59) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %59) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %59) #8
  br label %723

626:                                              ; preds = %619
  %627 = landingpad { ptr, i32 }
          cleanup
  br label %630

628:                                              ; preds = %621
  %629 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %620) #8
  br label %630

630:                                              ; preds = %628, %626
  %.pn198 = phi { ptr, i32 } [ %629, %628 ], [ %627, %626 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %59) #8
  br label %724

631:                                              ; preds = %617
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %61) #8
  store i32 1, ptr %61, align 8, !tbaa !33
  %632 = getelementptr inbounds i8, ptr %61, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %62) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %632, ptr noundef nonnull @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %633 unwind label %638

633:                                              ; preds = %631
  %634 = getelementptr inbounds i8, ptr %61, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %634)
          to label %635 unwind label %640

635:                                              ; preds = %633
  %636 = getelementptr inbounds i8, ptr %0, i64 560
  %637 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %636, ptr noundef nonnull align 8 dereferenceable(56) %61) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %61) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %61) #8
  br label %723

638:                                              ; preds = %631
  %639 = landingpad { ptr, i32 }
          cleanup
  br label %642

640:                                              ; preds = %633
  %641 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %632) #8
  br label %642

642:                                              ; preds = %640, %638
  %.pn196 = phi { ptr, i32 } [ %641, %640 ], [ %639, %638 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %61) #8
  br label %724

643:                                              ; preds = %617
  %644 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16) %78)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %63) #8
  store i32 1, ptr %63, align 8, !tbaa !33
  %645 = getelementptr inbounds i8, ptr %63, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %645, ptr noundef nonnull @.str.44, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %646 unwind label %651

646:                                              ; preds = %643
  %647 = getelementptr inbounds i8, ptr %63, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %647)
          to label %648 unwind label %653

648:                                              ; preds = %646
  %649 = getelementptr inbounds i8, ptr %0, i64 560
  %650 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %649, ptr noundef nonnull align 8 dereferenceable(56) %63) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %63) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %63) #8
  br label %723

651:                                              ; preds = %643
  %652 = landingpad { ptr, i32 }
          cleanup
  br label %655

653:                                              ; preds = %646
  %654 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %645) #8
  br label %655

655:                                              ; preds = %653, %651
  %.pn194 = phi { ptr, i32 } [ %654, %653 ], [ %652, %651 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %63) #8
  br label %724

656:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %65) #8
  store i32 1, ptr %65, align 8, !tbaa !33
  %657 = getelementptr inbounds i8, ptr %65, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %66) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %657, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %658 unwind label %663

658:                                              ; preds = %656
  %659 = getelementptr inbounds i8, ptr %65, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %659)
          to label %660 unwind label %665

660:                                              ; preds = %658
  %661 = getelementptr inbounds i8, ptr %0, i64 560
  %662 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %661, ptr noundef nonnull align 8 dereferenceable(56) %65) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %65) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %65) #8
  br label %723

663:                                              ; preds = %656
  %664 = landingpad { ptr, i32 }
          cleanup
  br label %667

665:                                              ; preds = %658
  %666 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %657) #8
  br label %667

667:                                              ; preds = %665, %663
  %.pn191 = phi { ptr, i32 } [ %666, %665 ], [ %664, %663 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %65) #8
  br label %724

668:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %67) #8
  store i32 1, ptr %67, align 8, !tbaa !33
  %669 = getelementptr inbounds i8, ptr %67, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %669, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %670 unwind label %675

670:                                              ; preds = %668
  %671 = getelementptr inbounds i8, ptr %67, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %671)
          to label %672 unwind label %677

672:                                              ; preds = %670
  %673 = getelementptr inbounds i8, ptr %0, i64 560
  %674 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %673, ptr noundef nonnull align 8 dereferenceable(56) %67) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %67) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %67) #8
  br label %723

675:                                              ; preds = %668
  %676 = landingpad { ptr, i32 }
          cleanup
  br label %679

677:                                              ; preds = %670
  %678 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %669) #8
  br label %679

679:                                              ; preds = %677, %675
  %.pn189 = phi { ptr, i32 } [ %678, %677 ], [ %676, %675 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %67) #8
  br label %724

680:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %69) #8
  store i32 1, ptr %69, align 8, !tbaa !33
  %681 = getelementptr inbounds i8, ptr %69, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %70) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %682 unwind label %687

682:                                              ; preds = %680
  %683 = getelementptr inbounds i8, ptr %69, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %683)
          to label %684 unwind label %689

684:                                              ; preds = %682
  %685 = getelementptr inbounds i8, ptr %0, i64 560
  %686 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %685, ptr noundef nonnull align 8 dereferenceable(56) %69) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %69) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %69) #8
  br label %723

687:                                              ; preds = %680
  %688 = landingpad { ptr, i32 }
          cleanup
  br label %691

689:                                              ; preds = %682
  %690 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %681) #8
  br label %691

691:                                              ; preds = %689, %687
  %.pn187 = phi { ptr, i32 } [ %690, %689 ], [ %688, %687 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %69) #8
  br label %724

692:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %71) #8
  store i32 1, ptr %71, align 8, !tbaa !33
  %693 = getelementptr inbounds i8, ptr %71, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %693, ptr noundef nonnull @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %694 unwind label %699

694:                                              ; preds = %692
  %695 = getelementptr inbounds i8, ptr %71, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %695)
          to label %696 unwind label %701

696:                                              ; preds = %694
  %697 = getelementptr inbounds i8, ptr %0, i64 560
  %698 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %697, ptr noundef nonnull align 8 dereferenceable(56) %71) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %71) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %71) #8
  br label %723

699:                                              ; preds = %692
  %700 = landingpad { ptr, i32 }
          cleanup
  br label %703

701:                                              ; preds = %694
  %702 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %693) #8
  br label %703

703:                                              ; preds = %701, %699
  %.pn185 = phi { ptr, i32 } [ %702, %701 ], [ %700, %699 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %71) #8
  br label %724

704:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %73) #8
  store i32 1, ptr %73, align 8, !tbaa !33
  %705 = getelementptr inbounds i8, ptr %73, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %74) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %705, ptr noundef nonnull @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %706 unwind label %711

706:                                              ; preds = %704
  %707 = getelementptr inbounds i8, ptr %73, i64 40
  invoke void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %707)
          to label %708 unwind label %713

708:                                              ; preds = %706
  %709 = getelementptr inbounds i8, ptr %0, i64 560
  %710 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56) %709, ptr noundef nonnull align 8 dereferenceable(56) %73) #8
  call void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %73) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %73) #8
  br label %723

711:                                              ; preds = %704
  %712 = landingpad { ptr, i32 }
          cleanup
  br label %715

713:                                              ; preds = %706
  %714 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %705) #8
  br label %715

715:                                              ; preds = %713, %711
  %.pn = phi { ptr, i32 } [ %714, %713 ], [ %712, %711 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %73) #8
  br label %724

716:                                              ; preds = %361
  %717 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK5Lexer(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(680) %0)
  %718 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %717, ptr noundef nonnull @.str.50)
  %719 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %718, i8 noundef signext %.4)
  %720 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %719, ptr noundef nonnull @.str.12)
  %721 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %720, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %722 = tail call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.1, ptr %722, align 16, !tbaa !37
  tail call void @__cxa_throw(ptr nonnull %722, ptr nonnull @_ZTIPKc, ptr null) #10
  unreachable

723:                                              ; preds = %147, %162, %333, %204, %365, %429, %441, %453, %465, %477, %489, %501, %513, %525, %537, %549, %561, %573, %585, %597, %609, %660, %672, %684, %696, %708, %417, %404, %635, %648, %623, %392, %352, %178, %80
  ret void

724:                                              ; preds = %715, %703, %691, %679, %667, %655, %642, %630, %616, %604, %592, %580, %568, %556, %544, %532, %520, %508, %496, %484, %472, %460, %448, %436, %424, %411, %397, %368, %360, %334, %209, %185, %165, %153
  %.pn271.pn.pn = phi { ptr, i32 } [ %.pn271.pn, %153 ], [ %166, %165 ], [ %.pn266, %185 ], [ %.pn264, %209 ], [ %.pn260.pn, %334 ], [ %.pn242, %360 ], [ %369, %368 ], [ %.pn237, %397 ], [ %.pn, %715 ], [ %.pn185, %703 ], [ %.pn187, %691 ], [ %.pn189, %679 ], [ %.pn191, %667 ], [ %.pn198, %630 ], [ %.pn196, %642 ], [ %.pn194, %655 ], [ %.pn200, %616 ], [ %.pn202, %604 ], [ %.pn204, %592 ], [ %.pn206, %580 ], [ %.pn208, %568 ], [ %.pn210, %556 ], [ %.pn212, %544 ], [ %.pn214, %532 ], [ %.pn216, %520 ], [ %.pn218, %508 ], [ %.pn220, %496 ], [ %.pn222, %484 ], [ %.pn224, %472 ], [ %.pn226, %460 ], [ %.pn228, %448 ], [ %.pn230, %436 ], [ %.pn234, %411 ], [ %.pn232, %424 ]
  resume { ptr, i32 } %.pn271.pn.pn

725:                                              ; preds = %387
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5TokenD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) local_unnamed_addr #1

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isblank(i32 noundef) local_unnamed_addr #6

declare noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #7

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5ungetEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Token7NumbersC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Lexer12parse_stringB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(680)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isalpha(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isalnum(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isxdigit(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i64 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128mLEj(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN4U128pLEj(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4U128neEj(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

attributes #0 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { inlinehint mustprogress 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 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress 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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { mustprogress nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(read) }
attributes #10 = { noreturn }

!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, !20, i64 616}
!6 = !{!"_ZTS5Lexer", !7, i64 0, !13, i64 32, !14, i64 40, !23, i64 560, !20, i64 616, !23, i64 624}
!7 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !8, i64 0, !12, i64 8, !10, i64 16}
!8 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"long", !10, i64 0}
!13 = !{!"int", !10, i64 0}
!14 = !{!"_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE", !15, i64 0, !16, i64 16}
!15 = !{!"_ZTSSi", !12, i64 8}
!16 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !17, i64 0, !10, i64 64, !19, i64 104, !21, i64 120, !22, i64 124, !22, i64 132, !22, i64 140, !9, i64 152, !12, i64 160, !20, i64 168, !20, i64 169, !20, i64 170, !10, i64 171, !9, i64 176, !9, i64 184, !20, i64 192, !9, i64 200, !9, i64 208, !12, i64 216, !9, i64 224, !9, i64 232}
!17 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !9, i64 8, !9, i64 16, !9, i64 24, !9, i64 32, !9, i64 40, !9, i64 48, !18, i64 56}
!18 = !{!"_ZTSSt6locale", !9, i64 0}
!19 = !{!"_ZTSSt12__basic_fileIcE", !9, i64 0, !20, i64 8}
!20 = !{!"bool", !10, i64 0}
!21 = !{!"_ZTSSt13_Ios_Openmode", !10, i64 0}
!22 = !{!"_ZTS11__mbstate_t", !13, i64 0, !10, i64 4}
!23 = !{!"_ZTS5Token", !24, i64 0, !7, i64 8, !10, i64 40}
!24 = !{!"_ZTS10TokenClass", !10, i64 0}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!6, !13, i64 32}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = distinct !{!31, !29}
!32 = distinct !{!32, !29}
!33 = !{!23, !24, i64 0}
!34 = !{!35, !35, i64 0}
!35 = !{!"vtable pointer", !11, i64 0}
!36 = distinct !{!36, !29}
!37 = !{!9, !9, i64 0}
!38 = distinct !{!38, !29}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.unroll.disable"}
!41 = distinct !{!41, !29}
!42 = distinct !{!42, !29}
!43 = distinct !{!43, !29}
!44 = !{!10, !10, i64 0}
!45 = !{i64 0, i64 8, !46, i64 8, i64 8, !46}
!46 = !{!12, !12, i64 0}
!47 = distinct !{!47, !29}
!48 = distinct !{!48, !29}


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