PnpCallDriverEntry

INT64 __fastcall PnpCallDriverEntry(INT64 a1, INT64 a2){
  CHAR *v4; 
  unsigned int v5; 
  __int64 v6; 
  INT64 v7; 
  _QWORD v9[5]; 
  v9[0] = 0i64;
  v9[1] = a1;
  v9[2] = KeGetCurrentThread();
  v4 = PnpEnableWatchdog(5i64, (INT64)v9);
  v5 = (*(__int64(__fastcall **)(INT64, INT64))(a1 + 88))(a1, a2);
  if( v4 )
  {
    v6 = *((_QWORD *)v4 + 1);
    ExDeleteTimer(*(_QWORD *)(v6 + 56), 1, 1, 0i64);
    *(_QWORD *)(v6 + 56) = 0i64;
    if( *(int *)(v6 + 96) > 0 )
      KeWaitForSingleObject((PVOID)(v6 + 104), Executive, 0, 0, 0i64);
    ExFreePoolWithTag((PVOID)v6, 0x54645750u);
    v7 = *((unsigned int *)v4 + 4);
    *((_QWORD *)v4 + 1) = 0i64;
    PnpRecordBlackbox(0i64, v7);
    if( v4[32] )
      PnpWatchdogEtwWrite((INT64)v4, 0);
    PnpFreeWatchdog(v4);
  }
  return v5;
}

Referenced by:

IopLoadDriver