PopEtGetNextEnergyTracker

NTSTATUS __stdcall PopEtGetNextEnergyTracker(PVOID Object){
  _ETHREAD *CurrentThread; 
  NTSTATUS v3; 
  UINT64 v4; 
  _QWORD **v5; 
  _QWORD *i; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v3 = 0;
  v4 = PopEtGlobals + 16;
  --*((_WORD *)CurrentThread + 242);
  ExAcquirePushLockSharedEx(v4, 0i64);
  v5 = (_QWORD **)PopEtGlobals;
  if( Object )
    v5 = (_QWORD **)Object;
  for( i = *v5; i != (_QWORD *)PopEtGlobals; i = (_QWORD *)*i )
  {
    if( ObReferenceObjectSafeWithTag(i, 0x74456F50ui64) )
    {
      v3 = (int)i;
      break;
    }
  }
  PopReleaseRwLock(PopEtGlobals + 16);
  if( Object )
    ObfDereferenceObjectWithTag(Object, 0x74456F50ui64);
  return v3;
}

Referenced by:

PopEtEnumEnergyTrackers