MiAddSecureEntry

_DWORD *__fastcall MiAddSecureEntry(__int64 a1, __int64 a2, __int64 a3, int a4, char a5){
  int v9; 
  _DWORD *PoolMm; 
  _DWORD *v11; 
  if( (*(_DWORD *)(a1 + 48) & 8) != 0 && ((a5 & 1) != 0 || MiLocateExclusiveSecure((_MMVAD_SHORT *)a1)) )
    return 0i64;
  LOWORD(v9) = MmGetCurrentProcessorColor();
  PoolMm = ExAllocatePoolMm(64i64, 0x48ui64, 0x65536D4Dui64, v9 | 0x80000000);
  v11 = PoolMm;
  if( !PoolMm )
    return 0i64;
  PoolMm[16] = 2;
  *((_QWORD *)PoolMm + 1) = a2;
  *((_QWORD *)PoolMm + 2) = a3;
  if( (a4 & 1) != 0 )
  {
    LODWORD(a2) = a2 | 8;
    goto LABEL_8;
  }
  if( (a4 & 4) != 0 )
  {
    LODWORD(a2) = a2 | 0xA;
    goto LABEL_8;
  }
  if( (a4 & 2) != 0 )
  {
    LODWORD(a2) = a2 | 9;
LABEL_8:
    PoolMm[2] = a2;
  }
  if( (a5 & 1) != 0 )
  {
    LODWORD(a2) = a2 | 0x20;
    PoolMm[2] = a2;
  }
  if( (a5 & 4) != 0 )
  {
    LODWORD(a2) = a2 | 0x40;
    PoolMm[2] = a2;
  }
  if( (a5 & 8) != 0 )
  {
    LODWORD(a2) = a2 | 0x80;
    PoolMm[2] = a2;
  }
  if( a4 < 0 )
  {
    LODWORD(a2) = a2 | 4;
    PoolMm[2] = a2;
  }
  if( (a4 & 0x40000000) != 0 )
  {
    LODWORD(a2) = a2 | 0x10;
    PoolMm[2] = a2;
  }
  if( (a4 & 0x20000000) != 0 )
    PoolMm[2] = a2 | 0x100;
  MiInsertVadEvent((_MMVAD_SHORT *)a1, (_MI_VAD_EVENT_BLOCK *)PoolMm, 1ui64);
  MiSetVadFlags(a1, 1, 1);
  return v11;
}

Referenced by:

MiAllocateNewSubAllocatedRegion
MiAllocateVad
MiCloneNoChange
MiMapLockedPagesInUserSpace
MiMapViewOfDataSection
MiMapViewOfImageSection
MiReserveUserMemory
MiSecureVad
MmSecureVirtualMemoryAgainstWrites