IopLiveDumpAllocateMappingResources
INT64 __fastcall IopLiveDumpAllocateMappingResources(INT64 a1){
unsigned int v1;
VOID *PoolWithTag;
unsigned int v4;
INT64 v6;
int v7;
__int64 i;
__int64 v9;
void *v10;
PMDL Mdl;
v1 = KeNumberProcessors_0;
PoolWithTag = ExAllocatePoolWithTag(NonPagedPoolNx, 16i64 * (unsigned int)KeNumberProcessors_0, 0x706D644Cui64);
v4 = 0;
*(_QWORD *)(a1 + 792) = PoolWithTag;
if( PoolWithTag )
{
memset((INT64)PoolWithTag, 0i64);
*(_DWORD *)(a1 + 784) = v1;
v7 = 0;
if( !v1 )
return v4;
for( i = 0i64; ; i += 16i64 )
{
v9 = *(_QWORD *)(a1 + 792);
MmAllocateDumpHibernateResources(0x10000ui64, v6);
*(_QWORD *)(i + v9) = v10;
if( !v10 )
break;
Mdl = IoAllocateMdl(v10, 0x10000u, 0, 0, 0i64);
*(_QWORD *)(i + v9 + 8) = Mdl;
if( !Mdl )
break;
if( ++v7 >= v1 )
return v4;
}
}
else
{
*(_DWORD *)(a1 + 784) = 0;
}
IopLiveDumpFreeMappingResources();
return(unsigned int)-1073741670;
}Referenced by:
IopLiveDumpAllocAndInitResources