SmcProcessResizeRequest
INT64 __fastcall SmcProcessResizeRequest(INT64 a1, UINT64 a2, INT64 a3, CHAR a4){
INT64 result;
UINT64 v7;
int v8;
__int128 v9;
int v10;
v9 = 0i64;
v10 = 0;
if( (_DWORD)a3 != 20 )
return 3221225990i64;
if( a4 )
{
if( (a2 & 3) != 0 )
ExRaiseDatatypeMisalignment();
v7 = 0x7FFFFFFF0000i64;
if( a2 < 0x7FFFFFFF0000i64 )
v7 = a2;
*(_BYTE *)v7 = *(_BYTE *)v7;
*(_BYTE *)(v7 + 19) = *(_BYTE *)(v7 + 19);
}
v9 = *(_OWORD *)a2;
v8 = *(_DWORD *)(a2 + 16);
v10 = v8;
if( (_BYTE)v9 != 1 )
return 3221225561i64;
if( (v9 & 0xFFFFFE00) != 0 || !v8 || SHIDWORD(v9) >= 2 )
return 3221225485i64;
result = SmcStoreResize(a1, &v9);
if( (int)result >= 0 )
{
*(_OWORD *)a2 = v9;
*(_DWORD *)(a2 + 16) = v10;
return 0i64;
}
return result;
}Referenced by:
SmSetStoreInformation