VslpSkStopProfiling

INT64 __stdcall VslpSkStopProfiling(){
  NTSTATUS v0; 
  __int64 v1; 
  _QWORD *v2; 
  __int64 v3; 
  unsigned __int8 CurrentIrql; 
  INT64 result[14]; 
  memset((INT64)result, 0i64);
  v0 = VslpEnterIumSecureMode(2u, 76, 0i64, (INT64)result);
  if( v0 >= 0 )
  {
    VslpUnlockPagesForTransfer((INT64 **)&VslpProfilingTransfer);
    memset((INT64)&VslpProfilingTransfer, 0i64);
    KeCancelTimer((PKTIMER)VslpFlushTimer);
    v1 = *((unsigned int *)VslpEventLog + 2);
    v2 = (char *)VslpEventLog + 8 * v1 + 24;
    if( (_DWORD)v1 )
    {
      v3 = -1 * v1;
      do
      {
        *v2 = ~v2[v3];
        ++v2;
        --v1;
      }
      while( v1 );
    }
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(2ui64);
    VslpFlushBufferArray();
    __writecr8(CurrentIrql);
    ExWaitForRundownProtectionRelease((EX_RUNDOWN_REF *)&VslpBufferFlushRundown);
    if( VslpEventLog )
    {
      ExFreePoolWithTag(VslpEventLog, 0x54736D56u);
      VslpEventLog = 0i64;
    }
    VslpLoggerId = 0i64;
  }
  else
  {
    KeCancelTimer((PKTIMER)VslpFlushTimer);
  }
  return(unsigned int)v0;
}

Referenced by:

VslpEtwClassicCallback