TlgAggregateFlush

VOID __fastcall TlgAggregateFlush(INT64 a1){
  INT64 v1; 
  void *v2; 
  if( *(void(__fastcall **)(const struct _GUID *, __int64, char, __int64, unsigned __int64, struct _EVENT_FILTER_DESCRIPTOR *, void *))(a1 + 40) == TlgAggregateInternalRegisteredProviderEtwCallback )
  {
    v1 = *(_QWORD *)(a1 + 48);
    if( KeGetCurrentIrql() >= 2u || (*((_DWORD *)KeGetPcr() + 3243) & 0x10001) != 0 )
    {
      v2 = *(void **)(v1 + 264);
      *(_BYTE *)(v1 + 372) = 1;
      TlgAggregateInternalFlushTimerCallbackKernelMode(*(PEX_TIMER *)(v1 + 360), v2);
    }
    else
    {
      LookUpTableFlushComplete(v1);
    }
  }
}

Referenced by:

CmFcShutdownSystem
CmpFlushTraceLoggingProvider