EtwpGetPsmKeyExtendedHeaderItem

INT64 __fastcall EtwpGetPsmKeyExtendedHeaderItem(__int64 a1){
  __int64 v2; 
  __int64 v3; 
  struct DMA_ADAPTER *v4; 
  int v5; 
  UINT64 v6; 
  UINT8 SystemAppIdentifier; 
  UINT8 PackagedApplication; 
  UINT64 PsmKeySize; 
  SystemAppIdentifier = 0;
  PsmKeySize = 0i64;
  v2 = *((_QWORD *)KeGetCurrentThread() + 23);
  v3 = 8i64;
  v4 = (struct DMA_ADAPTER *)PsReferencePrimaryToken((PEPROCESS)v2);
  PsQueryProcessAttributesByToken(v4, &SystemAppIdentifier, &PackagedApplication);
  if( SystemAppIdentifier )
  {
    PsmKeySize = 466i64;
    v5 = EtwpQueryPsmKey(v4, (WCHAR *)(a1 + 8), &PsmKeySize);
    v6 = PsmKeySize;
    if( v5 < 0 )
      v6 = 0i64;
    v3 = v6 + 8;
  }
  else
  {
    LOWORD(v6) = PsmKeySize;
  }
  ObFastDereferenceObject((INT64 *)(v2 + 1208), v4);
  *(_DWORD *)(a1 + 2) = 9;
  *(_WORD *)(a1 + 6) = v6;
  *(_WORD *)a1 = (v3 + 7) & 0xFFF8;
  return memset(v3 + a1, 0i64);
}

Referenced by:

EtwpWriteUserEvent