Function at 0x44aec0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x51e080]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
add eax, 0xffffffdf
xor ebx, ebx
push edi
mov edi, ecx
cmp eax, 0x2d
ja case.0x44aeed.41
movzx eax, byte [eax + 0x44b270]
jmp dword [eax*4 + 0x44b238]
cmp dword [edi + 0xf0], ebx
jbe case.0x44aeed.41
lea eax, [edi + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp - 0x18]
push ecx
lea eax, [edi + 0x168]
mov ecx, edi
push eax
call fcn.0044adc0
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x44af27
dec esi
cmp esi, dword [edi + 0xf0]
jae 0x44b090
mov ecx, edi
call fcn.0044ad90
lea eax, [edi + 0x168]
push eax
mov eax, dword [edi + 0x108]
mov eax, dword [eax + esi*4]
add eax, 8
push eax
call fcn.004ae8f0
mov eax, dword [edi + 0x108]
mov eax, dword [eax + esi*4]
mov dword [eax + 0x28], 1
mov eax, dword [edi + 0x164]
imul eax, esi
cmp dword [edi + 0x128], eax
jbe 0x44af81
mov ecx, edi
mov dword [edi + 0x128], eax
call fcn.00449d30
mov eax, dword [edi + 0x128]
inc esi
imul esi, dword [edi + 0x164]
mov ecx, dword [edi + 0x124]
add eax, ecx
cmp eax, esi
jae 0x44b065
sub esi, ecx
mov dword [edi + 0x128], esi
jmp 0x44b05e
cmp dword [edi + 0xf0], ebx
jbe case.0x44aeed.41
lea eax, [edi + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp - 0x18]
push ecx
lea eax, [edi + 0x168]
mov ecx, edi
push eax
call fcn.0044adc0
mov esi, dword [ebp - 0x18]
inc esi
cmp esi, dword [edi + 0xf0]
jae 0x44b090
mov ecx, edi
call fcn.0044ad90
lea eax, [edi + 0x168]
push eax
mov eax, dword [edi + 0x108]
mov eax, dword [eax + esi*4]
add eax, 8
push eax
call fcn.004ae8f0
mov eax, dword [edi + 0x108]
mov eax, dword [eax + esi*4]
mov dword [eax + 0x28], 1
mov ecx, dword [edi + 0x164]
mov eax, ecx
imul eax, esi
cmp dword [edi + 0x128], eax
jbe 0x44b03a
imul ecx, esi
mov dword [edi + 0x128], ecx
mov ecx, edi
call fcn.00449d30
mov eax, dword [edi + 0x128]
lea ecx, [esi + 1]
imul ecx, dword [edi + 0x164]
mov edx, dword [edi + 0x124]
add eax, edx
cmp eax, ecx
jae 0x44b065
sub ecx, edx
mov dword [edi + 0x128], ecx
mov ecx, edi
call fcn.00449d30
lea eax, [edi + 0x8c]
mov ebx, 3
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x411
push dword [edi + 0x14c]
call esi
jmp 0x44b0a3
lea eax, [edi + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
test byte [edi + 0x13c], 1
jne 0x44b0ba
push 0
push 0
push 0x410
push dword [edi + 0x58]
call esi
test bl, 1
je 0x44b1bc
jmp 0x44b18b
push ecx
push 0
call fcn.0044a3b0
push 0
push 1
push 0x411
push dword [edi + 0x14c]
jmp 0x44b21c
push ecx
push 1
call fcn.0044a3b0
push 0
push 1
push 0x411
push dword [edi + 0x14c]
jmp 0x44b21c
mov ecx, dword [edi + 0x128]
mov edx, dword [edi + 0x124]
cmp ecx, edx
jae 0x44b11c
xor ecx, ecx
mov dword [edi + 0x128], ecx
mov ecx, edi
jmp 0x44b16c
mov eax, edx
shr eax, 3
sub ecx, eax
mov eax, edx
shr eax, 2
sub ecx, eax
shr edx, 1
sub ecx, edx
mov dword [edi + 0x128], ecx
mov ecx, edi
jmp 0x44b16c
mov edx, dword [edi + 0x124]
mov ecx, edx
shr ecx, 3
mov eax, edx
shr eax, 2
add ecx, eax
shr edx, 1
add ecx, edx
add dword [edi + 0x128], ecx
mov ecx, edi
jmp 0x44b16c
mov dword [edi + 0x128], ebx
jmp 0x44b16c
mov eax, dword [edi + 0x12c]
add dword [edi + 0x128], eax
call fcn.00449d30
push 0
push 0
push 0x411
push dword [edi + 0x14c]
mov ebx, 1
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [edi + 0x15c]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x158]
mov dword [ebp - 8], eax
mov eax, dword [edi + 0x154]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x14]
push 0
push eax
push dword [edi + 0x54]
mov dword [ebp - 0x14], 0
call dword [sym.imp.USER32.dll_InvalidateRect]
test bl, 2
je case.0x44aeed.41
mov ecx, edi
call fcn.00446d00
jmp case.0x44aeed.41
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 3
push 0x410
push dword [edi + 0x58]
call esi
push 0
push 1
push 0x411
push dword [edi + 0x14c]
call esi
jmp case.0x44aeed.41
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns case.0x44aeed.41
push 0
push 4
jmp 0x44b214
push 0
push 5
jmp 0x44b214
push 0
push 6
jmp 0x44b214
push 0
push 7
push 0x410
push dword [edi + 0x58]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004d3878
mov esp, ebp
pop ebp
ret 8