Function at 0x460e8f
Capabilities:
Check for unmoving mouse cursor
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
push edi
mov edi, ecx
cmp dword [edi + 0x298], 0
je 0x461325
cmp dword [edi + 0x2f8], 0
je 0x461325
push ebx
push esi
push dword [edi + 0x2a4]
lea esi, [edi + 0x2a4]
lea ebx, [edi + 0x2a0]
lea ecx, [edi + 0x1c0]
push dword [ebx]
call fcn.00470e1b
push dword [esi]
lea ecx, [edi + 0x60]
push dword [ebx]
call fcn.004946dd
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x60]
push eax
push dword [edi + 0x80]
call esi
lea eax, [ebp - 0x70]
push eax
push dword [edi + 0x20]
call esi
lea eax, [ebp - 0x24]
push eax
push dword [edi + 0x1e0]
call esi
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push dword [ebp - 0x28]
lea eax, [ebp - 0x24]
push dword [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
mov esi, dword [sym.imp.GraphicData.dll_GameDataSetQuery]
mov ebx, 0x2741
test eax, eax
je 0x460faa
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call sub.MFC42.DLL_CWnd::FromHandle
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call sub.MFC42.DLL_CWnd::ScreenToClient
call esi
mov dword [ebp - 0xc], eax
call esi
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x3c]
push eax
push 0xff000000
push 0
push 0
call fcn.004705d4
mov ecx, eax
call fcn.00401f9f
mov ecx, dword [ebp - 0xc]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [ebp - 0x10]
push eax
push 0x2b22
mov eax, dword [ecx]
call dword [eax + 0x3c]
push eax
push 0xffffffffffffffff
call fcn.004705d4
mov ecx, eax
call fcn.00401f9f
mov ecx, dword [ebp - 0x20]
sub ecx, eax
dec ecx
dec ecx
push ecx
push dword [ebp - 0x24]
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::ShowStringEx_int__int__unsigned_long_int__char_const___char_const___int__int__enum_RENDER_TEXT_STYLE__unsigned_long_int__struct_CMyPos__]
add esp, 0x28
lea eax, [edi + 0x2fc]
push eax
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x460fdf
lea eax, [edi + 0x2a8]
push eax
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x460fdf
call esi
mov edx, dword [eax]
push 0x186b2
mov ecx, eax
call dword [edx + 0x3c]
mov dword [ebp - 0xc], eax
jmp 0x460fe6
mov dword [ebp - 0xc], 0x58ea40
lea eax, [ebp - 0x40]
mov ecx, 0x58ee40
push eax
push 0x7d1
call fcn.00493103
push 1
pop eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
call esi
mov dword [ebp - 0x10], eax
call esi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x34]
push eax
push 0xff000000
push 1
push 0
push 0
push 0x15
call fcn.004705d4
mov ecx, eax
call fcn.00401f9f
mov ecx, dword [ebp - 0x10]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [ebp - 4]
push eax
push 0
mov eax, dword [ecx]
call dword [eax + 0x5c]
mov ecx, dword [ebp - 8]
push eax
lea eax, [edi + 0x2fc]
push eax
mov eax, dword [edi + 0x290]
push 0xaaffaa
push dword [edi + 0x294]
lea eax, [ecx + eax + 2]
push eax
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::ShowEmotionStringEx_int__int__unsigned_long_int__char_const___class_IDataIcon___char_const___int__int__int__int__enum_RENDER_TEXT_STYLE__unsigned_long_int__struct_CMyPos__]
add esp, 0x34
call esi
mov dword [ebp - 8], eax
call esi
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], eax
push 0x15
push 0
mov eax, dword [ecx]
call dword [eax + 0x5c]
push eax
call fcn.004705d4
mov ecx, eax
call fcn.00401f9f
mov ecx, dword [ebp - 4]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
push eax
lea eax, [edi + 0x2fc]
push eax
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::CalcuTextExtent_char_const___char_const___int__class_IDataIcon___int_]
add esp, 0x14
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
call esi
mov dword [ebp - 8], eax
call esi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x34]
push eax
push 0xff000000
push 1
push 0
push 0
push 0x15
call fcn.004705d4
mov ecx, eax
call fcn.00401f9f
mov ecx, dword [ebp - 8]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [ebp - 4]
push eax
push 0
mov eax, dword [ecx]
call dword [eax + 0x5c]
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x3c]
add eax, ecx
mov ecx, dword [edi + 0x290]
push 0xffffffffffffffff
push dword [edi + 0x294]
lea eax, [eax + ecx + 3]
push eax
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::ShowEmotionStringEx_int__int__unsigned_long_int__char_const___class_IDataIcon___char_const___int__int__int__int__enum_RENDER_TEXT_STYLE__unsigned_long_int__struct_CMyPos__]
add esp, 0x34
call esi
mov dword [ebp - 8], eax
call esi
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], eax
push 0x15
push 0
mov eax, dword [ecx]
call dword [eax + 0x5c]
push eax
call fcn.004705d4
mov ecx, eax
call fcn.00401f9f
mov ecx, dword [ebp - 4]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
push eax
push dword [ebp - 0xc]
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::CalcuTextExtent_char_const___char_const___int__class_IDataIcon___int_]
add esp, 0x14
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
call esi
mov dword [ebp - 8], eax
call esi
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], eax
sub esi, dword [ebp - 0x24]
lea eax, [ebp - 0x34]
push eax
push 0xff000000
push 1
push 0
push 0
push 0x15
call fcn.004705d4
mov ecx, eax
call fcn.00401f9f
mov ecx, dword [ebp - 8]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [ebp - 4]
push eax
push 0
mov eax, dword [ecx]
call dword [eax + 0x5c]
push eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3c]
lea ebx, [edi + 0x2a8]
add eax, ecx
mov ecx, dword [edi + 0x290]
push ebx
push dword [ebp - 0x40]
add eax, esi
push dword [edi + 0x294]
lea eax, [eax + ecx + 2]
push eax
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::ShowEmotionStringEx_int__int__unsigned_long_int__char_const___class_IDataIcon___char_const___int__int__int__int__enum_RENDER_TEXT_STYLE__unsigned_long_int__struct_CMyPos__]
lea esi, [edi + 0x2fc]
push esi
call sub.MSVCRT.dll_strlen
add esp, 0x38
test eax, eax
jbe 0x4612ca
push ebx
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x4612ca
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push dword [ebp - 0x28]
lea eax, [ebp - 0x70]
push dword [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x4612ca
push esi
push 0x591088
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x4612ca
lea eax, [ebp - 0x170]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov al, byte [ebp - 0x15e]
and al, 0x80
cmp al, 0x80
jne 0x4612ca
inc dword [0x58ebc0]
mov eax, dword [0x58ebc0]
push 0x1f
xor edx, edx
pop ecx
div ecx
mov ecx, edx
cmp ecx, 0xf
ja 0x461271
imul ecx, ecx, 0x11
mov edx, ecx
mov ebx, ecx
mov eax, 0xff
jmp 0x461281
imul ecx, ecx, 0x11
mov eax, 0x20f
lea edx, [ecx - 0x110]
mov ebx, edx
add edx, 0xff00
sub eax, ecx
shl edx, 8
add edx, ebx
mov esi, dword [ebp - 0x1c]
shl edx, 8
add edx, eax
mov eax, dword [edi + 0x294]
sub eax, dword [ebp - 0x5c]
sub esi, dword [ebp - 0x24]
push edx
add eax, dword [ebp - 0x54]
push eax
call dword [sym.imp.graphic.dll_public:_static_int___cdecl_CMyBitmap::GetScreenWidth_void_]
dec eax
dec eax
push eax
mov eax, dword [edi + 0x290]
push dword [edi + 0x294]
lea eax, [esi + eax + 2]
push eax
call dword [sym.imp.graphic.dll_public:_static_void___cdecl_CMyBitmap::ShowRect_int__int__int__int__unsigned_long_int_]
add esp, 0x14
lea eax, [ebp - 0x4c]
mov esi, 0x58f638
push eax
lea eax, [ebp - 0x50]
push eax
mov ecx, esi
push dword [edi + 0x294]
push dword [edi + 0x290]
call fcn.00496f3e
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x4c]
add eax, 0xffffffec
push eax
push dword [ebp - 0x50]
call fcn.00497801
mov ecx, dword [edi + 0x3fc]
lea esi, [edi + 0x3fc]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi]
push 0xffffffffffffffff
push dword [ebp - 0x44]
mov eax, dword [ecx]
push dword [ebp - 0x48]
call dword [eax + 0xc]
pop esi
pop ebx
pop edi
leave
ret