MiGetWsAndMakePageTablesNx

VOID __fastcall MiGetWsAndMakePageTablesNx(_BYTE *a1){
  unsigned __int64 PxeSelfRef; 
  INT64 v2; 
  char *v3; 
  UINT8 v4; 
  INT64 v5; 
  INT64 v6; 
  PxeSelfRef = (unsigned __int64)MmGetPxeSelfRef();
  v2 = *((_QWORD *)KeGetCurrentThread() + 23) + 1664i64;
  v3 = (char *)MmGetPteBase() + ((PxeSelfRef >> 9) & 0x7FFFFFFFF8i64);
  v4 = MiLockWorkingSetShared(v2);
  MiLockPageTableInternal(v2, (UINT64)v3, 0i64);
  v5 = MI_READ_PTE_LOCK_FREE(PxeSelfRef);
  MiPerformSafePdeWrite(v6, (INT64 *)PxeSelfRef, v5, 2);
  MiUnlockPageTableInternal(v2, (UINT64)v3);
  MiUnlockWorkingSetShared(v2, v4);
  KeFlushTb(1i64, 0);
}

Referenced by:

MmInitializeHandBuiltProcess2