EtwpFreeStackCache
void __fastcall EtwpFreeStackCache(PVOID P){
__int64 i;
_QWORD **v3;
_QWORD *v4;
_QWORD *v5;
_QWORD *v6;
PSLIST_ENTRY v7;
PSLIST_ENTRY v8;
for( i = 0i64; (unsigned int)i < *((_DWORD *)P + 2); i = (unsigned int)(i + 1) )
{
while( 1 )
{
v3 = (_QWORD **)((char *)P + 16 * i + 8 * i + 32);
v4 = *v3;
if( *v3 == v3 )
break;
if( (_QWORD **)v4[1] != v3 || (v5 = (_QWORD *)*v4, *(_QWORD **)(*v4 + 8i64) != v4) )
__fastfail(3u);
*v3 = v5;
v5[1] = v3;
do
{
v6 = (_QWORD *)v4[2];
ExFreePoolWithTag(v4, 0);
v4 = v6;
}
while( v6 );
}
}
v7 = RtlpInterlockedFlushSList((PSLIST_HEADER)((char *)P + 16));
while( v7 )
{
v8 = v7;
v7 = v7->Next;
ExFreePoolWithTag(v8, 0);
}
ExFreePoolWithTag(P, 0);
}Referenced by:
EtwpEnableStackCaching
EtwpFreeLoggerContext