VslIumEfiRuntimeService
NTSTATUS __stdcall VslIumEfiRuntimeService(){
INT64 v0;
unsigned int v1;
unsigned int v2;
_OWORD *v3;
INT64 v4;
INT64 v5;
unsigned int v6;
_OWORD *v7;
NTSTATUS result;
__int128 v9;
unsigned __int8 CurrentIrql;
NTSTATUS v11;
__int128 v12;
NTSTATUS v13;
INT64 v14[10];
INT64 v15[14];
v4 = v0;
v5 = v1;
v6 = v2;
v7 = v3;
memset(v15, 0i64, 0x68u);
memset(v14, 0i64, 0x48u);
if( !v4 || (result = VslpLockPagesForTransfer((INT64)v14, v4, v6, 2i64, 1), result >= 0) )
{
v15[2] = v14[0];
v15[3] = v14[7];
v15[1] = v5;
if( v7 )
{
v9 = v7[1];
*(_OWORD *)&v15[5] = *v7;
*(_OWORD *)&v15[7] = v9;
}
CurrentIrql = KeGetCurrentIrql();
__writecr8(0xFui64);
ExAcquireSpinLockExclusiveAtDpcLevel((INT64 *)&stru_140C452E0 + 958);
v11 = VslpEnterIumSecureMode(2u, 250, 0i64, (INT64)v15);
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&stru_140C452E0 + 958);
__writecr8(CurrentIrql);
if( v7 )
{
v12 = *(_OWORD *)&v15[7];
*v7 = *(_OWORD *)&v15[5];
v7[1] = v12;
}
if( v11 == -1073741811 )
{
v13 = 2;
}
else if( v11 == -1073741801 )
{
v13 = 9;
}
else
{
v13 = v15[4];
if( v11 )
v13 = 3;
}
if( v14[0] )
VslpUnlockPagesForTransfer((INT64 **)v14);
return v13;
}
return result;
}Referenced by:
No references.