PoDiagTraceIRTimerSleepStudyRundown

CHAR __fastcall PoDiagTraceIRTimerSleepStudyRundown(INT64 a1, INT16 a2, EVENT_DESCRIPTOR *a3){
  void **v3; 
  WCHAR v5; 
  UINT64 UserDataCount; 
  struct _UNICODE_STRING DestinationString; 
  struct _EVENT_DATA_DESCRIPTOR UserData; 
  INT16 *v10; 
  int v11; 
  int v12; 
  wchar_t *Buffer; 
  int Length; 
  int v15; 
  void *retaddr; 
  int v17; 
  INT16 v18; 
  v3 = &retaddr;
  v18 = a2;
  v17 = a1;
  DestinationString = 0i64;
  if( PopDiagHandleRegistered )
  {
    LOBYTE(v3) = EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_DEEP_SLEEP_IR_TIMER_DATA, a3);
    if( (_BYTE)v3 )
    {
      RtlInitUnicodeString(&DestinationString, &a3->Id, v5);
      UserData.Reserved = 0;
      v12 = 0;
      v15 = 0;
      UserData.Ptr = (unsigned __int64)&v17;
      v10 = &v18;
      Buffer = DestinationString.Buffer;
      Length = DestinationString.Length;
      LODWORD(UserDataCount) = 3;
      UserData.Size = 4;
      v11 = 2;
      LOBYTE(v3) = EtwWriteEx(
                     PopDiagHandle,
                     (EVENT_DESCRIPTOR *)&POP_ETW_DEEP_SLEEP_IR_TIMER_DATA,
                     0i64,
                     0i64,
                     0i64,
                     0i64,
                     UserDataCount,
                     &UserData);
    }
  }
  return(char)v3;
}

Referenced by:

ExStopRecordingIRTimerExpiries