HalpMmInitSystem
NTSTATUS __stdcall HalpMmInitSystem(
_HALP_ALLOC_CONTEXT *HalPhase,
_LOADER_PARAMETER_BLOCK *LoaderBlock,
_LOADER_PARAMETER_BLOCK *a3){
int inited;
int v4;
int v5;
INT64 v7;
_LOADER_PARAMETER_EXTENSION *Extension;
VOID *HalVirtualAddress;
unsigned __int64 HalNumberOfBytes;
inited = 0;
if( (_DWORD)HalPhase )
{
v4 = (_DWORD)HalPhase - 12;
if( v4 )
{
v5 = v4 - 4;
if( v5 )
{
if( v5 == 1 )
{
inited = HalpInitMemoryCachingRequirementsTable((INT64)a3);
if( inited >= 0 )
{
HalpPteReserveResources(v7);
HalpMoveMemory = (__int64(__fastcall *)())RtlCopyMemoryNonTemporal;
}
}
}
else
{
HalpMmReservePageTablePages();
::LoaderBlock = 0i64;
qword_140C50678 = 0i64;
dword_140C50680 = 0;
}
}
else if( byte_140C49C49 )
{
HalpConsumeLowMemory((INT64)a3);
}
}
else
{
Extension = a3->Extension;
qword_140C50678 = 0i64;
dword_140C50680 = 0;
::LoaderBlock = a3;
HalVirtualAddress = Extension->HalVirtualAddress;
HalNumberOfBytes = Extension->HalNumberOfBytes;
qword_140C50660 = HalVirtualAddress;
qword_140C50658 = (__int64)HalVirtualAddress + HalNumberOfBytes;
qword_140C50668 = (__int64)HalVirtualAddress + HalNumberOfBytes - 1;
qword_140C00718 = (__int64)HalpAllocateEarlyPages;
qword_140C00720 = (__int64)HalpMapEarlyPages;
VirtualAddress = HalVirtualAddress;
HalpMmAllocCtxInit();
}
return inited;
}Referenced by:
No references.