SmProcessStoreMemoryPriorityRequest

INT64 __fastcall SmProcessStoreMemoryPriorityRequest(VOID *UserData, UINT64 UserDataLength, CHAR RequestorMode){
  __int128 *v3; 
  int v4; 
  NTSTATUS v5; 
  INT64 v7; 
  PADAPTER_OBJECT DmaAdapter; 
  int v9; 
  INT64 v10; 
  __int128 v11; 
  _KAPC_STATE ApcState; 
  v3 = (__int128 *)UserData;
  memset(&ApcState, 0, sizeof(ApcState));
  v10 = 0i64;
  DmaAdapter = 0i64;
  v4 = 0;
  v9 = 0;
  v11 = 0i64;
  if( (_DWORD)UserDataLength == 16 )
  {
    if( RequestorMode )
    {
      if( ((unsigned __int8)UserData & 7) != 0 )
        ExRaiseDatatypeMisalignment();
      if( (unsigned __int64)UserData >= 0x7FFFFFFF0000i64 )
        UserData = (VOID *)0x7FFFFFFF0000i64;
      *(_BYTE *)UserData = *(_BYTE *)UserData;
      *((_BYTE *)UserData + 15) = *((_BYTE *)UserData + 15);
    }
    v11 = *v3;
    if( (_BYTE)v11 == 1 )
    {
      if( (v11 & 0xFFFFFC00) != 0 )
      {
        v5 = -1073741811;
      }
      else if( (v11 & 0x100) != 0 )
      {
        v5 = SmRereferenceProcessObject(*((void **)&v11 + 1), UserDataLength, RequestorMode, &DmaAdapter);
        if( v5 >= 0 )
        {
          _InterlockedOr((volatile signed __int32 *)&DmaAdapter[135].DmaOperations + 1, 0x40000u);
          if( (v11 & 0x200) != 0 )
          {
            if( *((PADAPTER_OBJECT *)KeGetCurrentThread() + 23) != DmaAdapter )
            {
              v4 = 1;
              KiStackAttachProcess((_KPROCESS *)DmaAdapter, 0i64, &ApcState);
            }
            v10 = (INT64)DmaAdapter;
            v7 = SmpKeyedStoreEntryGet((UINT64)&qword_140D23188, &v10, 0i64, 0i64);
            if( v7 )
              *(_BYTE *)(*(_QWORD *)SmKmStoreRefFromStoreIndex((INT64)&SmGlobals, *(_WORD *)(v7 + 16) & 0x3FF) + 6023i64) = 1;
            else
              v5 = -1073741632;
          }
          else
          {
            v5 = 0;
          }
        }
      }
      else
      {
        v5 = -1073741637;
      }
    }
    else
    {
      v5 = -1073741735;
    }
  }
  else
  {
    v5 = -1073741306;
  }
  if( v4 )
    KiUnstackDetachProcess(&ApcState, 0i64);
  if( DmaAdapter )
    HalPutDmaAdapter(DmaAdapter);
  return(unsigned int)v5;
}

Referenced by:

SmSetStoreInformation