Function at 0x4a4a13
Capabilities:
Log keystrokes via polling

Disassembly:
jae 0x4a4946
jmp 0x4a4941
call fcn.004a4948
jae 0x4a4941
add esp, 4
jmp 0x4a494d
dec dword [esp]
jno 0x4a4952
jns 0x4a493d
jp 0x4a4956
add esp, 4
popf
jmp 0x4a495d
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a4976
jne 0x4a4976
call 0x100a7cca
wait
rcl byte [edx + 0x33], 0xd0
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
pushf
push 0xa
jae 0x4a4994
jmp 0x4a498f
call 0x4a4996
jae 0x4a498f
add esp, 4
jmp 0x4a499b
dec dword [esp]
jno 0x4a49a0
jns 0x4a498b
jp 0x4a49a4
add esp, 4
popf
jmp 0x4a49ab
clc
jae 0x4a49b0
push es
invalid
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a49c9
jne 0x4a49c9
invalid
jl 0x4a49ce
jmp 0x4a49d0
je 0x4a49cb
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
xor eax, eax
test eax, eax
je 0x4a49ea
jne 0x4a49e9
call 0x834e3a71
rol byte [ebx + eax*4], 0xf0
add eax, 0x1750374
xor eax, 3
add eax, 4
xor eax, 5
je 0x4a49f8
jne 0x4a49f8
call 0x1bf4d70
je 0x4a49fd
jne 0x4a49fd
sub al, 0x7c
add ebp, ebx
add ebp, dword [esp + esi*2]
sti
jl 0x4a4a02
jmp 0x4a4a04
je 0x4a49ff
pushf
push 0xa
jae 0x4a4a11
jmp 0x4a4a0c
call 0x4a4a13
jae 0x4a4a0c
add esp, 4
jmp 0x4a4a18
dec dword [esp]
jno 0x4a4a1d
jns 0x4a4a08
jp 0x4a4a21
add esp, 4
popf
jmp 0x4a4a28
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
clc
jae 0x4a4a41
fsubr dword [esp + esi*2]
add esi, dword [ebp + 1]
je 0x4a4a46
jne 0x4a4a46
call 0x100a7d9a
wait
rcl byte [edx + 0x33], 0xd0
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
xor eax, eax
test eax, eax
je 0x4a4a60
jne 0x4a4a5f
call 0x834e3ae7
rol byte [ebx + eax*4], 0xf0
add eax, 0x15ff016a
fadd dword [edx + 0x59]
add byte [eax + 0x5e74c085], bl
xor eax, 3
add eax, 4
xor eax, 5
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x4a4ad4
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x2c]
mov byte [eax + edx + 0xe4], 1
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x2c]
mov byte [eax + edx + 0x3f0], 1
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0xdc]
mov dword [eax + edx + 0x3a0], ecx
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + 0xe0]
mov dword [ecx + eax + 0x3a0], edx
jmp 0x4a4ae7
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x2c]
mov byte [edx + ecx + 0xe4], 0
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x625b2c]
jne 0x4a4b17
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [0x625b34]
jne 0x4a4b17
mov edx, dword [ebp - 0x18]
cmp edx, dword [0x625b30]
jne 0x4a4b17
mov eax, dword [ebp - 0x10]
cmp eax, dword [0x625b38]
je 0x4a4ba4
mov ecx, dword [ebp - 0x1c]
mov dword [0x625b2c], ecx
mov edx, dword [ebp - 0x18]
mov dword [0x625b30], edx
mov eax, dword [ebp - 0x14]
mov dword [0x625b34], eax
mov ecx, dword [ebp - 0x10]
mov dword [0x625b38], ecx
mov edx, dword [ebp - 0x14]
mov dword [0x6259b4], edx
mov eax, dword [ebp - 0x10]
mov dword [0x6259b0], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [0x6259b4]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [0x6259b0]
mov dword [eax + 0x18], ecx
push 8
mov edx, dword [0x6259b0]
push edx
mov eax, dword [0x6259b4]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0xc]
push edx
push 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x4c]
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov edx, dword [ebp - 0x28]
add edx, 0x14
push edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x78]
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x78]
mov ecx, dword [ecx]
push eax
mov edx, dword [ecx + 0x40]
call edx
jl 0x4a4ba9
jmp 0x4a4bab
je 0x4a4ba6
xor eax, eax
test eax, eax
je 0x4a4bb4
jne 0x4a4bb3
call 0x834e3c3b
rol byte [ebx + eax*4], 0xf0
add eax, 0x130273f8
jns 0x4a4c37
xor eax, 3
add eax, 4
xor eax, 5
clc
jae 0x4a4bc2
adc edi, dword [ecx + 0x74]
je 0x4a4bc7
add esi, dword [ebp + 1]
jne 0x4a4bc7
jns 0x4a4c2e
pushf
pushfd
push 0xa
jae 0x4a4bd4
jmp 0x4a4bcf
call 0x4a4bd6
jae 0x4a4bcf
add esp, 4
jmp 0x4a4bdb
dec dword [esp]
jno 0x4a4be0
jns 0x4a4bcb
jp 0x4a4be4
add esp, 4
popf
jmp 0x4a4beb
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a4c04
jne 0x4a4c04
call 0x100a7f58
wait
rcl byte [edx + 0x33], 0xd0
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
pushf
push 0xa
jae 0x4a4c22
jmp 0x4a4c1d
call 0x4a4c24
jae 0x4a4c1d
add esp, 4
jmp 0x4a4c29
dec dword [esp]
jno 0x4a4c2e
jns 0x4a4c19
jp 0x4a4c32
add esp, 4
popf
jmp 0x4a4c39
clc
jae 0x4a4c3e
loopne 0x4a4c75
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a4c57
jne 0x4a4c57
aaa
jl 0x4a4c5c
jmp 0x4a4c5e
je 0x4a4c59
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
xor eax, eax
test eax, eax
je 0x4a4c78
jne 0x4a4c77
call 0x834e3cff
rol byte [ebx + eax*4], 0xf0
add eax, 0x1750374
xor eax, 3
add eax, 4
xor eax, 5
je 0x4a4c86
jne 0x4a4c86
call 0x1bf4ffe
je 0x4a4c8b
jne 0x4a4c8b
lcall 0x749a, 0x3eb037c
sti
jl 0x4a4c90
jmp 0x4a4c92
je 0x4a4c8d
pushf
push 0xa
jae 0x4a4c9f
jmp 0x4a4c9a
call 0x4a4ca1
jae 0x4a4c9a
add esp, 4
jmp 0x4a4ca6
dec dword [esp]
jno 0x4a4cab
jns 0x4a4c96
jp 0x4a4caf
add esp, 4
popf
jmp 0x4a4cb6
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
clc
jae 0x4a4ccf
mov ch, 0x9a
je 0x4a4cd4
jne 0x4a4cd4
call 0x100a8028
wait
rcl byte [edx + 0x33], 0xd0
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
xor eax, eax
test eax, eax
je 0x4a4cee
jne 0x4a4ced
call 0x834e3d75
rol byte [ebx + eax*4], 0xf0
add eax, 0x6105b60f
jmp 0xc0cf4d61
xor eax, 3
add eax, 4
xor eax, 5
movzx eax, byte [0x61e961]
test eax, eax
je 0x4a4d13
push 0x11
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 0x4c]
push edx
call dword [sym.imp.USER32.dll_SetWindowDisplayAffinity]
jmp 0x4a4d22
push 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x4c]
push ecx
call dword [sym.imp.USER32.dll_SetWindowDisplayAffinity]
mov ecx, dword [ebp - 0x28]
call fcn.004a3400
push 4
call dword [sym.imp.KERNEL32.dll_Sleep]
jl 0x4a4d37
jmp 0x4a4d39
je 0x4a4d34
xor eax, eax
test eax, eax
je 0x4a4d42
jne 0x4a4d41
call 0x834e3dc9
rol byte [ebx + eax*4], 0xf0
add eax, 0xa60273f8
xor eax, 3
add eax, 4
xor eax, 5
clc
jae 0x4a4d50
cmpsb byte [esi], byte es:[edi]
movsd dword es:[edi], dword [esi]
je 0x4a4d55
jne 0x4a4d55
movsd dword es:[edi], dword [esi]
pushf
push 0xa
jae 0x4a4d62
jmp 0x4a4d5d
call 0x4a4d64
jae 0x4a4d5d
add esp, 4
jmp 0x4a4d69
dec dword [esp]
jno 0x4a4d6e
jns 0x4a4d59
jp 0x4a4d72
add esp, 4
popf
jmp 0x4a4d79
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a4d92
jne 0x4a4d92
call 0x100a80e6
wait
rcl byte [edx + 0x33], 0xd0
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
pushf
push 0xa
jae 0x4a4db0
jmp 0x4a4dab
call 0x4a4db2
jae 0x4a4dab
add esp, 4
jmp 0x4a4db7
dec dword [esp]
jno 0x4a4dbc
jns 0x4a4da7
jp 0x4a4dc0
add esp, 4
popf
jmp 0x4a4dc7
clc
jae 0x4a4dcc
jnp 0x4a4dd7
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a4de5
add byte [eax], 0
add byte [eax + 3], bl
ret 0x585a
jne 0x4a4de5
or edi, dword [ebx + eax - 0x15]
add ecx, dword [ebx]
jl 0x4a4dea
jmp 0x4a4dec
je 0x4a4de7
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
xor eax, eax
test eax, eax
je 0x4a4e06
jne 0x4a4e05
call 0x834e3e8d
rol byte [ebx + eax*4], 0xf0
add eax, 0x1750374
xor eax, 3
add eax, 4
xor eax, 5
je 0x4a4e14
jne 0x4a4e14
call 0x1bf518c
je 0x4a4e19
jne 0x4a4e19
outsb dx, byte [esi]
jl 0x4a4e1e
jmp 0x4a4e20
je 0x4a4e1b
pushf
push 0xa
jae 0x4a4e2d
jmp 0x4a4e28
call 0x4a4e2f
jae 0x4a4e28
add esp, 4
jmp 0x4a4e34
dec dword [esp]
jno 0x4a4e39
jns 0x4a4e24
jp 0x4a4e3d
add esp, 4
popf
jmp 0x4a4e44
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
clc
jae 0x4a4e5d
push eax
outsb dx, byte [esi]
je 0x4a4e62
jne 0x4a4e62
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
xor eax, eax
test eax, eax
je 0x4a4e7c