Function at 0x4981a3
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x24
mov eax, 0x591ad3
call fcn.0055672a
mov esi, ecx
push 1
call fcn.00496b98
lea edi, [esi + 0x2c4]
xor ebx, ebx
cmp dword [edi], ebx
je 0x4981d1
push 1
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [edi], ebx
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 1
call edi
mov ecx, 0x8000
test cx, ax
je 0x4981fa
push 2
call edi
mov ecx, 0x8000
test cx, ax
je 0x4981fa
xor eax, eax
jmp 0x49880a
cmp dword [0x60af24], ebx
je 0x4981f3
mov edi, dword [ebp + 0x14]
cmp edi, ebx
je 0x498225
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x2c]
test eax, eax
jne 0x498225
mov eax, dword [edi]
mov ecx, edi
mov dword [edi + 0x6c], 1
call dword [eax + 0x114]
mov eax, dword [ebp + 8]
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.00414470
push eax
push 0x603edc
call fcn.00421ae9
pop ecx
pop ecx
mov ecx, esi
mov dword [ebp - 0x14], eax
call fcn.004150e5
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], vtable.CMenu.0
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], ebx
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
lea ecx, [ebp - 0x30]
call fcn.0042121b
lea ecx, [ebp - 0x10]
call fcn.004085b2
mov edi, dword [sym.imp.USER32.dll_AppendMenuA]
mov byte [ebp - 4], 1
cmp dword [esi + 0x2e8], ebx
je 0x498375
push 0x42c8
lea ecx, [ebp - 0x10]
call fcn.0040193d
neg eax
sbb eax, eax
neg eax
jne 0x4982a5
call fcn.00409f64
push dword [ebp - 0x10]
push 0xfffffffffffffffe
push ebx
push dword [ebp - 0x2c]
call edi
cmp dword [esi + 0xf10], ebx
mov dword [ebp - 0x18], ebx
jle 0x49840e
push dword [ebp - 0x18]
lea ecx, [esi + 0xf08]
call fcn.00492ead
mov eax, dword [eax]
push ebx
push ebx
push eax
mov ecx, esi
mov dword [ebp - 0x24], eax
call fcn.00495411
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x49835e
push dword [eax + 4]
lea ecx, [ebp - 0x10]
call fcn.00401b12
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], ebx
jne 0x498329
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x108]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
lea edx, [ebp - 0x28]
push edx
call dword [eax + 0x1c]
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call fcn.004099f5
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
mov byte [ebp - 4], 1
call fcn.004010d6
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
neg eax
push eax
push ebx
push dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
call edi
push dword [ebp - 0x24]
lea ecx, [esi + 0xb68]
mov eax, dword [ecx]
call dword [eax + 0xfc]
test eax, eax
je 0x49835e
push 8
push dword [ebp - 0x1c]
push dword [ebp - 0x2c]
call dword [sym.imp.USER32.dll_CheckMenuItem]
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi + 0xf10]
jl 0x4982bf
jmp 0x49840e
cmp dword [ebp + 0x14], ebx
je 0x49840e
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x110]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x68], ebx
je 0x4983ba
push 0x42bc
lea ecx, [ebp - 0x10]
call fcn.0040193d
neg eax
sbb eax, eax
neg eax
je 0x4982a0
push dword [ebp - 0x10]
push 0xffffffffffffff96
push ebx
push dword [ebp - 0x2c]
call edi
jmp 0x49840e
mov ecx, eax
mov eax, dword [ecx]
call dword [eax + 0xa0]
test eax, eax
je 0x49840e
push 0x42bb
lea ecx, [ebp - 0x10]
call fcn.0040193d
neg eax
sbb eax, eax
neg eax
je 0x4982a0
push dword [ebp - 0x10]
push 0xffffffffffffff97
push ebx
push dword [ebp - 0x2c]
call edi
push dword [ebp - 0x28]
lea ecx, [esi + 0xb68]
mov eax, dword [ecx]
call dword [eax + 0xfc]
test eax, eax
je 0x49840e
push 3
push 0xffffffffffffff97
push dword [ebp - 0x2c]
call dword [sym.imp.USER32.dll_EnableMenuItem]
push dword [ebp - 0x2c]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
test eax, eax
jbe 0x498427
push ebx
push ebx
push 0x800
push dword [ebp - 0x2c]
call edi
mov eax, dword [esi + 0x2e8]
neg eax
sbb eax, eax
and eax, 0xc
add eax, 0x42bd
push eax
lea ecx, [ebp - 0x10]
call fcn.0040193d
neg eax
sbb eax, eax
neg eax
je 0x4982a0
push dword [ebp - 0x10]
push 0xffffffffffffff9a
push ebx
push dword [ebp - 0x2c]
call edi
mov ecx, esi
call fcn.0046ac18
test eax, eax
mov eax, dword [esi + 0x2e8]
lea ecx, [ebp - 0x10]
je 0x498492
neg eax
sbb eax, eax
and eax, 0x11
add eax, 0x42b9
push eax
call fcn.0040193d
neg eax
sbb eax, eax
neg eax
je 0x4982a0
push dword [ebp - 0x10]
push 0xffffffffffffff99
jmp 0x4984b5
neg eax
sbb eax, eax
and eax, 0x11
add eax, 0x42ba
push eax
call fcn.0040193d
neg eax
sbb eax, eax
neg eax
je 0x4982a0
push dword [ebp - 0x10]
push 0xffffffffffffff98
push ebx
push dword [ebp - 0x2c]
call edi
push ebx
push ebx
push 0x800
push dword [ebp - 0x2c]
call edi
cmp dword [esi + 0x2f4], 1
push 0x42be
lea ecx, [ebp - 0x10]
jne 0x498503
call fcn.0040193d
neg eax
sbb eax, eax
neg eax
je 0x4982a0
push dword [ebp - 0x10]
push 0xffffffffffffff94
push ebx
push dword [ebp - 0x2c]
call edi
push 8
push 0xffffffffffffff94
push dword [ebp - 0x2c]
call dword [sym.imp.USER32.dll_CheckMenuItem]
jmp 0x49851f
call fcn.0040193d
neg eax
sbb eax, eax
neg eax
je 0x4982a0
push dword [ebp - 0x10]
push 0xffffffffffffff95
push ebx
push dword [ebp - 0x2c]
call edi
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
mov byte [ebp - 4], bl
call fcn.004010d6
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x20]
cmp dword [ebp - 0x14], ebx
je 0x498545
mov ecx, dword [0x60af24]
mov dword [ecx + 0x60], 1
mov ecx, dword [0x60af24]
mov edx, dword [ecx]
push ebx
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0x2c]
call dword [edx + 0x14]
mov dword [ebp + 8], eax
cmp dword [ebp - 0x14], ebx
je 0x49856b
mov eax, dword [0x60af24]
mov dword [eax + 0x60], ebx
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x498590
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], vtable.CMenu.0
call fcn.00421273
mov eax, ebx
jmp 0x49880a
mov edi, dword [ebp + 0x14]
cmp edi, ebx
je 0x4985c2
mov eax, dword [edi]
mov ecx, edi
mov dword [edi + 0x6c], ebx
call dword [eax + 0x120]
cmp eax, ebx
je 0x4985b8
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xf4]
mov dword [edi + 0x84], ebx
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x114]
mov eax, dword [ebp + 8]
mov dword [ebp + 0x14], ebx
cmp eax, 0xffffff94
je 0x49877f
cmp eax, 0xffffff95
je 0x498772
cmp eax, 0xffffff96
je 0x498745
cmp eax, 0xffffff97
je 0x49870c
cmp eax, 0xffffff98
je 0x498701
cmp eax, 0xffffff99
je 0x4986f9
cmp eax, 0xffffff9a
je 0x498662
cmp dword [esi + 0x2e8], ebx
je 0x49864d
neg eax
mov dword [ebp + 8], eax
je 0x49864d
push ebx
push ebx
push eax
mov ecx, esi
call fcn.00495411
mov dword [ebp + 0x14], eax
cmp eax, ebx
je 0x49864d
push dword [ebp + 8]
lea edi, [esi + 0xb68]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xfc]
push dword [ebp + 0x14]
mov ecx, edi
test eax, eax
jne 0x498764
call fcn.00501e19
jmp 0x498769
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x498576
mov dword [0x60c45c], eax
jmp 0x498576
lea eax, [esi + 0x2fc]
cmp edi, dword [eax]
jne 0x49866e
mov dword [eax], ebx
lea eax, [esi + 0x300]
cmp edi, dword [eax]
jne 0x49867a
mov dword [eax], ebx
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp - 0x14], ebx
je 0x498691
mov eax, dword [ebp - 0x14]
push ebx
push ebx
push 0x10
push dword [eax + 0x20]
call edi
mov eax, dword [ebp - 0x20]
push esi
push ebx
push dword [0x60c560]
push dword [eax + 0x20]
call edi
test eax, eax
jne 0x4986f1
push 0x4498
call fcn.00408e20
pop ecx
mov dword [ebp + 0x14], eax
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x4986ca
push esi
push dword [ebp - 0x20]
mov ecx, eax
call fcn.0051820f
mov esi, eax
jmp 0x4986cc
xor esi, esi
xor eax, eax
cmp esi, ebx
setne al
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x4982a0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x140]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 4]
xor ebx, ebx
inc ebx
jmp 0x498576
mov dword [esi + 0x2b8], ebx
jmp 0x498769
xor eax, eax
inc eax
mov dword [esi + 0x2b8], eax
jmp 0x498740
cmp edi, ebx
je 0x4987a0
cmp dword [edi + 0x90], ebx
je 0x49872f
mov eax, dword [edi + 0x48]
push ebx
push ebx
push eax
mov ecx, esi
call fcn.00495411
cmp eax, ebx
je 0x49872f
mov edi, eax
mov eax, dword [edi]
lea ecx, [esi + 0xb68]
push ecx
mov ecx, edi
call dword [eax + 0x10c]
mov dword [ebp + 0x14], eax
jmp 0x4987a0
lea eax, [esi + 0x2fc]
cmp edi, dword [eax]
jne 0x498751
mov dword [eax], ebx
lea eax, [esi + 0x300]
cmp edi, dword [eax]
jne 0x49875d
mov dword [eax], ebx
push edi
lea ecx, [esi + 0xb68]
call fcn.00501e8c
mov dword [ebp + 0x14], 1
jmp 0x4987a0
mov ecx, dword [esi + 0x6a4]
cmp ecx, ebx
je 0x4987a0
push ebx
jmp 0x49878b
mov ecx, dword [esi + 0x6a4]
cmp ecx, ebx
je 0x4987a0
push 1
call fcn.004ea712
push 0x105
push ebx
push ebx
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_RedrawWindow]
cmp dword [ebp - 0x14], ebx
je 0x4987b5
mov eax, dword [ebp - 0x14]
push ebx
push ebx
push 0x10
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x14], ebx
je 0x4987f4
mov eax, dword [esi]
xor edi, edi
inc edi
mov ecx, esi
mov dword [esi + 0x2bc], edi
call dword [eax + 0x1e8]
mov esi, dword [ebp - 0x20]
cmp esi, ebx
je 0x4987f4
cmp dword [esi + 0x20], ebx
je 0x4987f4
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x150]
push 0x581
push ebx
push ebx
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_RedrawWindow]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], vtable.CMenu.0
call fcn.00421273
xor eax, eax
inc eax
call fcn.00556802
ret 0x10