Function at 0x46cf6a
Capabilities:
Log keystrokes via polling

Disassembly:
push edi
mov edi, ecx
mov edx, dword [edi + 4]
cmp dword [0x4c7900], edx
jne 0x46d276
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp ecx, 2
mov eax, dword [eax + 8]
jne 0x46d00b
sub eax, 0x41
je 0x46cfff
sub eax, 4
je 0x46cff6
sub eax, 6
je 0x46cfef
sub eax, 3
je 0x46cfe6
sub eax, 5
je 0x46cfce
dec eax
je 0x46cfbd
sub eax, 3
jne 0x46d276
mov ecx, edi
call fcn.004787e6
jmp 0x46d271
push 0xb25b
mov ecx, edi
call fcn.00473569
jmp 0x46d271
push 0
push 0x8069
push 0x111
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x46d271
push 0
push 0xa772
jmp 0x46cfd5
push 0xb25a
jmp 0x46cfc2
push 0
push 0xa773
jmp 0x46cfd5
mov ecx, edi
call fcn.0047722b
jmp 0x46d271
cmp ecx, 3
jne 0x46d035
cmp eax, 0x41
jne 0x46d276
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
mov ecx, edi
call fcn.004771fb
jmp 0x46d271
cmp ecx, 4
jne 0x46d0e1
cmp eax, 0x27
ja 0x46d097
je 0x46d210
sub eax, 8
je 0x46d1f2
sub eax, 5
je 0x46d073
sub eax, 0x18
je 0x46d1f2
dec eax
jne 0x46d276
mov ecx, edi
call fcn.00470199
jmp 0x46d271
mov eax, dword [edi + 0xf0]
test eax, eax
je 0x46d276
push str.properties
push edx
lea ecx, [eax + 0x1d0]
call fcn.0048a1f5
jmp 0x46d278
cmp eax, 0x44
je 0x46d0b6
cmp eax, 0x53
je 0x46d0b6
cmp eax, 0x72
jne 0x46d276
mov ecx, edi
call fcn.00477244
jmp 0x46d271
push eax
call fcn.00443425
test eax, eax
pop ecx
jne 0x46d271
cmp dword [0x4b82b8], eax
je 0x46d271
lea ecx, [edi + 0x4a0]
call fcn.004151be
jmp 0x46d271
test ecx, ecx
jne 0x46d276
cmp eax, 0x74
jne 0x46d128
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
cmp dword [0x4c7920], 0
je 0x46d22e
cmp dword [edi + 0x420], 0
je 0x46d22e
lea ecx, [edi + 0x2b8]
call fcn.0048dbc7
jmp 0x46d22e
cmp eax, 0x72
jne 0x46d133
push eax
jmp 0x46d241
cmp eax, 0x2a
jne 0x46d13b
push eax
jmp 0x46d141
cmp eax, 0x79
jne 0x46d15c
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
mov ecx, edi
call fcn.0047783b
jmp 0x46d271
cmp eax, 0x73
jne 0x46d199
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
cmp dword [0x4b82b8], 0
je 0x46d276
cmp dword [esp + 0x10], 1
jne 0x46d276
lea ecx, [edi + 0x4a0]
call fcn.00415155
jmp 0x46d271
cmp eax, 0x76
jne 0x46d1b4
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
push 1
push 0x6f
jmp 0x46d1cd
cmp eax, 0x77
jne 0x46d1d9
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
push 1
push 0x70
mov ecx, edi
call fcn.004735dd
jmp 0x46d271
mov ecx, 0xa6
cmp eax, ecx
jne 0x46d1fb
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
mov ecx, edi
call fcn.00470183
jmp 0x46d271
mov ecx, 0xa7
cmp eax, ecx
jne 0x46d219
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
mov ecx, edi
call fcn.004701af
jmp 0x46d271
mov ecx, 0xa8
cmp eax, ecx
jne 0x46d237
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
mov ecx, edi
call fcn.00473072
jmp 0x46d271
mov ecx, 0xaa
cmp eax, ecx
jne 0x46d255
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
mov ecx, edi
call fcn.0047724f
jmp 0x46d271
mov ecx, 0xac
cmp eax, ecx
jne 0x46d276
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46d276
mov ecx, edi
call fcn.004701c5
push 1
pop eax
jmp 0x46d278
xor eax, eax
pop edi
ret 0xc