PspFreeStorage
VOID __fastcall PspFreeStorage(VOID *P){
_QWORD *v2;
__int64 v3;
_QWORD *v4;
_QWORD *v5;
__int64 v6;
v2 = (char *)P + 8;
v3 = 32i64;
do
{
if( *v2 >= 2ui64 )
NT_ASSERT(
"(Storage->StorageArray[Index].Object == ((void *)0)) || (Storage->StorageArray[Index].Object == (PVOID)((ULONG_PTR)1))");
v2 += 2;
--v3;
}
while( v3 );
v4 = (_QWORD *)*((_QWORD *)P + 64);
if( v4 )
{
v5 = v4 + 1;
v6 = 256i64;
do
{
if( *v5 >= 2ui64 )
NT_ASSERT(
"(Storage->StorageExpansionArray[Index].Object == ((void *)0)) || (Storage->StorageExpansionArray[Index].Object"
" == (PVOID)((ULONG_PTR)1))");
v5 += 2;
--v6;
}
while( v6 );
ExFreePoolWithTag(v4, 0x78457350u);
}
ExFreePoolWithTag(P, 0x74537350u);
}Referenced by:
PspCreateSilo
PspJobDeleteStorageArrays