Function at 0x46b3fc
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, ebx
cmp eax, 0x200
jge 0x46b45c
cmp eax, 0x100
jg 0x46b43f
je 0x46b4c2
sub eax, 0xf
je 0x46b784
sub eax, 0x38
je 0x46b60c
sub eax, 0x40
je 0x46b77d
jmp 0x46b799
sub eax, 0x102
je 0x46b571
sub eax, 2
je 0x46b4a6
add eax, 0xfffffff1
sub eax, 3
jb 0x46b4a6
jmp 0x46b799
cmp eax, 0x466
jg 0x46b486
je 0x46b60c
add eax, 0xfffffe00
sub eax, 5
jb 0x46b4a6
dec eax
je 0x46b4a6
sub eax, 0x25f
je 0x46b628
jmp 0x46b799
add eax, 0xfffffb98
sub eax, 6
jb 0x46b60c
je 0x46b742
dec eax
je 0x46b767
jmp 0x46b799
mov edx, dword [ebp + 0x14]
push edx
mov ecx, dword [ebp + 0x10]
push ecx
push ebx
push esi
push 0x4eb0f0
call sym._L__.exe__Tablefunction
add esp, 0x14
jmp 0x46b7aa
push 0x11
call sub.USER32.DLL_GetKeyState
movsx edi, ax
and edi, 0x8000
push 0
push 0x4eb0f4
call sym._L__.exe__Sortsorteddata
add esp, 8
cmp dword [ebp + 0x10], 0x2d
jne 0x46b510
test edi, edi
jne 0x46b510
mov eax, dword [0x4eb200]
push eax
push 0
call fcn.00469db4
add esp, 8
push 0
push 0
push esi
call sub.USER32.DLL_InvalidateRect
push esi
call sub.USER32.DLL_SetFocus
jmp 0x46b7aa
cmp dword [ebp + 0x10], 0x2e
jne 0x46b555
test edi, edi
jne 0x46b555
cmp dword [0x4eb200], 0
jl 0x46b555
mov edx, dword [0x4eb1f8]
dec edx
cmp edx, dword [0x4eb200]
jle 0x46b555
mov ecx, dword [0x4eb200]
push ecx
push 0x4eb0f4
call sym._L__.exe__Deletesorteddata
add esp, 8
push 0
push 0
push esi
call sub.USER32.DLL_InvalidateRect
jmp 0x46b7aa
mov eax, dword [ebp + 0x14]
push eax
mov edx, dword [ebp + 0x10]
push edx
push ebx
push esi
push 0x4eb0f0
call sym._L__.exe__Tablefunction
add esp, 0x14
jmp 0x46b7aa
cmp dword [ebp + 0x10], 0x20
jne 0x46b7aa
cmp dword [0x4eb200], 0
jl 0x46b7aa
mov ecx, dword [0x4eb1f8]
dec ecx
cmp ecx, dword [0x4eb200]
jle 0x46b7aa
mov eax, dword [0x4eb200]
push eax
push 0x4eb0f4
call sym._L__.exe__Getsortedbyselection
add esp, 8
mov ebx, eax
cmp byte [ebx + 0xc], 0
je 0x46b7aa
mov dword [0x4eae4c], esi
xor eax, eax
mov dword [0x4eae50], eax
push 1
lea edx, [ebx + 0x114]
push edx
lea ecx, [ebx + 0xc]
push ecx
call fcn.00469818
add esp, 0xc
test eax, eax
sete al
and eax, 1
mov dword [ebx + 0x218], eax
cmp dword [0x4eae50], 0
sete dl
and edx, 1
mov dword [ebx + 0x214], edx
push 0
push 0
push esi
call sub.USER32.DLL_InvalidateRect
jmp 0x46b7aa
mov ecx, dword [ebp + 0x14]
push ecx
mov eax, dword [ebp + 0x10]
push eax
push ebx
push esi
push 0x4eb0f0
call sym._L__.exe__Tablefunction
add esp, 0x14
jmp 0x46b7ac
mov edx, dword [0x4eb200]
push edx
push 0x4eb0f4
call sym._L__.exe__Getsortedbyselection
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x46b64a
cmp byte [ebx + 0xc], 0
jne 0x46b64a
xor ebx, ebx
call sub.USER32.DLL_CreatePopupMenu
mov edi, eax
test edi, edi
je 0x46b68a
test ebx, ebx
je 0x46b668
push 0x4bd440
push 1
push 0
push edi
call sub.USER32.DLL_AppendMenuA
push 0x4bd343
push 0xb
push 0
push edi
call sub.USER32.DLL_AppendMenuA
test ebx, ebx
je 0x46b68a
push 0x4bd354
push 0xc
push 0
push edi
call sub.USER32.DLL_AppendMenuA
push edi
push 0
push 0x465
push esi
push 0x4eb0f0
call sym._L__.exe__Tablefunction
add esp, 0x14
mov dword [ebp - 4], eax
test edi, edi
je 0x46b6ad
push edi
call sub.USER32.DLL_DestroyMenu
cmp dword [ebp - 4], 1
jne 0x46b6fe
mov dword [0x4eae4c], esi
xor eax, eax
mov dword [0x4eae50], eax
push 1
lea edx, [ebx + 0x114]
push edx
lea ecx, [ebx + 0xc]
push ecx
call fcn.00469818
add esp, 0xc
test eax, eax
sete al
and eax, 1
mov dword [ebx + 0x218], eax
cmp dword [0x4eae50], 0
sete dl
and edx, 1
mov dword [ebx + 0x214], edx
push esi
call sub.USER32.DLL_SetFocus
jmp 0x46b730
cmp dword [ebp - 4], 0xb
jne 0x46b717
mov ecx, dword [0x4eb200]
push ecx
push 0
call fcn.00469db4
add esp, 8
jmp 0x46b730
cmp dword [ebp - 4], 0xc
jne 0x46b730
mov eax, dword [0x4eb200]
push eax
push 0x4eb0f4
call sym._L__.exe__Deletesorteddata
add esp, 8
cmp dword [ebp - 4], 0
je 0x46b7aa
push 0
push 0
push esi
call sub.USER32.DLL_InvalidateRect
jmp 0x46b7aa
cmp dword [ebp + 0x10], 0
jne 0x46b75b
cmp dword [0x4eb340], 0
sete dl
and edx, 1
mov dword [0x4eb340], edx
push 0
push 0
push esi
call sub.USER32.DLL_InvalidateRect
jmp 0x46b7aa
push 0
push 0x20
push 0x102
push esi
call fcn.0046b3fc
mov eax, 1
jmp 0x46b7ac
mov eax, 0x81
jmp 0x46b7ac
push 0x46b304
push 0x4eb0f0
push esi
call sym._L__.exe__Painttable
add esp, 0xc
jmp 0x46b7aa
mov edx, dword [ebp + 0x14]
push edx
mov ecx, dword [ebp + 0x10]
push ecx
push ebx
push esi
call sub.USER32.DLL_DefWindowProcA
jmp 0x46b7ac
xor eax, eax
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0x10