Function at 0x42ae40
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov edx, dword [ebp - 8]
mov dword [edx + 8], 0
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
mov dword [ecx + 0xc], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 0x14]
mov dword [edx + 0x14], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
mov dword [ecx + 0x18], edx
cmp dword [ebp + 0x10], 0x200
jb 0x42ae9b
cmp dword [ebp + 0x10], 0x209
jbe 0x42aeb5
cmp dword [ebp + 0x10], 0xa0
jb 0x42b079
cmp dword [ebp + 0x10], 0xa9
ja 0x42b079
cmp dword [ebp + 0x10], 0x201
je 0x42aed9
cmp dword [ebp + 0x10], 0x203
je 0x42aed9
cmp dword [ebp + 0x10], 0xa1
je 0x42aed9
cmp dword [ebp + 0x10], 0xa3
jne 0x42aee8
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0x1100
jmp 0x42afa3
cmp dword [ebp + 0x10], 0x202
je 0x42aefa
cmp dword [ebp + 0x10], 0xa2
jne 0x42af09
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0x1000
jmp 0x42afa3
cmp dword [ebp + 0x10], 0x204
je 0x42af2d
cmp dword [ebp + 0x10], 0x206
je 0x42af2d
cmp dword [ebp + 0x10], 0xa4
je 0x42af2d
cmp dword [ebp + 0x10], 0xa6
jne 0x42af39
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0x2200
jmp 0x42afa3
cmp dword [ebp + 0x10], 0x205
je 0x42af4b
cmp dword [ebp + 0x10], 0xa5
jne 0x42af57
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0x2000
jmp 0x42afa3
cmp dword [ebp + 0x10], 0x207
je 0x42af7b
cmp dword [ebp + 0x10], 0x209
je 0x42af7b
cmp dword [ebp + 0x10], 0xa7
je 0x42af7b
cmp dword [ebp + 0x10], 0xa9
jne 0x42af87
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0x4400
jmp 0x42afa3
cmp dword [ebp + 0x10], 0x208
je 0x42af99
cmp dword [ebp + 0x10], 0xa8
jne 0x42afa3
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0x4000
mov eax, dword [ebp + 0x14]
and eax, 1
test eax, eax
je 0x42afbc
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 4]
or dh, 1
mov eax, dword [ebp - 8]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 0x14]
and ecx, 2
test ecx, ecx
je 0x42afd5
mov edx, dword [ebp - 8]
mov eax, dword [edx + 4]
or ah, 2
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], eax
mov edx, dword [ebp + 0x14]
and edx, 0x10
test edx, edx
je 0x42afee
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
or ch, 4
mov edx, dword [ebp - 8]
mov dword [edx + 4], ecx
mov eax, dword [ebp + 0x14]
and eax, 4
test eax, eax
je 0x42b007
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 4]
or edx, 3
mov eax, dword [ebp - 8]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 0x14]
and ecx, 8
test ecx, ecx
je 0x42b01f
mov edx, dword [ebp - 8]
mov eax, dword [edx + 4]
or al, 4
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], eax
mov edx, dword [ebp + 0x18]
mov dword [ebp - 4], edx
movsx eax, word [ebp - 4]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], eax
movsx edx, word [ebp - 2]
mov eax, dword [ebp - 8]
mov dword [eax + 0x2c], edx
cmp dword [ebp + 0x10], 0x200
jae 0x42b05c
mov ecx, dword [ebp - 8]
add ecx, 0x28
push ecx
push 0
push 0x1635
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x42b074
mov eax, dword [ebp - 8]
add eax, 0x28
push eax
push 0
push 0x1634
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x42b191
cmp dword [ebp + 0x10], 0x100
jb 0x42b191
cmp dword [ebp + 0x10], 0x108
ja 0x42b191
mov edx, dword [ebp - 8]
mov dword [edx + 0x28], 0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x14]
mov dword [eax + 0x2c], ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 0x14]
mov dword [edx + 4], eax
push 0x4527ec
call dword [sym.imp.USER32.dll_GetKeyboardState]
xor ecx, ecx
mov cl, byte [0x4527fc]
and ecx, 0x80
test ecx, ecx
je 0x42b0da
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x28]
or al, 3
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], eax
xor edx, edx
mov dl, byte [0x4527fd]
and edx, 0x80
test edx, edx
je 0x42b0fb
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x28]
or ecx, 4
mov edx, dword [ebp - 8]
mov dword [edx + 0x28], ecx
xor eax, eax
mov al, byte [0x4527fe]
and eax, 0x80
test eax, eax
je 0x42b11a
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x28]
or edx, 8
mov eax, dword [ebp - 8]
mov dword [eax + 0x28], edx
xor ecx, ecx
mov cl, byte [0x45287c]
and ecx, 0x80
test ecx, ecx
je 0x42b13a
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x28]
or al, 0x20
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], eax
xor edx, edx
mov dl, byte [0x452800]
and edx, 0x80
test edx, edx
je 0x42b15b
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x28]
or ecx, 0x40
mov edx, dword [ebp - 8]
mov dword [edx + 0x28], ecx
xor eax, eax
mov al, byte [0x452819]
and eax, 0x80
test eax, eax
je 0x42b17a
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x28]
or dl, 0x80
mov eax, dword [ebp - 8]
mov dword [eax + 0x28], edx
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x28]
shl edx, 8
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
or ecx, edx
mov edx, dword [ebp - 8]
mov dword [edx + 0x2c], ecx
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret 0x14