Function at 0x468164
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 0x4685fa
cmp dword [edi + 0x2f8], 0
je 0x4685fa
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.004784fe
push dword [esi]
lea ecx, [edi + 0x60]
push dword [ebx]
call fcn.0049ca6b
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 0x46827f
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.00477cc3
mov ecx, eax
call fcn.004f52d6
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.00477cc3
mov ecx, eax
call fcn.004f52d6
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 0x4682b4
lea eax, [edi + 0x2a8]
push eax
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x4682b4
call esi
mov edx, dword [eax]
push 0x186b2
mov ecx, eax
call dword [edx + 0x3c]
mov dword [ebp - 0xc], eax
jmp 0x4682bb
mov dword [ebp - 0xc], 0x5d8050
lea eax, [ebp - 0x40]
mov ecx, 0x5d85a0
push eax
push 0x7d1
call fcn.0049b488
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.00477cc3
mov ecx, eax
call fcn.004f52d6
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.00477cc3
mov ecx, eax
call fcn.004f52d6
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.00477cc3
mov ecx, eax
call fcn.004f52d6
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.00477cc3
mov ecx, eax
call fcn.004f52d6
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.00477cc3
mov ecx, eax
call fcn.004f52d6
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 0x46859f
push ebx
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x46859f
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 0x46859f
push esi
push 0x5dac58
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x46859f
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 0x46859f
inc dword [0x5d8320]
mov eax, dword [0x5d8320]
push 0x1f
xor edx, edx
pop ecx
div ecx
mov ecx, edx
cmp ecx, 0xf
ja 0x468546
imul ecx, ecx, 0x11
mov edx, ecx
mov ebx, ecx
mov eax, 0xff
jmp 0x468556
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, 0x5d91d0
push eax
lea eax, [ebp - 0x50]
push eax
mov ecx, esi
push dword [edi + 0x294]
push dword [edi + 0x290]
call fcn.0049f86c
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.004a012f
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