VslGetOnDemandDebugChallenge
NTSTATUS __fastcall VslGetOnDemandDebugChallenge(__int64 a1, VOID *a2, size_t a3, _DWORD *a4){
NTSTATUS result;
NTSTATUS v9;
size_t v10;
INT64 v11[10];
INT64 v12[14];
INT64 Src[512];
memset(v12, 0i64, 0x68u);
memset(v11, 0i64, 0x48u);
result = VslpLockPagesForTransfer((INT64)v11, (INT64)Src, 0x1000ui64, 1i64, 0);
if( result >= 0 )
{
v12[1] = *(_QWORD *)(a1 + 992);
v12[2] = v11[0];
v12[3] = v11[7];
v9 = VslpEnterIumSecureMode(2u, 18, 0i64, (INT64)v12);
VslpUnlockPagesForTransfer((INT64 **)v11);
if( v9 >= 0 )
{
v10 = v12[2];
*a4 = v12[2];
if( v10 <= a3 )
{
if( a2 )
memmove(a2, Src, v10);
}
else
{
return -1073741789;
}
}
return v9;
}
return result;
}Referenced by:
PsIumGetOnDemandDebugChallenge