SmpDirtyStoreCreate

NTSTATUS __fastcall SmpDirtyStoreCreate(_SMKM_STORE_LIST *StoreMgr, unsigned int a2, int a3, _DWORD *a4){
  __int64 v4; 
  int v8; 
  bool v9; 
  unsigned __int64 v10; 
  NTSTATUS result; 
  int UserData[24]; 

  v4 = a2;
  memset(UserData, 0i64, 0x58u);
  UserData[3] = 128;
  UserData[4] = 0x20000;
  UserData[0] = ((a3 & 1) << 9) | 0x106;
  v8 = 0;
  if( a3 )
    v9 = (dword_140D23180 & 0xC) == 8;
  else
    v9 = (dword_140D23180 & 3) == 2;
  LOBYTE(v8) = v9;
  v10 = (8 * v4) & 0x7FFFFFFFFFFFi64;
  UserData[2] = UserData[2] & 0xFFF4FF00 | ((dword_140D23180 & 0x10 | 0x40) << 12) & 0xFFF5FFFF | (((16 * v8) | dword_140D23180 & 0x40) << 13);
  if( v10 >= 0x40000 )
    LODWORD(v10) = 0x40000;
  UserData[5] = v10;
  result = SmProcessCreateRequest(StoreMgr, UserData, 88i64, 0);
  if( result >= 0 )
  {
    *a4 = UserData[20];
    return 0;
  }
  return result;
}

Referenced by:

SmpKeyedStoreCreate
SmpSystemStoreCreate