EtwpWriteProcessStarted

VOID __stdcall EtwpWriteProcessStarted(
        _EPROCESS *Process,
        const _ETW_OTHER_PROCESS_INFO *OtherInfo,
        const _ETW_PACKAGE_IDENTITY *PackageInfo,
        const _UNICODE_STRING *CommandLine,
        const _TOKEN_USER *TokenUser){
  _OBJECT_NAME_INFORMATION *ImageFileName; 
  _EPROCESS *v10; 
  __int64 v11; 
  int v12; 
  unsigned __int8 *Sid; 
  int v14; 
  int UniqueProcessId; 
  int InheritedFromUniqueProcessId; 
  NTSTATUS ProcessSessionId; 
  unsigned int ImageChecksum; 
  __int64 v19; 
  _LARGE_INTEGER CreateTime; 
  UINT64 ProcessStartKey; 
  unsigned __int64 SequenceNumber; 
  unsigned __int64 CreateInterruptTime; 
  __int64 v24; 
  _EVENT_DATA_DESCRIPTOR v25; 
  _LARGE_INTEGER *p_CreateTime; 
  __int64 v27; 
  int *p_UniqueProcessId; 
  __int64 v29; 
  int *p_InheritedFromUniqueProcessId; 
  __int64 v31; 
  NTSTATUS *p_ProcessSessionId; 
  __int64 v33; 
  int *v34; 
  __int64 v35; 
  __int64 v36; 
  int v37[2]; 
  UINT64 *p_ProcessStartKey; 
  __int64 v39; 
  unsigned __int64 *p_SequenceNumber; 
  __int64 v41; 
  unsigned __int64 *p_CreateInterruptTime; 
  __int64 v43; 
  __int64 *v44; 
  __int64 v45; 
  unsigned int *p_ImageChecksum; 
  __int64 v47; 
  __int64 *v48; 
  __int64 v49; 
  char v50[16]; 
  char v51[16]; 
  unsigned __int8 *v52; 
  int v53; 
  int v54; 
  int *v55; 
  __int64 v56; 
  wchar_t *Buffer; 
  int v58[2]; 

  ImageFileName = (_OBJECT_NAME_INFORMATION *)&EmptyUnicodeString;
  if( Process->SeAuditProcessCreationInfo.ImageFileName )
    ImageFileName = Process->SeAuditProcessCreationInfo.ImageFileName;
  if( *(&stru_140C00F40 + 1806) > 5u && tlgKeywordOn((__int64)&stru_140C00F40 + 7224, 3i64) )
  {
    CreateTime = Process->CreateTime;
    p_CreateTime = &CreateTime;
    UniqueProcessId = (int)Process->UniqueProcessId;
    p_UniqueProcessId = &UniqueProcessId;
    InheritedFromUniqueProcessId = (int)Process->InheritedFromUniqueProcessId;
    p_InheritedFromUniqueProcessId = &InheritedFromUniqueProcessId;
    v27 = 8i64;
    v29 = 4i64;
    v31 = 4i64;
    ProcessSessionId = PsGetProcessSessionId((INT64)Process);
    v33 = 4i64;
    p_ProcessSessionId = &ProcessSessionId;
    v35 = 2i64;
    v34 = v37;
    v36 = *((_QWORD *)ImageFileName + 1);
    v37[0] = *(_WORD *)ImageFileName;
    v37[1] = 0;
    ProcessStartKey = PsGetProcessStartKey((INT64)Process);
    p_ProcessStartKey = &ProcessStartKey;
    SequenceNumber = Process->SequenceNumber;
    p_SequenceNumber = &SequenceNumber;
    CreateInterruptTime = Process->CreateInterruptTime;
    p_CreateInterruptTime = &CreateInterruptTime;
    v39 = 8i64;
    v41 = 8i64;
    v43 = 8i64;
    LODWORD(v11) = MmGetSessionCreateTime(v10);
    v24 = v11;
    v45 = 8i64;
    v44 = &v24;
    ImageChecksum = OtherInfo->ImageChecksum;
    p_ImageChecksum = &ImageChecksum;
    LODWORD(v19) = OtherInfo->TimeDateStamp;
    v48 = &v19;
    v47 = 4i64;
    v49 = 4i64;
    tlgCreate1Sz_wchar_t((__int64)v50, &PackageInfo->PackageName[4]);
    tlgCreate1Sz_wchar_t((__int64)v51, &PackageInfo->ApplicationName[4]);
    if( TokenUser )
      Sid = (unsigned __int8 *)TokenUser->User.Sid;
    else
      Sid = (unsigned __int8 *)SeNullSid;
    v14 = Sid[1];
    v52 = Sid;
    v54 = v12;
    v56 = 2i64;
    v58[1] = v12;
    v53 = 4 * v14 + 8;
    v55 = v58;
    Buffer = CommandLine->Buffer;
    v58[0] = CommandLine->Length;
    tlgWriteTransfer_EtwWriteTransfer(
      (__int64)&stru_140C00F40 + 7224,
      (unsigned __int8 *)&dword_14002B85C,
      0i64,
      0i64,
      0x13u,
      &v25);
  }
}

Referenced by:

EtwTraceProcess