ExpTryEnterWorkerFactoryAwayMode

CHAR __fastcall ExpTryEnterWorkerFactoryAwayMode(CHAR *Object){
  __int64 v2; 
  int v3; 
  if( *((_DWORD *)Object + 72) < *((_DWORD *)Object + 71) )
  {
    v2 = *((_QWORD *)Object + 2);
    if( !*(_DWORD *)(v2 + 28) )
    {
      if( !*((_DWORD *)Object + 77) )
        return 1;
      v3 = *((_DWORD *)Object + 78);
      *((_DWORD *)Object + 78) = v3 | 0x200;
      if( *(_DWORD *)(*(_QWORD *)(v2 + 8) + 4i64) )
        return 1;
      if( (v3 & 0x400) == 0 )
      {
        *((_DWORD *)Object + 78) = v3 | 0x600;
        ObfReferenceObjectWithTag(Object, 0x746C6644u);
        KeRegisterObjectNotification(*(PVOID *)(v2 + 8), &ExpWorkerFactoryManagerQueue, (_KWAIT_BLOCK *)(Object + 520));
      }
    }
  }
  return 0;
}

Referenced by:

ExpWorkerFactoryManagerThread
NtSetInformationWorkerFactory