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    }