HalpTimerInitializeClockPn

NTSTATUS __stdcall HalpTimerInitializeClockPn(){
  INT64 v0; 
  void *v1; 
  _KDPC *v2; 
  NTSTATUS result; 
  void *v4; 
  void *v5; 
  __int64 v6; 
  _KDPC *v7; 
  void *v8; 
  void *v9; 
  void *v10; 
  __int64 v11; 

  HalpInterruptSetIdtEntry(0xD2ui64, HalpTimerClockIpiRoutine, 13, v0, (UINT64 *)0xFFFFFFFFFFFFFFFDi64);
  v2 = (_KDPC *)HalpClockTimer;
  result = *((_DWORD *)HalpClockTimer + 56);
  if( (result & 1) != 0 )
  {
    result = (unsigned int)HalpInterruptSetIdtEntry(
                             0xD1ui64,
                             HalpTimerClockInterrupt,
                             13,
                             (INT64)v1,
                             (UINT64 *)0xFFFFFFFFFFFFFFFDi64);
    if( ((__int64)v2[3].DeferredContext & 0x800) != 0 )
    {
      HalpTimerGetInternalData(v2, v4, v5, v1);
      result = ((__int64(__fastcall *)(__int64, __int64))v2[2].SystemArgument1)(v6, 209i64);
    }
  }
  v7 = (_KDPC *)HalpAlwaysOnTimer;
  if( HalpAlwaysOnTimer )
  {
    result = *((_DWORD *)HalpAlwaysOnTimer + 56);
    if( (result & 1) != 0 )
    {
      result = (unsigned int)HalpInterruptSetIdtEntry(
                               0xD3ui64,
                               HalpTimerAlwaysOnClockInterrupt,
                               13,
                               (INT64)v1,
                               (UINT64 *)0xFFFFFFFFFFFFFFFDi64);
      if( ((__int64)v7[3].DeferredContext & 0x800) != 0 )
      {
        HalpTimerGetInternalData(v7, v8, v9, v10);
        return((__int64(__fastcall *)(__int64, __int64))v7[2].SystemArgument1)(v11, 211i64);
      }
    }
  }
  return result;
}

Referenced by:

No references.