Function at 0x49d58d
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x583938
mov eax, dword fs:[0]
push eax
sub esp, 0x48
push ebx
push esi
push edi
mov eax, dword [0x67d978]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
mov edi, ecx
lea eax, [esp + 0x30]
xor ebx, ebx
push eax
mov dword [esp + 0x34], 0x6ba618
mov byte [esp + 0x38], bl
call fcn.004072ef
mov dword [esp + 0x60], ebx
push 5
lea esi, [esp + 0x2c]
mov ecx, edi
call fcn.0045a925
cmp dword [esp + 0x28], ebx
je 0x49d616
call fcn.0049e0cb
mov bl, 1
or dword [esp + 0x60], 0xffffffff
lea eax, [esp + 0x30]
call fcn.00406b4a
mov al, bl
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 1
lea esi, [esp + 0x2c]
mov ecx, edi
call fcn.0045a925
cmp dword [esp + 0x28], ebx
jle 0x49d698
mov esi, dword [ebp + 8]
push esi
call fcn.0049d865
push dword [esp + 0x2c]
call fcn.0049d8fd
cmp al, bl
je 0x49d64f
mov ecx, dword [esp + 0x2c]
push ebx
mov edx, esi
call fcn.0049da7b
cmp al, bl
jne 0x49d691
cmp byte [0x68bf65], bl
je 0x49d691
push 7
pop ecx
xor eax, eax
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
mov cx, word [esp + 0x2c]
mov word [esp + 0x3e], cx
push 0x1c
lea ecx, [esp + 0x3c]
inc eax
push ecx
push eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], 4
call dword [sym.imp.USER32.dll_SendInput]
test eax, eax
setne bl
jmp 0x49d5f1
mov bl, al
jmp 0x49d5f1
push ebx
lea esi, [esp + 0x24]
mov ecx, edi
call fcn.0045a925
mov ecx, dword [eax]
cmp ecx, ebx
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
jle 0x49d5f1
push 2
lea esi, [esp + 0x24]
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.0045a9c2
mov al, byte [eax + 4]
push 4
lea esi, [esp + 0x24]
mov ecx, edi
mov byte [esp + 0x20], al
call fcn.0045a9c2
cmp dword [esp + 0x2c], 0xe5
mov al, byte [eax + 4]
mov byte [esp + 0x18], al
je 0x49d5ef
push 8
lea esi, [esp + 0x2c]
mov ecx, edi
call fcn.0045a925
cmp dword [eax], ebx
je 0x49d728
mov ecx, dword [0x6b56b4]
mov eax, dword [ecx]
push 0x6b8e5c
call dword [eax + 0x2c]
test al, al
je 0x49d728
push 8
lea esi, [esp + 0x2c]
mov ecx, edi
call fcn.0045a925
mov eax, dword [eax + 4]
mov dword [esp + 0x14], eax
push 7
lea esi, [esp + 0x2c]
mov ecx, edi
call fcn.0045a925
cmp dword [eax], ebx
je 0x49d7c7
push 7
lea esi, [esp + 0x2c]
mov ecx, edi
call fcn.0045a925
cmp dword [eax + 4], ebx
setg byte [esp + 0x20]
cmp byte [esp + 0x18], bl
jne 0x49d76a
push dword [esp + 0x20]
mov eax, dword [esp + 0x18]
call fcn.0049e147
add esp, 4
jmp 0x49d76c
xor al, al
cmp al, bl
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
je 0x49d7fc
push 0xa4
call edi
test ax, ax
jns 0x49d7fc
cmp dword [0x6ba638], ebx
jne 0x49d7c7
push 8
call fcn.00536391
pop ecx
mov ecx, eax
mov dword [esp + 0x28], ecx
mov byte [esp + 0x60], 1
cmp ecx, ebx
je 0x49d7b5
push dword [esp + 0x20]
push 0x90
call fcn.0049e173
jmp 0x49d7b7
xor eax, eax
mov byte [esp + 0x60], bl
mov edi, eax
mov esi, 0x6ba638
call fcn.0049e5fd
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.0049dfc6
pop ecx
pop ecx
cmp dword [esp + 0x14], 0xa4
jne 0x49d5ef
cmp byte [esp + 0x1c], bl
je 0x49d5ef
call fcn.0049e370
jmp 0x49d5ef
mov esi, 0x90
cmp dword [esp + 0x14], esi
je 0x49d7da
push esi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], bl
call edi
and al, 1
cmp al, byte [esp + 0x20]
je 0x49d83b
push 1
push ebx
mov eax, esi
mov byte [esp + 0x36], 1
call fcn.0049dfc6
push 1
push 1
mov eax, esi
call fcn.0049dfc6
add esp, 0x10
mov byte [esp + 0x60], 3
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.0049dfc6
pop ecx
pop ecx
mov byte [esp + 0x60], bl
lea esi, [esp + 0x28]
call fcn.0049e2c4
jmp 0x49d7da