MiInitializeRelocations
UINT64 __stdcall MiInitializeRelocations(UINT64 *Pool, INT64 *a2){
__int64 v2;
__int64 v3;
__int64 *v4;
unsigned __int64 v5;
int v6;
__int64 v7;
unsigned __int64 v8;
unsigned __int64 *v9;
UINT64 result;
LODWORD(v2) = MiAllocatePool((struct _SLIST_ENTRY *)0x100);
if( v2 )
{
qword_140C4C890 = 0x7FFFFi64;
qword_140C4C898 = v2;
qword_140C4C8A0 = ExGenRandom(1i64) & 0x7FFFE;
LODWORD(v3) = MiAllocatePool((struct _SLIST_ENTRY *)0x100);
if( v3 )
{
qword_140C4C928 = v3;
qword_140C4C920 = 10240i64;
qword_140C4C930 = (unsigned int)ExGenRandom(1i64) % 0x2800ui64;
v4 = qword_140C4C8D8;
v5 = (unsigned __int64)(unsigned __int8)ExGenRandom(1i64) << 16;
v6 = 0;
qword_140C4C8A8 = v5 + 2013265920;
qword_140C4C8B0 = v5 + 2013265920;
qword_140C4C8B8 = v5 + 3758096384u;
qword_140C4C8C0 = v5 + 3758096384u;
while( 1 )
{
LODWORD(v7) = MiAllocatePool((struct _SLIST_ENTRY *)0x100);
if( !v7 )
break;
*(v4 - 2) = 10240i64;
*(v4 - 1) = v7;
++v6;
v8 = (unsigned __int64)(unsigned __int8)ExGenRandom(1i64) << 16;
*v4 = v8 + 2013265920;
v4[1] = v8 + 2013265920;
v4[2] = v8 + 3758096384u;
v4[3] = v8 + 3758096384u;
v4 += 8;
if( v6 )
{
qword_140C4C908 = (unsigned __int8)ExGenRandom(1i64);
LODWORD(v9) = MiAllocatePool((struct _SLIST_ENTRY *)0x100);
if( !v9 )
return 0i64;
Destination.Buffer = v9;
result = 1i64;
Destination.SizeOfBitMap = 10240i64;
return result;
}
}
}
}
return 0i64;
}Referenced by:
MiInitSystem