Function at 0x51f790
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
cmp edx, 0x102
push edi
mov ebx, ecx
jne 0x51f81e
cmp esi, 0x11
je 0x51fa36
cmp esi, 0x12
je 0x51fa36
cmp esi, 0x10
je 0x51fa36
cmp esi, 8
je 0x51fa36
cmp esi, 0x20
je 0x51fa36
cmp esi, 9
je 0x51fa36
cmp esi, 0xd
je 0x51fa36
cmp esi, 0xa
je 0x51fa36
cmp esi, 0x1b
je 0x51fa36
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
test ax, ax
jge 0x51f807
or esi, 0x2000
push 0x12
call edi
test ax, ax
jge 0x51f816
or esi, 0x4000
mov dword [ebx], esi
pop edi
pop esi
pop ebx
ret 8
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
cmp esi, 3
jne 0x51f839
mov eax, dword [0x561f00]
xor esi, esi
mov si, word [eax + 0x36]
jmp 0x51f9f4
cmp esi, 0x1b
jne 0x51f84f
mov ecx, dword [0x561f00]
xor esi, esi
mov si, word [ecx + 0x2c]
jmp 0x51f9f4
cmp esi, 9
jne 0x51f865
mov edx, dword [0x561f00]
xor esi, esi
mov si, word [edx + 0x30]
jmp 0x51f9f4
cmp esi, 8
jne 0x51f87a
mov eax, dword [0x561f00]
xor esi, esi
mov si, word [eax + 0x34]
jmp 0x51f9f4
cmp esi, 0xd
jne 0x51f890
mov ecx, dword [0x561f00]
xor esi, esi
mov si, word [ecx + 0x3a]
jmp 0x51f9f4
cmp esi, 0x20
jne 0x51f8a6
mov edx, dword [0x561f00]
xor esi, esi
mov si, word [edx + 0x2e]
jmp 0x51f9f4
cmp esi, 0x2c
jne 0x51f8bb
mov eax, dword [0x561f00]
xor esi, esi
mov si, word [eax + 0x38]
jmp 0x51f9f4
cmp esi, 0x21
jne 0x51f8d1
mov ecx, dword [0x561f00]
xor esi, esi
mov si, word [ecx + 0x1c]
jmp 0x51f9f4
cmp esi, 0x22
jne 0x51f8e7
mov edx, dword [0x561f00]
xor esi, esi
mov si, word [edx + 0x26]
jmp 0x51f9f4
cmp esi, 0x23
jne 0x51f8fc
mov eax, dword [0x561f00]
xor esi, esi
mov si, word [eax + 0x22]
jmp 0x51f9f4
cmp esi, 0x24
jne 0x51f912
mov ecx, dword [0x561f00]
xor esi, esi
mov si, word [ecx + 0x18]
jmp 0x51f9f4
cmp esi, 0x25
jne 0x51f928
mov edx, dword [0x561f00]
xor esi, esi
mov si, word [edx + 0x1e]
jmp 0x51f9f4
cmp esi, 0x26
jne 0x51f93d
mov eax, dword [0x561f00]
xor esi, esi
mov si, word [eax + 0x1a]
jmp 0x51f9f4
cmp esi, 0x27
jne 0x51f953
mov ecx, dword [0x561f00]
xor esi, esi
mov si, word [ecx + 0x20]
jmp 0x51f9f4
cmp esi, 0x28
jne 0x51f969
mov edx, dword [0x561f00]
xor esi, esi
mov si, word [edx + 0x24]
jmp 0x51f9f4
cmp esi, 0x2d
jne 0x51f97b
mov eax, dword [0x561f00]
xor esi, esi
mov si, word [eax + 0x28]
jmp 0x51f9f4
cmp esi, 0x2e
jne 0x51f98e
mov ecx, dword [0x561f00]
xor esi, esi
mov si, word [ecx + 0x2a]
jmp 0x51f9f4
cmp esi, 0x70
jb 0x51f9a8
cmp esi, 0x79
ja 0x51f9a8
mov eax, dword [0x561f00]
xor edx, edx
mov dx, word [eax]
lea esi, [edx + esi - 0x70]
jmp 0x51f9f4
cmp esi, 0x7a
jne 0x51f9bb
mov ecx, dword [0x561f00]
xor esi, esi
mov si, word [ecx + 0x14]
jmp 0x51f9f4
cmp esi, 0x7b
jne 0x51f9ce
mov edx, dword [0x561f00]
xor esi, esi
mov si, word [edx + 0x16]
jmp 0x51f9f4
push 0x11
call edi
test ax, ax
jl 0x51f9e0
push 0x12
call edi
test ax, ax
jge 0x51fa36
cmp esi, 0x30
jb 0x51f9ea
cmp esi, 0x39
jbe 0x51f9f4
cmp esi, 0x41
jb 0x51fa36
cmp esi, 0x5a
ja 0x51fa36
push 0x11
mov dword [ebx], esi
call edi
test ax, ax
jge 0x51fa06
mov eax, dword [ebx]
or ah, 0x20
mov dword [ebx], eax
push 0x12
call edi
test ax, ax
jge 0x51fa16
mov eax, dword [ebx]
or ah, 0x40
mov dword [ebx], eax
mov ecx, dword [0x561f00]
xor eax, eax
mov ax, word [ecx + 0x2e]
cmp esi, eax
je 0x51fa36
push 0x10
call edi
test ax, ax
jge 0x51fa36
mov eax, dword [ebx]
or ah, 0x10
mov dword [ebx], eax
pop edi
pop esi
pop ebx
ret 8