VslValidateSecureImagePages

NTSTATUS __stdcall VslValidateSecureImagePages(INT64 a1, INT64 a2, UINT64 a3, INT64 a4, INT64 a5, INT64 a6){
  int v6; 
  int i; 
  int v11; 
  UINT64 v12; 
  int v13; 
  INT64 v16[10]; 
  INT64 v17[14]; 

  v6 = a2;
  memset(v17, 0i64, 0x68u);
  memset(v16, 0i64, 0x48u);
  for( i = 0; a3; a3 -= v12 )
  {
    v11 = 0;
    v12 = a3;
    if( (-(__int64)((a4 & 0xFFF) != 0) & 0xFFFFFFFFFFFFF000ui64) + 2072576 <= a3 )
      v12 = (-(__int64)((a4 & 0xFFF) != 0) & 0xFFFFFFFFFFFFF000ui64) + 2072576;
    LOBYTE(v11) = (v12 & 0xFFF) != 0;
    v13 = (v12 >> 12) + v11;
    i = VslpLockPagesForTransfer((INT64)v16, a4, (unsigned int)(v13 << 12), 0i64, 0);
    if( i < 0 )
      break;
    v17[1] = a1;
    v17[3] = v16[0];
    v17[4] = v16[7];
    LODWORD(v17[6]) = a6;
    LODWORD(v17[2]) = v6;
    v17[5] = a5;
    i = VslpEnterIumSecureMode(2u, 193, 0i64, (INT64)v17);
    VslpUnlockPagesForTransfer((INT64 **)v16);
    if( i < 0 )
      break;
    a4 += v12;
    a5 += v12;
    v6 += v13;
  }
  return i;
}

Referenced by:

No references.