MiLogCommitRequestFailed

void __fastcall MiLogCommitRequestFailed(__int64 a1, __int64 a2, int a3){
  signed __int32 v6; 
  signed __int32 v7; 
  __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  __int64 v11; 
  __int64 v12; 
  __int64 v13; 
  __int64 v14; 
  __int64 v15; 
  __int64 v16; 
  UINT64 JobCommitLimit; 
  UINT64 JobTotalCommitLimit; 
  UINT64 JobMemoryUsage; 
  UINT64 JobSharedMemoryUsage; 
  __int64 v21; 
  __int64 v22; 
  __int64 v23; 
  __int64 v24; 
  __int64 v25; 
  UINT64 v26; 
  UINT64 v27; 
  UINT64 v28; 
  UINT64 v29; 
  __int64 v30; 
  __int64 v31; 
  int v32; 
  __int16 ProcessSessionId; 
  __int16 BootId; 
  __int64 v35; 
  __int64 v36[30]; 
  JobTotalCommitLimit = 0i64;
  JobCommitLimit = 0i64;
  JobMemoryUsage = 0i64;
  JobSharedMemoryUsage = 0i64;
  if( *(_QWORD *)&qword_140C4EC20 )
  {
    _m_prefetchw((const void *)(a1 + 2172));
    v6 = *(_DWORD *)(a1 + 2172);
    do
    {
      v7 = v6;
      v6 = _InterlockedCompareExchange((volatile signed __int32 *)(a1 + 2172), v6 | 0x400, v6);
    }
    while( v7 != v6 );
    if( (v6 & 0x400) == 0 )
    {
      v32 = *(_DWORD *)(a1 + 1088);
      ProcessSessionId = PsGetProcessSessionId(a1);
      BootId = KUSER_SHARED_DATA.BootId;
      v35 = *(_QWORD *)(a1 + 1128);
      v8 = *(_QWORD *)(a1 + 1384);
      v9 = *(_QWORD *)(a1 + 1600);
      v10 = *(_QWORD *)(a1 + 1608);
      v11 = *(_QWORD *)(v8 + 320);
      v12 = *(_QWORD *)(v8 + 256);
      PsQueryJobMemoryUsageByProcess(
        (_EPROCESS *)a1,
        &JobCommitLimit,
        &JobTotalCommitLimit,
        &JobMemoryUsage,
        &JobSharedMemoryUsage);
      MiGetProcessPartition((_EPROCESS *)a1);
      if( **(_DWORD **)&qword_140C4EC20 > 5u )
      {
        if( tlgKeywordOn(*(__int64 *)&qword_140C4EC20, 0x400000000000i64) )
        {
          v30 = v13;
          v36[4] = (__int64)&v32;
          v36[5] = 16i64;
          v36[6] = (__int64)&v21;
          v21 = a2;
          v36[8] = (__int64)&v16;
          v36[7] = 8i64;
          v36[10] = (__int64)&v22;
          v36[12] = (__int64)&v23;
          v36[14] = (__int64)&v24;
          v36[16] = (__int64)&v25;
          v26 = JobCommitLimit;
          v36[18] = (__int64)&v26;
          v27 = JobTotalCommitLimit;
          v36[20] = (__int64)&v27;
          v28 = JobMemoryUsage;
          v36[22] = (__int64)&v28;
          v29 = JobSharedMemoryUsage;
          v36[24] = (__int64)&v29;
          v36[26] = (__int64)&v30;
          v36[28] = (__int64)&v31;
          LODWORD(v16) = a3;
          v36[9] = 4i64;
          v22 = v11;
          v36[11] = 8i64;
          v23 = v12;
          v36[13] = 8i64;
          v24 = v9;
          v36[15] = 8i64;
          v25 = v10;
          v36[17] = 8i64;
          v36[19] = 8i64;
          v36[21] = 8i64;
          v36[23] = 8i64;
          v36[25] = 8i64;
          v36[27] = 8i64;
          v31 = v15;
          v36[29] = 8i64;
          tlgWriteEx_EtwWriteEx(v14, (unsigned __int8 *)&word_140025822, 0i64, 1u, 0, 0, 0xFu, (__int64)v36);
        }
      }
    }
  }
}

Referenced by:

MiCommitRequestFailed