PopDirectedDripsDiagInsertErrorRecord
CHAR *__fastcall PopDirectedDripsDiagInsertErrorRecord(INT64 a1, INT64 a2, INT64 a3){
CHAR **v3;
int v4;
CHAR *i;
CHAR *result;
v3 = (CHAR **)(a1 + 24);
v4 = a3;
for( i = *(CHAR **)(a1 + 24); i; i = *(CHAR **)i )
{
if( *((_QWORD *)i + 1) == a2 && *((_DWORD *)i + 4) == (_DWORD)a3 )
break;
v3 = (CHAR **)i;
}
result = *v3;
if( !*v3 )
{
result = (CHAR *)ExAllocatePoolWithTag(PagedPool, 0x18ui64, 0x67696450ui64);
*v3 = result;
if( !result )
return result;
*(_OWORD *)result = 0i64;
*((_QWORD *)result + 2) = 0i64;
*((_QWORD *)*v3 + 1) = a2;
*((_DWORD *)*v3 + 4) = v4;
result = *v3;
}
++*((_DWORD *)result + 5);
return result;
}Referenced by:
PopDirectedDripsDiagTraceBroadcastFailureDevice
PopDirectedDripsDiagTraceProblemDevice