VslGetOnDemandDebugChallenge
INT64 __fastcall VslGetOnDemandDebugChallenge(INT64 a1, UINT8 *a2, UINT64 a3, _DWORD *a4){
unsigned int v5;
INT64 v8;
NTSTATUS v9;
unsigned int v10;
INT64 v11[10];
INT64 result[2];
size_t Size;
INT64 v14;
UINT8 Src[4096];
v5 = a3;
memset((INT64)result, 0i64);
memset((INT64)v11, 0i64);
v8 = VslpLockPagesForTransfer((INT64)v11, (INT64)Src, 0x1000ui64, 1i64, 0);
if( (int)v8 >= 0 )
{
result[1] = *(_QWORD *)(a1 + 992);
Size = v11[0];
v14 = v11[7];
v9 = VslpEnterIumSecureMode(2u, 18, 0i64, (INT64)result);
VslpUnlockPagesForTransfer((INT64 **)v11);
if( v9 >= 0 )
{
v10 = Size;
*a4 = Size;
if( v10 <= v5 )
{
if( a2 )
memmove(a2, Src, v10);
}
else
{
return(unsigned int)-1073741789;
}
}
return(unsigned int)v9;
}
return v8;
}Referenced by:
PsIumGetOnDemandDebugChallenge