Function at 0x4a8ff5
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x7c]
imul eax, dword [0x5c3e74]
mov ebp, dword [esi + 0x80]
imul ebp, dword [0x5c3e88]
add eax, dword [esi + 0x160]
add ebp, dword [esi + 0x15c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
add eax, 0xffffffdf
push edi
mov ebx, 8
cmp eax, 0xd
ja case.0x4a9035.41
jmp dword [eax*4 + 0x4a9370]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call edi
test ax, ax
jge 0x4a905f
cmp dword [esi + 0x1e4], ebx
je 0x4a905f
mov ecx, esi
call fcn.004a5940
jmp case.0x4a9035.41
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a9074
call fcn.0049f6c0
jmp case.0x4a9035.41
call fcn.004a5900
jmp case.0x4a9035.41
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call edi
test ax, ax
jge 0x4a90a1
cmp dword [esi + 0x1e4], ebx
je 0x4a90a1
mov ecx, esi
call fcn.004a5a50
jmp case.0x4a9035.41
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a90b6
call fcn.0049f6e0
jmp case.0x4a9035.41
call fcn.004a5a10
jmp case.0x4a9035.41
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
push 0x10
test ax, ax
jge 0x4a90f8
call edi
test ax, ax
jge 0x4a90ec
cmp dword [esi + 0x1e4], ebx
je 0x4a90ec
mov ecx, esi
call fcn.004a5ce0
jmp case.0x4a9035.41
mov ecx, esi
call fcn.004a5c20
jmp case.0x4a9035.41
call edi
test ax, ax
jge 0x4a9113
cmp dword [esi + 0x1e4], ebx
je 0x4a9113
mov ecx, esi
call fcn.004a5770
jmp case.0x4a9035.41
mov ecx, esi
call fcn.004a5720
jmp case.0x4a9035.41
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
push 0x10
test ax, ax
jge 0x4a9157
call edi
test ax, ax
jge 0x4a914b
cmp dword [esi + 0x1e4], ebx
je 0x4a914b
mov ecx, esi
call fcn.004a5e00
jmp case.0x4a9035.41
mov ecx, esi
call fcn.004a5d20
jmp case.0x4a9035.41
call edi
test ax, ax
jge 0x4a9172
cmp dword [esi + 0x1e4], ebx
je 0x4a9172
mov ecx, esi
call fcn.004a5800
jmp case.0x4a9035.41
mov ecx, esi
call fcn.004a57b0
jmp case.0x4a9035.41
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call edi
test ax, ax
jge 0x4a91b4
cmp dword [esi + 0x1e4], ebx
je 0x4a91b4
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a91aa
call fcn.004a5b80
jmp case.0x4a9035.41
call fcn.004a8950
jmp case.0x4a9035.41
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a91c9
call fcn.004a5b60
jmp case.0x4a9035.41
call fcn.004a8930
jmp case.0x4a9035.41
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call edi
test ax, ax
jge 0x4a9209
cmp dword [esi + 0x1e4], ebx
je 0x4a9209
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a91ff
call fcn.004a5be0
jmp case.0x4a9035.41
call fcn.004a89b0
jmp case.0x4a9035.41
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a921e
call fcn.004a5bc0
jmp case.0x4a9035.41
call fcn.004a8990
jmp case.0x4a9035.41
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call edi
test ax, ax
jge 0x4a9258
cmp dword [esi + 0x1e4], ebx
je 0x4a9258
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a9251
call fcn.004a58c0
jmp case.0x4a9035.41
call fcn.004a5b20
jmp case.0x4a9035.41
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a926a
call fcn.004a58a0
jmp case.0x4a9035.41
call fcn.004a5b00
jmp case.0x4a9035.41
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call edi
test ax, ax
jge 0x4a92a1
cmp dword [esi + 0x1e4], ebx
je 0x4a92a1
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a929a
call fcn.004a5860
jmp case.0x4a9035.41
call fcn.004a5ac0
jmp case.0x4a9035.41
push 0x11
call edi
mov ecx, esi
test ax, ax
jge 0x4a92b3
call fcn.004a5840
jmp case.0x4a9035.41
call fcn.004a5aa0
jmp case.0x4a9035.41
call fcn.0049f740
cmp dword [esi + 0x1e4], ebx
jne 0x4a935c
mov edx, dword [esi + 0x80]
imul edx, dword [0x5c3e88]
mov edi, dword [esi + 0x15c]
mov ebx, dword [esi + 0x160]
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x68]
sub ebp, edx
mov edx, dword [esp + 0x10]
mov dword [esi + 0x15c], ebp
mov ebp, dword [esi + 0x7c]
imul ebp, dword [0x5c3e74]
sub edx, ebp
add ecx, ebx
mov dword [esi + 0x160], edx
sub esp, 8
add eax, edi
mov edx, esp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
mov dword [edx + 4], ecx
push 0
mov ecx, esi
mov dword [edx], eax
call fcn.004a52c0
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esi + 0x15c], edi
mov dword [esi + 0x160], ebx
call dword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
call dword [sym.imp.USER32.dll_SetCursorPos]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0xc
mov ecx, esi
call fcn.005031d8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0xc