PspQueryPooledQuotaLimits

INT64 __stdcall PspQueryPooledQuotaLimits(
        PVOID ProcessHandle,
        PVOID ProcessInformation,
        UINT64 ProcessInformationLength,
        UINT64 *ReturnLength,
        INT8 PreviousMode){
  int v6; 
  INT64 result; 
  unsigned __int64 *v10; 
  unsigned __int64 v11; 
  unsigned __int64 v12; 
  unsigned __int64 v13; 
  unsigned __int64 v14; 
  unsigned __int64 v15; 
  unsigned __int64 v16; 
  unsigned __int64 v17; 
  unsigned __int64 v18; 
  unsigned __int64 v19; 
  PVOID Object; 
  __int128 v21; 
  __int128 v22; 
  __int128 v23; 
  __int128 v24; 
  unsigned __int64 v25; 
  v6 = ProcessInformationLength;
  Object = 0i64;
  memset((INT64)&v21, 0i64);
  if( v6 != 72 )
    return 3221225476i64;
  LODWORD(result) = ObReferenceObjectByHandleWithTag(
                      ProcessHandle,
                      0x1000u,
                      (POBJECT_TYPE)PsProcessType,
                      PreviousMode,
                      0x79517350u,
                      &Object,
                      0i64);
  if( (int)result >= 0 )
  {
    v10 = (unsigned __int64 *)*((_QWORD *)Object + 173);
    v11 = v10[24];
    v12 = v10[16];
    *((_QWORD *)&v21 + 1) = v12;
    v13 = v10[17];
    v14 = v10[8];
    v15 = *v10;
    *(_QWORD *)&v23 = *v10;
    v16 = v10[1];
    v17 = v10[40];
    v18 = v10[32];
    *((_QWORD *)&v24 + 1) = v18;
    v19 = v10[33];
    if( v11 <= v12 )
      v11 = v12;
    *(_QWORD *)&v22 = v11;
    if( v14 <= v15 )
      v14 = v15;
    *((_QWORD *)&v23 + 1) = v14;
    if( v17 <= v18 )
      v17 = v18;
    v25 = v17;
    if( v13 <= v12 )
      v13 = v12;
    *(_QWORD *)&v21 = v13;
    if( v16 <= v15 )
      v16 = v15;
    *((_QWORD *)&v22 + 1) = v16;
    if( v19 <= v18 )
      v19 = v18;
    *(_QWORD *)&v24 = v19;
    ObfDereferenceObjectWithTag(Object, 0x79517350ui64);
    *(_OWORD *)ProcessInformation = v21;
    *((_OWORD *)ProcessInformation + 1) = v22;
    *((_OWORD *)ProcessInformation + 2) = v23;
    *((_OWORD *)ProcessInformation + 3) = v24;
    *((_QWORD *)ProcessInformation + 8) = v25;
    if( ReturnLength )
      *(_DWORD *)ReturnLength = 72;
    return 0i64;
  }
  return result;
}

Referenced by:

NtQueryInformationProcess