EtwpAcquireLoggerContext

VOID __fastcall EtwpAcquireLoggerContext(INT64 a1, INT16 a2, INT64 a3, INT64 a4, INT64 a5, INT64 a6, INT64 a7){
  unsigned int v7; 
  __int64 v8; 
  UINT64 v11; 
  __int64 v12; 
  struct _UNICODE_STRING UnicodeString; 
  v7 = *(unsigned __int8 *)(a1 + 4208);
  v8 = a2;
  *(_QWORD *)a3 = 0i64;
  v11 = 0xFFFFFFFFi64;
  v12 = *(_QWORD *)(v8 + 24) - *(_QWORD *)&SystemTraceControlGuid.Data1;
  if( !v12 )
    v12 = *(_QWORD *)(v8 + 32) - *(_QWORD *)SystemTraceControlGuid.Data4;
  if( !v12 )
    v11 = v7;
  if( (_DWORD)v11 != v7 && *(_WORD *)(v8 + 144) )
  {
    UnicodeString = 0i64;
    if( (int)EtwpCaptureString((_UNICODE_STRING *)(v8 + 144), &UnicodeString) >= 0 )
    {
      *(_QWORD *)a3 = EtwpAcquireLoggerContextByLoggerName(a1, &UnicodeString, 1);
      RtlFreeAnsiString(&UnicodeString);
    }
  }
  else
  {
    if( (_DWORD)v11 != -1 )
      goto LABEL_11;
    v11 = v7;
    if( *(_WORD *)(v8 + 8) != 0xFFFF )
      v11 = *(unsigned __int16 *)(v8 + 8);
    if( (unsigned int)v11 < *(_DWORD *)(a1 + 16) )
LABEL_11:
      *(_QWORD *)a3 = EtwpAcquireLoggerContextByLoggerId((_ETW_SILODRIVERSTATE *)a1, v11, 1u);
  }
}

Referenced by:

EtwpFlushTrace
EtwpStopTrace
EtwpUpdateTrace