PopSnapSystemIdleContext

void __fastcall PopSnapSystemIdleContext(_QWORD *a1, _DWORD *a2){
  VOID **PoolWithTag; 
  __int64 v5; 
  VOID **v6; 
  INT64 *v7; 
  __int128 v8; 
  _DWORD *v9; 
  __int64 v10; 
  unsigned __int64 v11; 

  PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
  PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x148ui64, 1734960208i64);
  v5 = 2i64;
  *a1 = PoolWithTag;
  v6 = PoolWithTag;
  v7 = &PopSystemIdleContext;
  do
  {
    *(_OWORD *)v6 = *(_OWORD *)v7;
    *((_OWORD *)v6 + 1) = *((_OWORD *)v7 + 1);
    *((_OWORD *)v6 + 2) = *((_OWORD *)v7 + 2);
    *((_OWORD *)v6 + 3) = *((_OWORD *)v7 + 3);
    *((_OWORD *)v6 + 4) = *((_OWORD *)v7 + 4);
    *((_OWORD *)v6 + 5) = *((_OWORD *)v7 + 5);
    *((_OWORD *)v6 + 6) = *((_OWORD *)v7 + 6);
    v6 += 16;
    v8 = *((_OWORD *)v7 + 7);
    v7 += 16;
    *((_OWORD *)v6 - 1) = v8;
    --v5;
  }
  while( v5 );
  *(_OWORD *)v6 = *(_OWORD *)v7;
  *((_OWORD *)v6 + 1) = *((_OWORD *)v7 + 1);
  *((_OWORD *)v6 + 2) = *((_OWORD *)v7 + 2);
  *((_OWORD *)v6 + 3) = *((_OWORD *)v7 + 3);
  v6[8] = (VOID *)v7[8];
  *a2 = 0;
  if( dword_140C0F2B4 )
  {
    v9 = &unk_140C0F1DC;
    v10 = 4i64;
    do
    {
      if( *((_BYTE *)v9 - 4) )
      {
        if( *v9 )
        {
          if( *v9 == 1 )
            v11 = (*(_QWORD *)(v9 - 3) - *(_QWORD *)(v9 - 5)) / 0x989680ui64;
          else
            LODWORD(v11) = -1;
        }
        else
        {
          LODWORD(v11) = 0;
        }
        if( (unsigned int)v11 > *a2 )
          *a2 = v11;
      }
      v9 += 14;
      --v10;
    }
    while( v10 );
  }
  PopReleaseRwLock((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
}

Referenced by:

PopArmIdlePhaseWatchdog
PopIdlePhaseWatchdogCallback