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