RtlCutoverTimeToSystemTime

BOOL __fastcall RtlCutoverTimeToSystemTime(
        _TIME_FIELDS *CutoverTime,
        _LARGE_INTEGER *SystemTime,
        _LARGE_INTEGER *CurrentSystemTime,
        UINT8 ThisYear){
  __int16 Day; 
  __int16 Month; 
  __int16 Weekday; 
  __int16 v9; 
  __int16 Milliseconds; 
  INT64 v11; 
  __int16 v12; 
  __int16 v13; 
  INT64 v14; 
  _TIME_FIELDS TimeFields; 
  _TIME_FIELDS v17; 
  _LARGE_INTEGER Time; 

  TimeFields = 0i64;
  RtlTimeToTimeFields((INT64 *)CurrentSystemTime, (WORD *)&TimeFields, (INT64)CurrentSystemTime);
  if( !CutoverTime->Year )
  {
    Day = CutoverTime->Day;
    Time.QuadPart = 0i64;
    v17 = 0i64;
    if( Day <= 5 )
    {
      if( Day )
      {
        Month = CutoverTime->Month;
        Weekday = CutoverTime->Weekday;
        v9 = 1;
        TimeFields.Hour = CutoverTime->Hour;
        TimeFields.Minute = CutoverTime->Minute;
        TimeFields.Second = CutoverTime->Second;
        Milliseconds = CutoverTime->Milliseconds;
        TimeFields.Month = Month;
        TimeFields.Milliseconds = Milliseconds;
        TimeFields.Day = 1;
        TimeFields.Weekday = 0;
        if( RtlTimeFieldsToTime(&TimeFields, &Time) )
        {
          RtlTimeToTimeFields((INT64 *)&Time, (WORD *)&v17, v11);
          if( v17.Weekday <= Weekday )
          {
            v12 = 1;
            if( v17.Weekday >= Weekday )
            {
LABEL_8:
              v13 = 1;
              if( Day > 1 )
              {
                do
                {
                  v9 += 7;
                  TimeFields.Day = v9;
                  if( !RtlTimeFieldsToTime(&TimeFields, &Time) )
                    break;
                  RtlTimeToTimeFields((INT64 *)&Time, (WORD *)&v17, v14);
                  v12 = v17.Day;
                  ++v13;
                }
                while( v13 < Day );
              }
              TimeFields.Day = v12;
              if( RtlTimeFieldsToTime(&TimeFields, &Time) )
              {
                *SystemTime = Time;
                return 1;
              }
              return 0;
            }
            v9 = Weekday - v17.Weekday + 1;
          }
          else
          {
            v9 = Weekday - v17.Weekday + 8;
          }
          v12 = v9;
          goto LABEL_8;
        }
      }
    }
    return 0;
  }
  return RtlTimeFieldsToTime(CutoverTime, SystemTime) != 0;
}

Referenced by:

ExInitializeUtcTimeZoneBias
ExpRefreshTimeZoneInformation