SmHpChunkHeapCleanup
VOID __fastcall SmHpChunkHeapCleanup(INT64 a1){
unsigned int v1;
INT64 i;
__int64 v3;
__int64 v4;
_WORD *v5;
v1 = 1;
for( i = a1; v1 < *(_DWORD *)(i + 256); ++v1 )
{
_BitScanReverse((unsigned int *)&v4, v1);
v5 = (_WORD *)(*(_QWORD *)(i + 8 * v4) + 16 * (v1 ^ (unsigned __int64)(unsigned int)(1 << v4)));
if( *(_QWORD *)v5 )
SmHpBufferCleanup(i, v5);
}
v3 = 32i64;
do
{
if( *(_QWORD *)i )
ExFreePoolWithTag(*(PVOID *)i, 0);
i += 8i64;
--v3;
}
while( v3 );
}Referenced by:
ST_STORE::StDmCleanup
ST_STORE::StDmStart