KeDisableProfiling

NTSTATUS __stdcall KeDisableProfiling(_ETHREAD *Thread, _THREAD_PERFORMANCE_DATA *UserData){
  NTSTATUS result; 
  __int64 v4; 
  void *v5; 
  result = -1073741054;
  v4 = *((_QWORD *)Thread + 45);
  if( v4 )
  {
    if( *(_THREAD_PERFORMANCE_DATA **)(v4 + 8) == UserData )
    {
      _interlockedbittestandreset((volatile signed __int32 *)Thread, 0x11u);
      _interlockedbittestandreset((volatile signed __int32 *)Thread, 0x10u);
      v5 = (void *)*((_QWORD *)Thread + 45);
      *((_QWORD *)Thread + 45) = 0i64;
      ExFreePoolWithTag(v5, 0);
      return 0;
    }
    else
    {
      return -1073741811;
    }
  }
  return result;
}

Referenced by:

KeTerminateThread
NtSetInformationThread