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.