MmChangeKernelCfgBitmap

CHAR __fastcall MmChangeKernelCfgBitmap(UINT64 a1){
  INT64 v1; 
  MMPTE *PteAddress; 
  UINT64 v3; 
  char v4; 
  UINT64 ValidPte; 
  int v6; 
  _ETHREAD *CurrentThread; 
  bool v8; 
  PteAddress = MiGetPteAddress((PVOID)a1);
  v3 = (UINT64)PteAddress;
  if( v4 )
  {
    ValidPte = MiMakeValidPte((UINT64)PteAddress, v1, 536870913i64);
    v3 = (UINT64)PteAddress;
  }
  else
  {
    ValidPte = ZeroPte;
  }
  v6 = 0;
  LODWORD(CurrentThread) = MiPteInShadowRange(v3);
  if( (_DWORD)CurrentThread )
  {
    LODWORD(CurrentThread) = MiPteHasShadow();
    if( (_DWORD)CurrentThread )
    {
      v6 = 1;
      if( HIBYTE(word_140C4DD48) )
        goto LABEL_12;
      v8 = (ValidPte & 1) == 0;
    }
    else
    {
      CurrentThread = (_ETHREAD *)KeGetCurrentThread();
      if( (*(_DWORD *)(*((_QWORD *)CurrentThread + 23) + 2172i64) & 0x1000) == 0 )
        goto LABEL_12;
      v8 = (ValidPte & 1) == 0;
    }
    if( !v8 )
    {
      LOBYTE(CurrentThread) = 0;
      ValidPte |= 0x8000000000000000ui64;
    }
  }
LABEL_12:
  *(_QWORD *)PteAddress = ValidPte;
  if( v6 )
    LOBYTE(CurrentThread) = MiWritePteShadow();
  return(char)CurrentThread;
}

Referenced by:

PsDispatchIumService