WbAllocateMemoryBlock
INT64 __fastcall WbAllocateMemoryBlock(_MDL *Mdl, VOID *BufferVa, VOID *Source, VOID *Original, UINT64 Length){
int VirtualMemory;
VirtualMemory = WbAlloc(0x440ui64);
if( VirtualMemory >= 0 )
{
MEMORY[0] = 0i64;
MEMORY[8] = 0x10000i64;
MEMORY[0x18] = 0i64;
MEMORY[0x20] = 0i64;
MEMORY[0x438] = 0i64;
MEMORY[0x10] = *((_QWORD *)KeGetCurrentThread() + 23);
MEMORY[0x430] = 0i64;
memset(44i64, 0i64);
VirtualMemory = MmAllocateVirtualMemory((PVOID *)0xFFFFFFFFFFFFFFFFi64, 0i64, (UINT64 *)8, 0x1000ui64);
if( VirtualMemory >= 0 )
{
if( MEMORY[0x438] )
{
VirtualMemory = WbMakeUserExecutablePagesKernelWritable(MEMORY[0], MEMORY[8], (MDL **)0x18, (UINT64 *)0x20);
if( VirtualMemory >= 0 && BufferVa )
*(_QWORD *)BufferVa = 0i64;
}
else
{
VirtualMemory = -1073741595;
}
}
}
WbFreeMemoryBlock(0i64);
return(unsigned int)VirtualMemory;
}Referenced by:
WbAllocateUserMemory