PspJobIoRateVolumeEntryRemoveAll

VOID __stdcall PspJobIoRateVolumeEntryRemoveAll(_EJOB *Job, LIST_ENTRY *ListHead){
  INT64 *p_IoControlStateLock; 
  _RTL_RB_TREE *p_VolumeIoControlTree; 
  KIRQL v5; 
  RTL_BALANCED_NODE *Root; 
  unsigned __int64 v7; 
  $7D93978C745EB1C2D28075BAF55422B4 v8; 
  int v9; 
  RTL_BALANCED_NODE *v10; 
  unsigned __int64 v11; 
  RTL_BALANCED_NODE *v12; 
  unsigned __int64 v13; 
  p_IoControlStateLock = (INT64 *)&Job->IoControlStateLock;
  p_VolumeIoControlTree = &Job->VolumeIoControlTree;
  v5 = ExAcquireSpinLockExclusive(&Job->IoControlStateLock);
  Root = p_VolumeIoControlTree->Root;
  v7 = v5;
  if( (*(_BYTE *)&p_VolumeIoControlTree->0 & 1) != 0 && Root )
    Root = (RTL_BALANCED_NODE *)((unsigned __int64)p_VolumeIoControlTree ^ (unsigned __int64)Root);
  v8 = p_VolumeIoControlTree->0;
  v9 = *(_BYTE *)&v8 & 1;
  if( Root )
  {
    while( 1 )
    {
      while( 1 )
      {
        while( Root->Children[0] )
        {
          v10 = Root;
          if( v9 )
            Root = (RTL_BALANCED_NODE *)((unsigned __int64)Root->Children[0] ^ (unsigned __int64)Root);
          else
            Root = Root->Children[0];
          v10->Children[0] = 0i64;
        }
        v11 = (unsigned __int64)Root->Children[1];
        if( !v11 )
          break;
        v12 = Root;
        if( v9 )
          Root = (RTL_BALANCED_NODE *)(v11 ^ (unsigned __int64)Root);
        else
          Root = Root->Children[1];
        v12->Children[1] = 0i64;
      }
      v13 = Root->ParentValue & 0xFFFFFFFFFFFFFFFCui64;
      if( v9 && v13 )
        v13 ^= (unsigned __int64)Root;
      PspIoRateEntryVolumeDelete(Root, ListHead);
      if( !v13 )
        break;
      Root = (RTL_BALANCED_NODE *)v13;
    }
    v8 = p_VolumeIoControlTree->0;
  }
  p_VolumeIoControlTree->Root = 0i64;
  p_VolumeIoControlTree->Min = 0i64;
  if( (*(_BYTE *)&v8 & 1) != 0 )
    p_VolumeIoControlTree->0 = ($7D93978C745EB1C2D28075BAF55422B4)1;
  ExReleaseSpinLockExclusiveFromDpcLevel(p_IoControlStateLock);
  __writecr8(v7);
}

Referenced by:

PspJobIoRateControlDisable