PfHardFaultLog

void __fastcall PfHardFaultLog(_QWORD *a1, int a2, INT64 a3){
  _EPROCESS *Process; 
  int LowPart; 
  unsigned __int64 v7; 
  __int64 v8; 
  INT16 v9; 
  INT64 v10; 
  INT64 v11; 
  int v12[2]; 
  __int64 v13; 
  __int64 v14; 
  __int64 v15; 
  __int64 v16; 

  Process = KeGetCurrentThread()->Process;
  if( *a1 || a1[1] )
  {
    if( a2 )
    {
      if( a2 == 1 )
      {
        v9 = 626;
        goto LABEL_13;
      }
      if( a2 == 2 )
      {
        v9 = 627;
LABEL_13:
        EtwTraceSiloTimedEvent((INT64)Process->ServerSilo, v9, a3, (INT64)(a1 + 4), v10, v11, (INT64)a1);
        goto LABEL_3;
      }
    }
    v9 = 544;
    goto LABEL_13;
  }
LABEL_3:
  if( a1[8] )
  {
    if( a2 != 2 )
    {
      LowPart = KUSER_SHARED_DATA.TickCount.LowPart;
      v7 = KUSER_SHARED_DATA.TickCountQuad - a1[8];
      a1[8] = v7;
      v8 = (__int64)Process->UniqueProcessId ^ Process->CreateTime.QuadPart;
      v12[0] = 2 * v7;
      v12[1] = PfKernelGlobals.StreamSequenceNumber;
      v15 = a1[6];
      v13 = (unsigned int)(a1[4] >> 9);
      v14 = a1[5];
      v16 = v8 & 0x1FFFFFFFFFFFFFFFi64;
      PfLogEvent(29, LowPart, v12, 0x28u);
    }
  }
}

Referenced by:

MiWaitForInPageComplete