CmObReferenceObjectByHandle

NTSTATUS __stdcall CmObReferenceObjectByHandle(
        PVOID Handle,
        UINT64 DesiredAccess,
        INT8 AccessMode,
        PVOID *Object,
        OBJECT_HANDLE_INFORMATION *HandleInformation){
  _QWORD *v5; 
  NTSTATUS v6; 
  _ADAPTER_OBJECT *v7; 
  NTSTATUS v8; 
  __int64 v10; 
  _ADAPTER_OBJECT *v11; 
  _QWORD *v12; 

  v10 = 0i64;
  v11 = 0i64;
  v5 = v12;
  v6 = ObReferenceObjectByHandle(
         Handle,
         DesiredAccess,
         (_OBJECT_TYPE *)CmKeyObjectType,
         (INT8)Object,
         (VOID **)&v11,
         (_OBJECT_HANDLE_INFORMATION *)((unsigned __int64)&v10 & -(__int64)(v12 != 0i64)));
  v7 = v11;
  v8 = v6;
  if( v6 >= 0 )
  {
    if( *(_DWORD *)&v11->AdapterObject.DmaHeader.Version == 1803104306 )
    {
      *HandleInformation = (OBJECT_HANDLE_INFORMATION)v11;
      v7 = 0i64;
      if( v5 )
        *v5 = v10;
      v8 = 0;
    }
    else
    {
      v8 = -1073741816;
    }
  }
  if( v7 )
    HalPutDmaAdapter(v7);
  return v8;
}

Referenced by:

CmLoadDifferencingKey
CmpOpenSystemDriverHiveContext
CmpSaveBootControlSet
NtCompactKeys
NtCompressKey
NtDeleteKey
NtDeleteValueKey
NtFlushKey
NtLockRegistryKey
NtNotifyChangeMultipleKeys
NtQueryMultipleValueKey
NtRenameKey
NtReplaceKey
NtRestoreKey
NtSaveKeyEx
NtSaveMergedKeys
NtSetValueKey