MmAssignProcessToJob

VOID __stdcall MmAssignProcessToJob(_EPROCESS *Process, PVOID Context){
  char v2; 
  int v3; 
  char v4; 
  _EPROCESS **CurrentThread; 
  __int64 v8; 
  __int64 v9; 
  _KAPC_STATE ApcState; 
  v3 = 0;
  memset(&ApcState, 0, sizeof(ApcState));
  v4 = v2;
  CurrentThread = (_EPROCESS **)KeGetCurrentThread();
  if( CurrentThread[23] != Process )
  {
    v3 = 1;
    KiStackAttachProcess((_KPROCESS *)Process, 0i64, &ApcState);
  }
  v8 = MiLockVadRange((__int64)Process, 0xFFFFFFFFFFFFFFFFui64, 0xFFFFFFFFFFFFFFFFui64, 0);
  if( v8 || (*((_DWORD *)Process + 543) & 1) != 0 )
  {
    LOCK_PAGE_TABLE_COMMITMENT((_ETHREAD *)CurrentThread, Process);
    v9 = *((_QWORD *)Process + 201);
    *((_QWORD *)Process + 157) = *((_QWORD *)Process + 162);
    PspChangeJobMemoryUsageByProcess(v4 | 3, v9, (__int64)Process, (__int64)Context);
    _InterlockedOr((volatile signed __int32 *)Process + 280, 0x10u);
    UNLOCK_PAGE_TABLE_COMMITMENT((__int64)CurrentThread, (__int64)Process);
  }
  MiUnlockVadRange(Process, (PVOID)0xFFFFFFFFFFFFFFFFi64, v8);
  if( v3 )
    KiUnstackDetachProcess(&ApcState, 0i64);
}

Referenced by:

PspAssignProcessToJob
PspImplicitAssignProcessToJob