TlgAggregateFlush

VOID __stdcall TlgAggregateFlush(INT64 a1){
  __int64 v1; 
  void *v2; 

  if( *(void(__fastcall **)(const struct _GUID *, __int64, char, __int64, unsigned __int64, struct _EVENT_FILTER_DESCRIPTOR *, _TLG_AGGR_SESSION *))(a1 + 40) == TlgAggregateInternalRegisteredProviderEtwCallback )
  {
    v1 = *(_QWORD *)(a1 + 48);
    if( KeGetCurrentIrql() >= 2u || (KeGetPcr()->Prcb._bf_0 & 0x10001) != 0 )
    {
      v2 = *(void **)(v1 + 264);
      *(_BYTE *)(v1 + 372) = 1;
      TlgAggregateInternalFlushTimerCallbackKernelMode(*(_EX_TIMER **)(v1 + 360), v2);
    }
    else
    {
      LookUpTableFlushComplete((_TLG_AGGR_SESSION *)v1);
    }
  }
}

Referenced by:

CmFcShutdownSystem
CmpFlushTraceLoggingProvider