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