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