Function at 0x46cff0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
push edi
mov esi, ecx
call sub.MFC80U.DLL_Ordinal_1894
mov eax, dword [esi + 0x58]
push 0
push 0x625244
push 0x624784
push 0
push eax
call sub.MSVCR80.dll___RTDynamicCast
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
add esp, 0x14
cmp eax, 0x26
je 0x46d030
cmp eax, 0x28
jne 0x46d225
cmp eax, 0x26
mov edi, dword [esi + 0x120]
jne 0x46d040
sub edi, 1
jmp 0x46d043
add edi, 1
test edi, edi
jge 0x46d04b
xor edi, edi
jmp 0x46d058
mov eax, dword [esi + 0x110]
cmp edi, eax
jl 0x46d058
lea edi, [eax - 1]
push 1
push edi
mov ecx, esi
call fcn.0046a670
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call ebx
test ax, ax
jns 0x46d0e8
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0xc0], 0
je 0x46d0e8
mov eax, dword [esi + 0x11c]
test eax, eax
jl 0x46d090
cmp eax, dword [esi + 0x110]
jl 0x46d096
mov dword [esi + 0x11c], edi
mov eax, dword [esi + 0x11c]
cmp eax, edi
jle 0x46d0a8
mov ebx, edi
mov dword [esp + 0xc], eax
jmp 0x46d0ae
mov ebx, eax
mov dword [esp + 0xc], edi
call fcn.0046b750
cmp ebx, dword [esp + 0xc]
jg 0x46d0d2
lea esp, [esp]
push 1
push ebx
push esi
call fcn.0046b5c0
add ebx, 1
cmp ebx, dword [esp + 0xc]
jle 0x46d0c0
mov eax, dword [esi + 0x5c]
test eax, eax
mov ebx, dword [0x632540]
je 0x46d152
mov edx, dword [eax + 0x20]
push esi
push edi
push ebx
push edx
jmp 0x46d14c
push 0x11
call ebx
test ax, ax
jns 0x46d0fe
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xc0], 0
jne 0x46d166
cmp edi, dword [esi + 0x11c]
jne 0x46d124
cmp dword [esi + 0x134], 1
jne 0x46d124
mov ebx, dword [0x632540]
push esi
call fcn.004a5110
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.0046b750
push 1
push edi
push esi
call fcn.0046b5c0
mov eax, dword [esi + 0x5c]
test eax, eax
mov ebx, dword [0x632540]
mov dword [esi + 0x11c], edi
je 0x46d152
mov ecx, dword [eax + 0x20]
push esi
push edi
push ebx
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esi + 0x94]
test eax, eax
je 0x46d166
push 0
push esi
push edi
push ebx
call eax
add esp, 0x10
mov edx, dword [esi + 0x108]
cmp edi, edx
jl 0x46d1bc
jne 0x46d17b
cmp dword [esi + 0x104], 0
jl 0x46d1bc
mov ecx, dword [esi + 0xe4]
test ecx, ecx
jne 0x46d189
xor eax, eax
jmp 0x46d194
mov eax, dword [esi + 0xe8]
sub eax, ecx
sar eax, 2
lea edx, [edx + eax - 2]
cmp edi, edx
jl 0x46d1f1
mov eax, dword [esi + 0x13c]
mov ecx, dword [eax + 0xd8]
add ecx, dword [eax + 0xb8]
mov edx, dword [eax + 0xdc]
adc edx, dword [eax + 0xbc]
jmp 0x46d1da
mov eax, dword [esi + 0x13c]
mov ecx, dword [eax + 0xb8]
sub ecx, dword [eax + 0xd8]
mov edx, dword [eax + 0xbc]
sbb edx, dword [eax + 0xdc]
push edx
push ecx
call fcn.00486de0
mov eax, dword [esi + 0x13c]
push eax
push 0
mov ecx, esi
call fcn.0046a550
mov eax, dword [esi + 0x5c]
test eax, eax
mov edi, dword [esi + 0x11c]
mov ebx, dword [0x632540]
je 0x46d211
mov ecx, dword [eax + 0x20]
push esi
push edi
push ebx
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esi + 0x94]
test eax, eax
je 0x46d225
push 0
push esi
push edi
push ebx
call eax
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc