WbMakeUserExecutablePagesKernelWritable
NTSTATUS __stdcall WbMakeUserExecutablePagesKernelWritable(VOID *a1, UINT64 a2, _MDL **a3, UINT64 *a4){
int v6;
NTSTATUS v7;
_MDL *Mdl;
INT64 v9;
INT64 v10;
INT64 v11;
VOID *v12;
UINT64 v14;
UINT64 Priority;
v6 = 0;
v7 = 0;
Mdl = IoAllocateMdl(a1, a2, 0, 0, 0i64);
v11 = (INT64)Mdl;
if( Mdl )
{
MmProbeAndLockPagesPrivate((INT64)Mdl);
v6 = 1;
if( (*(_BYTE *)(v11 + 10) & 5) != 0 )
{
v12 = *(VOID **)(v11 + 24);
}
else
{
LODWORD(Priority) = 1073741856;
LODWORD(v14) = 0;
v12 = MmMapLockedPagesSpecifyCache((_MDL *)v11, 0, MmCached, 0i64, v14, Priority);
}
if( v12 )
{
if( a4 )
*a4 = (UINT64)v12;
if( a3 )
{
*a3 = (_MDL *)v11;
v11 = 0i64;
}
}
else
{
v7 = -1073741801;
}
}
else
{
v7 = -1073741801;
}
if( v11 )
{
if( v6 )
MmUnlockPages(v11, v9, v10);
IoFreeMdl((PMDL)v11);
}
return v7;
}Referenced by:
WbAllocateMemoryBlock
sub_1405D28BC