PpmWmiFireIdleAccountingEvent

__int64 __fastcall PpmWmiFireIdleAccountingEvent(__int64 a1){
  _QWORD *v1; 
  _DWORD *v2; 
  tagWNODE_SINGLE_INSTANCE *v3; 
  tagWNODE_SINGLE_INSTANCE *v4; 
  NTSTATUS v5; 
  v1 = (_QWORD *)(a1 + 0x8000);
  if( *(_QWORD *)(a1 + 0x8000) && (v2 = *(_DWORD **)(a1 + 32776)) != 0i64 && *(_DWORD *)(a1 + 33000) )
  {
    v3 = PpmAllocWmiEvent((VOID *)(a1 + 32992), (GUID *)&PPM_IDLE_ACCOUNTING_EX_GUID, (unsigned int)(416 * *v2 + 24));
    v4 = v3;
    if( v3 )
    {
      PpmTranslateIdleAccounting(v1, (INT64)v3 + v3->DataBlockOffset, 0i64);
      v5 = IoWMIWriteEvent(v4);
      if( v5 >= 0 )
        return 0;
      else
        ExFreePoolWithTag(v4, 0x774D5050u);
    }
    else
    {
      return(unsigned int)-1073741670;
    }
  }
  else
  {
    return(unsigned int)-1073741823;
  }
  return(unsigned int)v5;
}

Referenced by:

No references.