Function at 0x486afc
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
mov byte [ebp - 1], dl
mov esi, eax
xor eax, eax
push ebp
push 0x486fee
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [0x4e6c40], 0x7fffffff
mov byte [ebp - 7], 0
mov byte [ebp - 2], 0
mov byte [ebp - 3], 0
mov byte [ebp - 6], 0
mov byte [ebp - 4], 0
mov byte [ebp - 5], 0
xor ebx, ebx
mov eax, esi
call fcn.00408f58
mov edi, eax
cmp edi, dword [0x4e6c40]
jle 0x486b64
mov edi, dword [0x4e6c40]
test edi, edi
je 0x486fd3
cmp edi, ebx
jle 0x486fc8
mov al, byte [esi + ebx]
mov edx, eax
sub dl, 0x28
je 0x486b91
dec dl
je 0x486b9b
sub dl, 0x32
je 0x486bac
sub dl, 0x20
je 0x486c06
jmp 0x486f93
mov byte [ebp - 2], 1
inc ebx
jmp 0x486fc0
mov byte [ebp - 2], 0
push ebp
call fcn.004869dc
pop ecx
inc ebx
jmp 0x486fc0
lea eax, [ebp - 0x10]
call fcn.00404130
cmp edi, ebx
jl 0x486fc0
inc ebx
cmp byte [esi + ebx], 0x5d
jne 0x486bc9
inc ebx
jmp 0x486fc0
lea eax, [ebp - 0x14]
mov dl, byte [esi + ebx]
call fcn.00404318
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.004043f8
call fcn.00432d60
mov edx, dword [eax]
call dword [edx + 0x10]
mov eax, dword [ebp - 0x10]
call fcn.004045f0
push eax
call fcn.00432d60
pop edx
call fcn.00432988
cmp edi, ebx
jge 0x486bbc
jmp 0x486fc0
mov word [ebp - 0xc], 1
mov al, byte [esi + ebx + 1]
mov byte [ebp - 9], al
cmp al, 0x7d
jne 0x486c27
lea eax, [ebp - 0x10]
mov edx, 0x487008
call fcn.004041c8
inc ebx
jmp 0x486c2f
lea eax, [ebp - 0x10]
call fcn.00404130
cmp edi, ebx
jl 0x486c5e
inc ebx
cmp byte [esi + ebx], 0x7d
jne 0x486c3d
inc ebx
jmp 0x486c5e
mov al, byte [esi + ebx]
call fcn.00402a7c
mov edx, eax
lea eax, [ebp - 0x18]
call fcn.00404318
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 0x10]
call fcn.004043f8
cmp edi, ebx
jge 0x486c33
mov edx, dword [ebp - 0x10]
mov eax, 0x487014
call fcn.00404734
mov byte [ebp - 8], al
cmp byte [ebp - 8], 0
je 0x486cc5
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004043f0
mov ecx, eax
xor eax, eax
mov al, byte [ebp - 8]
sub ecx, eax
xor edx, edx
mov dl, byte [ebp - 8]
inc edx
mov eax, dword [ebp - 0x10]
call fcn.00404650
mov eax, dword [ebp - 0x1c]
call fcn.00486a5c
mov word [ebp - 0xc], ax
cmp word [ebp - 0xc], 0
jne 0x486cae
inc word [ebp - 0xc]
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov cl, byte [ebp - 8]
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00404650
mov eax, dword [ebp - 0x10]
call fcn.004043f0
dec eax
jne 0x486cfc
mov al, byte [ebp - 9]
push eax
call sub.user32.dll_VkKeyScanA
cmp ax, 0xffff
je 0x486fc0
push ebp
mov cl, 1
mov dx, word [ebp - 0xc]
call fcn.00486838
pop ecx
push ebp
call fcn.004869dc
pop ecx
jmp 0x486fc0
lea eax, [ebp - 0x11c]
mov edx, dword [ebp - 0x10]
mov ecx, 0xff
call fcn.004043cc
lea eax, [ebp - 0x11c]
call fcn.00486910
movzx edx, ax
cmp edx, 0x33
jg 0x486d5c
je 0x486e46
cmp edx, 0x30
jg 0x486d4b
je 0x486d93
sub edx, 0x10
je 0x486f38
dec edx
je 0x486f4d
dec edx
je 0x486f20
jmp 0x486f77
sub edx, 0x31
je 0x486dce
dec edx
je 0x486e08
jmp 0x486f77
cmp edx, 0x36
jg 0x486d7c
je 0x486efe
sub edx, 0x34
je 0x486e83
dec edx
je 0x486ec1
jmp 0x486f77
sub edx, 0x37
je 0x486f12
sub edx, 0x24
je 0x486f62
jmp 0x486f77
xor ecx, ecx
mov dl, 1
mov eax, dword [0x486268]
call fcn.004863a8
mov dword [0x4e6c44], eax
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x486dbf
xor edx, edx
mov eax, dword [0x4e6c44]
call fcn.0048656c
mov eax, dword [0x4e6c44]
call fcn.0040335c
jmp 0x486fc0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x486268]
call fcn.004863a8
mov dword [0x4e6c44], eax
push 0x14
call sub.user32.dll_GetKeyState
test ax, ax
jne 0x486df9
mov dl, 1
mov eax, dword [0x4e6c44]
call fcn.0048656c
mov eax, dword [0x4e6c44]
call fcn.0040335c
jmp 0x486fc0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x486268]
call fcn.004863a8
mov dword [0x4e6c44], eax
push 0x90
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x486e37
xor edx, edx
mov eax, dword [0x4e6c44]
call fcn.00486554
mov eax, dword [0x4e6c44]
call fcn.0040335c
jmp 0x486fc0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x486268]
call fcn.004863a8
mov dword [0x4e6c44], eax
push 0x90
call sub.user32.dll_GetKeyState
test ax, ax
jne 0x486e74
mov dl, 1
mov eax, dword [0x4e6c44]
call fcn.00486554
mov eax, dword [0x4e6c44]
call fcn.0040335c
jmp 0x486fc0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x486268]
call fcn.004863a8
mov dword [0x4e6c44], eax
push 0x91
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x486eb2
xor edx, edx
mov eax, dword [0x4e6c44]
call fcn.00486560
mov eax, dword [0x4e6c44]
call fcn.0040335c
jmp 0x486fc0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x486268]
call fcn.004863a8
mov dword [0x4e6c44], eax
push 0x91
call sub.user32.dll_GetKeyState
test ax, ax
jne 0x486eef
mov dl, 1
mov eax, dword [0x4e6c44]
call fcn.00486560
mov eax, dword [0x4e6c44]
call fcn.0040335c
jmp 0x486fc0
push ebp
xor ecx, ecx
mov dx, 1
mov al, 0x12
call fcn.00486750
pop ecx
jmp 0x486fc0
push ebp
mov al, 0x12
call fcn.004867e8
pop ecx
jmp 0x486fc0
mov byte [ebp - 4], 1
push ebp
xor ecx, ecx
mov dx, 1
mov al, 0x12
call fcn.00486750
pop ecx
jmp 0x486fc0
mov byte [ebp - 3], 1
push ebp
xor ecx, ecx
mov dx, 1
mov al, 0x10
call fcn.00486750
pop ecx
jmp 0x486fc0
mov byte [ebp - 6], 1
push ebp
xor ecx, ecx
mov dx, 1
mov al, 0x11
call fcn.00486750
pop ecx
jmp 0x486fc0
mov byte [ebp - 5], 1
push ebp
xor ecx, ecx
mov dx, 1
mov al, 0x5b
call fcn.00486750
pop ecx
jmp 0x486fc0
cmp ax, 0xffff
je 0x486fc0
push ebp
mov cl, 1
mov dx, word [ebp - 0xc]
call fcn.00486838
pop ecx
push ebp
call fcn.004869dc
pop ecx
jmp 0x486fc0
push eax
call sub.user32.dll_VkKeyScanA
cmp ax, 0xffff
je 0x486fb5
push ebp
mov cl, 1
mov dx, 1
call fcn.00486838
pop ecx
push ebp
call fcn.004869dc
pop ecx
jmp 0x486fbf
mov eax, 0x487018
call fcn.004866e0
inc ebx
cmp edi, ebx
jg 0x486b74
mov byte [ebp - 7], 1
push ebp
call fcn.004869dc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x486ff5
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404154
ret