INT64 __fastcall MiFreeEmptyBootPageTable(INT64 a1){
unsigned __int64 v1;
INT64 result;
v1 = *(_QWORD *)(a1 + 8) | 0x8000000000000000ui64;
result = (_QWORD)MmGetPteBase() << 25;
if( (((__int64)((v1 << 25) - result) >> 16 << 25) - result) >> 16 < (unsigned __int64)MiLowHalVa )
{
*(_QWORD *)(a1 + 24) &= 0xC000000000000000ui64;
*(_WORD *)(a1 + 32) = 0;
*(_QWORD *)v1 = ZeroPte;
MiLockAndInsertPageInFreeList((_MMPFN *)a1);
}
return result;
}