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