PopIdleWakeNotifyWakeSource

VOID __fastcall PopIdleWakeNotifyWakeSource(INT64 a1, INT64 a2, INT64 a3, INT64 a4, INT64 a5){
  _DWORD *v5; 
  int v8; 
  int v9; 
  v5 = PopIdleWakeContext;
  v8 = a2;
  if( PopIdleWakeContext && (_DWORD)a1 == PpmDripsStateIndex && (int)a2 >= 0 )
  {
    PopIdleWakeFinalizeWakeSource((unsigned int)a2, a3);
    PopIdleWakeStopActiveIntervalAccounting((INT64)v5, a4);
    v5[10] = v8;
    *((_OWORD *)v5 + 3) = *(_OWORD *)a3;
    *((_OWORD *)v5 + 4) = *(_OWORD *)(a3 + 16);
    *((_OWORD *)v5 + 5) = *(_OWORD *)(a3 + 32);
    *((_OWORD *)v5 + 6) = *(_OWORD *)(a3 + 48);
    *((_OWORD *)v5 + 7) = *(_OWORD *)(a3 + 64);
    *((_OWORD *)v5 + 8) = *(_OWORD *)(a3 + 80);
    *((_OWORD *)v5 + 9) = *(_OWORD *)(a3 + 96);
    *((_OWORD *)v5 + 10) = *(_OWORD *)(a3 + 112);
    *((_QWORD *)v5 + 22) = *(_QWORD *)(a3 + 128);
    *((_QWORD *)v5 + 23) = a5;
    *((_QWORD *)v5 + 1) = a5;
    *((_QWORD *)v5 + 24) = a5 - a4;
    KeGetCurrentProcessorNumberEx(0i64);
    *v5 |= 0x10u;
    v5[50] = v9;
  }
}

Referenced by:

PpmExitCoordinatedIdle