PsIoRateControlReference

NTSTATUS __stdcall PsIoRateControlReference(
        PVOID Base,
        UINT8 MappedAsImage,
        UINT16 DirectoryEntry,
        UINT64 *Size,
        PVOID *RawDirectory){
  char *v5; 
  UINT64 *v8; 
  UINT64 v9; 
  UINT64 v10; 
  INT64 v11; 
  v5 = (char *)Base + 1400;
  v8 = (UINT64 *)DirectoryEntry;
  v9 = MappedAsImage;
  v10 = PspIoRateEntryIoControlReference((struct EX_RUNDOWN_REF *)Base + 175);
  *v8 = v10;
  if( v10 )
    *Size = *((_QWORD *)Base + 169);
  else
    v5 = 0i64;
  *RawDirectory = v5;
  v8[1] = 0i64;
  RawDirectory[1] = 0i64;
  v11 = *((_QWORD *)Base + 183);
  if( (*((_BYTE *)Base + 1472) & 1) != 0 )
  {
    if( !v11 )
      return v11;
    v11 ^= (unsigned __int64)Base + 1464;
  }
  if( v11 )
  {
    if( v9 )
    {
      v11 = PspJobIoRateVolumeEntryReference((INT64)Base, v9);
      if( v11 )
      {
        v8[1] = *(_QWORD *)(v11 + 40);
        Size[1] = *(_QWORD *)(v11 + 48);
        RawDirectory[1] = (PVOID)v11;
      }
    }
  }
  return v11;
}

Referenced by:

IoGetIoRateControl