PspJobIoRateVolumeEntryInsert

INT64 __fastcall PspJobIoRateVolumeEntryInsert(INT64 a1, UINT64 a2){
  INT64 *v2; 
  INT64 v4; 
  KIRQL v5; 
  UINT64 v6; 
  unsigned __int64 v7; 
  unsigned __int64 v8; 
  bool v9; 
  int v10; 
  unsigned __int64 v11; 
  INT64 result; 
  v2 = (INT64 *)(a1 + 1456);
  v4 = a1 + 1464;
  v5 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)(a1 + 1456));
  v6 = *(_QWORD *)(a2 + 24);
  v7 = *(_QWORD *)v4;
  v8 = v5;
  if( (*(_BYTE *)(v4 + 8) & 1) != 0 && v7 )
    v7 ^= v4;
  v9 = 0;
  v10 = *(_BYTE *)(v4 + 8) & 1;
  if( v7 )
  {
    while( 1 )
    {
      if( (int)MiLockTrackerCompare(v6, v7) < 0 )
      {
        v11 = *(_QWORD *)v7;
        if( v10 )
        {
          if( !v11 )
            goto LABEL_16;
          v11 ^= v7;
        }
        if( !v11 )
        {
LABEL_16:
          v9 = 0;
          break;
        }
      }
      else
      {
        v11 = *(_QWORD *)(v7 + 8);
        if( v10 )
        {
          if( !v11 )
            goto LABEL_10;
          v11 ^= v7;
        }
        if( !v11 )
        {
LABEL_10:
          v9 = 1;
          break;
        }
      }
      v7 = v11;
    }
  }
  RtlRbInsertNodeEx((unsigned __int64 *)v4, v7, v9, a2);
  ExReleaseSpinLockExclusiveFromDpcLevel(v2);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(v8);
  return result;
}

Referenced by:

PspSetJobIoRateControlForVolume