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