MiReferenceAweHandle

INT64 __stdcall MiReferenceAweHandle(HANDLE Handle, INT64 a2){
  KPROCESSOR_MODE v2; 
  PVOID *v3; 
  PVOID *v4; 
  _QWORD *v5; 
  KPROCESSOR_MODE v6; 
  INT64 result; 
  _CONTROL_AREA *v9; 
  void *v10; 
  unsigned int v11; 
  PVOID Object; 
  PVOID v13; 
  __int64 v14; 
  *v3 = 0i64;
  v4 = v3;
  v5 = (_QWORD *)v14;
  v6 = v2;
  v13 = 0i64;
  Object = 0i64;
  *(_QWORD *)v14 = 0i64;
  if( Handle == (HANDLE)-1i64 )
    return 0i64;
  if( ObReferenceObjectByHandleWithTag(Handle, a2, MmSectionObjectType, v2, 0x68506D4Du, &Object, 0i64) < 0 )
  {
    LODWORD(result) = ObReferenceObjectByHandleWithTag(
                        Handle,
                        8u,
                        (POBJECT_TYPE)PsProcessType,
                        v6,
                        0x68506D4Du,
                        &v13,
                        0i64);
    if( (int)result >= 0 )
      *v4 = v13;
  }
  else
  {
    v9 = MiSectionControlArea((_SECTION *)Object);
    if( MiAweControlArea((INT64)v9) )
    {
      *v5 = v10;
      return v11;
    }
    else
    {
      ObfDereferenceObjectWithTag(v10, 0x68506D4Dui64);
      return 3221225480i64;
    }
  }
  return result;
}

Referenced by:

MiAllocateUserPhysicalPages
MiCreateUserPhysicalView
NtFreeUserPhysicalPages