PspFreeStorage
INT64 __fastcall PspFreeStorage(INT64 a1){
_QWORD *v2;
__int64 v3;
_QWORD *v4;
_QWORD *v5;
__int64 v6;
INT64 result;
v2 = (_QWORD *)(a1 + 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 **)(a1 + 512);
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((PVOID)a1, 0x74537350u);
return result;
}Referenced by:
PspCreateSilo
PspJobDeleteStorageArrays