PopDirectedDripsDiagRundownBroadcastTrees

VOID __stdcall PopDirectedDripsDiagRundownBroadcastTrees(){
  char *v0; 
  __int64 v1; 
  __int64 v2; 
  int v3; 
  __int64 v4; 
  int v5; 
  REGHANDLE v6; 
  __int64 v7; 
  __int64 v8; 
  _QWORD *v9; 
  int v10; 
  int v11; 
  int v12; 
  int v13; 
  int v14; 
  int v15; 
  int v16; 
  int v17; 
  int v18; 
  int v19; 
  UINT64 v20; 
  UINT64 v21; 
  __int64 v22; 
  __int64 v23; 
  _EVENT_DATA_DESCRIPTOR v24[2]; 
  UINT64 *v25; 
  __int64 v26; 
  int *v27; 
  __int64 v28; 
  int *v29; 
  __int64 v30; 
  int *v31; 
  __int64 v32; 
  int *v33; 
  __int64 v34; 
  int *v35; 
  __int64 v36; 
  int *v37; 
  __int64 v38; 
  __int64 *v39; 
  __int64 v40; 
  char *v41; 
  __int64 v42; 
  char *v43; 
  __int64 v44; 
  __int64 *v45; 
  __int64 v46; 
  _EVENT_DATA_DESCRIPTOR UserData; 
  __int64 v48; 
  __int64 v49; 
  __int64 v50; 
  __int64 v51; 
  _QWORD *v52; 
  __int64 v53; 
  __int64 v54; 
  __int64 v55; 

  v20 = PopWnfCsEnterScenarioId;
  while( 1 )
  {
    v0 = (char *)PopDirectedDripsDiagSessionContext;
    if( PopDirectedDripsDiagSessionContext == &PopDirectedDripsDiagSessionContext )
      break;
    v1 = *(_QWORD *)PopDirectedDripsDiagSessionContext;
    if( *((PVOID **)PopDirectedDripsDiagSessionContext + 1) != &PopDirectedDripsDiagSessionContext
      || *(PVOID *)(v1 + 8) != PopDirectedDripsDiagSessionContext )
    {
      __fastfail(3u);
    }
    PopDirectedDripsDiagSessionContext = *(PVOID *)PopDirectedDripsDiagSessionContext;
    *(_QWORD *)(v1 + 8) = &PopDirectedDripsDiagSessionContext;
    if( (unsigned int)dword_140D2C920 > 5 && tlgKeywordOn((__int64)&dword_140D2C920, 0x400000000000i64) )
    {
      v2 = *((_QWORD *)v0 + 2);
      v21 = v20;
      v26 = 8i64;
      v25 = &v21;
      v10 = *(_DWORD *)(v2 + 24);
      v27 = &v10;
      v28 = 4i64;
      v11 = *(_DWORD *)(v2 + 144);
      v29 = &v11;
      v12 = *((_DWORD *)v0 + 8);
      v31 = &v12;
      v13 = *((_DWORD *)v0 + 10);
      v33 = &v13;
      v35 = (int *)(v0 + 56);
      v37 = (int *)(v0 + 80);
      v39 = (__int64 *)(v0 + 192);
      v41 = v0 + 128;
      v43 = v0 + 152;
      v45 = &v22;
      v30 = 4i64;
      v32 = 4i64;
      v34 = 4i64;
      v36 = 20i64;
      v38 = 40i64;
      v40 = 36i64;
      v42 = 20i64;
      v44 = 40i64;
      v22 = 0x1000000i64;
      v46 = 8i64;
      tlgWriteTransfer_EtwWriteTransfer(
        (__int64)&dword_140D2C920,
        (unsigned __int8 *)byte_140028F9B,
        0i64,
        0i64,
        0xDu,
        v24);
    }
    while( 1 )
    {
      v9 = (_QWORD *)*((_QWORD *)v0 + 3);
      if( !v9 )
        break;
      if( (unsigned int)dword_140D2C920 > 5 && tlgKeywordOn((__int64)&dword_140D2C920, 0x400000000000i64) )
      {
        v21 = v20;
        v26 = 8i64;
        v25 = &v21;
        v3 = *(_DWORD *)(*((_QWORD *)v0 + 2) + 24i64);
        v27 = &v14;
        v15 = *((_DWORD *)v0 + 8);
        v29 = &v15;
        v16 = *((_DWORD *)v0 + 10);
        v31 = &v16;
        v4 = v9[1];
        v14 = v3;
        v28 = 4i64;
        v30 = 4i64;
        v32 = 4i64;
        v5 = *(_DWORD *)(v4 + 24);
        v33 = &v17;
        v18 = *((_DWORD *)v9 + 4);
        v35 = &v18;
        v19 = *((_DWORD *)v9 + 5);
        v37 = &v19;
        v39 = &v23;
        v17 = v5;
        v34 = 4i64;
        v36 = 4i64;
        v38 = 4i64;
        v23 = 0x1000000i64;
        v40 = 8i64;
        tlgWriteTransfer_EtwWriteTransfer(
          (__int64)&dword_140D2C920,
          (unsigned __int8 *)&word_140028F0E,
          0i64,
          0i64,
          0xAu,
          v24);
      }
      if( PopDiagHandleRegistered )
      {
        v6 = PopDiagHandle;
        if( EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_DIRECTED_DRIPS_ERROR_RECORD) )
        {
          *(_QWORD *)&UserData.Size = 8i64;
          UserData.Ptr = (unsigned __int64)&v20;
          v7 = *((_QWORD *)v0 + 2) + 16i64;
          v49 = 8i64;
          v48 = v7;
          v8 = v9[1];
          v51 = 8i64;
          v50 = v8 + 16;
          v52 = v9 + 2;
          v54 = (__int64)v9 + 20;
          v53 = 4i64;
          v55 = 4i64;
          EtwWrite(v6, &POP_ETW_EVENT_DIRECTED_DRIPS_ERROR_RECORD, 0, 5u, &UserData);
        }
      }
      *((_QWORD *)v0 + 3) = *v9;
      ExFreePoolWithTag(v9, 0x67696450u);
    }
    ExFreePoolWithTag(v0, 0x67696450u);
  }
}

Referenced by:

PopDirectedDripsDiagNotifySessionStop