Function at 0x5d03f0
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], eax
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
cmp eax, 1
jl 0x5d07a8
dec eax
je 0x5d0504
dec eax
je 0x5d0530
sub eax, 2
je 0x5d051a
sub eax, 0xf
je 0x5d0622
sub eax, 0xe
je 0x5d059e
dec eax
je 0x5d05b4
dec eax
je 0x5d05e0
dec eax
je 0x5d05ca
dec eax
je 0x5d0572
dec eax
je 0x5d0546
dec eax
je 0x5d0588
dec eax
je 0x5d055c
sub eax, 4
je 0x5d0638
dec eax
je 0x5d0664
dec eax
je 0x5d067a
sub eax, 0x2d
je 0x5d06a6
dec eax
je 0x5d06bc
dec eax
je 0x5d06d2
sub eax, 0x12
je 0x5d0690
sub eax, 0x17
je 0x5d05f6
dec eax
je 0x5d060c
sub eax, 9
je 0x5d064e
sub eax, 0x2a
je 0x5d072a
sub eax, 2
je 0x5d0756
sub eax, 2
je 0x5d076c
dec eax
je 0x5d0782
dec eax
je 0x5d06e8
sub eax, 0x1b
je 0x5d06fe
dec eax
je 0x5d0795
dec eax
je 0x5d0714
dec eax
je 0x5d0740
jmp 0x5d07a8
mov esi, str.Left_Mouse_Button
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Middle_Mouse_Button
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Right_Mouse_Button
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63aa1c
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Down
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63aa38
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Right
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Page_up
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Page_down
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63aa7c
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63aa8c
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Mouse_Wheel_Up
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Mouse_Wheel_Down
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Pause
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Print_Screen
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Num_Lock
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Insert
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Delete
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Num__
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Left_Win
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Right_Win
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, str.Application_Key
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63ab78
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63ab84
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63ab90
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63ab9c
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63aba8
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63abb4
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63abc0
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63abcc
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov esi, 0x63abd8
mov ebx, dword [ebp - 8]
mov eax, ebx
call fcn.00403d60
mov dword [ebx], esi
jmp 0x5d07f6
mov edx, 0x20
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
call fcn.00407870
push 0
push dword [ebp - 4]
call sub.user32.dll_MapVirtualKeyA
mov dword [ebp - 4], eax
push dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
test eax, eax
jne 0x5d07d6
mov eax, 0x63bde0
push eax
mov eax, dword [ebp - 4]
and eax, 0xff
shl eax, 0x10
push eax
call sub.user32.dll_GetKeyNameTextA
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00407870
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
leave
ret