MiLogReserveVaFailed

VOID __fastcall MiLogReserveVaFailed(UINT64 SizeOfRange, UINT64 Alignment, UINT64 ZeroBits){
  __int64 v3; 
  __int64 v4; 
  _EPROCESS *Process; 
  signed __int32 bf_0; 
  signed __int32 v10; 
  __int64 v11; 
  UINT64 v12; 
  unsigned __int64 VirtualSize; 
  unsigned __int64 PeakVirtualSize; 
  void *HighestUserAddress; 
  UINT64 v16; 
  UINT64 v17; 
  __int64 v18; 
  int UniqueProcessId; 
  __int16 ProcessSessionId; 
  __int16 BootId; 
  _LARGE_INTEGER CreateTime; 
  __int64 v23[5]; 
  int v24; 
  int v25; 
  UINT64 *v26; 
  int v27; 
  int v28; 
  __int64 *p_VirtualSize; 
  int v30; 
  int v31; 
  __int64 *p_PeakVirtualSize; 
  int v33; 
  int v34; 
  __int64 *p_HighestUserAddress; 
  int v36; 
  int v37; 
  UINT64 *v38; 
  int v39; 
  int v40; 
  UINT64 *v41; 
  int v42; 
  int v43; 
  __int64 *v44; 
  int v45; 
  int v46; 

  v4 = v3;
  if( *(&stru_140C4DB30 + 542) )
  {
    Process = KeGetCurrentThread()->ApcState.Process;
    _m_prefetchw(&Process->2172);
    bf_0 = Process->$65F3D318EB14490C2A61100CD615354D::_bf_0;
    do
    {
      v10 = bf_0;
      bf_0 = _InterlockedCompareExchange((volatile signed __int32 *)&Process->2172, bf_0 | 0x800, bf_0);
    }
    while( v10 != bf_0 );
    if( (bf_0 & 0x800) == 0 )
    {
      UniqueProcessId = (int)Process->UniqueProcessId;
      ProcessSessionId = PsGetProcessSessionId((INT64)Process);
      BootId = KUSER_SHARED_DATA.BootId;
      CreateTime = Process->CreateTime;
      if( **(&stru_140C4DB30 + 542) > 5u )
      {
        if( tlgKeywordOn(*(&stru_140C4DB30 + 542), 0x400000000000i64) )
        {
          v25 = 0;
          v28 = 0;
          v31 = 0;
          v34 = 0;
          v37 = 0;
          v40 = 0;
          v43 = 0;
          v46 = 0;
          v23[4] = (__int64)&UniqueProcessId;
          v26 = &v12;
          VirtualSize = Process->VirtualSize;
          p_VirtualSize = (__int64 *)&VirtualSize;
          PeakVirtualSize = Process->PeakVirtualSize;
          p_PeakVirtualSize = (__int64 *)&PeakVirtualSize;
          HighestUserAddress = Process->HighestUserAddress;
          p_HighestUserAddress = (__int64 *)&HighestUserAddress;
          v38 = &v16;
          v41 = &v17;
          v44 = &v18;
          v27 = 8;
          v30 = 8;
          v33 = 8;
          v36 = 8;
          v39 = 8;
          v42 = 8;
          v45 = 8;
          v24 = 16;
          v12 = SizeOfRange;
          v16 = Alignment;
          v17 = ZeroBits;
          v18 = v4;
          tlgWriteEx_EtwWriteEx(v11, (unsigned __int8 *)&word_140024BD6, 0i64, 1u, 0, 0, 0xAu, (__int64)v23);
        }
      }
    }
  }
}

Referenced by:

MiReserveUserMemory