KiInitializeNxSupportDiscard

INT64 __stdcall KiInitializeNxSupportDiscard(){
  unsigned __int8 v0; 
  INT64 result; 
  KUSER_SHARED_DATA.MitigationPolicies = KUSER_SHARED_DATA.MitigationPolicies & 0xFC | 1;
  if( !strstr(*((CHAR **)KeLoaderBlock_0 + 27), "NOEXECUTE=ALWAYSON") )
  {
    if( strstr(*((CHAR **)KeLoaderBlock_0 + 27), "NOEXECUTE=OPTOUT") )
    {
      v0 = KUSER_SHARED_DATA.MitigationPolicies | 3;
    }
    else if( strstr(*((CHAR **)KeLoaderBlock_0 + 27), "NOEXECUTE=OPTIN")
           || !strstr(*((CHAR **)KeLoaderBlock_0 + 27), "NOEXECUTE=ALWAYSOFF")
           && (strstr(*((CHAR **)KeLoaderBlock_0 + 27), "NOEXECUTE")
            || !strstr(*((CHAR **)KeLoaderBlock_0 + 27), "EXECUTE")) )
    {
      v0 = KUSER_SHARED_DATA.MitigationPolicies & 0xFC | 2;
    }
    else
    {
      v0 = KUSER_SHARED_DATA.MitigationPolicies & 0xFC;
    }
    KUSER_SHARED_DATA.MitigationPolicies = v0;
  }
  if( (EDX(__cpuid(1, 0)) & 0x4000000) != 0 && (unsigned int)KiGetCpuVendor() == 2 )
    KiNxForceEnable = 1;
  LOBYTE(result) = KiIsNXSupported();
  if( (_BYTE)result )
  {
    result = __readmsr(0xC0000080) | 0x800;
    __writemsr(0xC0000080, result);
    LOBYTE(result) = 1;
    KUSER_SHARED_DATA.ProcessorFeatures[12] = 1;
  }
  return result;
}

Referenced by:

KiInitializeNXSupport