EtwpCovSampCaptureApc

_ETHREAD *__fastcall EtwpCovSampCaptureApc(__int64 a1, _QWORD *a2, __int64 *a3, UINT64 *a4){
  __int64 v4; 
  __int64 v5; 
  UINT64 v6; 
  unsigned __int8 v7; 
  unsigned __int64 v8; 
  INT64 v9; 
  INT64 v10; 
  _ETHREAD *result; 
  int v12[14]; 
  int v13; 

  v13 = 0;
  v4 = a1 - 56;
  v5 = *a3;
  v6 = *a4;
  *a2 = 0i64;
  _InterlockedOr(v12, 0);
  if( *(_DWORD *)(*(_QWORD *)(a1 - 56 + 48) + 40i64) )
  {
    v7 = KeAcquireSpinLockRaiseToDpc((UINT64 *)(v5 + 264));
    *(_QWORD *)(v4 + 64) = 0i64;
    v8 = v7;
    KxReleaseSpinLock((UINT64 *)(v5 + 264));
    __writecr8(v8);
  }
  v9 = *(&ExBootDevicesRemovedEvent + 153);
  memset((VOID *)(v4 + 56), 0i64, 0x58u);
  v10 = *(_QWORD *)(v4 + 48);
  *(_DWORD *)(v4 + 144) = 0;
  EtwpCovSampCaptureReleaseToLookaside(v9, v10, (PFN_WDFUSBTARGETDEVICECREATE *)v4);
  if( EtwpCovSampSafeForUserAddressCapture(1i64, (BOOL *)&v13) >= 0 && !v13 )
    EtwpCovSampCaptureUserAddresses((INT64 *)v5, v6);
  result = (_ETHREAD *)KeGetCurrentThread();
  _InterlockedAnd((volatile signed __int32 *)&result->1296, 0xFF7FFFFF);
  return result;
}

Referenced by:

No references.