EtwpTraceCachedStack

VOID __stdcall EtwpTraceCachedStack(UINT64 LoggerId, UINT64 DataCount, UINT64 Flag, INT64 a4){
  unsigned __int16 v4; 
  unsigned int v5; 
  int v7; 
  __int64 v8; 
  unsigned int v9; 
  INT64 *v10; 
  int v11; 
  int v12[33]; 
  INT64 v13; 

  v13 = a4;
  v12[0] = 0;
  v10 = &v13;
  v4 = 1;
  v11 = 8;
  v5 = DataCount;
  do
  {
    v7 = 32;
    if( *(_DWORD *)(a4 + 32) < 0x20u )
      v7 = *(_DWORD *)(a4 + 32);
    v8 = 2i64 * v4++;
    v12[2 * v8] = 0;
    (&v10)[v8] = (INT64 *)(a4 + 40);
    v12[2 * v8 - 1] = 8 * v7;
    a4 = *(_QWORD *)(a4 + 16);
  }
  while( a4 );
  v9 = 4195842;
  if( (_WORD)Flag == 6180 )
    v9 = 4194306;
  EtwpLogKernelEvent((__int64)&v10, (_ETW_SILODRIVERSTATE *)LoggerId, v5, v4, Flag, v9);
}

Referenced by:

EtwpDereferenceStackEntry
EtwpStackRundown