4493 {
4495 int num;
4497 {
4501 {
4502 goto IL_0048;
4503 }
4504 while (true)
4505 {
4507 if ((uint)i >= (uint)
value.Length)
4508 {
4509 break;
4510 }
4513 {
4514 continue;
4515 }
4516 goto IL_0048;
4517 }
4518 }
4519 goto IL_029f;
4520 IL_0292:
4521 long num2;
4522 int num3;
4523 result = num2 * num3;
4525 IL_02a8:
4528 IL_01a0:
4530 {
4531 goto IL_01ab;
4532 }
4533 goto IL_02b1;
4534 IL_028f:
4535 bool flag;
4536 if (!flag)
4537 {
4538 goto IL_0292;
4539 }
4540 goto IL_02a8;
4541 IL_0048:
4542 num3 = 1;
4544 {
4545 if (
info.HasInvariantNumberSigns)
4546 {
4547 if (num == 45)
4548 {
4549 num3 = -1;
4551 if ((uint)i >= (uint)
value.Length)
4552 {
4553 goto IL_029f;
4554 }
4556 }
4557 else if (num == 43)
4558 {
4560 if ((uint)i >= (uint)
value.Length)
4561 {
4562 goto IL_029f;
4563 }
4565 }
4566 }
4567 else if (
info.AllowHyphenDuringParsing && num == 45)
4568 {
4569 num3 = -1;
4571 if ((uint)i >= (uint)
value.Length)
4572 {
4573 goto IL_029f;
4574 }
4576 }
4577 else
4578 {
4581 string positiveSign =
info.PositiveSign;
4582 string negativeSign =
info.NegativeSign;
4583 if (!
string.IsNullOrEmpty(positiveSign) &&
value.StartsWith(positiveSign))
4584 {
4585 i += positiveSign.Length;
4586 if ((uint)i >= (uint)
value.Length)
4587 {
4588 goto IL_029f;
4589 }
4591 }
4592 else if (!
string.IsNullOrEmpty(negativeSign) &&
value.StartsWith(negativeSign))
4593 {
4594 num3 = -1;
4595 i += negativeSign.Length;
4596 if ((uint)i >= (uint)
value.Length)
4597 {
4598 goto IL_029f;
4599 }
4601 }
4602 }
4603 }
4604 flag = false;
4607 {
4608 if (num != 48)
4609 {
4610 goto IL_01ab;
4611 }
4612 while (true)
4613 {
4615 if ((uint)i >= (uint)
value.Length)
4616 {
4617 break;
4618 }
4620 if (num == 48)
4621 {
4622 continue;
4623 }
4624 goto IL_01a0;
4625 }
4626 goto IL_0292;
4627 }
4628 goto IL_029f;
4629 IL_01ab:
4630 num2 = num - 48;
4632 int num4 = 0;
4633 while (num4 < 17)
4634 {
4635 if ((uint)i >= (uint)
value.Length)
4636 {
4637 goto IL_0292;
4638 }
4641 {
4643 num2 = 10 * num2 + num - 48;
4644 num4++;
4645 continue;
4646 }
4647 goto IL_02b1;
4648 }
4649 if ((uint)i >= (uint)
value.Length)
4650 {
4651 goto IL_0292;
4652 }
4655 {
4657 flag = num2 > 922337203685477580
L;
4658 num2 = num2 * 10 + num - 48;
4659 flag = flag || (ulong)num2 > (ulong)(long.MaxValue + (long)(uint)(num3 >>> 31));
4660 if ((uint)
i >= (uint)
value.Length)
4661 {
4662 goto IL_028f;
4663 }
4666 {
4667 flag = true;
4669 if ((uint)
i < (uint)
value.Length)
4670 {
4672 continue;
4673 }
4674 goto IL_02a8;
4675 }
4676 }
4677 goto IL_02b1;
4678 IL_02b1:
4680 {
4682 {
4683 goto IL_029f;
4684 }
4686 {
4687 }
4688 if ((uint)
i >= (uint)
value.Length)
4689 {
4690 goto IL_028f;
4691 }
4692 }
4694 {
4695 goto IL_028f;
4696 }
4697 goto IL_029f;
4698 IL_029f:
4701 }
static bool IsWhite(int ch)
static bool TrailingZeros(ReadOnlySpan< char > value, int index)
static bool IsDigit(int ch)