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