FsRtlPrivateCheckForExclusiveLockAccess

CHAR __fastcall FsRtlPrivateCheckForExclusiveLockAccess(INT64 a1, LARGE_INTEGER *a2){
  RTL_SPLAY_LINKS *v4; 
  _RTL_SPLAY_LINKS *v5; 
  _RTL_SPLAY_LINKS *FirstOverlappingSharedNode; 
  RTL_SPLAY_LINKS *v7; 
  _RTL_SPLAY_LINKS *v8; 
  __int64 v10; 
  _QWORD *v11; 
  PRTL_SPLAY_LINKS Links; 
  v4 = 0i64;
  Links = 0i64;
  v5 = *(_RTL_SPLAY_LINKS **)(a1 + 8);
  if( v5 )
  {
    FirstOverlappingSharedNode = FsRtlFindFirstOverlappingSharedNode(v5, a2, a2 + 5, &Links, 0i64);
    if( FirstOverlappingSharedNode )
    {
      v11 = LOBYTE(FirstOverlappingSharedNode[-1].LeftChild) ? FsRtlFindFirstOverlapInNode(
                                                                 &FirstOverlappingSharedNode[-1].Parent,
                                                                 (unsigned __int64 *)&a2->QuadPart,
                                                                 (unsigned __int64 *)&a2[5].QuadPart) : FirstOverlappingSharedNode[-1].Parent;
      if( v11 && (a2[1].QuadPart || v11[2]) )
        return 0;
    }
    v4 = Links;
    if( Links )
    {
      v7 = RtlSplay(Links);
      v4 = 0i64;
      *(_QWORD *)(a1 + 8) = v7;
      Links = 0i64;
    }
  }
  v8 = *(_RTL_SPLAY_LINKS **)(a1 + 16);
  if( v8 )
  {
    FsRtlFindFirstOverlappingExclusiveNode(v8, a2, a2 + 5, &Links, 0i64);
    if( !v10 || !a2[1].QuadPart && !*(_QWORD *)(v10 + 32) )
    {
      v4 = Links;
      goto LABEL_6;
    }
    return 0;
  }
LABEL_6:
  if( v4 )
    *(_QWORD *)(a1 + 16) = RtlSplay(v4);
  return 1;
}

Referenced by:

FsRtlPrivateCheckWaitingLocks
FsRtlPrivateLock