RtlPrepareEnclaveCall

INT64 __fastcall RtlPrepareEnclaveCall(INT64 a1, INT64 a2, INT64 a3, INT64 a4, CHAR a5, _QWORD *a6, _QWORD *a7){
  __int64 v8; 
  __int64 v9; 
  __int64 *v10; 
  __int64 v11; 
  __int64 v12; 
  v8 = PspEnclaveDispatchReturn;
  v9 = PspCallEnclaveReturn;
  v10 = *(__int64 **)(a1 + 384);
  v11 = (__int64)v10;
  if( (unsigned __int64)v10 >= 0x7FFFFFFF0000i64 )
    v11 = 0x7FFFFFFF0000i64;
  *(_QWORD *)v11 = *(_QWORD *)v11;
  v12 = *v10;
  if( *(_WORD *)(a1 + 368) != 51 || v12 != v9 && v12 != v8 )
    return 3221225485i64;
  *(_QWORD *)(a1 + 384) = v10 + 1;
  *(_QWORD *)(a1 + 360) = v12;
  if( a5 )
    __writemsr(0x6A7u, __readmsr(0x6A7u) + 8);
  *(_QWORD *)(a1 + 80) = a2;
  *a6 = *(_QWORD *)(a1 + 360);
  *a7 = *(_QWORD *)(a1 + 344);
  return 0i64;
}

Referenced by:

PsCallEnclave