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