SmStoreCreate

VOID __fastcall SmStoreCreate(_SM_STORE_MANAGER_TYPE StoreManagerType, INT64 CreateParams){
  _DWORD *v2; 
  __int128 v3; 
  __int128 v4; 
  _DWORD *v5; 
  __int128 v6; 
  NTSTATUS v7; 
  int v8; 
  UINT64 v9; 
  UINT64 Information; 
  INT64 SystemInformation; 
  INT64 *p_RequestBuffer; 
  INT64 v13; 
  INT64 RequestBuffer; 
  __int128 v15; 
  __int128 v16; 
  __int128 v17; 
  __int128 v18; 
  __int64 v19; 
  __int64 v20; 

  v3 = *(_OWORD *)CreateParams;
  v4 = *(_OWORD *)(CreateParams + 16);
  Information = 0i64;
  v5 = v2;
  v15 = v3;
  p_RequestBuffer = &RequestBuffer;
  v6 = *(_OWORD *)(CreateParams + 32);
  SystemInformation = 0x300000001i64;
  v13 = 88i64;
  RequestBuffer = 6i64;
  v20 = 0i64;
  v17 = v6;
  v19 = *(_QWORD *)(CreateParams + 64);
  v16 = v4;
  v18 = *(_OWORD *)(CreateParams + 48);
  if( StoreManagerType )
  {
    if( StoreManagerType != SmStoreManagerTypeVirtual )
      return;
    v7 = ZwSetSystemInformation(SystemStoreInformation, &SystemInformation, 0x18ui64);
    v8 = v20;
  }
  else
  {
    LODWORD(v9) = 0;
    v7 = SmStorePhysicalRequestIssue(
           DeviceObject,
           0x228198ui64,
           &RequestBuffer,
           0x58ui64,
           v9,
           &Information,
           Information,
           SystemInformation,
           (INT64)p_RequestBuffer,
           v13,
           RequestBuffer,
           v15,
           *((INT64 *)&v15 + 1),
           v16,
           *((INT64 *)&v16 + 1),
           v17,
           *((INT64 *)&v17 + 1),
           v18);
    v8 = Information;
  }
  if( v7 >= 0 )
    *v5 = v8;
}

Referenced by:

SmcStoreCreate