Function at 0x48ac81
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
movzx ecx, word [edx + 8]
push ebx
push esi
mov ebx, eax
mov esi, dword [ebx + 0xbc]
sub esi, dword [ebx + 0xb8]
mov eax, dword [ebx + 0x88]
push edi
xor edi, edi
sar esi, 2
cmp ecx, 0x21
mov dword [ebp - 4], edi
mov dword [ebp - 8], eax
jg 0x48ae0d
je 0x48add5
cmp ecx, 9
je 0x48ad5d
cmp ecx, 0xd
je 0x48ad01
cmp ecx, 0x12
je 0x48acf6
cmp ecx, 0x1b
jne 0x48ae1b
mov ecx, dword [ebx + 0x7c]
mov dword [ebx + 0x9c], edi
cmp ecx, edi
je 0x48acea
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, ebx
call fcn.0048a716
jmp 0x48aede
mov dword [ebx + 0x9c], edi
jmp 0x48ae8a
cmp dword [ebx + 0xa4], edi
je 0x48ad3c
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test ax, ax
je 0x48ad3c
push edi
push edi
push 0x1f
push dword [ebx + 0x28]
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [ebx + 0x7c]
cmp ecx, edi
je 0x48aede
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x48aede
mov esi, ebx
call fcn.0048c52e
test eax, eax
jne 0x48aede
push edi
push edi
push 0x1f
push dword [ebx + 0x28]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x48ae8a
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test ax, ax
je 0x48ad9f
dec dword [ebx + 0x88]
jns 0x48ad7d
dec esi
mov dword [ebx + 0x88], esi
push dword [ebx + 0x88]
mov ecx, ebx
call fcn.0048c4d7
test eax, eax
jne 0x48ae8a
lea edx, [ebx + 0x44]
call fcn.0049246f
jmp 0x48ae87
inc dword [ebx + 0x88]
cmp dword [ebx + 0x88], esi
jl 0x48adb3
mov dword [ebx + 0x88], edi
push dword [ebx + 0x88]
mov ecx, ebx
call fcn.0048c4d7
test eax, eax
jne 0x48ae8a
lea eax, [ebx + 0x44]
call fcn.0049248c
jmp 0x48ae87
mov eax, dword [ebx + 0x60]
cdq
idiv dword [ebx + 0x64]
sub dword [ebx + 0x88], eax
js 0x48ade8
cmp eax, edi
jne 0x48adee
mov dword [ebx + 0x88], edi
push dword [ebx + 0x88]
mov ecx, ebx
call fcn.0048c4d7
test eax, eax
jne 0x48ae8a
lea edx, [ebx + 0x44]
call fcn.004924bc
jmp 0x48ae87
sub ecx, 0x22
je 0x48ae4e
sub ecx, 4
je 0x48ae3a
dec ecx
dec ecx
je 0x48ae2c
cmp dword [ebx + 0xa0], edi
je 0x48ae8a
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x48ae8a
inc eax
mov dword [ebx + 0x88], eax
cmp eax, esi
jmp 0x48adab
dec eax
cmp eax, edi
mov dword [ebx + 0x88], eax
jge 0x48ad7d
jmp 0x48ad76
mov eax, dword [ebx + 0x60]
cdq
idiv dword [ebx + 0x64]
add dword [ebx + 0x88], eax
cmp dword [ebx + 0x88], esi
jge 0x48ae67
cmp eax, edi
jne 0x48ae6e
dec esi
mov dword [ebx + 0x88], esi
push dword [ebx + 0x88]
mov ecx, ebx
call fcn.0048c4d7
test eax, eax
jne 0x48ae8a
lea eax, [ebx + 0x44]
call fcn.004924d9
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x88]
jne 0x48ae9a
cmp dword [ebp - 4], edi
je 0x48aea7
mov esi, ebx
mov dword [ebx + 0x68], edi
mov dword [ebx + 0x6c], edi
call fcn.0048b15f
mov edx, dword [ebx + 0x88]
cmp dword [ebp - 8], edx
je 0x48aede
push edx
mov eax, ebx
call fcn.0048c483
test eax, eax
je 0x48aede
cmp dword [ebx + 0x7c], edi
je 0x48aede
mov edi, edx
lea esi, [ebx + 0xac]
call fcn.0044a99d
mov eax, dword [eax]
mov ebx, dword [ebx + 0x7c]
push dword [eax + 0x1c]
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx]
pop edi
pop esi
pop ebx
leave
ret