PsInitializeQuotaSystem
UINT8 __stdcall PsInitializeQuotaSystem(UINT64 InitializeResources){
_QWORD *v1;
char *v2;
_EX_PUSH_LOCK *PoolWithTag;
_EX_PUSH_LOCK *v4;
__int64 v5;
UINT8 v6;
INT64 v7;
int v8;
if( (_DWORD)InitializeResources )
{
PspRegisterResource(PsResourceNonPagedPool, 5u, 3221225540i64);
PspRegisterResource(PsResourcePagedPool, v6, v7);
PspRegisterResource(PsResourcePageFile, 0, 3221225772i64);
PspRegisterResource((PS_RESOURCE_TYPE)(v8 + 3), v8, 3221225633i64);
qword_140C1DF70 = 0i64;
dword_140C1DF98 = 0;
qword_140C1DFA8 = 0i64;
qword_140C1DF90 = (__int64)&qword_140C1DF88;
qword_140C1DF88 = (__int64)&qword_140C1DF88;
qword_140C1DFC8 = (__int64)&qword_140C1DFC0;
qword_140C1DFC0 = (__int64)&qword_140C1DFC0;
qword_140C1DF68[0] = 0x10000i64;
qword_140C1DF78 = (__int64)MmRaisePoolQuota;
qword_140C1DF80 = (__int64)MmReturnPoolQuota;
PspQuotaExpansionDescriptors[0] = 1;
qword_140C1DFA0 = 0x80000i64;
qword_140C1DFB0 = (__int64)MmRaisePoolQuota;
qword_140C1DFB8 = (__int64)MmReturnPoolQuota;
LABEL_9:
LOBYTE(PoolWithTag) = 1;
return(unsigned __int8)PoolWithTag;
}
dword_140C539C0 = 1;
v1 = &unk_140C53800;
dword_140C539C4 = 1;
v2 = PspResourceFlags;
do
{
if( (*v2 & 2) == 0 )
*v1 = -1i64;
v2 += 8;
v1 += 16;
}
while( (__int64)v2 < (__int64)&PspSystemMitigationAuditOptions );
KeGetCurrentThread()->ApcState.Process->QuotaBlock = (struct _EPROCESS_QUOTA_BLOCK *)&unk_140C537C0;
PspSanitizeResourceLimits(PspDefaultResourceLimits, 1ui64);
PoolWithTag = (_EX_PUSH_LOCK *)ExAllocatePoolWithTag(1ui64, 0x300ui64, 1951494992i64);
PspQuotaBlockTable = PoolWithTag;
if( PoolWithTag )
{
v4 = PoolWithTag + 1;
v5 = 32i64;
do
{
v4[1]._bf_0 = (__int64)v4;
v4->_bf_0 = (__int64)v4;
v4[-1]._bf_0 = 0i64;
v4 += 3;
--v5;
}
while( v5 );
goto LABEL_9;
}
return(unsigned __int8)PoolWithTag;
}Referenced by:
InitBootProcessor
MiInitSystem