KiInitializeNxSupportDiscard

VOID __stdcall KiInitializeNxSupportDiscard(){
  CHAR v0; 
  CHAR v1; 
  __int64 v2; 
  CHAR v3; 
  __int64 v4; 
  CHAR v5; 
  __int64 v6; 
  unsigned __int8 v7; 
  CHAR v8; 
  __int64 v9; 
  CHAR v10; 
  __int64 v11; 
  __int64 v12; 

  KUSER_SHARED_DATA.MitigationPolicies = KUSER_SHARED_DATA.MitigationPolicies & 0xFC | 1;
  strstr((UINT8 *)KeLoaderBlock_0->LoadOptions, (UINT8 *)"NOEXECUTE=ALWAYSON", v0);
  if( !v2 )
  {
    strstr((UINT8 *)KeLoaderBlock_0->LoadOptions, (UINT8 *)"NOEXECUTE=OPTOUT", v1);
    if( v4 )
    {
      v7 = KUSER_SHARED_DATA.MitigationPolicies | 3;
    }
    else
    {
      strstr((UINT8 *)KeLoaderBlock_0->LoadOptions, (UINT8 *)"NOEXECUTE=OPTIN", v3);
      if( v6
        || (strstr((UINT8 *)KeLoaderBlock_0->LoadOptions, (UINT8 *)"NOEXECUTE=ALWAYSOFF", v5), !v9)
        && ((strstr((UINT8 *)KeLoaderBlock_0->LoadOptions, (UINT8 *)"NOEXECUTE", v8), v11)
         || (strstr((UINT8 *)KeLoaderBlock_0->LoadOptions, (UINT8 *)"EXECUTE", v10), !v12)) )
      {
        v7 = KUSER_SHARED_DATA.MitigationPolicies & 0xFC | 2;
      }
      else
      {
        v7 = KUSER_SHARED_DATA.MitigationPolicies & 0xFC;
      }
    }
    KUSER_SHARED_DATA.MitigationPolicies = v7;
  }
  if( (EDX(__cpuid(1, 0)) & 0x4000000) != 0 && (unsigned int)KiGetCpuVendor() == 2 )
    byte_140C50A86 = 1;
  if( KiIsNXSupported() )
  {
    __writemsr(0xC0000080, __readmsr(0xC0000080) | 0x800);
    KUSER_SHARED_DATA.ProcessorFeatures[12] = 1;
  }
}

Referenced by:

KiInitializeNXSupport