602 {
603 if (guidString.
Length != 0)
604 {
605 if (guidString[0] == '+')
606 {
607 guidString = guidString.
Slice(1);
608 }
609 if ((uint)guidString.
Length > 1u && guidString[0] ==
'0' && (guidString[1] | 0x20) == 120)
610 {
611 guidString = guidString.
Slice(2);
612 }
613 }
615 for (i = 0;
i < guidString.Length && guidString[
i] ==
'0';
i++)
616 {
617 }
618 int num = 0;
619 uint num2 = 0u;
620 for (;
i < guidString.Length;
i++)
621 {
622 char c = guidString[
i];
623 int num3 = HexConverter.FromChar(c);
624 if (num3 == 255)
625 {
626 if (num > 8)
627 {
628 overflow = true;
629 }
630 result = 0u;
631 return false;
632 }
633 num2 = num2 * 16 + (uint)num3;
634 num++;
635 }
636 if (num > 8)
637 {
638 overflow = true;
639 }
640 result = num2;
641 return true;
642 }
ReadOnlySpan< T > Slice(int start)