EtwWriteString

NTSTATUS __stdcall EtwWriteString(UINT64 RegHandle, UINT8 Level, UINT64 Keyword, _GUID *ActivityId, WCHAR *String){
  unsigned int v8; 
  UINT64 v9; 
  __int64 v11; 
  __int64 v12; 
  __int64 v13; 
  char v14; 
  unsigned __int8 v15; 
  __int64 v16; 
  unsigned __int8 v17; 
  __int64 v18; 
  __int64 v19; 
  char v20; 
  unsigned __int8 v21; 
  __int64 v22; 
  __int64 v23; 
  __int64 v24; 
  __int64 v25; 
  int v26; 
  int v27; 
  __int64 v28[2]; 
  __int64 v29[2]; 
  __int128 v30; 

  v24 = 0i64;
  v8 = 0;
  *(_OWORD *)v29 = 0i64;
  v30 = 0i64;
  v9 = RegHandle & -(__int64)(RegHandle != 0);
  if( !v9 )
    return -1073741816;
  v11 = *(_QWORD *)((RegHandle & -(__int64)(RegHandle != 0)) + 0x68);
  v28[0] = 0i64;
  BYTE4(v28[0]) = Level;
  v28[1] = Keyword;
  v12 = (v11 + 28) & -(__int64)(v11 != 0);
  v25 = (__int64)String;
  v13 = -1i64;
  do
    ++v13;
  while( String[v13] );
  v14 = *(_BYTE *)((RegHandle & -(__int64)(RegHandle != 0)) + 0x64);
  v26 = 2 * v13 + 2;
  v27 = 0;
  if( v14
    && EtwpLevelKeywordEnabled(
         (_TRACE_ENABLE_INFO *)(*(_QWORD *)((RegHandle & -(__int64)(RegHandle != 0)) + 0x20) + 96i64),
         Level,
         Keyword) )
  {
    v8 = EtwpEventWriteFull(
           v16,
           v15,
           0,
           v8,
           (__int64)v28,
           4,
           0,
           (__int64)ActivityId,
           0i64,
           1,
           (__int64)&v25,
           0i64,
           (__int64)v29,
           0i64,
           *(_WORD *)(v9 + 98),
           v12,
           (__int64)&v24);
  }
  if( *(_BYTE *)(v9 + 101)
    && EtwpLevelKeywordEnabled((_TRACE_ENABLE_INFO *)(*(_QWORD *)(v9 + 40) + 96i64), Level, Keyword) )
  {
    v8 = EtwpEventWriteFull(
           *(_QWORD *)(v9 + 32),
           v17,
           0,
           0,
           (__int64)v28,
           4,
           0,
           (__int64)ActivityId,
           0i64,
           1,
           (__int64)&v25,
           0i64,
           (__int64)v29,
           v18,
           *(_WORD *)(v9 + 98),
           v12,
           (__int64)&v24);
  }
  v19 = *(_QWORD *)(v9 + 32);
  if( *(_QWORD *)(v19 + 400) )
  {
    v20 = *(_BYTE *)(v9 + 102);
    *(_OWORD *)v29 = 0i64;
    v30 = 0i64;
    if( v20 && EtwpLevelKeywordEnabled((_TRACE_ENABLE_INFO *)(*(_QWORD *)(v19 + 400) + 96i64), Level, Keyword) )
      v8 = EtwpEventWriteFull(
             v22,
             v21,
             0,
             0,
             (__int64)v28,
             4,
             0,
             (__int64)ActivityId,
             0i64,
             1,
             (__int64)&v25,
             0i64,
             (__int64)v29,
             0i64,
             *(_WORD *)(v9 + 98),
             v12,
             (__int64)&v24);
    if( *(_BYTE *)(v9 + 103) )
    {
      if( EtwpLevelKeywordEnabled(
             (_TRACE_ENABLE_INFO *)(*(_QWORD *)(*(_QWORD *)(v9 + 40) + 400i64) + 96i64),
             Level,
             Keyword) )
      {
        return EtwpEventWriteFull(
                 *(_QWORD *)(*(_QWORD *)(v9 + 32) + 400i64),
                 *(_BYTE *)(v9 + 101),
                 0,
                 0,
                 (__int64)v28,
                 4,
                 0,
                 (__int64)ActivityId,
                 0i64,
                 1,
                 (__int64)&v25,
                 0i64,
                 (__int64)v29,
                 v23,
                 *(_WORD *)(v9 + 98),
                 v12,
                 (__int64)&v24);
      }
    }
  }
  return v8;
}

Referenced by:

No references.