DbgkpWerIsFullLiveDumpDisabled

BOOL __stdcall DbgkpWerIsFullLiveDumpDisabled(){
  BOOL result; 
  void *KeyHandle; 
  ULONG ResultLength; 
  __int64 v3[2]; 
  struct _UNICODE_STRING ValueName; 
  struct _OBJECT_ATTRIBUTES ObjectAttributes; 
  __int128 KeyValueInformation; 
  int v7; 
  KeyHandle = 0i64;
  ResultLength = 0;
  HIDWORD(ObjectAttributes.RootDirectory) = 0;
  *(_QWORD *)(&ObjectAttributes.Length + 1) = 0i64;
  memset(&ObjectAttributes.Attributes + 1, 0, 20);
  v7 = 0;
  v3[1] = (__int64)L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\CrashControl\\FullLiveKernelReports";
  ValueName.Buffer = L"FullLiveReportsMax";
  ObjectAttributes.ObjectName = (_UNICODE_STRING *)v3;
  KeyValueInformation = 0i64;
  v3[0] = 11272362i64;
  *(_QWORD *)&ValueName.Length = 2490404i64;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 576;
  result = ZwOpenKey(&KeyHandle, 0x20019u, &ObjectAttributes);
  if( result >= 0 )
  {
    if( ZwQueryValueKey(KeyHandle, &ValueName, KeyValuePartialInformation, &KeyValueInformation, 0x14u, &ResultLength) >= 0
      && *(_QWORD *)((char *)&KeyValueInformation + 4) == 0x400000004i64 )
    {
      result = ZwClose(KeyHandle);
      LOBYTE(result) = HIDWORD(KeyValueInformation) == 0;
      return result;
    }
    result = ZwClose(KeyHandle);
  }
  LOBYTE(result) = 0;
  return result;
}

Referenced by:

DbgkCaptureLiveKernelDump
DbgkWerCaptureLiveKernelDump