ExMapHandleToPointer

_HANDLE_TABLE_ENTRY *__stdcall ExMapHandleToPointer(
        _HANDLE_TABLE *HandleTable,
        VOID *Handle,
        VOID *orig,
        INT64 orig_size,
        const VOID *decode_size,
        INT64 comp_size,
        PVOID comp){
  _HANDLE_TABLE_ENTRY *v8; 
  INT64 LowValue; 

  if( ((unsigned __int16)Handle & 0x3FC) == 0 )
    return 0i64;
  v8 = ExpLookupHandleTableEntry(HandleTable, (_EXHANDLE)Handle);
  if( !v8 )
    return 0i64;
  do
  {
    while( 1 )
    {
      _m_prefetchw(v8);
      LowValue = v8->LowValue;
      if( (v8->LowValue & 1) != 0 )
        break;
      if( !LowValue )
        return 0i64;
      ExpBlockOnLockedHandleEntry(HandleTable, v8, LowValue);
    }
  }
  while( LowValue != _InterlockedCompareExchange64(&v8->VolatileLowValue, LowValue - 1, LowValue) );
  return v8;
}

Referenced by:

ObQueryObjectAuditingByHandle
ObSetHandleAttributes
ObpCloseHandle
PspClearProcessThreadCidRefs
PspJobDelete
PspThreadDelete
RtlpInsertStringAtom