SmStoreCreate

INT64 __fastcall SmStoreCreate(int a1, __int64 a2, _DWORD *a3){
  __int128 v3; 
  __int128 v4; 
  __int128 v6; 
  INT64 result; 
  int v8; 
  UINT64 v9; 
  UINT64 Information; 
  int SystemInformation; 
  int v12; 
  __int64 *p_RequestBuffer; 
  int v14; 
  int v15; 
  __int64 RequestBuffer; 
  __int128 v17; 
  __int128 v18; 
  __int128 v19; 
  __int128 v20; 
  __int64 v21; 
  __int64 v22; 
  v3 = *(_OWORD *)a2;
  v4 = *(_OWORD *)(a2 + 16);
  Information = 0i64;
  v15 = 0;
  v17 = v3;
  p_RequestBuffer = &RequestBuffer;
  v6 = *(_OWORD *)(a2 + 32);
  SystemInformation = 1;
  v12 = 3;
  v14 = 88;
  RequestBuffer = 6i64;
  v22 = 0i64;
  v19 = v6;
  v21 = *(_QWORD *)(a2 + 64);
  v18 = v4;
  v20 = *(_OWORD *)(a2 + 48);
  if( a1 )
  {
    if( a1 != 1 )
      return 3221225485i64;
    result = ZwSetSystemInformation();
    v8 = v22;
  }
  else
  {
    LODWORD(v9) = 0;
    result = SmStorePhysicalRequestIssue(DeviceObject, 0x228198ui64, &RequestBuffer, 0x58ui64, v9, &Information);
    v8 = Information;
  }
  if( (int)result >= 0 )
  {
    *a3 = v8;
    return 0i64;
  }
  return result;
}

Referenced by:

SmcStoreCreate