PspRecordCrashedProcessIntoBlackbox

VOID __fastcall PspRecordCrashedProcessIntoBlackbox(INT64 a1){
  unsigned __int16 *v1; 
  int v2; 
  int v3; 
  VOID *PoolWithTag; 
  __int64 v5; 
  __int64 InputBuffer[3]; 
  int v7; 
  int v8; 
  v1 = *(unsigned __int16 **)(a1 + 1472);
  InputBuffer[2] = 0i64;
  v2 = 0;
  v8 = 0;
  if( v1 )
  {
    if( *((_QWORD *)v1 + 1) )
    {
      v3 = *v1;
      if( (_WORD)v3 )
        v2 = v3 + 2;
    }
  }
  PoolWithTag = ExAllocatePoolWithTag(PagedPool, (unsigned int)(v2 + 8), 0x62427350ui64);
  v5 = (__int64)PoolWithTag;
  if( PoolWithTag )
  {
    memset((INT64)PoolWithTag, 0i64);
    *(_DWORD *)v5 = 1;
    *(_DWORD *)(v5 + 4) = v2 + 8;
    if( v2 )
      memmove((UINT8 *)(v5 + 8), *((UINT8 **)v1 + 1), *v1);
    v7 = 13;
    InputBuffer[0] = v5;
    InputBuffer[1] = (unsigned int)(v2 + 8);
    ZwPowerInformation(TraceApplicationPowerMessage|0x40, InputBuffer, 0x20u, 0i64, 0);
    ExFreePoolWithTag((PVOID)v5, 0x62427350u);
  }
}

Referenced by:

PsSetProcessFaultInformation