MiInitializeCommitment
UINT64 __fastcall MiInitializeCommitment(_MI_PARTITION *Partition){
char v2;
__int64 v3;
unsigned __int16 *v4;
__int64 v5;
__int64 v6;
UINT64 v7;
UINT64 result;
__int64 v9;
if( Partition == (_MI_PARTITION *)&MiSystemPartition )
*((_QWORD *)Partition + 782) = (-(__int64)(*((_QWORD *)Partition + 866) < 0x4000ui64) & 0xFFFFFFFFFFFFFC00ui64)
+ 1280;
else
*((_QWORD *)Partition + 782) = 0i64;
*((_QWORD *)Partition + 781) = 0i64;
v2 = *((_BYTE *)Partition + 519);
*((_QWORD *)Partition + 55) = 0i64;
*((_QWORD *)Partition + 59) = 1i64;
*((_BYTE *)Partition + 519) = v2 & 0xF9 | 4;
*((_QWORD *)Partition + 60) = 0i64;
*((_QWORD *)Partition + 58) = Partition;
*((_DWORD *)Partition + 128) = 0;
*((_BYTE *)Partition + 516) = -1;
*((_QWORD *)Partition + 63) = (char *)Partition + 496;
*((_QWORD *)Partition + 62) = (char *)Partition + 496;
*((_WORD *)Partition + 244) = 0;
*((_BYTE *)Partition + 490) = 6;
*((_DWORD *)Partition + 123) = 0;
v3 = *((_QWORD *)Partition + 888);
if( dword_140C4DC3C )
{
v4 = (unsigned __int16 *)*((_QWORD *)Partition + 526);
v5 = (unsigned int)dword_140C4DC3C;
v6 = *((_QWORD *)Partition + 525) - (_QWORD)v4;
do
{
v3 += *(unsigned __int16 *)((char *)v4 + v6) + (unsigned __int64)*v4;
v4 += 8;
--v5;
}
while( v5 );
}
v7 = *((_QWORD *)Partition + 866);
*((_QWORD *)Partition + 896) = v3;
result = MiIncreaseCommitLimits(Partition, v7, v7, 0i64, 0i64);
v9 = *((_QWORD *)Partition + 866);
if( v9 != v3 )
result = MiChargeCommit(Partition, v9 - v3, 2ui64);
if( Partition == (_MI_PARTITION *)&MiSystemPartition )
{
qword_140C4ECF0 = *((_QWORD *)Partition + 933);
qword_140C4ECF0 -= qword_140C4ECF8;
result = qword_140C4ED18;
qword_140C4ECF0 -= qword_140C4ED18;
}
return result;
}Referenced by:
MiInitNucleus
MiInitializePartition