Function at 0x49d791
Capabilities:
Log keystrokes via polling

Disassembly:
push 0xc
mov eax, 0x591fc7
call fcn.0055672a
mov esi, ecx
xor edi, edi
inc edi
push edi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x49da52
mov eax, dword [esi + 0xfd8]
xor ebx, ebx
cmp eax, ebx
jne 0x49d9fb
lea ecx, [ebp - 0x14]
call fcn.004085b2
push 0x42bf
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], ebx
call fcn.0040193d
neg eax
sbb eax, eax
neg eax
jne 0x49d7ec
call fcn.00409f64
push 0x15c
call fcn.00408e20
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x49d80f
push ebx
push dword [ebp - 0x14]
mov ecx, eax
call fcn.0051cc9d
jmp 0x49d811
xor eax, eax
lea ecx, [esi + 0xfd0]
push eax
mov byte [ebp - 4], bl
call fcn.0049c57d
mov eax, dword [esi + 0xfb0]
cmp eax, ebx
mov dword [ebp - 0x10], ebx
jle 0x49d8ee
push dword [ebp - 0x10]
lea ecx, [esi + 0xfa8]
call fcn.00492dd0
mov edi, dword [eax]
push ebx
push edi
lea ecx, [esi + 0xfe4]
call fcn.0049c60b
test eax, eax
jne 0x49d8d9
push 0x5b8958
mov ecx, edi
call fcn.00421acb
test eax, eax
je 0x49d88b
push 0xa8
call fcn.00408e20
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
mov byte [ebp - 4], 2
cmp ecx, ebx
je 0x49d887
push 1
call fcn.004e329f
jmp 0x49d8c0
xor eax, eax
jmp 0x49d8c0
push 0x15c
call fcn.00408e20
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x49d8bb
push dword [ebp - 0x10]
lea ecx, [esi + 0xf80]
call fcn.0049c0b3
push dword [eax]
mov ecx, dword [ebp - 0x18]
call fcn.0049c16d
jmp 0x49d8bd
xor eax, eax
mov dword [eax + 0x44], edi
push eax
lea ecx, [esi + 0xfd0]
mov byte [ebp - 4], bl
mov dword [eax + 0x90], 1
call fcn.0049c57d
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [esi + 0xfb0]
jl 0x49d831
xor edi, edi
inc edi
cmp dword [esi + 0xfd8], edi
jle 0x49d935
cmp dword [esi + 0xfc4], ebx
jle 0x49d935
push 0xa8
call fcn.00408e20
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 4
cmp eax, ebx
je 0x49d91e
push edi
mov ecx, eax
call fcn.004e329f
jmp 0x49d920
xor eax, eax
push eax
lea ecx, [esi + 0xfd0]
mov byte [ebp - 4], bl
mov dword [eax + 0x90], edi
call fcn.0049c57d
cmp dword [esi + 0xfc4], ebx
mov dword [ebp - 0x10], ebx
jle 0x49d9ec
push dword [ebp - 0x10]
lea ecx, [esi + 0xfbc]
call fcn.00492dd0
mov edi, dword [eax]
push 0x5b8958
mov ecx, edi
call fcn.00421acb
test eax, eax
je 0x49d993
push 0xa8
call fcn.00408e20
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
mov byte [ebp - 4], 5
cmp ecx, ebx
je 0x49d985
push 1
call fcn.004e329f
jmp 0x49d987
xor eax, eax
mov dword [eax + 0x90], 1
jmp 0x49d9c8
push 0x15c
call fcn.00408e20
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 6
cmp eax, ebx
je 0x49d9c3
push dword [ebp - 0x10]
lea ecx, [esi + 0xf94]
call fcn.0049c0b3
push dword [eax]
mov ecx, dword [ebp - 0x18]
call fcn.0049c16d
jmp 0x49d9c5
xor eax, eax
mov dword [eax + 0x44], edi
push eax
lea ecx, [esi + 0xfd0]
mov byte [ebp - 4], bl
call fcn.0049c57d
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [esi + 0xfc4]
jl 0x49d944
xor edi, edi
inc edi
mov ecx, dword [ebp - 0x14]
or dword [ebp - 4], 0xffffffff
add ecx, 0xfffffff0
call fcn.004010d6
push 0x1cf0
call fcn.00408e20
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 7
cmp eax, ebx
je 0x49da26
push ebx
lea ecx, [esi + 0xfd0]
push ecx
push esi
mov ecx, eax
call fcn.004f9fe7
jmp 0x49da28
xor eax, eax
mov edx, dword [eax]
or dword [ebp - 4], 0xffffffff
push ebx
push ebx
push ebx
mov dword [eax + 0x1c34], edi
mov dword [eax + 0x1c38], edi
mov dword [eax + 0x1c40], ebx
push dword [ebp + 0x10]
mov ecx, eax
push dword [ebp + 0xc]
push esi
call dword [edx + 0x1e4]
call fcn.00556802
ret 0xc