HalpHvTimerArm

INT64 __fastcall HalpHvTimerArm(INT64 a1, INT64 a2, UINT64 a3){
  INT64 Counter; 
  int v5; 
  _BOOL8 v7; 
  unsigned __int64 v8; 
  v5 = a2;
  if( (_DWORD)a2 == 3 )
  {
    Counter = HalpHvCounterQueryCounter();
    a3 += Counter;
  }
  LODWORD(Counter) = *((_DWORD *)KeGetPcr() + 105);
  v7 = v5 == 2;
  if( v7 != ((*(_QWORD *)(a1 + 24 * Counter) >> 1) & 1i64) )
  {
    v8 = *(_QWORD *)(a1 + 24 * Counter) & 0xFFFFFFFFFFFFFFFCui64 | (2 * v7);
    *(_QWORD *)(a1 + 24 * Counter) = v8;
    __writemsr(0x400000B0u, v8);
  }
  __writemsr(0x400000B1u, a3);
  return 0i64;
}

Referenced by:

No references.