Function at 0x4d0d20
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
push edi
mov eax, dword [esi]
call dword [eax + 0x114]
mov edi, dword [ebp + 8]
test al, al
jne 0x4d0d61
mov eax, dword [edi]
sub eax, 9
cmp eax, 0xc
ja 0x4d0d61
mov ecx, dword [esi + 0x6d0]
push edi
test ecx, ecx
je 0x4d0d55
mov eax, dword [ecx]
call dword [eax + 0x18]
jmp 0x4d0f86
mov ecx, esi
call fcn.004cb432
jmp 0x4d0f86
cmp dword [edi], 0x13
jne 0x4d0d8b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10c]
test al, al
je 0x4d0f86
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, esi
call fcn.004d2ca4
jmp 0x4d0f86
cmp dword [edi], 3
push ebx
push 0xd
pop ebx
jne 0x4d0dbb
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10c]
test al, al
je 0x4d0dbb
cmp word [edi + 0x14], bx
jne 0x4d0dbb
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, esi
call fcn.004d2ca4
jmp 0x4d0f85
cmp dword [edi], ebx
jne 0x4d0e18
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10c]
test al, al
je 0x4d0f85
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
xor edi, edi
test al, al
je 0x4d0def
mov ecx, dword [esi + 0x44]
push edi
push edi
push edi
push str.buttondown
push esi
call fcn.004a1b7d
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call ebx
test ax, ax
js 0x4d0e07
push 0x10
call ebx
test ax, ax
jns 0x4d0e5f
mov ecx, dword [esi + 0x6d0]
test ecx, ecx
je 0x4d0f85
push edi
jmp 0x4d0e81
mov ecx, dword [esi + 0x6d0]
test ecx, ecx
je 0x4d0e91
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [eax + 0x458], 0
je 0x4d0e91
cmp dword [edi], 0xf
jne 0x4d0e91
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10c]
test al, al
je 0x4d0f85
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
test ax, ax
js 0x4d0e71
push 0x10
call edi
test ax, ax
js 0x4d0e71
lea ecx, [esi + 0x6c0]
mov eax, dword [ecx]
push 1
call dword [eax + 0x14]
jmp 0x4d0f85
mov ecx, dword [esi + 0x6d0]
test ecx, ecx
je 0x4d0f85
push 0
mov eax, dword [ecx]
push dword [esi + 0x6c4]
call dword [eax + 0x10]
jmp 0x4d0f85
cmp dword [edi], 0xe
jne 0x4d0eb7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10c]
test al, al
je 0x4d0f85
xor edi, edi
push edi
push edi
push edi
push str.itemclick
jmp 0x4d0f61
cmp dword [edi], 0xb
jne 0x4d0ef7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10c]
test al, al
je 0x4d0f85
or dword [esi + 0x6cc], 8
mov ecx, esi
call fcn.004d2ca4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
test al, al
je 0x4d0f85
xor edi, edi
push edi
push edi
push edi
push str.mouseenter
jmp 0x4d0f61
cmp dword [edi], 0xa
jne 0x4d0f2d
mov eax, dword [esi + 0x6cc]
test al, 8
je 0x4d0f85
and eax, 0xfffffff7
mov ecx, esi
mov dword [esi + 0x6cc], eax
call fcn.004d2ca4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
test al, al
je 0x4d0f85
xor edi, edi
push edi
push edi
push edi
push str.mouseleave
jmp 0x4d0f61
cmp dword [edi], 0x1b
jne 0x4d0f41
push 0
push dword [edi + 0x1c]
push dword [edi + 0x18]
push str.timer
jmp 0x4d0f61
cmp dword [edi], 0x14
jne 0x4d0f6c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xe8]
test al, al
je 0x4d0f6c
push 0
push dword [edi + 0x1c]
push dword [edi + 0x18]
push str.menu
mov ecx, dword [esi + 0x44]
push esi
call fcn.004a1b7d
jmp 0x4d0f85
mov ecx, dword [esi + 0x6d0]
push edi
test ecx, ecx
je 0x4d0f7e
mov eax, dword [ecx]
call dword [eax + 0x18]
jmp 0x4d0f85
mov ecx, esi
call fcn.004a4159
pop ebx
pop edi
pop esi
pop ebp
ret 4