Function at 0x45570e
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 0x455ba4
cmp dword [edi + 0x2f0], 0
je 0x455ba4
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.0045ff47
push dword [esi]
lea ecx, [edi + 0x60]
push dword [ebx]
call fcn.0047e328
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 0x455829
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.0045f70c
mov ecx, eax
call fcn.004cc09e
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.0045f70c
mov ecx, eax
call fcn.004cc09e
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 0x45585e
lea eax, [edi + 0x2a0]
push eax
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x45585e
call esi
mov edx, dword [eax]
push 0x186b2
mov ecx, eax
call dword [edx + 0x3c]
mov dword [ebp - 0xc], eax
jmp 0x455865
mov dword [ebp - 0xc], 0x568b08
lea eax, [ebp - 0x40]
mov ecx, 0x568f20
push eax
push 0x7d1
call fcn.0047d518
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.0045f70c
mov ecx, eax
call fcn.004cc09e
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.0045f70c
mov ecx, eax
call fcn.004cc09e
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.0045f70c
mov ecx, eax
call fcn.004cc09e
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.0045f70c
mov ecx, eax
call fcn.004cc09e
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.0045f70c
mov ecx, eax
call fcn.004cc09e
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 0x455b49
push ebx
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x455b49
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 0x455b49
push esi
push 0x56b0dc
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x455b49
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 0x455b49
inc dword [0x568ba0]
mov eax, dword [0x568ba0]
push 0x1f
xor edx, edx
pop ecx
div ecx
mov ecx, edx
cmp ecx, 0xf
ja 0x455af0
imul ecx, ecx, 0x11
mov edx, ecx
mov ebx, ecx
mov eax, 0xff
jmp 0x455b00
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, 0x569690
push eax
lea eax, [ebp - 0x50]
push eax
mov ecx, esi
push dword [edi + 0x28c]
push dword [edi + 0x288]
call fcn.00480b63
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.00481426
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