ExpReadComPlusPackage

INT64 __fastcall ExpReadComPlusPackage(){
  signed __int32 v0; 
  NTSTATUS v1; 
  ULONG ResultLength; 
  void *KeyHandle; 
  __int128 KeyValueInformation; 
  int v6; 
  ResultLength = 0;
  KeyHandle = 0i64;
  KeyValueInformation = 0i64;
  v6 = 0;
  v0 = 0;
  v1 = ZwOpenKey(&KeyHandle, 1u, &stru_140C02088);
  if( v1 >= 0 )
  {
    v1 = ZwQueryValueKey(
           KeyHandle,
           &stru_140C020B8,
           KeyValuePartialInformation,
           &KeyValueInformation,
           0x14u,
           &ResultLength);
    if( v1 >= 0 && *(_QWORD *)((char *)&KeyValueInformation + 4) == 0x400000004i64 )
      v0 = HIDWORD(KeyValueInformation);
    ZwClose(KeyHandle);
  }
  _InterlockedCompareExchange((volatile signed __int32 *)&KUSER_SHARED_DATA.ComPlusPackage, v0, -1);
  if( (int)(v1 + 0x80000000) < 0 || v1 == -1073741772 )
    return 0;
  return(unsigned int)v1;
}

Referenced by:

ExpQuerySystemInformation