HalpVpptStop

VOID __stdcall HalpVpptStop(PVOID TimerData){
  void *v2; 
  void *v3; 
  PVOID *v4; 
  PVOID *v5; 
  bool v6; 
  __int64 v7; 
  __int64 v8; 
  unsigned __int64 v9; 
  byte_140C4A478 = HalpAcquireHighLevelLock(&qword_140C4A470);
  if( *((_BYTE *)TimerData + 24) )
  {
    v4 = *(PVOID **)TimerData;
    v5 = (PVOID *)*((_QWORD *)TimerData + 1);
    v6 = HalpVpptQueue == (_QWORD)TimerData;
    if( *(PVOID *)(*(_QWORD *)TimerData + 8i64) != TimerData || *v5 != TimerData )
      __fastfail(3u);
    *v5 = v4;
    v4[1] = v5;
    if( v5 == v4 )
    {
      HalpTimerGetInternalData((KDPC *)HalpVpptPhysicalTimer, (PVOID)HalpVpptPhysicalTimer, v2, v3);
      (*(void(__fastcall **)(__int64))(v7 + 136))(v8);
    }
    else if( v6 )
    {
      HalpVpptUpdatePhysicalTimer();
    }
  }
  *((_DWORD *)TimerData + 5) = 0;
  *((_BYTE *)TimerData + 24) = 0;
  v9 = (unsigned __int8)byte_140C4A478;
  KxReleaseSpinLock(&qword_140C4A470);
  __writecr8(v9);
}

Referenced by:

No references.