Function at 0x455aa9
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 + 0x290], 0
je 0x455f3f
cmp dword [edi + 0x2f0], 0
je 0x455f3f
push ebx
push esi
push dword [edi + 0x29c]
lea esi, [edi + 0x29c]
lea ebx, [edi + 0x298]
lea ecx, [edi + 0x1b8]
push dword [ebx]
call fcn.00460395
push dword [esi]
lea ecx, [edi + 0x60]
push dword [ebx]
call fcn.0047e90a
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 + 0x1d8]
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 0x455bc4
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.0045fb57
mov ecx, eax
call fcn.0045fb8c
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.0045fb57
mov ecx, eax
call fcn.0045fb8c
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 + 0x2f4]
push eax
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x455bf9
lea eax, [edi + 0x2a0]
push eax
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x455bf9
call esi
mov edx, dword [eax]
push 0x186b2
mov ecx, eax
call dword [edx + 0x3c]
mov dword [ebp - 0xc], eax
jmp 0x455c00
mov dword [ebp - 0xc], 0x56ab48
lea eax, [ebp - 0x40]
mov ecx, 0x56af60
push eax
push 0x7d1
call fcn.0047da19
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.0045fb57
mov ecx, eax
call fcn.0045fb8c
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 + 0x2f4]
push eax
mov eax, dword [edi + 0x288]
push 0xaaffaa
push dword [edi + 0x28c]
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.0045fb57
mov ecx, eax
call fcn.0045fb8c
mov ecx, dword [ebp - 4]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
push eax
lea eax, [edi + 0x2f4]
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.0045fb57
mov ecx, eax
call fcn.0045fb8c
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 + 0x288]
push 0xffffffffffffffff
push dword [edi + 0x28c]
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.0045fb57
mov ecx, eax
call fcn.0045fb8c
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.0045fb57
mov ecx, eax
call fcn.0045fb8c
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 + 0x2a0]
add eax, ecx
mov ecx, dword [edi + 0x288]
push ebx
push dword [ebp - 0x40]
add eax, esi
push dword [edi + 0x28c]
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 + 0x2f4]
push esi
call sub.MSVCRT.dll_strlen
add esp, 0x38
test eax, eax
jbe 0x455ee4
push ebx
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x455ee4
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 0x455ee4
push esi
push 0x56d134
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x455ee4
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 0x455ee4
inc dword [0x56abe0]
mov eax, dword [0x56abe0]
push 0x1f
xor edx, edx
pop ecx
div ecx
mov ecx, edx
cmp ecx, 0xf
ja 0x455e8b
imul ecx, ecx, 0x11
mov edx, ecx
mov ebx, ecx
mov eax, 0xff
jmp 0x455e9b
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 + 0x28c]
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 + 0x288]
push dword [edi + 0x28c]
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, 0x56b6d0
push eax
lea eax, [ebp - 0x50]
push eax
mov ecx, esi
push dword [edi + 0x28c]
push dword [edi + 0x288]
call fcn.00481133
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.004819f6
mov ecx, dword [edi + 0x3f4]
lea esi, [edi + 0x3f4]
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