EtwpGetPidDemuxList

INT64 __fastcall EtwpGetPidDemuxList(INT64 a1, INT64 a2){
  INT64 v2; 
  int v3; 
  int v4; 
  INT64 v5; 
  UINT64 v7; 
  LODWORD(v7) = a1;
  v2 = *(_QWORD *)a2;
  if( (*(_BYTE *)(a2 + 8) & 1) != 0 && v2 )
    v2 ^= a2;
  v3 = *(_BYTE *)(a2 + 8) & 1;
  while( v2 )
  {
    v4 = PidNodeCompare(&v7, v2);
    if( v4 >= 0 )
    {
      if( v4 <= 0 )
        return v2;
      v5 = *(_QWORD *)(v2 + 8);
    }
    else
    {
      v5 = *(_QWORD *)v2;
    }
    if( v3 && v5 )
      v2 ^= v5;
    else
      v2 = v5;
  }
  return v2;
}

Referenced by:

EtwpGetPrivateSessionTraceHandle