HalpMemoryErrorDeferredHandler

NTSTATUS __fastcall HalpMemoryErrorDeferredHandler(INT64 a1){
  bool v1; 
  unsigned __int64 v3; 
  NTSTATUS result; 
  __int64 v5; 
  *(_BYTE *)(a1 + 13) &= 0xFu;
  v1 = *(_BYTE *)(a1 + 14) == 0;
  v3 = *(_QWORD *)a1;
  if( v1 )
    result = WheaAttemptPhysicalPageOffline(v3 >> 12, 0, 1u);
  else
    result = WheaAttemptClearPoison(v3, 0);
  if( HalpHvWheaEnlightenedCpuManager )
  {
    if( result && qword_140C4A1D8 )
    {
      LOBYTE(v5) = 1;
      qword_140C4A1D8(a1, 0i64, v5);
    }
    if( *(_QWORD *)(a1 + 16) )
    {
      result = (int)qword_140C4A1C8;
      if( qword_140C4A1C8 )
        return qword_140C4A1C8();
    }
    else
    {
      return HalpHvSetMachineCheckRecoveryState(2i64);
    }
  }
  return result;
}

Referenced by:

HalpErrorDeferredHandler