PopDirectedDripsDiagCreateDeviceDiagnostic
CHAR *__fastcall PopDirectedDripsDiagCreateDeviceDiagnostic(INT64 a1){
_QWORD *PoolWithTag;
_QWORD *v3;
_QWORD *v4;
PoolWithTag = ExAllocatePoolWithTag(PagedPool, 0xA8ui64, 0x67696450ui64);
v3 = PoolWithTag;
if( PoolWithTag )
{
memset((INT64)PoolWithTag, 0i64);
v3[2] = a1;
*((_DWORD *)v3 + 6) = dword_140C1EB80++;
*((_DWORD *)v3 + 37) = -1;
if( (int)PopDirectedDripsDiagCreateDeviceDescription(a1, (INT64)v3) < 0 )
{
PopDirectedDripsDiagFreeDeviceDiagnostic(v3);
return 0i64;
}
else
{
*(_QWORD *)(a1 + 776) = v3;
v4 = (_QWORD *)qword_140C1E998;
if( *(PVOID **)qword_140C1E998 != &qword_140C1E990 )
__fastfail(3u);
*v3 = &qword_140C1E990;
v3[1] = v4;
*v4 = v3;
qword_140C1E998 = (__int64)v3;
}
}
return(CHAR *)v3;
}Referenced by:
PopDirectedDripsDiagBroadcastTreeBegin
PopDirectedDripsDiagTraceBroadcastVisit
PopDirectedDripsDiagTraceMarkDevice