Function at 0x46ca8d
Capabilities:
Log keystrokes via polling

Disassembly:
push edi
mov edi, ecx
mov edx, dword [edi + 4]
cmp dword [0x4c6820], edx
jne 0x46cd99
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp ecx, 2
mov eax, dword [eax + 8]
jne 0x46cb2e
sub eax, 0x41
je 0x46cb22
sub eax, 4
je 0x46cb19
sub eax, 6
je 0x46cb12
sub eax, 3
je 0x46cb09
sub eax, 5
je 0x46caf1
dec eax
je 0x46cae0
sub eax, 3
jne 0x46cd99
mov ecx, edi
call fcn.00478306
jmp 0x46cd94
push 0xb25b
mov ecx, edi
call fcn.00473089
jmp 0x46cd94
push 0
push 0x8069
push 0x111
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x46cd94
push 0
push 0xa772
jmp 0x46caf8
push 0xb25a
jmp 0x46cae5
push 0
push 0xa773
jmp 0x46caf8
mov ecx, edi
call fcn.00476d4b
jmp 0x46cd94
cmp ecx, 3
jne 0x46cb58
cmp eax, 0x41
jne 0x46cd99
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
mov ecx, edi
call fcn.00476d1b
jmp 0x46cd94
cmp ecx, 4
jne 0x46cc04
cmp eax, 0x27
ja 0x46cbba
je 0x46cd33
sub eax, 8
je 0x46cd15
sub eax, 5
je 0x46cb96
sub eax, 0x18
je 0x46cd15
dec eax
jne 0x46cd99
mov ecx, edi
call fcn.0046fcbc
jmp 0x46cd94
mov eax, dword [edi + 0xf0]
test eax, eax
je 0x46cd99
push str.properties
push edx
lea ecx, [eax + 0x1c8]
call fcn.00489c38
jmp 0x46cd9b
cmp eax, 0x44
je 0x46cbd9
cmp eax, 0x53
je 0x46cbd9
cmp eax, 0x72
jne 0x46cd99
mov ecx, edi
call fcn.00476d64
jmp 0x46cd94
push eax
call fcn.00443375
test eax, eax
pop ecx
jne 0x46cd94
cmp dword [0x4b7228], eax
je 0x46cd94
lea ecx, [edi + 0x4a0]
call fcn.00415244
jmp 0x46cd94
test ecx, ecx
jne 0x46cd99
cmp eax, 0x74
jne 0x46cc4b
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
cmp dword [0x4c6840], 0
je 0x46cd51
cmp dword [edi + 0x420], 0
je 0x46cd51
lea ecx, [edi + 0x2b8]
call fcn.0048d5fd
jmp 0x46cd51
cmp eax, 0x72
jne 0x46cc56
push eax
jmp 0x46cd64
cmp eax, 0x2a
jne 0x46cc5e
push eax
jmp 0x46cc64
cmp eax, 0x79
jne 0x46cc7f
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
mov ecx, edi
call fcn.0047735b
jmp 0x46cd94
cmp eax, 0x73
jne 0x46ccbc
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
cmp dword [0x4b7228], 0
je 0x46cd99
cmp dword [esp + 0x10], 1
jne 0x46cd99
lea ecx, [edi + 0x4a0]
call fcn.004151db
jmp 0x46cd94
cmp eax, 0x76
jne 0x46ccd7
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
push 1
push 0x6f
jmp 0x46ccf0
cmp eax, 0x77
jne 0x46ccfc
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
push 1
push 0x70
mov ecx, edi
call fcn.004730fd
jmp 0x46cd94
mov ecx, 0xa6
cmp eax, ecx
jne 0x46cd1e
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
mov ecx, edi
call fcn.0046fca6
jmp 0x46cd94
mov ecx, 0xa7
cmp eax, ecx
jne 0x46cd3c
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
mov ecx, edi
call fcn.0046fcd2
jmp 0x46cd94
mov ecx, 0xa8
cmp eax, ecx
jne 0x46cd5a
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
mov ecx, edi
call fcn.00472b92
jmp 0x46cd94
mov ecx, 0xaa
cmp eax, ecx
jne 0x46cd78
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
mov ecx, edi
call fcn.00476d6f
jmp 0x46cd94
mov ecx, 0xac
cmp eax, ecx
jne 0x46cd99
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x46cd99
mov ecx, edi
call fcn.0046fce8
push 1
pop eax
jmp 0x46cd9b
xor eax, eax
pop edi
ret 0xc