NtConvertBetweenAuxiliaryCounterAndPerformanceCounter

__int64 __fastcall NtConvertBetweenAuxiliaryCounterAndPerformanceCounter(
        char a1,
        unsigned __int64 a2,
        _QWORD *a3,
        _QWORD *a4){
  __int64 v7; 
  __int64(__fastcall *v8)(); 
  int v9; 
  __int64(__fastcall *v10)(); 
  __int64 v12; 
  __int64 v13[4]; 

  v13[0] = 0i64;
  v12 = 0i64;
  if( KeGetCurrentThread()->PreviousMode )
  {
    if( (a2 & 3) != 0 )
      ExRaiseDatatypeMisalignment();
    if( a2 + 8 > 0x7FFFFFFF0000i64 || a2 + 8 < a2 )
      MEMORY[0x7FFFFFFF0000] = 0;
    v7 = *(_QWORD *)a2;
    v13[1] = *(_QWORD *)a2;
    ProbeForWrite((UINT64)a3, 8i64, 4i64);
    if( a4 )
      ProbeForWrite((UINT64)a4, 8i64, 4i64);
    v8 = off_140C00928[0];
    if( !a1 )
      v8 = off_140C00920[0];
    v9 = ((__int64(__fastcall *)(__int64, __int64 *, __int64 *))v8)(v7, &v12, v13);
    if( v9 >= 0 )
    {
      *a3 = v12;
      if( a4 )
        *a4 = v13[0];
    }
  }
  else
  {
    v10 = off_140C00928[0];
    if( !a1 )
      v10 = off_140C00920[0];
    return((unsigned int(__fastcall *)(_QWORD, _QWORD *, _QWORD *))v10)(*(_QWORD *)a2, a3, a4);
  }
  return(unsigned int)v9;
}

Referenced by:

No references.