SmcProcessStoreCreateRequest
__int64 __fastcall SmcProcessStoreCreateRequest(__int64 a1, unsigned __int64 a2, int a3, char a4){
int v6;
unsigned __int64 v7;
int v9;
__int128 v10;
__int128 v11;
v9 = -1;
v10 = 0i64;
v11 = 0i64;
if( a3 == 32 )
{
if( a4 )
{
if( (a2 & 3) != 0 )
ExRaiseDatatypeMisalignment();
v7 = 0x7FFFFFFF0000i64;
if( a2 < 0x7FFFFFFF0000i64 )
v7 = a2;
*(_BYTE *)v7 = *(_BYTE *)v7;
*(_BYTE *)(v7 + 31) = *(_BYTE *)(v7 + 31);
}
v10 = *(_OWORD *)a2;
v11 = *(_OWORD *)(a2 + 16);
if( (_BYTE)v10 != 2 || (v10 & 0xFFFFFF00) != 0 )
return(unsigned int)-1073741811;
if( SDWORD2(v11) >= 2 )
return(unsigned int)-1073741822;
if( (DWORD1(v10) & 0xFFFEE000) != 0 )
return(unsigned int)-1073741811;
v6 = SmcStoreCreate(a1, SDWORD2(v11), (_DWORD *)&v10 + 1, DWORD1(v11), &v9);
if( v6 >= 0 )
{
v6 = 0;
*(_DWORD *)(a2 + 28) = v9;
}
}
else
{
return(unsigned int)-1073741306;
}
return(unsigned int)v6;
}Referenced by:
SmSetStoreInformation