Function at 0x4a35f8
Capabilities:
Log keystrokes via polling

Disassembly:
jae 0x4a3446
jmp 0x4a3441
call fcn.004a3448
jae 0x4a3441
add esp, 4
jmp 0x4a344d
dec dword [esp]
jno 0x4a3452
jns 0x4a343d
jp 0x4a3456
add esp, 4
popf
jmp 0x4a345d
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a3476
jne 0x4a3476
call 0x100a67ca
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 0x4a3494
jmp 0x4a348f
call 0x4a3496
jae 0x4a348f
add esp, 4
jmp 0x4a349b
dec dword [esp]
jno 0x4a34a0
jns 0x4a348b
jp 0x4a34a4
add esp, 4
popf
jmp 0x4a34ab
clc
jae 0x4a34b0
in al, dx
invalid
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a34c9
jne 0x4a34c9
invalid
jl 0x4a34ce
jmp 0x4a34d0
je 0x4a34cb
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 0x4a34ea
jne 0x4a34e9
call 0x834e2571
rol byte [ebx + eax*4], 0xf0
add eax, 0x1750374
xor eax, 3
add eax, 4
xor eax, 5
je 0x4a34f8
jne 0x4a34f8
call 0x1bf3870
je 0x4a34fd
jne 0x4a34fd
sub al, 0x7c
add ebp, ebx
add ebp, dword [esp + esi*2]
sti
jl 0x4a3502
jmp 0x4a3504
je 0x4a34ff
pushf
push 0xa
jae 0x4a3511
jmp 0x4a350c
call 0x4a3513
jae 0x4a350c
add esp, 4
jmp 0x4a3518
dec dword [esp]
jno 0x4a351d
jns 0x4a3508
jp 0x4a3521
add esp, 4
popf
jmp 0x4a3528
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
clc
jae 0x4a3541
shr dword [esp + esi*2], 3
je 0x4a3546
jne 0x4a3546
call 0x100a689a
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 0x4a3560
jne 0x4a355f
call 0x834e25e7
rol byte [ebx + eax*4], 0xf0
add eax, 0xfcb462e8
invalid
xor eax, 3
add eax, 4
xor eax, 5
call 0x46e9d0
call 0x46ec10
call fcn.00452bb0
jl 0x4a357d
jmp 0x4a357f
je 0x4a357a
xor eax, eax
test eax, eax
je 0x4a3588
jne 0x4a3587
call 0x834e260f
rol byte [ebx + eax*4], 0xf0
add eax, 0xbc0273f8
test byte [ebx + eax + 0x75], dh
xor eax, 3
add eax, 4
xor eax, 5
clc
jae 0x4a3596
mov esp, 0x75037484
je 0x4a359b
jne 0x4a359b
add dword [esi + 0x730a6a9c], eax
pop es
test byte [esi - 0x64], ah
pushf
push 0xa
jae 0x4a35a8
jmp 0x4a35a3
call 0x4a35aa
jae 0x4a35a3
add esp, 4
jmp 0x4a35af
dec dword [esp]
jno 0x4a35b4
jns 0x4a359f
jp 0x4a35b8
add esp, 4
popf
jmp 0x4a35bf
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a35d8
jne 0x4a35d8
call 0x100a692c
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 0x4a35f6
jmp 0x4a35f1
call 0x4a35f8
jae 0x4a35f1
add esp, 4
jmp 0x4a35fd
dec dword [esp]
jno 0x4a3602
jns 0x4a35ed
jp 0x4a3606
add esp, 4
popf
jmp 0x4a360d
clc
jae 0x4a3612
mov word [edx + 0x50], es
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a362b
jne 0x4a362b
inc edx
jl 0x4a3630
jmp 0x4a3632
je 0x4a362d
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 0x4a364c
jne 0x4a364b
call 0x834e26d3
rol byte [ebx + eax*4], 0xf0
add eax, 0x1750374
xor eax, 3
add eax, 4
xor eax, 5
je 0x4a365a
jne 0x4a365a
call 0x1bf39d2
je 0x4a365f
jne 0x4a365f
movsd dword es:[edi], dword [esi]
jl 0x4a3664
jmp 0x4a3666
je 0x4a3661
pushf
push 0xa
jae 0x4a3673
jmp 0x4a366e
call 0x4a3675
jae 0x4a366e
add esp, 4
jmp 0x4a367a
dec dword [esp]
jno 0x4a367f
jns 0x4a366a
jp 0x4a3683
add esp, 4
popf
jmp 0x4a368a
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
clc
jae 0x4a36a3
popal
movsd dword es:[edi], dword [esi]
je 0x4a36a8
jne 0x4a36a8
call 0x100a69fc
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 0x4a36c2
jne 0x4a36c1
call 0x834e2749
rol byte [ebx + eax*4], 0xf0
add eax, 0x15ff2d6a
fadd dword [edx + 0x59]
add byte [eax + 0x7401e083], bl
adc al, 0xf
mov dh, 0xd
pushal
jmp 0xda413743
xor eax, 3
add eax, 4
xor eax, 5
push 0x2d
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
je 0x4a36ed
movzx ecx, byte [0x61e960]
neg ecx
sbb ecx, ecx
add ecx, 1
mov byte [0x61e960], cl
jl 0x4a36f2
jmp 0x4a36f4
je 0x4a36ef
xor eax, eax
test eax, eax
je 0x4a36fd
jne 0x4a36fc
call 0x834e2784
rol byte [ebx + eax*4], 0xf0
add eax, 0xb20273f8
aaa
xor eax, 3
add eax, 4
xor eax, 5
clc
jae 0x4a370b
mov dl, 0x37
je 0x4a3710
jne 0x4a3710
aaa
pushf
push 0xa
jae 0x4a371d
jmp 0x4a3718
call 0x4a371f
jae 0x4a3718
add esp, 4
jmp 0x4a3724
dec dword [esp]
jno 0x4a3729
jns 0x4a3714
jp 0x4a372d
add esp, 4
popf
jmp 0x4a3734
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a374d
jne 0x4a374d
call 0x100a6aa1
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 0x4a376b
jmp 0x4a3766
call 0x4a376d
jae 0x4a3766
add esp, 4
jmp 0x4a3772
dec dword [esp]
jno 0x4a3777
jns 0x4a3762
jp 0x4a377b
add esp, 4
popf
jmp 0x4a3782
clc
jae 0x4a3787
xchg dword [edx - 0xd7eadb0], ebx
nop
add byte [eax], al
add byte [edx - 0x7f], dl
ljmp 0x358
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
je 0x4a37a0
jne 0x4a37a0
lcall 0x749a, 0x3eb037c
sti
jl 0x4a37a5
jmp 0x4a37a7
je 0x4a37a2
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 0x4a37c1
jne 0x4a37c0
call 0x834e2848
rol byte [ebx + eax*4], 0xf0
add eax, 0x1750374
xor eax, 3
add eax, 4
xor eax, 5
je 0x4a37cf
jne 0x4a37cf
call 0x1bf3b47
je 0x4a37d4
jne 0x4a37d4
add byte [ebx + eax - 0x15], bh
add eax, dword [eax]
jl 0x4a37d9
jmp 0x4a37db
je 0x4a37d6
pushf
push 0xa
jae 0x4a37e8
jmp 0x4a37e3
call 0x4a37ea
jae 0x4a37e3
add esp, 4
jmp 0x4a37ef
dec dword [esp]
jno 0x4a37f4
jns 0x4a37df
jp 0x4a37f8
add esp, 4
popf
jmp 0x4a37ff
push eax
push edx
xor edx, 0x90
push edx
sub edx, 0x80
pop eax
add eax, edx
pop edx
pop eax
clc
jae 0x4a3818
pop esp
add byte [ebx + eax + 0x75], dh
add eax, ebp
je 0x4a381d
jne 0x4a381d
call 0x100a6b71
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 0x4a3837
jne 0x4a3836
call 0x834e28be
rol byte [ebx + eax*4], 0xf0
add eax, 0x59b80d8b
bound eax, qword [eax]
xor eax, 3
add eax, 4
xor eax, 5
mov ecx, dword [0x6259b8]
call fcn.00459ff0
movzx edx, byte [0x61e960]
test edx, edx
je 0x4a385b
call fcn.004a12d0
jl 0x4a3860