ExGetExpirationDate

NTSTATUS __stdcall ExGetExpirationDate(_LARGE_INTEGER *ExpirationDate){
  int v2; 
  __int64 v3; 
  UINT64 Type; 
  _TIME_FIELDS TimeFields; 
  _UNICODE_STRING DestinationString; 
  __int128 Data; 
  __int128 v9; 

  *(_DWORD *)&TimeFields.Milliseconds = 0;
  Type = 0i64;
  DestinationString = 0i64;
  Data = 0i64;
  v9 = 0i64;
  if( !ExpirationDate )
    return -1073741811;
  RtlInitUnicodeString(&DestinationString, (PCWSTR)&stru_1407D9590._Xmm13);
  v2 = ZwQueryLicenseValue(&DestinationString, (UINT64 *)((char *)&Type + 4), &Data, 0x10ui64, &Type);
  if( v2 < 0 )
    goto LABEL_13;
  v3 = v9 - Data;
  if( (_QWORD)v9 == (_QWORD)Data )
    v3 = *((_QWORD *)&v9 + 1) - *((_QWORD *)&Data + 1);
  if( v3 )
  {
    TimeFields.Year = Data;
    *(_DWORD *)&TimeFields.Month = *(_DWORD *)((char *)&Data + 2);
    TimeFields.Hour = WORD3(Data);
    *(_DWORD *)&TimeFields.Minute = DWORD2(Data);
    if( !RtlTimeFieldsToTime(&TimeFields, ExpirationDate) )
      v2 = -1073741823;
  }
  else
  {
    ExpirationDate->QuadPart = 0i64;
  }
  if( v2 < 0 )
LABEL_13:
    ExpirationDate->QuadPart = 0i64;
  return v2;
}

Referenced by:

ExInitLicenseData
ExInitializeTimeRefresh