VslValidateDynamicCodePages
NTSTATUS __stdcall VslValidateDynamicCodePages(INT64 a1, INT64 a2, INT64 a3, INT64 a4){
unsigned __int64 v8;
unsigned __int64 v9;
unsigned __int64 v10;
unsigned __int64 v11;
NTSTATUS v12;
INT64 v13;
INT64 v14;
INT64 v15;
INT64 v16;
INT64 v18[14];
INT64 v19;
__int16 v20;
__int16 v21;
__int128 v22;
int v23;
unsigned __int64 v24;
int v25;
int v26;
INT64 v27;
INT64 v28;
__int16 v29;
__int16 v30;
__int128 v31;
int v32;
unsigned __int64 v33;
int v34;
int v35;
INT64 v36;
memset(v18, 0i64, 0x68u);
v31 = 0i64;
v32 = 0;
v36 = 0i64;
v22 = 0i64;
v23 = 0;
v27 = 0i64;
v8 = 8
* (((unsigned int)(*(_DWORD *)(a1 + 40) + *(_DWORD *)(a1 + 44)) + 4095i64 + (*(_DWORD *)(a1 + 32) & 0xFFFui64)) >> 12)
+ 48;
v9 = (v8 + (a1 & 0xFFF) + 4095) >> 12;
if( v9 > 1 )
return -1073741811;
v28 = 0i64;
v29 = 8 * (v9 + 6);
v30 = 0;
v33 = a1 & 0xFFFFFFFFFFFFF000ui64;
v35 = a1 & 0xFFF;
v34 = v8;
MiProbeAndLockPages((INT64)&v28, 0, 0i64);
v10 = 8
* (((*(_DWORD *)(a4 + 32) & 0xFFFi64)
+ 4095
+ (unsigned __int64)(unsigned int)(*(_DWORD *)(a4 + 40) + *(_DWORD *)(a4 + 44))) >> 12)
+ 48;
v11 = (v10 + (a4 & 0xFFF) + 4095) >> 12;
if( v11 > 1 )
return -1073741811;
v19 = 0i64;
v20 = 8 * (v11 + 6);
v21 = 0;
v24 = a4 & 0xFFFFFFFFFFFFF000ui64;
v26 = a4 & 0xFFF;
v25 = v10;
MiProbeAndLockPages((INT64)&v19, 0, 0i64);
v18[1] = a1;
v18[2] = v36;
v18[3] = a4;
v18[4] = v27;
v18[5] = a2;
v18[6] = a3;
v12 = VslpEnterIumSecureMode(2u, 31, 0i64, (INT64)v18);
MmUnlockPages((INT64)&v19, v13, v14);
MmUnlockPages((INT64)&v28, v15, v16);
return v12;
}Referenced by:
No references.