PopDiagTraceFxDefaultPepWorkerEnd

CHAR __stdcall PopDiagTraceFxDefaultPepWorkerEnd(
        POP_FX_DEVICE *EndFxDevice,
        POP_PEP_WORK_SERVICED_TYPE WorkType,
        CHAR ComponentServiced,
        INT64 Phase,
        INT64 NumberExtraDevices){
  void **v5; 
  int v6; 
  int v7; 
  REGHANDLE v10; 
  __int64 v11; 
  __int64 UserDataCount; 
  __int64 v13; 
  __int64 v14; 
  CHAR v15; 
  REGHANDLE v16; 
  REGHANDLE v17; 
  int ActivityId; 
  int RelatedActivityId; 
  CHAR v21; 
  char v22; 
  char v23; 
  int v24; 
  __int64 v25; 
  __int64 v26; 
  _EVENT_DATA_DESCRIPTOR UserData; 
  CHAR *v28; 
  __int64 v29; 
  char *v30; 
  __int64 v31; 
  char *v32; 
  __int64 v33; 
  __int64 v34[8]; 
  char v35[32]; 
  int *v36; 
  __int64 v37; 
  void *retaddr; 
  POP_FX_DEVICE *v39; 

  v5 = &retaddr;
  v39 = EndFxDevice;
  v6 = NumberExtraDevices;
  v7 = Phase;
  if( (_DWORD)Phase == 2 )
  {
    if( *(&stru_140C00F40 + 1194) > 5u )
    {
      LOBYTE(v5) = tlgKeywordOn((__int64)&stru_140C00F40 + 4776, 0x400000000000i64);
      if( (_BYTE)v5 )
      {
        v24 = v6;
        v36 = &v24;
        v37 = v14;
        LOBYTE(v5) = tlgWriteEx_EtwWriteEx(
                       (__int64)&stru_140C00F40 + 4776,
                       (unsigned __int8 *)byte_1400273D0,
                       v13,
                       1u,
                       ActivityId,
                       RelatedActivityId,
                       3u,
                       (__int64)v35);
      }
    }
  }
  else if( (_DWORD)Phase == 3 )
  {
    _m_prefetchw(&PopLogFxDefaultPepWorkerOrphaned);
    LODWORD(v5) = _InterlockedAnd(&PopLogFxDefaultPepWorkerOrphaned, 0);
    if( (_DWORD)v5 )
    {
      if( *(&stru_140C00F40 + 1194) > 5u )
      {
        LOBYTE(v5) = tlgKeywordOn((__int64)&stru_140C00F40 + 4776, 0x400000000000i64);
        if( (_BYTE)v5 )
        {
          LODWORD(v25) = v6;
          v34[4] = (__int64)&v25;
          v34[5] = UserDataCount;
          v34[6] = (__int64)&v26;
          v26 = 0x1000000i64;
          v34[7] = 8i64;
          LOBYTE(v5) = tlgWriteEx_EtwWriteEx(
                         (__int64)&stru_140C00F40 + 4776,
                         (unsigned __int8 *)&word_140027382,
                         v11,
                         1u,
                         ActivityId,
                         RelatedActivityId,
                         UserDataCount,
                         (__int64)v34);
        }
      }
    }
  }
  if( PopDiagHandleRegistered )
  {
    v10 = PopDiagHandle;
    if( EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_DEFAULT_PEP_WORKER_END)
      || EtwEventEnabled(v10, &POP_ETW_EVENT_DEFAULT_PEP_WORKER_DEVICE_RECOVERED)
      || (LOBYTE(v5) = EtwEventEnabled(v10, &POP_ETW_EVENT_DEFAULT_PEP_WORKER_DEVICE_ORPHANED), (_BYTE)v5) )
    {
      if( WorkType )
      {
        if( WorkType == PopPepWorkServicedTypeDeviceNonShared )
        {
          v15 = -1;
        }
        else
        {
          v15 = ComponentServiced;
          if( WorkType == PopPepWorkServicedTypeDeviceShared )
            v15 = -2;
        }
      }
      else
      {
        v15 = -3;
      }
      v21 = v15;
      v22 = v7;
      UserData.Ptr = (unsigned __int64)&v39;
      v23 = v6;
      v28 = &v21;
      v30 = &v22;
      v32 = &v23;
      *(_QWORD *)&UserData.Size = 8i64;
      v29 = 1i64;
      v31 = 1i64;
      v33 = 1i64;
      LOBYTE(v5) = EtwEventEnabled(v10, &POP_ETW_EVENT_DEFAULT_PEP_WORKER_END);
      if( (_BYTE)v5 )
        LOBYTE(v5) = EtwWriteEx(v10, &POP_ETW_EVENT_DEFAULT_PEP_WORKER_END, 0i64, 1u, 0, 0, 4u, &UserData);
      if( v7 == 2 )
      {
        v16 = PopDiagHandle;
        LOBYTE(v5) = EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_DEFAULT_PEP_WORKER_DEVICE_RECOVERED);
        if( !(_BYTE)v5 )
          return(char)v5;
        LOBYTE(v5) = EtwWriteEx(v16, &POP_ETW_EVENT_DEFAULT_PEP_WORKER_DEVICE_RECOVERED, 0i64, 1u, 0, 0, 4u, &UserData);
      }
      if( v7 == 3 )
      {
        v17 = PopDiagHandle;
        LOBYTE(v5) = EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_DEFAULT_PEP_WORKER_DEVICE_ORPHANED);
        if( (_BYTE)v5 )
          LOBYTE(v5) = EtwWriteEx(v17, &POP_ETW_EVENT_DEFAULT_PEP_WORKER_DEVICE_ORPHANED, 0i64, 1u, 0, 0, 4u, &UserData);
      }
    }
  }
  return(char)v5;
}

Referenced by:

PopPepWork