PspValidateJobAssignmentMemoryPartition

BOOL __stdcall PspValidateJobAssignmentMemoryPartition(INT64 a1, INT64 a2, INT64 a3, INT64 a4){
  __int64 v5; 

  if( (_DWORD)a4 == 4 )
  {
    if( *(_QWORD *)(a1 + 1056) == a1 + 1056
      && !*(_QWORD *)(a1 + 1560)
      && *(_QWORD *)(a3 + 1296)
      && *(_QWORD *)(*(_QWORD *)(a3 + 1296) + 1560i64)
      && *(_QWORD *)(*(_QWORD *)(a3 + 1296) + 1560i64) != -1i64
      && *(_QWORD *)(*(_QWORD *)(a3 + 1296) + 1560i64) != *(_QWORD *)(a3 + 2520) )
    {
      return 0;
    }
LABEL_3:
    v5 = *(_QWORD *)(a1 + 1560);
    if( (unsigned __int64)(v5 - 1) <= 0xFFFFFFFFFFFFFFFDui64
      && *(_QWORD *)(a3 + 2520) != v5
      && a3 != *(_QWORD *)(v5 + 104) )
    {
      return 0;
    }
    return(((_DWORD)a4 - 4) & 0xFFFFFFFC) != 0 || (_DWORD)a4 == 6 || !*(_QWORD *)(a1 + 1560) || !*(_QWORD *)(a2 + 1560);
  }
  if( (unsigned int)(a4 - 6) > 1 )
    goto LABEL_3;
  return(((_DWORD)a4 - 4) & 0xFFFFFFFC) != 0 || (_DWORD)a4 == 6 || !*(_QWORD *)(a1 + 1560) || !*(_QWORD *)(a2 + 1560);
}

Referenced by:

PspAssignProcessToJob
PspImplicitAssignProcessToJob