MiAllocateZeroPageDecisionTraceBuffer
_DWORD *__fastcall MiAllocateZeroPageDecisionTraceBuffer(INT64 a1, UINT64 a2){
_DWORD *v2;
unsigned __int64 v3;
__int64 v4;
__int64 v5;
__int64 *v6;
_QWORD *v7;
unsigned __int64 v8;
_DWORD *v9;
v2 = 0i64;
v3 = 0i64;
v4 = 2i64;
v5 = *(_QWORD *)(a1 + 16) + 4544i64 * (unsigned int)a2;
v6 = MiLargePageSizes;
v7 = (_QWORD *)(v5 + 8);
do
{
if( *v7 )
v3 += *v7 * *v6;
v7 += 134;
++v6;
--v4;
}
while( v4 );
if( !v3 )
return 0i64;
v8 = v3 >> 12;
if( 16i64 * (unsigned int)v8 )
{
LODWORD(v9) = MiAllocatePool((struct _SLIST_ENTRY *)0x40);
v2 = v9;
if( v9 )
{
v9[1] = 0;
*v9 = v8;
v9[2] = 1;
}
}
return v2;
}Referenced by:
MiZeroBootLargePages