FsRtlPrivateInsertExclusiveLock

VOID __stdcall FsRtlPrivateInsertExclusiveLock(_LOCK_QUEUE *LockQueue, PRTL_SPLAY_LINKS *NewLock){
  _RTL_SPLAY_LINKS *FirstOverlappingExclusiveNode; 
  UINT8 v5; 
  _RTL_SPLAY_LINKS *v6; 

  v6 = 0i64;
  v5 = 0;
  FirstOverlappingExclusiveNode = FsRtlFindFirstOverlappingExclusiveNode(
                                    *((_RTL_SPLAY_LINKS **)LockQueue + 2),
                                    (_LARGE_INTEGER *)NewLock + 3,
                                    (_LARGE_INTEGER *)NewLock + 8,
                                    &v6,
                                    &v5);
  NewLock[1] = 0i64;
  NewLock[2] = 0i64;
  *NewLock = (PRTL_SPLAY_LINKS)NewLock;
  if( !FirstOverlappingExclusiveNode )
  {
    FirstOverlappingExclusiveNode = v6;
    if( !v6 )
    {
      *((_QWORD *)LockQueue + 2) = NewLock;
      return;
    }
    if( !v5 )
      goto LABEL_5;
LABEL_7:
    FirstOverlappingExclusiveNode->LeftChild = (_RTL_SPLAY_LINKS *)NewLock;
    goto LABEL_6;
  }
  if( FirstOverlappingExclusiveNode->RightChild )
  {
    if( FirstOverlappingExclusiveNode->LeftChild )
      FirstOverlappingExclusiveNode = RtlRealSuccessor(FirstOverlappingExclusiveNode);
    goto LABEL_7;
  }
LABEL_5:
  FirstOverlappingExclusiveNode->RightChild = (_RTL_SPLAY_LINKS *)NewLock;
LABEL_6:
  *NewLock = FirstOverlappingExclusiveNode;
}

Referenced by:

FsRtlPrivateInsertLock