PspValidateJobAssignmentMemoryPartition
BOOL __fastcall PspValidateJobAssignmentMemoryPartition(INT64 a1, INT64 a2, INT64 a3, INT64 a4){
__int64 v5;
__int64 v6;
if( (_DWORD)a4 == 4 )
{
if( *(_QWORD *)(a1 + 1056) == a1 + 1056 && !*(_QWORD *)(a1 + 1560) )
{
if( *(_QWORD *)(a3 + 1296) )
{
if( *(_QWORD *)(*(_QWORD *)(a3 + 1296) + 1560i64) )
{
if( *(_QWORD *)(*(_QWORD *)(a3 + 1296) + 1560i64) != -1i64 )
{
v6 = *(_QWORD *)(a3 + 1296);
if( *(_QWORD *)(v6 + 1560) != *(_QWORD *)(a3 + 2520) )
goto LABEL_20;
}
}
}
}
}
else if( (unsigned int)(a4 - 6) <= 1 )
{
goto LABEL_4;
}
v5 = *(_QWORD *)(a1 + 1560);
LODWORD(v6) = v5 - 1;
if( (unsigned __int64)(v5 - 1) <= 0xFFFFFFFFFFFFFFFDui64
&& *(_QWORD *)(a3 + 2520) != v5
&& a3 != *(_QWORD *)(v5 + 104) )
{
goto LABEL_20;
}
LABEL_4:
LODWORD(v6) = a4 - 4;
if( (((_DWORD)a4 - 4) & 0xFFFFFFFC) == 0 && (_DWORD)a4 != 6 && *(_QWORD *)(a1 + 1560) && *(_QWORD *)(a2 + 1560) )
{
LABEL_20:
LOBYTE(v6) = 0;
return v6;
}
LOBYTE(v6) = 1;
return v6;
}Referenced by:
PspAssignProcessToJob
PspImplicitAssignProcessToJob