HvlpGetEncryptedDataFromSecureKernel
INT64 __fastcall HvlpGetEncryptedDataFromSecureKernel(INT64 a1, CHAR *rdx0, INT64 er8, VOID *a4, INT64 a5){
_DWORD *v6;
int v7;
unsigned int v10;
unsigned __int8 v11;
INT64 result;
UINT64 v13;
int a3;
LONGLONG *v15;
v6 = (_DWORD *)a5;
v7 = er8;
v15 = 0i64;
a3 = 0;
v10 = (unsigned int)HvlpFlags >> 1;
*(_DWORD *)a5 = 0;
v11 = (2 * (v10 & 1)) | 1;
if( BYTE3(HvlpCrashdumpIterationState) != v11 )
{
HvlpEndSecurePageListIteration(1i64, 0);
LOBYTE(HvlpCrashdumpIterationState) = 0;
}
if( !(_BYTE)HvlpCrashdumpIterationState )
{
LODWORD(v13) = v7;
result = HvlpStartSecurePageListIteration(1i64, v11, rdx0, a4, v13, &v15);
if( (int)result < 0 )
return result;
*((_QWORD *)&xmmword_140C47320 + 1) = v15;
LOBYTE(HvlpCrashdumpIterationState) = 1;
BYTE3(HvlpCrashdumpIterationState) = v11;
}
LOBYTE(a5) = 0;
LODWORD(result) = VslGetSecurePageList(0, a1, &a3, &a5);
if( (int)result >= 0 )
{
*v6 = a3 << 12;
return 0i64;
}
else if( (_DWORD)result == -2147483622 )
{
HvlpEndSecurePageListIteration(1i64, 0);
return 3221226021i64;
}
return result;
}Referenced by:
HvlGetEncryptedData