Function at 0x4496f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
cmp dword [esi + 0x48], ebx
je 0x44997d
call fcn.00592cc5
test ah, 8
jne 0x44997d
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ecx, ecx
test ax, ax
mov eax, dword [esp + 0x14]
setl cl
cmp eax, 0x2e
mov edi, ecx
jne 0x44983a
mov ecx, dword [esi + 0x1c]
lea edx, [esp + 0xc]
lea eax, [esp + 0x14]
push edx
push eax
push 0xb0
push ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x48]
cmp ecx, eax
jge 0x449984
mov eax, dword [esp + 0xc]
cmp ecx, eax
jne 0x4497da
inc eax
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00449240
test eax, eax
je 0x44978b
mov edx, dword [esp + 0x14]
mov ecx, esi
push edx
call fcn.00449550
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x48]
cmp eax, ecx
je 0x449984
mov ecx, dword [esp + 0x14]
inc ecx
inc eax
push eax
mov dword [esp + 0x18], ecx
push ecx
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00449240
test eax, eax
jne 0x4497c7
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x48]
cmp eax, ecx
jne 0x44979a
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.00449550
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
push eax
push ecx
mov ecx, esi
call fcn.00449240
test eax, eax
je 0x4497fa
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.00449550
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x48]
cmp eax, ecx
je 0x449984
mov ecx, dword [esp + 0x14]
inc ecx
inc eax
push eax
mov dword [esp + 0x18], ecx
push ecx
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00449240
test eax, eax
jne 0x449778
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x48]
cmp eax, ecx
jne 0x449809
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x24
je 0x4498d8
cmp eax, 0x25
jne 0x44988b
mov ecx, esi
call fcn.0059013f
cmp edi, ebx
jne 0x449984
mov eax, dword [esi + 0x1c]
lea ecx, [esp + 0xc]
lea edx, [esp + 0x14]
push ecx
push edx
push 0xb0
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.00449670
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x26
jne 0x4498d3
mov ecx, esi
call fcn.0059013f
cmp edi, ebx
jne 0x449984
mov ecx, dword [esi + 0x1c]
lea edx, [esp + 0xc]
lea eax, [esp + 0x14]
push edx
push eax
push 0xb0
push ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esp + 0x14]
mov ecx, esi
push edx
call fcn.00449670
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x27
jne 0x44991b
mov ecx, esi
call fcn.0059013f
cmp edi, ebx
jne 0x449984
mov edx, dword [esi + 0x1c]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
push ecx
push 0xb0
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.004495f0
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x28
mov ecx, esi
jne 0x44995f
call fcn.0059013f
cmp edi, ebx
jne 0x449984
mov eax, dword [esi + 0x1c]
lea ecx, [esp + 0xc]
lea edx, [esp + 0x14]
push ecx
push edx
push 0xb0
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.004495f0
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x2d
jne 0x44997f
call fcn.00449150
neg eax
sbb eax, eax
mov ecx, esi
inc eax
push eax
call fcn.00449160
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
mov ecx, esi
call fcn.0059013f
pop edi
pop esi
pop ebx
pop ecx
ret 0xc