Function at 0x514780
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, ecx
mov eax, dword [edi + 0x1b4]
test eax, eax
je 0x5147a4
mov eax, dword [edi + 0x3d4]
test eax, eax
je 0x5147a4
mov eax, 1
pop edi
pop ebp
ret 8
mov ecx, dword [ebp + 8]
cmp ecx, 0xe5
jne 0x514961
mov eax, dword [ebp + 0xc]
cmp eax, 0x100001
jne 0x5147c7
mov ecx, 0x51
jmp 0x514961
cmp eax, 0x110001
jne 0x5147d8
mov ecx, 0x57
jmp 0x514961
cmp eax, 0x120001
jne 0x5147e9
mov ecx, 0x45
jmp 0x514961
cmp eax, 0x130001
jne 0x5147fa
mov ecx, 0x52
jmp 0x514961
cmp eax, 0x140001
jne 0x51480b
mov ecx, 0x54
jmp 0x514961
cmp eax, 0x150001
jne 0x51481c
mov ecx, 0x59
jmp 0x514961
cmp eax, 0x160001
jne 0x51482d
mov ecx, 0x55
jmp 0x514961
cmp eax, 0x170001
jne 0x51483e
mov ecx, 0x49
jmp 0x514961
cmp eax, 0x180001
jne 0x51484f
mov ecx, 0x4f
jmp 0x514961
cmp eax, 0x1e0001
jne 0x514860
mov ecx, 0x41
jmp 0x514961
cmp eax, 0x1f0001
jne 0x514871
mov ecx, 0x53
jmp 0x514961
cmp eax, 0x200001
jne 0x514882
mov ecx, 0x44
jmp 0x514961
cmp eax, 0x210001
jne 0x514893
mov ecx, 0x46
jmp 0x514961
cmp eax, 0x220001
jne 0x5148a4
mov ecx, 0x47
jmp 0x514961
cmp eax, 0x230001
jne 0x5148b5
mov ecx, 0x48
jmp 0x514961
cmp eax, 0x240001
jne 0x5148c6
mov ecx, 0x4a
jmp 0x514961
cmp eax, 0x250001
jne 0x5148d7
mov ecx, 0x4b
jmp 0x514961
cmp eax, 0x260001
jne 0x5148e5
mov ecx, 0x4c
jmp 0x514961
cmp eax, 0x2c0001
jne 0x5148f3
mov ecx, 0x5a
jmp 0x514961
cmp eax, 0x2d0001
jne 0x514901
mov ecx, 0x58
jmp 0x514961
cmp eax, 0x2e0001
jne 0x51490f
mov ecx, 0x43
jmp 0x514961
cmp eax, 0x2f0001
jne 0x51491d
mov ecx, 0x56
jmp 0x514961
cmp eax, 0x300001
jne 0x51492b
mov ecx, 0x42
jmp 0x514961
cmp eax, 0x310001
jne 0x514939
mov ecx, 0x4e
jmp 0x514961
cmp eax, 0x320001
jne 0x514947
mov ecx, 0x4d
jmp 0x514961
cmp eax, 0x330001
jne 0x514955
mov ecx, 0xbc
jmp 0x514961
cmp eax, 0x340001
jne 0x514961
mov ecx, 0xbe
cmp ecx, 0x1b
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], 0
jne 0x514977
xor eax, eax
pop edi
pop ebp
ret 8
push esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x12
call esi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x51499b
mov ecx, dword [edi + 0x14]
mov eax, 0x12
cmp ecx, eax
je 0x51499b
mov dword [edi + 0x18], eax
jmp 0x5149ee
push 0x10
call esi
xor edx, edx
mov dl, ah
test dl, dl
je 0x5149b8
mov ecx, dword [edi + 0x14]
mov eax, 0x10
cmp ecx, eax
je 0x5149b8
mov dword [edi + 0x18], eax
jmp 0x5149ee
push 0x11
call esi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x5149d5
mov ecx, dword [edi + 0x14]
mov eax, 0x11
cmp ecx, eax
je 0x5149d5
mov dword [edi + 0x18], eax
jmp 0x5149ee
push 9
call esi
xor edx, edx
mov dl, ah
test dl, dl
je 0x5149ee
cmp dword [edi + 0x14], 9
je 0x5149ee
mov dword [edi + 0x18], 9
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x14]
test ecx, ecx
pop esi
jne 0x514a17
cmp eax, 9
je 0x514a0d
cmp eax, 0x12
je 0x514a0d
cmp eax, 0x11
je 0x514a0d
cmp eax, 0x10
jne 0x514a3f
mov eax, 2
pop edi
pop ebp
ret 8
cmp eax, 9
jne 0x514a21
cmp ecx, 0x11
jne 0x514a35
cmp eax, 0x12
jne 0x514a2b
cmp ecx, 9
je 0x514a35
cmp eax, 0x10
jne 0x514a3f
cmp ecx, 9
jne 0x514a3f
mov eax, 3
pop edi
pop ebp
ret 8
cmp eax, 0x12
jne 0x514a4e
cmp ecx, 0x11
je 0x514a5d
cmp ecx, 0x10
je 0x514a5d
cmp eax, 0x11
jne 0x514a63
cmp ecx, 9
je 0x514a5d
cmp ecx, 0x10
jne 0x514a63
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], eax
mov eax, 4
pop edi
pop ebp
ret 8