3812 {
3814 {
3815 result.SetBadDateTimeFailure();
3816 return false;
3817 }
3822 if ((num | num2 | num3 | num4) > 127)
3823 {
3824 result.SetBadDateTimeFailure();
3825 return false;
3826 }
3828 switch ((num << 24) | (num2 << 16) | (num3 << 8) | num4 | 0x20202000)
3829 {
3830 case 1937075756u:
3832 break;
3833 case 1836019244u:
3835 break;
3836 case 1953850668u:
3838 break;
3839 case 2003133484u:
3841 break;
3842 case 1953002796u:
3844 break;
3845 case 1718774060u:
3847 break;
3848 case 1935766572u:
3850 break;
3851 default:
3852 result.SetBadDateTimeFailure();
3853 return false;
3854 }
3856 {
3857 result.SetBadDateTimeFailure();
3858 return false;
3859 }
3860 uint num5 = (uint)(
source[5] - 48);
3861 uint num6 = (uint)(
source[6] - 48);
3862 if (num5 > 9 || num6 > 9)
3863 {
3864 result.SetBadDateTimeFailure();
3865 return false;
3866 }
3867 int day = (int)(num5 * 10 + num6);
3869 {
3870 result.SetBadDateTimeFailure();
3871 return false;
3872 }
3877 if ((num7 | num8 | num9 | num10) > 127)
3878 {
3879 result.SetBadDateTimeFailure();
3880 return false;
3881 }
3882 int month;
3883 switch ((num7 << 24) | (num8 << 16) | (num9 << 8) | num10 | 0x20202000)
3884 {
3885 case 1784770080u:
3886 month = 1;
3887 break;
3888 case 1717920288u:
3889 month = 2;
3890 break;
3891 case 1835102752u:
3892 month = 3;
3893 break;
3894 case 1634759200u:
3895 month = 4;
3896 break;
3897 case 1835104544u:
3898 month = 5;
3899 break;
3900 case 1786080800u:
3901 month = 6;
3902 break;
3903 case 1786080288u:
3904 month = 7;
3905 break;
3906 case 1635084064u:
3907 month = 8;
3908 break;
3909 case 1936027680u:
3910 month = 9;
3911 break;
3912 case 1868788768u:
3913 month = 10;
3914 break;
3915 case 1852798496u:
3916 month = 11;
3917 break;
3918 case 1684366112u:
3919 month = 12;
3920 break;
3921 default:
3922 result.SetBadDateTimeFailure();
3923 return false;
3924 }
3925 uint num11 = (uint)(
source[12] - 48);
3926 uint num12 = (uint)(
source[13] - 48);
3927 uint num13 = (uint)(
source[14] - 48);
3928 uint num14 = (uint)(
source[15] - 48);
3929 if (num11 > 9 || num12 > 9 || num13 > 9 || num14 > 9)
3930 {
3931 result.SetBadDateTimeFailure();
3932 return false;
3933 }
3934 int year = (int)(num11 * 1000 + num12 * 100 + num13 * 10 + num14);
3936 {
3937 result.SetBadDateTimeFailure();
3938 return false;
3939 }
3940 uint num15 = (uint)(
source[17] - 48);
3941 uint num16 = (uint)(
source[18] - 48);
3942 if (num15 > 9 || num16 > 9)
3943 {
3944 result.SetBadDateTimeFailure();
3945 return false;
3946 }
3947 int hour = (int)(num15 * 10 + num16);
3949 {
3950 result.SetBadDateTimeFailure();
3951 return false;
3952 }
3953 uint num17 = (uint)(
source[20] - 48);
3954 uint num18 = (uint)(
source[21] - 48);
3955 if (num17 > 9 || num18 > 9)
3956 {
3957 result.SetBadDateTimeFailure();
3958 return false;
3959 }
3960 int minute = (int)(num17 * 10 + num18);
3962 {
3963 result.SetBadDateTimeFailure();
3964 return false;
3965 }
3966 uint num19 = (uint)(
source[23] - 48);
3967 uint num20 = (uint)(
source[24] - 48);
3968 if (num19 > 9 || num20 > 9)
3969 {
3970 result.SetBadDateTimeFailure();
3971 return false;
3972 }
3973 int second = (int)(num19 * 10 + num20);
3975 {
3976 result.SetBadDateTimeFailure();
3977 return false;
3978 }
3979 if (!parseInfo.calendar.TryToDateTime(
year, month, day, hour, minute, second, 0, 0, out result.parsedDate))
3980 {
3981 result.SetFailure(ParseFailureKind.FormatBadDateTimeCalendar, "Format_BadDateTimeCalendar");
3982 return false;
3983 }
3984 if (dayOfWeek != result.parsedDate.DayOfWeek)
3985 {
3986 result.SetFailure(ParseFailureKind.FormatWithOriginalDateTime, "Format_BadDayOfWeek");
3987 return false;
3988 }
3989 return true;
3990 }