VslCapturePgoData
NTSTATUS __stdcall VslCapturePgoData(size_t Size, VOID *a2){
unsigned __int64 v3;
INT64 v4;
int v5;
unsigned int v6;
INT64 v8[10];
INT64 v9[14];
v3 = *(_QWORD *)&Size;
memset(v9, 0i64, 0x68u);
memset(v8, 0i64, 0x48u);
v4 = 0i64;
v5 = 0;
memset(a2, 0i64, v3);
if( v3 )
{
while( 1 )
{
v6 = v3;
if( 2072576 - ((unsigned __int16)a2 & 0xFFFu) < v3 )
v6 = 2072576 - ((unsigned __int16)a2 & 0xFFF);
v5 = VslpLockPagesForTransfer((INT64)v8, (INT64)a2, v6, 1i64, 0);
if( v5 < 0 )
break;
v9[2] = v8[0];
v9[3] = v8[7];
v9[1] = v4;
v5 = VslpEnterIumSecureMode(2u, 74, 0i64, (INT64)v9);
VslpUnlockPagesForTransfer((INT64 **)v8);
if( v5 == -2147483622 )
return 0;
if( v5 >= 0 )
{
a2 = (char *)a2 + v6;
v4 += v6;
v3 -= v6;
if( v3 )
continue;
}
return v5;
}
}
return v5;
}Referenced by:
No references.