MiReferenceAweHandle

NTSTATUS __stdcall MiReferenceAweHandle(_HANDLE Handle, INT64 a2){
  INT8 v2; 
  PVOID *v3; 
  PVOID *v4; 
  _QWORD *v5; 
  INT8 v6; 
  VOID *v7; 
  NTSTATUS result; 
  _CONTROL_AREA *v9; 
  int v10; 
  VOID *v11; 
  NTSTATUS v12; 
  UINT64 Tag; 
  UINT64 Taga; 
  PVOID Object; 
  PVOID v16; 
  _QWORD *v17; 

  *v3 = 0i64;
  v4 = v3;
  v5 = v17;
  v6 = v2;
  v16 = 0i64;
  v7 = *(VOID **)&Handle;
  Object = 0i64;
  *v17 = 0i64;
  if( *(_QWORD *)&Handle == -1i64 )
    return 0;
  LODWORD(Tag) = 1750101325;
  if( ObReferenceObjectByHandleWithTag(*(VOID **)&Handle, a2, MmSectionObjectType, v2, Tag, &Object, 0i64) < 0 )
  {
    LODWORD(Taga) = 1750101325;
    result = ObReferenceObjectByHandleWithTag(v7, 8ui64, (_OBJECT_TYPE *)PsProcessType, v6, Taga, &v16, 0i64);
    if( result >= 0 )
      *v4 = v16;
  }
  else
  {
    v9 = MiSectionControlArea((_SECTION *)Object);
    LOBYTE(v10) = MiAweControlArea((INT64)v9);
    if( v10 )
    {
      *v5 = v11;
      return v12;
    }
    else
    {
      ObfDereferenceObjectWithTag(v11, 0x68506D4Dui64);
      return -1073741816;
    }
  }
  return result;
}

Referenced by:

MiAllocateUserPhysicalPages
MiCreateUserPhysicalView
NtFreeUserPhysicalPages