#include bool state = false ; kthook :: kthook_simple hook { 0x747EB0 , [ ] ( const auto & hook , void * hwnd , unsigned umsg , unsigned wparam , unsigned lparam ) { if ( uMsg == WM_KEYDOWN && wparam == VK_F2 && ! ( lparam & KF_REPEAT ) ) { state = ! state ; for ( auto value : { 0x5109AC , 0x5109C5 , 0x5231A6 , 0x52322D , 0x5233BA } ) { unsigned old ; VirtualProtect ( reinterpret_cast ( value ) , 1 , PAGE_READWRITE , & old ) ; if ( state ) * reinterpret_cast ( value ) = 0xEB ; else * reinterpret_cast ( value ) = ( value ( value ) , 1 , old , & old ) ; } } return hook . get_trampoline ( ) ( hwnd , umsg , wparam , lparam ) ; } }