PopDiagTraceFxDeviceAccounting

void PopDiagTraceFxDeviceAccounting(__int64 a1, __int64 a2, unsigned __int16 *a3, ...){
  WCHAR v5; 
  EVENT_DESCRIPTOR *v6; 
  UINT64 v7; 
  _DEVICE_OBJECT *v8; 
  bool v9; 
  int DevicePropertyString; 
  wchar_t *Buffer; 
  bool v12; 
  wchar_t *v13; 
  int v14; 
  __int64 v15; 
  UINT64 UserDataCount; 
  char v17; 
  __int64 v18; 
  struct _UNICODE_STRING DestinationString; 
  struct _UNICODE_STRING v20; 
  UINT64 v21; 
  __int64 v22; 
  __int64 v23; 
  EVENT_DATA_DESCRIPTOR UserData; 
  __int64 *v25; 
  __int64 v26; 
  va_list v27; 
  __int64 v28; 
  UINT64 *v29; 
  __int64 v30; 
  struct _EVENT_DATA_DESCRIPTOR v31; 
  UINT64 *v32; 
  __int64 v33; 
  int *v34; 
  __int64 v35; 
  __int64 v36; 
  int v37[2]; 
  __int64 *v38; 
  __int64 v39; 
  __int64 v40; 
  __int64 v41; 
  __int64 v42; 
  __int64 v43; 
  __int64 *v44; 
  __int64 v45; 
  int *v46; 
  __int64 v47; 
  wchar_t *v48; 
  int v49[2]; 
  int *v50; 
  __int64 v51; 
  wchar_t *v52; 
  int v53[2]; 
  int *v54; 
  __int64 v55; 
  __int64 v56; 
  int v57[2]; 
  va_list va; 
  va_start(va, a3);
  v18 = a1;
  DestinationString = 0i64;
  v20 = 0i64;
  RtlInitUnicodeString(&DestinationString, &ppszDestEnd, (WCHAR)a3);
  RtlInitUnicodeString(&v20, &ppszDestEnd, v5);
  if( PopDiagHandleRegistered )
  {
    v7 = PopDiagHandle;
    if( EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_DEVICE_ACCOUNTING, v6) )
    {
      v17 = PopWnfCsEnterScenarioId;
      *(_QWORD *)&UserData.Size = 1i64;
      UserData.Ptr = (unsigned __int64)&v17;
      v26 = 8i64;
      v25 = &v18;
      v28 = 8i64;
      va_copy(v27, va);
      v30 = 8i64;
      v29 = &PopWnfCsEnterScenarioId;
      LODWORD(UserDataCount) = 4;
      EtwWriteEx(
        v7,
        (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_DEVICE_ACCOUNTING,
        0i64,
        0i64,
        0i64,
        0i64,
        UserDataCount,
        &UserData);
      if( *(_DWORD *)(a2 + 12) < 5u && !PopDiagFxAccountingTelemetryDisabled )
      {
        v8 = *(_DEVICE_OBJECT **)(v18 + 32);
        v9 = (int)PopDiagQueryDevicePropertyString(v8, DevicePropertyClassName, (__int64)&DestinationString) >= 0;
        DevicePropertyString = PopDiagQueryDevicePropertyString(v8, DevicePropertyClassGuid, (__int64)&v20);
        Buffer = DestinationString.Buffer;
        v12 = DevicePropertyString >= 0;
        v13 = v20.Buffer;
        if( (unsigned int)dword_140C021E8 > 5 && tlgKeywordOn((__int64)&dword_140C021E8, 0x400000000000i64) )
        {
          v21 = PopWnfCsEnterScenarioId;
          v33 = 8i64;
          v32 = &v21;
          v14 = *(unsigned __int16 *)(v18 + 40);
          v15 = *(_QWORD *)(v18 + 48);
          v34 = v37;
          v22 = *(_QWORD *)(a2 + 32);
          v38 = &v22;
          v40 = a2 + 48;
          v42 = a2 + 88;
          v23 = *(_QWORD *)(a2 + 40);
          v44 = &v23;
          v46 = v49;
          v49[0] = DestinationString.Length;
          v50 = v53;
          v53[0] = v20.Length;
          v54 = v57;
          v56 = *((_QWORD *)a3 + 1);
          v57[0] = *a3;
          v36 = v15;
          v37[0] = v14;
          v35 = 2i64;
          v37[1] = 0;
          v39 = 8i64;
          v41 = 40i64;
          v43 = 40i64;
          v45 = 8i64;
          v47 = 2i64;
          v48 = Buffer;
          v49[1] = 0;
          v51 = 2i64;
          v52 = v13;
          v53[1] = 0;
          v55 = 2i64;
          v57[1] = 0;
          tlgWriteTransfer_EtwWriteTransfer(
            (__int64)&dword_140C021E8,
            (unsigned __int8 *)byte_140027560,
            0i64,
            0i64,
            0xFu,
            &v31);
        }
        if( v9 )
          ExFreePoolWithTag(Buffer, 0x67696450u);
        if( v12 )
          ExFreePoolWithTag(v13, 0x67696450u);
      }
    }
  }
}

Referenced by:

PopFxStopDeviceAccounting