KeQuerySecureSpeculationInformation

NTSTATUS __stdcall KeQuerySecureSpeculationInformation(VOID *a1, size_t Size){
  _DWORD *v2; 
  _DWORD *v3; 
  __int16 SecureSpeculationControlInformation; 
  unsigned int v8; 

  v3 = v2;
  SecureSpeculationControlInformation = VslGetSecureSpeculationControlInformation();
  *v3 = 8;
  if( Size < 4 )
    return -1073741820;
  memset(a1, 0i64, Size);
  if( (SecureSpeculationControlInformation & 1) != 0 )
    *(_DWORD *)a1 |= 1u;
  if( (SecureSpeculationControlInformation & 2) != 0 )
    *(_DWORD *)a1 |= 2u;
  if( (SecureSpeculationControlInformation & 4) != 0 )
  {
    *(_DWORD *)a1 |= 4u;
    v8 = *(_DWORD *)a1 & 0xFFFFFFF7;
LABEL_11:
    *(_DWORD *)a1 = v8;
    goto LABEL_12;
  }
  if( (SecureSpeculationControlInformation & 8) != 0 )
  {
    *(_DWORD *)a1 |= 8u;
    v8 = *(_DWORD *)a1 & 0xFFFFFFFB;
    goto LABEL_11;
  }
LABEL_12:
  if( (SecureSpeculationControlInformation & 0x2000) != 0 )
    *(_DWORD *)a1 |= 0x10u;
  return 0;
}

Referenced by:

ExpQuerySystemInformation