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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
push esi
mov esi, ecx
cmp dword [esi + 0x25c], 0
je 0x4931e3
cmp dword [esi + 0x278], 0
je 0x4931e3
push ebx
push edi
push dword [esi + 0x268]
lea edi, [esi + 0x268]
lea ebx, [esi + 0x264]
lea ecx, [esi + 0x1b8]
push dword [ebx]
call fcn.004a8474
push dword [edi]
lea ecx, [esi + 0x60]
push dword [ebx]
call fcn.004df9e0
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x60]
push eax
push dword [esi + 0x80]
call edi
lea eax, [ebp - 0x70]
push eax
push dword [esi + 0x20]
call edi
lea eax, [ebp - 0x24]
push eax
push dword [esi + 0x1d8]
call edi
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push dword [ebp - 0x30]
lea eax, [ebp - 0x24]
push dword [ebp - 0x34]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
mov edi, dword [sym.imp.GraphicData.dll_GameDataSetQuery]
mov ebx, 0x2741
test eax, eax
je 0x492dfc
push dword [esi + 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 edi
mov dword [ebp - 0xc], eax
call edi
mov dword [ebp - 4], eax
lea eax, [ebp - 0x14]
push eax
push 0xff000000
push 0
push 0
call fcn.004a71f6
mov ecx, eax
call fcn.0053e92a
mov ecx, dword [ebp - 0xc]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [ebp - 4]
push eax
push 0x2b22
mov eax, dword [ecx]
call dword [eax + 0x3c]
push eax
push 0xffffffffffffffff
call fcn.004a71f6
mov ecx, eax
call fcn.0053e92a
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::ShowStringCommon_int__int__unsigned_long_int__char_const___char_const___int__int__enum_RENDER_TEXT_STYLE__unsigned_long_int__struct_CMyPos__]
add esp, 0x28
mov eax, dword [esi + 0x280]
sub eax, dword [esi + 0x27c]
je 0x492e2d
mov ecx, dword [esi + 0x270]
lea eax, [esi + 0x26c]
sub ecx, dword [eax]
je 0x492e2d
call edi
mov edx, dword [eax]
push 0x186b2
mov ecx, eax
call dword [edx + 0x3c]
mov dword [ebp - 0xc], eax
jmp 0x492e34
mov dword [ebp - 0xc], 0x68f370
lea eax, [ebp - 0x40]
push eax
push 0x7d1
call fcn.0040311a
mov ecx, eax
call fcn.004dab6f
cmp dword [0x691ccc], 0
push 1
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
je 0x492e6d
mov eax, dword [ebp - 0x24]
mov ecx, dword [esi + 0x254]
sub eax, dword [ebp - 0x1c]
lea eax, [eax + ecx - 2]
jmp 0x492e7d
mov eax, dword [ebp - 0x1c]
mov ecx, dword [esi + 0x254]
sub eax, dword [ebp - 0x24]
lea eax, [eax + ecx + 2]
mov dword [ebp - 4], eax
call edi
mov dword [ebp - 0x28], eax
call edi
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x27c]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x3c]
push eax
push 0xff000000
xor eax, eax
push 1
push eax
push eax
push 0x15
push eax
call fcn.004a71f6
mov ecx, eax
call fcn.0053e92a
mov ecx, dword [ebp - 0x28]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [ebp - 8]
push eax
push 0
mov eax, dword [ecx]
call dword [eax + 0x5c]
push eax
push dword [ebp - 0x10]
push 0xaaffaa
push dword [esi + 0x258]
push dword [ebp - 4]
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::ShowEmotionStringCommon_int__int__unsigned_long_int__char_const___class_IDataIcon___char_const___int__int__int__int__int__enum_RENDER_TEXT_STYLE__unsigned_long_int__struct_CMyPos__]
add esp, 0x38
call edi
mov dword [ebp - 0x10], eax
call edi
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x27c]
push 0x15
mov dword [ebp - 0x28], eax
mov eax, dword [ecx]
push 0
call dword [eax + 0x5c]
push eax
call fcn.004a71f6
mov ecx, eax
call fcn.0053e92a
mov ecx, dword [ebp - 8]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::CalcuTextExtentCommon_char_const___char_const___int__class_IDataIcon___int_]
add esp, 0x14
cmp dword [0x691ccc], 0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
je 0x492f47
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov eax, dword [esi + 0x254]
sub ecx, dword [ebp - 0x1c]
lea eax, [ecx + eax - 3]
jmp 0x492f57
sub eax, dword [ebp - 0x24]
mov ecx, dword [esi + 0x254]
add eax, dword [ebp - 0x1c]
lea eax, [eax + ecx + 3]
mov dword [ebp - 4], eax
call edi
mov dword [ebp - 0x10], eax
call edi
mov dword [ebp - 8], eax
lea eax, [ebp - 0x3c]
push eax
push 0xff000000
xor eax, eax
push 1
push eax
push eax
push 0x15
push eax
call fcn.004a71f6
mov ecx, eax
call fcn.0053e92a
mov ecx, dword [ebp - 0x10]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [ebp - 8]
push eax
push 0
mov eax, dword [ecx]
call dword [eax + 0x5c]
push eax
push dword [ebp - 0xc]
push 0xffffffffffffffff
push dword [esi + 0x258]
push dword [ebp - 4]
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::ShowEmotionStringCommon_int__int__unsigned_long_int__char_const___class_IDataIcon___char_const___int__int__int__int__int__enum_RENDER_TEXT_STYLE__unsigned_long_int__struct_CMyPos__]
add esp, 0x38
call edi
mov dword [ebp - 0x10], eax
call edi
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 8], eax
push 0x15
push 0
mov eax, dword [ecx]
call dword [eax + 0x5c]
push eax
call fcn.004a71f6
mov ecx, eax
call fcn.0053e92a
mov ecx, dword [ebp - 8]
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::CalcuTextExtentCommon_char_const___char_const___int__class_IDataIcon___int_]
add esp, 0x14
cmp dword [0x691ccc], 0
mov dword [ebp - 0x10], edx
je 0x49300c
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov eax, dword [esi + 0x254]
sub ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x1c]
lea eax, [ecx + eax - 2]
jmp 0x49301f
sub eax, dword [ebp - 0x24]
mov ecx, dword [esi + 0x254]
add eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x1c]
lea eax, [eax + ecx + 2]
mov dword [ebp - 4], eax
call edi
mov dword [ebp - 0x10], eax
call edi
mov edi, eax
mov eax, dword [esi + 0x26c]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x3c]
push eax
push 0xff000000
xor eax, eax
push 1
push eax
push eax
push 0x15
push eax
call fcn.004a71f6
mov ecx, eax
call fcn.0053e92a
mov ecx, dword [ebp - 0x10]
push eax
push ebx
mov eax, dword [ecx]
call dword [eax + 0x3c]
push eax
mov eax, dword [edi]
push 0
mov ecx, edi
call dword [eax + 0x5c]
push eax
push dword [ebp - 8]
push dword [ebp - 0x40]
push dword [esi + 0x258]
push dword [ebp - 4]
call dword [sym.imp.graphic.dll_public:_static_struct_CMySize___cdecl_CMyBitmap::ShowEmotionStringCommon_int__int__unsigned_long_int__char_const___class_IDataIcon___char_const___int__int__int__int__int__enum_RENDER_TEXT_STYLE__unsigned_long_int__struct_CMyPos__]
mov eax, dword [esi + 0x280]
add esp, 0x38
sub eax, dword [esi + 0x27c]
je 0x493184
mov eax, dword [esi + 0x270]
sub eax, dword [esi + 0x26c]
je 0x493184
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push dword [ebp - 0x30]
lea eax, [ebp - 0x70]
push dword [ebp - 0x34]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x493184
mov edi, dword [esi + 0x27c]
call fcn.0051bd44
mov eax, dword [eax + 0x10c]
push edi
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x493184
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 0x493184
inc dword [0x68f82c]
mov eax, dword [0x68f82c]
push 0x1f
xor edx, edx
pop ecx
div ecx
mov ecx, edx
cmp ecx, 0xf
ja 0x49312b
imul ecx, ecx, 0x11
mov edx, ecx
mov edi, ecx
mov eax, 0xff
jmp 0x49313b
imul ecx, ecx, 0x11
mov eax, 0x20f
lea edx, [ecx - 0x110]
mov edi, edx
add edx, 0xff00
sub eax, ecx
shl edx, 8
add edx, edi
mov ebx, dword [ebp - 0x1c]
shl edx, 8
add edx, eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x5c]
sub ebx, dword [ebp - 0x24]
push edx
add eax, dword [esi + 0x258]
push eax
call dword [sym.imp.graphic.dll_public:_static_int___cdecl_CMyBitmap::GetScreenWidth_void_]
dec eax
dec eax
push eax
mov eax, dword [esi + 0x254]
push dword [esi + 0x258]
lea eax, [ebx + 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 edi, 0x6903d0
push eax
lea eax, [ebp - 0x50]
push eax
mov ecx, edi
push dword [esi + 0x258]
push dword [esi + 0x254]
call fcn.004e6c43
lea eax, [ebp - 0x44]
mov ecx, edi
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x4c]
add eax, 0xffffffec
push eax
push dword [ebp - 0x50]
call fcn.004e76be
mov ecx, dword [esi + 0x288]
add esi, 0x288
pop edi
pop ebx
test ecx, ecx
je 0x4931e3
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
leave
ret