771 {
773 {
774 bytesConsumed = 0;
775 dateTimeOffset = default(DateTimeOffset);
776 return false;
777 }
778 uint num =
source[0] ^ caseFlipXorMask;
783 switch ((num << 24) | (num2 << 16) | (num3 << 8) | num4)
784 {
785 case 1400204844u:
787 break;
788 case 1299148332u:
790 break;
791 case 1416979756u:
793 break;
794 case 1466262572u:
796 break;
797 case 1416131884u:
799 break;
800 case 1181903148u:
802 break;
803 case 1398895660u:
805 break;
806 default:
807 bytesConsumed = 0;
808 dateTimeOffset = default(DateTimeOffset);
809 return false;
810 }
812 {
813 bytesConsumed = 0;
814 dateTimeOffset = default(DateTimeOffset);
815 return false;
816 }
817 uint num5 = (uint)(
source[5] - 48);
818 uint num6 = (uint)(
source[6] - 48);
819 if (num5 > 9 || num6 > 9)
820 {
821 bytesConsumed = 0;
822 dateTimeOffset = default(DateTimeOffset);
823 return false;
824 }
825 int day = (int)(num5 * 10 + num6);
827 {
828 bytesConsumed = 0;
829 dateTimeOffset = default(DateTimeOffset);
830 return false;
831 }
832 uint num7 =
source[8] ^ caseFlipXorMask;
836 int month;
837 switch ((num7 << 24) | (num8 << 16) | (num9 << 8) | num10)
838 {
839 case 1247899168u:
840 month = 1;
841 break;
842 case 1181049376u:
843 month = 2;
844 break;
845 case 1298231840u:
846 month = 3;
847 break;
848 case 1097888288u:
849 month = 4;
850 break;
851 case 1298233632u:
852 month = 5;
853 break;
854 case 1249209888u:
855 month = 6;
856 break;
857 case 1249209376u:
858 month = 7;
859 break;
860 case 1098213152u:
861 month = 8;
862 break;
863 case 1399156768u:
864 month = 9;
865 break;
866 case 1331917856u:
867 month = 10;
868 break;
869 case 1315927584u:
870 month = 11;
871 break;
872 case 1147495200u:
873 month = 12;
874 break;
875 default:
876 bytesConsumed = 0;
877 dateTimeOffset = default(DateTimeOffset);
878 return false;
879 }
880 uint num11 = (uint)(
source[12] - 48);
881 uint num12 = (uint)(
source[13] - 48);
882 uint num13 = (uint)(
source[14] - 48);
883 uint num14 = (uint)(
source[15] - 48);
884 if (num11 > 9 || num12 > 9 || num13 > 9 || num14 > 9)
885 {
886 bytesConsumed = 0;
887 dateTimeOffset = default(DateTimeOffset);
888 return false;
889 }
890 int year = (int)(num11 * 1000 + num12 * 100 + num13 * 10 + num14);
892 {
893 bytesConsumed = 0;
894 dateTimeOffset = default(DateTimeOffset);
895 return false;
896 }
897 uint num15 = (uint)(
source[17] - 48);
898 uint num16 = (uint)(
source[18] - 48);
899 if (num15 > 9 || num16 > 9)
900 {
901 bytesConsumed = 0;
902 dateTimeOffset = default(DateTimeOffset);
903 return false;
904 }
905 int hour = (int)(num15 * 10 + num16);
907 {
908 bytesConsumed = 0;
909 dateTimeOffset = default(DateTimeOffset);
910 return false;
911 }
912 uint num17 = (uint)(
source[20] - 48);
913 uint num18 = (uint)(
source[21] - 48);
914 if (num17 > 9 || num18 > 9)
915 {
916 bytesConsumed = 0;
917 dateTimeOffset = default(DateTimeOffset);
918 return false;
919 }
920 int minute = (int)(num17 * 10 + num18);
922 {
923 bytesConsumed = 0;
924 dateTimeOffset = default(DateTimeOffset);
925 return false;
926 }
927 uint num19 = (uint)(
source[23] - 48);
928 uint num20 = (uint)(
source[24] - 48);
929 if (num19 > 9 || num20 > 9)
930 {
931 bytesConsumed = 0;
932 dateTimeOffset = default(DateTimeOffset);
933 return false;
934 }
935 int second = (int)(num19 * 10 + num20);
937 uint num22 =
source[26] ^ caseFlipXorMask;
938 uint num23 =
source[27] ^ caseFlipXorMask;
939 uint num24 =
source[28] ^ caseFlipXorMask;
940 uint num25 = (num21 << 24) | (num22 << 16) | (num23 << 8) | num24;
941 if (num25 != 541543764)
942 {
943 bytesConsumed = 0;
944 dateTimeOffset = default(DateTimeOffset);
945 return false;
946 }
947 if (!
TryCreateDateTimeOffset(
year, month, day, hour, minute, second, 0, offsetNegative: false, 0, 0, out dateTimeOffset))
948 {
949 bytesConsumed = 0;
950 dateTimeOffset = default(DateTimeOffset);
951 return false;
952 }
953 if (dayOfWeek != dateTimeOffset.DayOfWeek)
954 {
955 bytesConsumed = 0;
956 dateTimeOffset = default(DateTimeOffset);
957 return false;
958 }
959 bytesConsumed = 29;
960 return true;
961 }
static bool TryCreateDateTimeOffset(DateTime dateTime, bool offsetNegative, int offsetHours, int offsetMinutes, out DateTimeOffset value)