ExQueryBigPoolTag
INT64 __stdcall ExQueryBigPoolTag(UINT64 a1, _DWORD *a2){
int v4;
unsigned __int64 v5;
__int64 v6;
UINT64 v7;
INT64 result;
if( !PoolBigPageTable || !PoolBigPageTableSize )
return 0i64;
v4 = 1;
v5 = ((int)PoolBigPageTableSize - 1) & ((40543 * (unsigned int)(a1 >> 12)) ^ ((40543
* (unsigned __int64)(unsigned int)(a1 >> 12)) >> 32));
while( 1 )
{
v6 = PoolBigPageTable + 24 * v5;
v7 = *(_QWORD *)v6;
if( (*(_QWORD *)v6 & 1) == 0 && a1 >= v7 && a1 < *(_QWORD *)(v6 + 16) + v7 )
break;
v5 = (unsigned int)(v5 + 1);
if( (unsigned int)v5 >= (unsigned __int64)PoolBigPageTableSize )
{
if( !v4 )
return 0i64;
v5 = 0i64;
v4 = 0;
}
}
if( !v6 )
return 0i64;
result = 1i64;
*a2 = *(_DWORD *)(v6 + 8);
return result;
}Referenced by:
sub_1403EA874