PfpLogEventRequest

INT64 __fastcall PfpLogEventRequest(INT64 *a1){
  unsigned int v2; 
  unsigned int v3; 
  INT64 v5; 
  UINT64 DefaultPagePriority; 
  int SystemInformation; 
  if( (*(_DWORD *)a1 & 0x1Fu) - 2 <= 1 )
  {
    v5 = a1[1];
    *(_OWORD *)v5 = xmmword_140C4FC10;
    *(_QWORD *)(v5 + 16) = *(_QWORD *)byte_140C4FC20;
    if( (*(_DWORD *)a1 & 0x1F) == 2 )
      DefaultPagePriority = (*(_DWORD *)(v5 + 24) >> 5) & 7;
    else
      DefaultPagePriority = (unsigned int)MmGetDefaultPagePriority();
    PfTSetTracingPriority(DefaultPagePriority);
  }
  if( (*(_BYTE *)a1 & 0x1F) == 27 && (*(_DWORD *)(a1[1] + 8) & 3) == 1 )
    _InterlockedAnd(&dword_140CEBED4, 0xFFFFFFFE);
  v2 = *(_DWORD *)a1;
  v3 = dword_140C5001C
     + ((((KUSER_SHARED_DATA.TickCountMultiplier * (unsigned __int64)KUSER_SHARED_DATA.ReservedTickCountOverlay[1]) << 8)
       + ((KUSER_SHARED_DATA.TickCountMultiplier * (unsigned __int64)KUSER_SHARED_DATA.TickCount.LowPart) >> 24)) >> 10);
  if( (*(_DWORD *)a1 & 0x20) != 0 )
  {
    SystemInformation = (*(_DWORD *)a1 >> 6) & 1;
    MmIssueMemoryListCommand(&SystemInformation, 4ui64, 0);
    PfGenerateTrace((INT64)&Thread, 0i64);
    v2 = *(_DWORD *)a1;
  }
  return PfLogEvent(v2 & 0x1F, v3, (const VOID *)a1[1], v2 >> 7);
}

Referenced by:

PfSetSuperfetchInformation