FsRtlFindFirstOverlappingExclusiveNode

VOID __stdcall FsRtlFindFirstOverlappingExclusiveNode(
        _RTL_SPLAY_LINKS *Tree,
        _LARGE_INTEGER *StartingByte,
        _LARGE_INTEGER *EndingByte,
        _RTL_SPLAY_LINKS **LastEdgeNode,
        UINT8 *GreaterThan){
  _RTL_SPLAY_LINKS *RightChild; 
  _RTL_SPLAY_LINKS *QuadPart; 
  _RTL_SPLAY_LINKS *Parent; 
  if( LastEdgeNode )
    *LastEdgeNode = 0i64;
  if( GreaterThan )
    *GreaterThan = 0;
  while( Tree )
  {
    RightChild = Tree[2].RightChild;
    QuadPart = (_RTL_SPLAY_LINKS *)StartingByte->QuadPart;
    if( (unsigned __int64)RightChild < StartingByte->QuadPart
      || (Parent = Tree[1].Parent, *(_OWORD *)&Tree[1].Parent == 0i64) )
    {
      if( RightChild == (_RTL_SPLAY_LINKS *)EndingByte->QuadPart && Tree[1].Parent == QuadPart )
      {
        if( LastEdgeNode )
          *LastEdgeNode = Tree;
        if( GreaterThan )
          *GreaterThan = 0;
        goto LABEL_22;
      }
      if( LastEdgeNode )
        *LastEdgeNode = Tree;
      if( GreaterThan )
        *GreaterThan = 0;
      Tree = Tree->RightChild;
    }
    else
    {
      if( (unsigned __int64)Parent <= EndingByte->QuadPart
        && (EndingByte->QuadPart != -1 || QuadPart)
        && Parent <= QuadPart )
      {
        return;
      }
      if( LastEdgeNode )
        *LastEdgeNode = Tree;
      if( GreaterThan )
        *GreaterThan = 1;
LABEL_22:
      Tree = Tree->LeftChild;
    }
  }
}

Referenced by:

FsRtlCheckNoExclusiveConflict
FsRtlFastUnlockSingleExclusive
FsRtlGetNextFileLock
FsRtlPrivateCheckForExclusiveLockAccess
FsRtlPrivateCheckForSharedLockAccess
FsRtlPrivateInsertExclusiveLock