Function at 0x441deb
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 + 0x264], 0
je 0x442281
cmp dword [edi + 0x2c4], 0
je 0x442281
push ebx
push esi
push dword [edi + 0x270]
lea esi, [edi + 0x270]
lea ebx, [edi + 0x26c]
lea ecx, [edi + 0x1a8]
push dword [ebx]
call fcn.004491ba
push dword [esi]
lea ecx, [edi + 0x60]
push dword [ebx]
call fcn.004641ff
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 + 0x1c8]
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 0x441f06
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.00448a54
mov ecx, eax
call fcn.00407289
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.00448a54
mov ecx, eax
call fcn.00407289
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 + 0x2c8]
push eax
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x441f3b
lea eax, [edi + 0x274]
push eax
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x441f3b
call esi
mov edx, dword [eax]
push 0x186b2
mov ecx, eax
call dword [edx + 0x3c]
mov dword [ebp - 0xc], eax
jmp 0x441f42
mov dword [ebp - 0xc], 0x508900
lea eax, [ebp - 0x40]
mov ecx, 0x508d10
push eax
push 0x7d1
call fcn.0046365b
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.00448a54
mov ecx, eax
call fcn.00407289
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 + 0x2c8]
push eax
mov eax, dword [edi + 0x25c]
push 0xaaffaa
push dword [edi + 0x260]
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.00448a54
mov ecx, eax
call fcn.00407289
mov ecx, dword [ebp - 4]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
push eax
lea eax, [edi + 0x2c8]
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.00448a54
mov ecx, eax
call fcn.00407289
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 + 0x25c]
push 0xffffffffffffffff
push dword [edi + 0x260]
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.00448a54
mov ecx, eax
call fcn.00407289
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.00448a54
mov ecx, eax
call fcn.00407289
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 + 0x274]
add eax, ecx
mov ecx, dword [edi + 0x25c]
push ebx
push dword [ebp - 0x40]
add eax, esi
push dword [edi + 0x260]
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 + 0x2c8]
push esi
call sub.MSVCRT.dll_strlen
add esp, 0x38
test eax, eax
jbe 0x442226
push ebx
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
jbe 0x442226
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 0x442226
push esi
push 0x50ae54
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x442226
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 0x442226
inc dword [0x50899c]
mov eax, dword [0x50899c]
push 0x1f
xor edx, edx
pop ecx
div ecx
mov ecx, edx
cmp ecx, 0xf
ja 0x4421cd
imul ecx, ecx, 0x11
mov edx, ecx
mov ebx, ecx
mov eax, 0xff
jmp 0x4421dd
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 + 0x260]
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 + 0x25c]
push dword [edi + 0x260]
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, 0x509408
push eax
lea eax, [ebp - 0x50]
push eax
mov ecx, esi
push dword [edi + 0x260]
push dword [edi + 0x25c]
call fcn.00465fd7
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.0046689a
mov ecx, dword [edi + 0x3c8]
lea esi, [edi + 0x3c8]
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