NtQueryPerformanceCounter

INT64 __fastcall NtQueryPerformanceCounter(_LARGE_INTEGER *PerformanceCounter, _LARGE_INTEGER *PerformanceFrequency){
  __int64 v4; 
  __int64 v5; 
  union _LARGE_INTEGER PerformanceFrequencya; 
  PerformanceFrequencya.QuadPart = 0i64;
  if( *((_BYTE *)KeGetCurrentThread() + 562) )
  {
    if( ((unsigned __int8)PerformanceCounter & 3) == 0 )
    {
      v4 = 0x7FFFFFFF0000i64;
      v5 = 0x7FFFFFFF0000i64;
      if( (unsigned __int64)PerformanceCounter < 0x7FFFFFFF0000i64 )
        v5 = (__int64)PerformanceCounter;
      *(_BYTE *)v5 = *(_BYTE *)v5;
      *(_BYTE *)(v5 + 7) = *(_BYTE *)(v5 + 7);
      if( !PerformanceFrequency )
        goto LABEL_6;
      if( ((unsigned __int8)PerformanceFrequency & 3) == 0 )
      {
        if( (unsigned __int64)PerformanceFrequency < 0x7FFFFFFF0000i64 )
          v4 = (__int64)PerformanceFrequency;
        *(_BYTE *)v4 = *(_BYTE *)v4;
        *(_BYTE *)(v4 + 7) = *(_BYTE *)(v4 + 7);
LABEL_6:
        *PerformanceCounter = KeQueryPerformanceCounter(&PerformanceFrequencya);
        if( PerformanceFrequency )
          *PerformanceFrequency = PerformanceFrequencya;
        return 0i64;
      }
    }
    ExRaiseDatatypeMisalignment();
  }
  *PerformanceCounter = KeQueryPerformanceCounter(&PerformanceFrequencya);
  if( PerformanceFrequency )
    *PerformanceFrequency = PerformanceFrequencya;
  return 0i64;
}

Referenced by:

No references.