Function at 0x4cccd8
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov ecx, 4
push 0
push 0
dec ecx
jne 0x4ccce0
push ecx
push ebx
push esi
push edi
mov edi, edx
mov esi, eax
xor eax, eax
push ebp
push 0x4cd108
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x14
call sub.user32.dll_GetKeyState
test ax, ax
setg bl
mov eax, edi
mov edx, 0x4cd120
call fcn.00404b1c
jne 0x4cce96
lea eax, [ebp - 8]
call fcn.004c7d68
mov eax, dword [ebp - 8]
lea edx, [ebp - 4]
call fcn.00408ea4
mov eax, dword [ebp - 4]
mov edx, 0x4cd12c
call fcn.00404b1c
jne 0x4ccddf
xor edx, edx
mov eax, 0x4cd13c
call fcn.004b4638
push 0
push 0
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc938
xor eax, eax
call fcn.004c8858
test al, al
jne 0x4ccdbf
xor edx, edx
mov eax, 0x4cd16c
call fcn.004b4638
mov eax, dword [0x5625f4]
mov eax, dword [eax]
xor edx, edx
call fcn.004c789c
test eax, eax
jbe 0x4ccdcb
xor edx, edx
mov eax, 0x4cd1a0
call fcn.004b4638
lea ecx, [ebp - 0x10]
mov eax, dword [0x5625f4]
mov eax, dword [eax]
mov edx, 0x4cd1d8
call fcn.00409ca8
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0xc]
call fcn.00404f8c
mov eax, dword [ebp - 0xc]
mov cl, 2
xor edx, edx
call fcn.0048cbf8
jmp 0x4ccdcb
xor edx, edx
mov eax, 0x4cd1e8
call fcn.004b4638
push 0
push 0
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc9a4
jmp 0x4cd0c8
mov eax, dword [0x5625f4]
mov eax, dword [eax]
xor edx, edx
call fcn.004c789c
test eax, eax
jbe 0x4cce2d
xor edx, edx
mov eax, 0x4cd1a0
call fcn.004b4638
lea ecx, [ebp - 0x18]
mov eax, dword [0x5625f4]
mov eax, dword [eax]
mov edx, 0x4cd1d8
call fcn.00409ca8
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 0x14]
call fcn.00404f8c
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.0048cbf8
jmp 0x4cd0c8
push 0x4cd210
lea eax, [ebp - 0x20]
call fcn.004c7d68
push dword [ebp - 0x20]
push 0x4cd234
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.00404a90
mov eax, dword [ebp - 0x1c]
xor edx, edx
call fcn.004b4638
push 1
push 1
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc938
mov cl, 1
mov dx, 0x1b
mov eax, esi
call fcn.004cc880
xor ecx, ecx
mov dx, 0x1b
mov eax, esi
call fcn.004cc880
push 1
push 1
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc9a4
jmp 0x4cd0c8
mov eax, edi
mov edx, 0x4cd248
call fcn.00404b1c
jne 0x4ccee1
push 1
push 0
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc938
mov cl, 1
mov dx, 0x43
mov eax, esi
call fcn.004cc880
xor ecx, ecx
mov dx, 0x43
mov eax, esi
call fcn.004cc880
push 1
push 0
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc9a4
jmp 0x4cd0c8
mov eax, edi
mov edx, 0x4cd258
call fcn.00404b1c
jne 0x4ccf2c
push 0
push 1
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc938
mov cl, 1
mov dx, 9
mov eax, esi
call fcn.004cc880
xor ecx, ecx
mov dx, 9
mov eax, esi
call fcn.004cc880
push 0
push 1
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc9a4
jmp 0x4cd0c8
mov eax, edi
mov edx, 0x4cd264
call fcn.00404b1c
jne 0x4ccf77
push 0
push 1
mov cl, 1
mov edx, ebx
mov eax, esi
call fcn.004cc938
mov cl, 1
mov dx, 9
mov eax, esi
call fcn.004cc880
xor ecx, ecx
mov dx, 9
mov eax, esi
call fcn.004cc880
push 0
push 1
mov cl, 1
mov edx, ebx
mov eax, esi
call fcn.004cc9a4
jmp 0x4cd0c8
mov eax, edi
mov edx, 0x4cd270
call fcn.00404b1c
jne 0x4ccfc2
push 1
push 1
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc938
mov cl, 1
mov dx, 9
mov eax, esi
call fcn.004cc880
xor ecx, ecx
mov dx, 9
mov eax, esi
call fcn.004cc880
push 1
push 1
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc9a4
jmp 0x4cd0c8
mov eax, edi
mov edx, 0x4cd27c
call fcn.00404b1c
jne 0x4cd00d
push 1
push 1
mov cl, 1
mov edx, ebx
mov eax, esi
call fcn.004cc938
mov cl, 1
mov dx, 9
mov eax, esi
call fcn.004cc880
xor ecx, ecx
mov dx, 9
mov eax, esi
call fcn.004cc880
push 1
push 1
mov cl, 1
mov edx, ebx
mov eax, esi
call fcn.004cc9a4
jmp 0x4cd0c8
mov eax, edi
mov edx, 0x4cd28c
call fcn.00404b1c
jne 0x4cd055
push 0
push 0
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc938
mov cl, 1
mov dx, 0x5b
mov eax, esi
call fcn.004cc880
xor ecx, ecx
mov dx, 0x5b
mov eax, esi
call fcn.004cc880
push 0
push 0
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc9a4
jmp 0x4cd0c8
mov eax, edi
mov edx, 0x4cd298
call fcn.00404b1c
jne 0x4cd09d
push 0
push 0
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc938
mov cl, 1
mov dx, 0x5c
mov eax, esi
call fcn.004cc880
xor ecx, ecx
mov dx, 0x5c
mov eax, esi
call fcn.004cc880
push 0
push 0
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.004cc9a4
jmp 0x4cd0c8
mov eax, edi
mov edx, 0x4cd2a8
call fcn.00404b1c
jne 0x4cd0b5
lea eax, [ebp - 0x24]
call fcn.004c8b34
jmp 0x4cd0c8
mov eax, edi
mov edx, 0x4cd2b8
call fcn.00404b1c
jne 0x4cd0c8
call fcn.004c8a04
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cd10f
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.00404724
lea eax, [ebp - 0x14]
call fcn.00404e1c
lea eax, [ebp - 0x10]
call fcn.00404700
lea eax, [ebp - 0xc]
call fcn.00404e1c
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404724
ret