PspJobIoRateVolumeEntryRemove

_RTL_BALANCED_NODE *__fastcall PspJobIoRateVolumeEntryRemove(_EJOB *Job, UINT64 VolumeKey){
  INT64 *v2; 
  UINT64 *v4; 
  _RTL_BALANCED_NODE *v5; 
  unsigned __int8 v6; 
  UINT64 v7; 
  unsigned __int64 v8; 
  int v9; 
  NTSTATUS v10; 
  UINT64 v11; 

  v2 = (INT64 *)((char *)Job + 1456);
  v4 = (UINT64 *)((char *)Job + 1464);
  v5 = 0i64;
  v6 = ExAcquireSpinLockExclusive((INT64 *)Job + 182);
  v7 = *v4;
  v8 = v6;
  if( (v4[1] & 1) != 0 && v7 )
    v7 ^= (unsigned __int64)v4;
  v9 = v4[1] & 1;
  if( v7 )
  {
    do
    {
      v10 = MiLockTrackerCompare(VolumeKey, v7);
      if( v10 >= 0 )
      {
        if( v10 <= 0 )
          break;
        v11 = *(_QWORD *)(v7 + 8);
      }
      else
      {
        v11 = *(_QWORD *)v7;
      }
      if( v9 && v11 )
        v7 ^= v11;
      else
        v7 = v11;
    }
    while( v7 );
    if( v7 )
    {
      RtlRbRemoveNode(v4, v7);
      v5 = (_RTL_BALANCED_NODE *)v7;
      *(_QWORD *)(v7 + 16) = -1i64;
    }
  }
  ExReleaseSpinLockExclusiveFromDpcLevel(v2);
  __writecr8(v8);
  return v5;
}

Referenced by:

PspSetJobIoRateControlForVolume