5149 {
5151 int num;
5153 {
5157 {
5158 goto IL_0048;
5159 }
5160 while (true)
5161 {
5163 if ((uint)i >= (uint)
value.Length)
5164 {
5165 break;
5166 }
5169 {
5170 continue;
5171 }
5172 goto IL_0048;
5173 }
5174 }
5175 goto IL_0295;
5176 IL_01a8:
5177 long num2 = num - 48;
5179 int num3 = 0;
5180 while (num3 < 18)
5181 {
5182 if ((uint)i >= (uint)
value.Length)
5183 {
5184 goto IL_0289;
5185 }
5188 {
5190 num2 = 10 * num2 + num - 48;
5191 num3++;
5192 continue;
5193 }
5194 goto IL_02a9;
5195 }
5196 if ((uint)i >= (uint)
value.Length)
5197 {
5198 goto IL_0289;
5199 }
5201 bool flag;
5203 {
5205 flag = flag || (ulong)num2 > 1844674407370955161uL || (num2 == 1844674407370955161
L && num > 53);
5206 num2 = num2 * 10 + num - 48;
5207 if ((uint)
i >= (uint)
value.Length)
5208 {
5209 goto IL_0289;
5210 }
5213 {
5214 flag = true;
5216 if ((uint)
i < (uint)
value.Length)
5217 {
5219 continue;
5220 }
5221 goto IL_029e;
5222 }
5223 }
5224 goto IL_02a9;
5225 IL_028c:
5226 result = (ulong)num2;
5228 IL_019d:
5230 {
5231 goto IL_01a8;
5232 }
5233 flag = false;
5234 goto IL_02a9;
5235 IL_0289:
5236 if (!flag)
5237 {
5238 goto IL_028c;
5239 }
5240 goto IL_029e;
5241 IL_0048:
5242 flag = false;
5244 {
5245 if (
info.HasInvariantNumberSigns)
5246 {
5247 if (num == 43)
5248 {
5250 if ((uint)
i >= (uint)
value.Length)
5251 {
5252 goto IL_0295;
5253 }
5255 }
5256 else if (num == 45)
5257 {
5258 flag = true;
5260 if ((uint)
i >= (uint)
value.Length)
5261 {
5262 goto IL_0295;
5263 }
5265 }
5266 }
5267 else if (
info.AllowHyphenDuringParsing && num == 45)
5268 {
5269 flag = true;
5271 if ((uint)
i >= (uint)
value.Length)
5272 {
5273 goto IL_0295;
5274 }
5276 }
5277 else
5278 {
5281 string positiveSign =
info.PositiveSign;
5282 string negativeSign =
info.NegativeSign;
5283 if (!
string.IsNullOrEmpty(positiveSign) &&
value.StartsWith(positiveSign))
5284 {
5285 i += positiveSign.Length;
5286 if ((uint)
i >= (uint)
value.Length)
5287 {
5288 goto IL_0295;
5289 }
5291 }
5292 else if (!
string.IsNullOrEmpty(negativeSign) &&
value.StartsWith(negativeSign))
5293 {
5294 flag = true;
5295 i += negativeSign.Length;
5296 if ((uint)
i >= (uint)
value.Length)
5297 {
5298 goto IL_0295;
5299 }
5301 }
5302 }
5303 }
5306 {
5307 if (num != 48)
5308 {
5309 goto IL_01a8;
5310 }
5311 while (true)
5312 {
5314 if ((uint)
i >= (uint)
value.Length)
5315 {
5316 break;
5317 }
5319 if (num == 48)
5320 {
5321 continue;
5322 }
5323 goto IL_019d;
5324 }
5325 goto IL_028c;
5326 }
5327 goto IL_0295;
5328 IL_02a9:
5330 {
5332 {
5333 goto IL_0295;
5334 }
5336 {
5337 }
5338 if ((uint)
i >= (uint)
value.Length)
5339 {
5340 goto IL_0289;
5341 }
5342 }
5344 {
5345 goto IL_0289;
5346 }
5347 goto IL_0295;
5348 IL_029e:
5349 result = 0uL;
5351 IL_0295:
5352 result = 0uL;
5354 }
static bool IsWhite(int ch)
static bool TrailingZeros(ReadOnlySpan< char > value, int index)
static bool IsDigit(int ch)