MiInitializeRelocations

NTSTATUS __stdcall MiInitializeRelocations(){
  VOID *Pool; 
  VOID *v1; 
  _QWORD *v2; 
  unsigned __int64 v3; 
  int v4; 
  VOID *v5; 
  unsigned __int64 v6; 
  unsigned __int64 *v7; 
  NTSTATUS result; 

  Pool = MiAllocatePool(256i64, 0x10000ui64, 0x69526D4Dui64);
  if( Pool )
  {
    qword_140C4C890 = 0x7FFFFi64;
    qword_140C4C898 = (__int64)Pool;
    qword_140C4C8A0 = ExGenRandom(ExGenRandomDomainUserVisible) & 0x7FFFE;
    v1 = MiAllocatePool(256i64, 0x500ui64, 0x69526D4Dui64);
    if( v1 )
    {
      qword_140C4C928 = (__int64)v1;
      qword_140C4C920 = 10240i64;
      qword_140C4C930 = (unsigned int)ExGenRandom(ExGenRandomDomainUserVisible) % 0x2800ui64;
      v2 = &unk_140C4C8D8;
      v3 = (unsigned __int64)(unsigned __int8)ExGenRandom(ExGenRandomDomainUserVisible) << 16;
      v4 = 0;
      qword_140C4C8A8 = v3 + 2013265920;
      qword_140C4C8B0 = v3 + 2013265920;
      qword_140C4C8B8 = v3 + 3758096384u;
      qword_140C4C8C0 = v3 + 3758096384u;
      while( 1 )
      {
        v5 = MiAllocatePool(256i64, 0x500ui64, 0x69526D4Dui64);
        if( !v5 )
          break;
        *(v2 - 2) = 10240i64;
        *(v2 - 1) = v5;
        ++v4;
        v6 = (unsigned __int64)(unsigned __int8)ExGenRandom(ExGenRandomDomainUserVisible) << 16;
        *v2 = v6 + 2013265920;
        v2[1] = v6 + 2013265920;
        v2[2] = v6 + 3758096384u;
        v2[3] = v6 + 3758096384u;
        v2 += 8;
        if( v4 )
        {
          qword_140C4C908 = (unsigned __int8)ExGenRandom(ExGenRandomDomainUserVisible);
          v7 = (unsigned __int64 *)MiAllocatePool(256i64, 0x500ui64, 0x69526D4Dui64);
          if( !v7 )
            return 0;
          Destination.Buffer = v7;
          result = 1;
          Destination.SizeOfBitMap = 10240i64;
          return result;
        }
      }
    }
  }
  return 0;
}

Referenced by:

MiInitSystem