ViDevObjAdd

UINT8 __stdcall ViDevObjAdd(DEVICE_OBJECT *DeviceObject){
  UINT8 v1; 
  CHAR *v2; 
  UINT64 *v3; 
  __int128 v5; 
  v1 = 1;
  v5 = 0i64;
  if( ViDevObjInitialized )
  {
    v2 = VfAvlReserveNode((INT64)&ViDevObjAvl, (INT64)DeviceObject, 336i64);
    if( v2 )
    {
      *((_DWORD *)v2 + 4) = 0;
      VfAvlInitializeLockContext((INT64)&v5, 0i64);
      VfAvlInsertReservedTreeNode((INT64)&ViDevObjAvl, (INT64)&v5, v3);
      VfAvlCleanupLockContext((INT64)&v5);
      return v1;
    }
    _InterlockedExchange(&ViDevObjAllocationFailures, 1);
  }
  return 0;
}

Referenced by:

VerifierIoCreateDevice