PnpLogEvent

void __fastcall PnpLogEvent(const VOID **a1, const VOID **a2, int a3, const VOID *a4, size_t Size){
  __int64 v9; 
  __int64 v10; 
  unsigned __int64 v11; 
  _WORD *GenericErrorLogEntry; 
  _WORD *v13; 
  char *v14; 
  char *v15; 

  v9 = 0i64;
  v10 = 0i64;
  if( a1 )
    v10 = *(unsigned __int16 *)a1 + 2i64;
  if( a2 )
    v9 = *(unsigned __int16 *)a2 + 2i64;
  v11 = (Size + 40 + 1i64) & 0xFFFFFFFFFFFFFFFEui64;
  if( v10 + v11 + v9 <= 0xF0 )
  {
    GenericErrorLogEntry = IoAllocateGenericErrorLogEntry((unsigned __int8)v10 + (unsigned __int8)v11
                                                                               + (unsigned __int8)v9);
    v13 = GenericErrorLogEntry;
    if( GenericErrorLogEntry )
    {
      GenericErrorLogEntry[3] = v11;
      v14 = (char *)GenericErrorLogEntry + v11;
      *((_DWORD *)GenericErrorLogEntry + 3) = a3;
      *((_DWORD *)GenericErrorLogEntry + 5) = a3;
      GenericErrorLogEntry[1] = Size;
      if( Size )
        memmove(GenericErrorLogEntry + 20, a4, Size);
      if( a1 )
      {
        v13[2] = 1;
        memmove(v14, a1[1], *(unsigned __int16 *)a1);
        v15 = &v14[*(unsigned __int16 *)a1];
        *(_WORD *)v15 = 0;
        v14 = v15 + 2;
      }
      if( a2 )
      {
        ++v13[2];
        memmove(v14, a2[1], *(unsigned __int16 *)a2);
        *(_WORD *)&v14[*(unsigned __int16 *)a2] = 0;
      }
      IoWriteErrorLogEntry(v13);
    }
  }
}

Referenced by:

IopInitializePlugPlayServices
PiInitializeDDB
PiIsDriverBlocked
PnpFixupID
PnpLogDuplicateDevice
PnpQueryID
PpBootDDBHelper
PpCheckInDriverDatabase