EtwpTraceProcessorTrace

VOID *__fastcall EtwpTraceProcessorTrace(VOID **a1, UINT64 a2){
  _ETHREAD *v2; 
  int v3; 
  _ETHREAD *CurrentThread; 
  VOID *result; 
  _QWORD *v6; 
  _QWORD v7[2]; 
  int v8; 
  int v9; 
  __int64 v10; 
  __int128 v11; 
  int v12; 
  int v13; 
  v13 = 0;
  v11 = 0i64;
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  result = KeGetCurrentPrcb();
  if( *((_ETHREAD **)result + 3) != CurrentThread && (v3 & 0x1800) != 0 )
  {
    v7[0] = a1;
    v6 = a1[127];
    v12 = v3;
    if( !v2 )
      v2 = CurrentThread;
    v8 = *((_DWORD *)v2 + 286);
    v9 = *((_DWORD *)v2 + 288);
    v7[1] = *(_QWORD *)a2;
    v10 = v6[1];
    return(VOID *)(*(__int64(__fastcall **)(_QWORD, _QWORD *))(v6[2] + 16i64))(*v6, v7);
  }
  return result;
}

Referenced by:

EtwpLogContextSwapEvent
EtwpLogKernelEvent
EtwpLogSystemEventUnsafe