WheapDeferredRecoveryServiceWorker

NTSTATUS __stdcall WheapDeferredRecoveryServiceWorker(){
  unsigned __int8 v0; 
  __int64 v1; 
  unsigned __int64 v2; 
  signed __int32 v3; 
  bool v4; 
  NTSTATUS result; 

  do
  {
    v0 = KeAcquireSpinLockRaiseToDpc((UINT64 *)&WheapDeferredInternalLogsEventLock + 11);
    v1 = WheaPassiveDrsList;
    v2 = v0;
    WheaPassiveDrsList = *(_QWORD *)WheaPassiveDrsList;
    KxReleaseSpinLock((UINT64 *)&WheapDeferredInternalLogsEventLock + 11);
    __writecr8(v2);
    _InterlockedExchange((volatile __int32 *)(v1 + 8), 0);
    (*(void(__fastcall **)(__int64, _QWORD))(v1 + 16))(v1, *(_QWORD *)(v1 + 32));
    v3 = _InterlockedExchangeAdd(&WheaPassiveDrsItemsToProcess, 0xFFFFFFFF);
    v4 = v3 <= 1;
    result = v3 - 1;
  }
  while( !v4 );
  return result;
}

Referenced by:

No references.