VslRetrieveMailbox

INT64 __fastcall VslRetrieveMailbox(
        UINT64 TrustletIdentity,
        _TRUSTLET_MAILBOX_KEY *MailboxKey,
        UINT8 MailboxId,
        VOID *Buffer,
        UINT64 *Length){
  int v6; 
  INT64 v9; 
  _TRUSTLET_MAILBOX_KEY v10; 
  unsigned int v11; 
  INT64 v12[10]; 
  INT64 result[3]; 
  _TRUSTLET_MAILBOX_KEY v14; 
  UINT64 v15; 
  int v16; 
  UINT64 v17; 
  v6 = MailboxId;
  memset((INT64)result, 0i64);
  memset((INT64)v12, 0i64);
  if( *(_OWORD *)MailboxKey == 0i64 || *Length - 1 > 0x1F9FFF )
    return 3221225485i64;
  v9 = VslpLockPagesForTransfer((INT64)v12, (INT64)Buffer, *(unsigned int *)Length, 2i64, 0);
  if( (int)v9 >= 0 )
  {
    v10 = *MailboxKey;
    result[1] = v12[0];
    result[2] = v12[7];
    v14 = v10;
    v15 = TrustletIdentity;
    v16 = v6;
    v11 = VslpEnterIumSecureMode(2u, 20, 0i64, (INT64)result);
    VslpUnlockPagesForTransfer((INT64 **)v12);
    if( (int)(v11 + 0x80000000) < 0 || v11 == -1073741789 )
      *Length = v17;
    return v11;
  }
  return v9;
}

Referenced by:

No references.