KiTraceSetTimer2

VOID __stdcall KiTraceSetTimer2(_KTIMER2 *Timer, UINT8 Canceled, UINT64 PipelineFlag){
  __int64 v3; 
  int v4; 
  void(__fastcall *Callback)(_KTIMER2 *, void *); 
  unsigned __int64 CallbackContext; 
  unsigned __int8 TypeFlags; 
  __int64 v10; 
  unsigned __int64 v11; 
  unsigned __int64 v12; 
  char v13; 
  char v14; 
  char v15; 
  __int64 *v16; 
  int v17; 
  int v18; 
  __int64 v19[2]; 
  __int64 Period; 
  __int64 v21; 
  unsigned __int64 v22; 
  __int64 v23; 
  __int64 v24; 

  v3 = Timer->DueTime[0];
  v4 = PipelineFlag;
  v24 = 0i64;
  Callback = Timer->Callback;
  CallbackContext = (unsigned __int64)Timer->CallbackContext;
  TypeFlags = Timer->TypeFlags;
  v19[0] = v3;
  v19[1] = Timer->DueTime[1];
  Period = Timer->Period;
  KiUpdateTimer2Flags(Timer, (unsigned int)PipelineFlag, 0i64);
  if( v4 == 1 )
    KxReleaseSpinLock(&KiTimer2CollectionLock);
  v10 = __ROL8__((unsigned __int64)Callback ^ KiWaitNever, KiWaitNever);
  v11 = KiWaitAlways ^ _byteswap_uint64((unsigned __int64)Timer ^ __ROL8__(CallbackContext ^ KiWaitNever, KiWaitNever));
  v12 = KiWaitAlways ^ _byteswap_uint64((unsigned __int64)Timer ^ v10);
  if( Canceled )
    KiTraceCancelTimer2(Timer);
  v22 = v12;
  v21 = 0x7E35C6C7F3DD7277i64
      * (KiWaitNever ^ __ROR8__(v12 ^ _byteswap_uint64((unsigned __int64)Timer ^ KiWaitAlways), KiWaitNever));
  v23 = 0x7E35C6C7F3DD7277i64
      * (KiWaitNever ^ __ROR8__((unsigned __int64)Timer ^ _byteswap_uint64(v11 ^ KiWaitAlways), KiWaitNever));
  v13 = (2 * (TypeFlags & 2)) | 8;
  if( (TypeFlags & 4) == 0 )
    v13 = 2 * (TypeFlags & 2);
  v14 = v13;
  v15 = v13 | 0x10;
  if( (TypeFlags & 8) == 0 )
    v15 = v14;
  LOBYTE(v24) = v15;
  if( v12 )
  {
    v15 |= 1u;
    LOBYTE(v24) = v15;
  }
  if( Period )
    LOBYTE(v24) = v15 | 2;
  v18 = 0;
  v16 = v19;
  v17 = 56;
  EtwTraceKernelEvent((__int64)&v16, 1u, 0x40020000u, 0xF68u, 0x601B02u);
}

Referenced by:

No references.