NtDisableLastKnownGood

NTSTATUS __stdcall NtDisableLastKnownGood(){
  int CachedContextBaseKey; 
  VOID *Data; 
  UINT64 DataSize; 
  _UNICODE_STRING KeyName; 
  int v5; 
  PVOID Handle; 
  INT64 v7; 

  v5 = 0;
  *(_DWORD *)(&KeyName.MaximumLength + 1) = 0;
  v7 = 0i64;
  Handle = 0i64;
  if( KeGetCurrentThread()->PreviousMode != 1 )
    return -1073741790;
  if( !SeSinglePrivilegeCheck(*(_QWORD *)&SeTcbPrivilege, 1) )
    return -1073741727;
  CachedContextBaseKey = PnpCtxGetCachedContextBaseKey(
                           *(&stru_140CF2E80 + 607),
                           PNPCTX_BASE_KEY_TYPE_CONTROLSET,
                           (VOID **)&v7);
  if( CachedContextBaseKey >= 0 )
  {
    LODWORD(Data) = 0;
    KeyName.Buffer = (wchar_t *)L"Control\\Pnp";
    *(_DWORD *)&KeyName.Length = 1572886;
    CachedContextBaseKey = IopCreateRegistryKeyEx(&Handle, (PVOID)v7, &KeyName, 0xF003Fui64, (UINT64)Data, 0i64);
    if( CachedContextBaseKey >= 0 )
    {
      KeyName.Buffer = (wchar_t *)L"DisableLKG";
      LODWORD(DataSize) = 4;
      v5 = 1;
      *(_DWORD *)&KeyName.Length = 1441812;
      CachedContextBaseKey = ZwSetValueKey(Handle, &KeyName, 0i64, 4ui64, &v5, DataSize);
    }
    if( Handle )
      ZwClose((_HANDLE)Handle);
  }
  return CachedContextBaseKey;
}

Referenced by:

No references.