HalpPowerInitDiscard
NTSTATUS __stdcall HalpPowerInitDiscard(_LOADER_PARAMETER_BLOCK *LoaderBlock){
_LIST_ENTRY *p_MemoryDescriptorListHead;
_LIST_ENTRY *i;
unsigned __int64 Flink_low;
__int64 v5;
UINT32 Blink;
UINT32 Flink;
*(&CmpDummyThreadEvent + 1468) = 256;
off_140C005A8[0] = (__int64(__fastcall *)())HaliLocateHiberRanges;
*(&CmpDummyThreadEvent + 1464) = 256;
off_140C005D8 = (void(__fastcall __noreturn *)())HaliHaltSystem;
off_140C00838[0] = (__int64(__fastcall *)())HalpPowerEarlyRestore;
off_140C008A8 = (__int64(__fastcall *)(int, int, int, int, UINT16, _TRANSLATOR_INTERFACE *, UINT64 *))HalpPowerSetRebootHandler;
*(&CmpDummyThreadEvent + 735) = (char *)&CmpDummyThreadEvent + 5824;
*(&CmpDummyThreadEvent + 733) = (char *)&CmpDummyThreadEvent + 5888;
RtlSetAllBits((PRTL_BITMAP)&CmpDummyThreadEvent + 367);
p_MemoryDescriptorListHead = &LoaderBlock->MemoryDescriptorListHead;
for( i = p_MemoryDescriptorListHead->Flink; i != p_MemoryDescriptorListHead; i = i->Flink )
{
Flink_low = SLODWORD(i[1].Flink);
if( (unsigned int)Flink_low <= 0x23 )
{
v5 = 0xBC0400048i64;
if( _bittest64(&v5, Flink_low) )
continue;
}
if( i[1].Blink < (_LIST_ENTRY *)0x100 )
{
Blink = (UINT32)i[1].Blink;
Flink = 256 - Blink;
if( (_LIST_ENTRY *)(256 - Blink) > i[2].Flink )
Flink = (UINT32)i[2].Flink;
RtlClearBits((PRTL_BITMAP)&CmpDummyThreadEvent + 367, Blink, Flink);
}
}
HalpPowerInitNvsRegionData();
return 0;
}Referenced by:
HalpPowerInitSystem