EtwpUpdateGuidEnableInfo

__int64 __fastcall EtwpUpdateGuidEnableInfo(
        ULONG_PTR BugCheckParameter2,
        __int64 a2,
        __int64 a3,
        __int64 a4,
        __int64 a5){
  int v5; 
  unsigned int v9; 
  __int64 v10; 
  unsigned int v11; 
  unsigned __int8 v12; 
  ULONG_PTR v13; 
  __int64 v14; 
  __int64 v15; 
  __int64 v16; 
  int v17; 
  unsigned __int8 v19; 
  unsigned __int8 v20; 
  ULONG_PTR v21; 
  __int64 v22; 
  __int64 v23; 
  __int64 v24; 
  int v25; 
  unsigned __int8 v26; 
  __int128 v27; 
  __int128 v28; 
  __int128 v29; 
  __int128 v30; 
  v5 = *(_DWORD *)(a2 + 72);
  if( v5 == 1 )
  {
    *(_BYTE *)(BugCheckParameter2 + 91) ^= (*(_BYTE *)(BugCheckParameter2 + 91) ^ *(_BYTE *)(a2 + 112)) & 1;
    *(_BYTE *)(BugCheckParameter2 + 91) = *(_BYTE *)(BugCheckParameter2 + 91) & 1 | (2 * *(_BYTE *)(a2 + 107));
    *(_WORD *)(BugCheckParameter2 + 88) = *(_WORD *)(a2 + 104);
    *(_BYTE *)(BugCheckParameter2 + 90) = *(_BYTE *)(a2 + 106);
    *(_QWORD *)(BugCheckParameter2 + 80) = a3;
  }
  else if( !v5 && *(_WORD *)(BugCheckParameter2 + 88) == *(_WORD *)(a2 + 104) )
  {
    *(_BYTE *)(BugCheckParameter2 + 91) &= ~1u;
  }
  v9 = 0;
  v10 = 8i64;
  do
  {
    if( *(_DWORD *)(32 * (v9 + 4i64) + BugCheckParameter2)
      && *(_WORD *)(32i64 * v9 + BugCheckParameter2 + 134) == *(_WORD *)(a2 + 78) )
    {
      *(_QWORD *)&v28 = 0i64;
      v20 = 0;
      v21 = BugCheckParameter2 + 132;
      v22 = 32 * (v9 + 4i64);
      v23 = 0i64;
      v24 = -1i64;
      HIDWORD(v28) = 0;
      v25 = 0;
      *((_QWORD *)&v30 + 1) = -1i64;
      *(_OWORD *)(v22 + BugCheckParameter2) = *(_OWORD *)(a2 + 72);
      *(_OWORD *)(v22 + BugCheckParameter2 + 16) = *(_OWORD *)(a2 + 88);
      do
      {
        if( *(_DWORD *)(v21 - 4) )
        {
          v26 = v20;
          LODWORD(v28) = 1;
          if( v20 <= *(_BYTE *)v21 )
            v26 = *(_BYTE *)v21;
          v24 &= *(_QWORD *)(v21 + 20);
          v23 |= *(_QWORD *)(v21 + 12);
          v20 = v26;
          v25 |= *(_DWORD *)(v21 + 4);
          *((_QWORD *)&v30 + 1) = v24;
        }
        v21 += 32i64;
        --v10;
      }
      while( v10 );
      BYTE4(v28) = v20;
      DWORD2(v28) = v25;
      *(_BYTE *)a5 = 1 << v9;
      *(_QWORD *)&v30 = v23;
      *(_OWORD *)(BugCheckParameter2 + 96) = v28;
      *(_OWORD *)(BugCheckParameter2 + 112) = v30;
      EtwpUpdateFilterData(BugCheckParameter2, v9, a2, *(_DWORD *)(a2 + 72) == 0, a4);
      if( !*(_DWORD *)(a2 + 72) )
        EtwpUnreferenceGuidEntry((PVOID)BugCheckParameter2);
      return 0i64;
    }
    ++v9;
  }
  while( v9 < 8 );
  if( *(_DWORD *)(a2 + 72) )
  {
    v11 = 0;
    while( *(_DWORD *)(32 * (v11 + 4i64) + BugCheckParameter2) )
    {
      if( ++v11 >= 8 )
        return 3221225626i64;
    }
    *(_QWORD *)&v27 = 0i64;
    v12 = 0;
    v13 = BugCheckParameter2 + 132;
    v14 = 32 * (v11 + 4i64);
    v15 = 0i64;
    v16 = -1i64;
    HIDWORD(v27) = 0;
    v17 = 0;
    *((_QWORD *)&v29 + 1) = -1i64;
    *(_OWORD *)(v14 + BugCheckParameter2) = *(_OWORD *)(a2 + 72);
    *(_OWORD *)(v14 + BugCheckParameter2 + 16) = *(_OWORD *)(a2 + 88);
    do
    {
      if( *(_DWORD *)(v13 - 4) )
      {
        v19 = v12;
        LODWORD(v27) = 1;
        if( v12 <= *(_BYTE *)v13 )
          v19 = *(_BYTE *)v13;
        v16 &= *(_QWORD *)(v13 + 20);
        v15 |= *(_QWORD *)(v13 + 12);
        v12 = v19;
        v17 |= *(_DWORD *)(v13 + 4);
        *((_QWORD *)&v29 + 1) = v16;
      }
      v13 += 32i64;
      --v10;
    }
    while( v10 );
    BYTE4(v27) = v12;
    DWORD2(v27) = v17;
    *(_BYTE *)a5 = 1 << v11;
    *(_QWORD *)&v29 = v15;
    *(_OWORD *)(BugCheckParameter2 + 96) = v27;
    *(_OWORD *)(BugCheckParameter2 + 112) = v29;
    EtwpUpdateFilterData(BugCheckParameter2, v11, a2, *(_DWORD *)(a2 + 72) == 0, a4);
    EtwpReferenceGuidEntry((_ETW_GUID_ENTRY *)BugCheckParameter2);
    return 0i64;
  }
  return 3221226021i64;
}

Referenced by:

EtwpEnableGuid