WheapClearPoison

NTSTATUS __stdcall WheapClearPoison(PPHYSICAL_ADDRESS StartAddress){
  NTSTATUS v2; 
  VOID *v3; 
  _LARGE_INTEGER StartAddressa; 
  _LARGE_INTEGER NumberOfBytes; 
  int Src[8]; 
  LONGLONG QuadPart; 

  StartAddressa = *StartAddress;
  StartAddressa.anonymous_0.LowPart |= 1u;
  NumberOfBytes.QuadPart = 4096i64;
  if( MmRemovePhysicalMemory(&StartAddressa, &NumberOfBytes) < 0 )
    return -1073741823;
  v3 = MmMapIoSpaceEx(*StartAddress, 0x40ui64, 4ui64);
  if( v3 )
  {
    __asm { clzero }
    _mm_mfence();
    MmUnmapIoSpace(v3, 0x40ui64);
    v2 = 0;
  }
  else
  {
    v2 = -1073741823;
  }
  MmAddPhysicalMemory(StartAddress, &NumberOfBytes);
  if( v2 >= 0 && KeGetCurrentIrql() <= 2u )
  {
    QuadPart = StartAddress->QuadPart;
    Src[0] = 1733060695;
    Src[1] = 1;
    Src[2] = 40;
    Src[3] = 1;
    Src[5] = -2147483630;
    Src[4] = 541868360;
    Src[6] = 2;
    Src[7] = 8;
    WheaLogInternalEvent(Src);
  }
  return v2;
}

Referenced by:

WheapAttemptPhysicalPageOffline