Function at 0x5cfd64
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov edi, eax
xor eax, eax
push ebp
push 0x5d0259
push dword fs:[eax]
mov dword fs:[eax], esp
mov ebx, dword [edi + 0x30]
mov eax, ebx
mov edx, dword [0x4fcf44]
call fcn.00403d84
test al, al
je 0x5cfdad
mov edx, dword [ebp - 4]
mov eax, ebx
mov si, 0xffba
call fcn.00403df4
mov eax, dword [ebp - 4]
cmp byte [eax], 9
jne 0x5cfdc0
mov eax, dword [ebp - 4]
mov byte [eax], 0
jmp 0x5d0233
mov eax, dword [ebp - 4]
mov al, byte [eax]
add al, 0xe0
sub al, 0xe0
jb 0x5cfded
mov eax, dword [ebp - 4]
mov al, byte [eax]
cmp al, 8
je 0x5cfded
mov eax, dword [ebp - 4]
cmp byte [eax], 0xd
jne 0x5cff15
cmp byte [edi + 0x251], 0
je 0x5cff15
mov eax, edi
call fcn.005d065c
test eax, eax
je 0x5cfe20
mov eax, edi
call fcn.005d065c
cmp byte [eax + 0x39], 0
jne 0x5cfe20
mov eax, edi
call fcn.005d065c
mov al, byte [eax + 0x3a]
add al, 0xfe
sub al, 2
jb 0x5cfe20
mov eax, dword [ebp - 4]
mov byte [eax], 0
jmp 0x5d0233
mov eax, edi
call fcn.005d065c
test eax, eax
jne 0x5cfe48
mov eax, edi
call fcn.005d06e4
test al, al
jne 0x5d0233
xor edx, edx
mov eax, edi
call fcn.005d06f0
jmp 0x5cff15
mov eax, edi
call fcn.005d06e4
test al, al
jne 0x5cff15
mov eax, dword [edi + 0x270]
cmp dword [eax + 0x1c], 0
je 0x5cff15
mov eax, dword [edi + 0x270]
mov eax, dword [eax + 0x1c]
call fcn.005d589c
test al, al
je 0x5cff15
mov ebx, dword [edi + 0x270]
mov eax, dword [ebx + 0x1c]
cmp byte [eax + 0x41], 0
jne 0x5d0233
mov eax, ebx
call fcn.004c00ec
mov edx, dword [eax]
call dword [edx + 0x124]
test al, al
je 0x5d0233
mov eax, dword [edi + 0x270]
mov eax, dword [eax + 0x1c]
call fcn.005d589c
test al, al
je 0x5cff03
mov ebx, dword [edi + 0x30]
test ebx, ebx
je 0x5cfef3
mov eax, ebx
call fcn.00403b40
mov edx, 0x5d0270
call fcn.005d67d4
test al, al
je 0x5cfef3
mov eax, dword [edi + 0x30]
call fcn.005d72c0
test al, al
je 0x5cfef3
mov eax, dword [edi + 0x270]
call fcn.004c00ec
call fcn.004c54e4
jmp 0x5cff03
mov eax, dword [edi + 0x270]
call fcn.004c00ec
call fcn.004c54e4
cmp byte [edi + 0x20e], 0
je 0x5cff15
xor edx, edx
mov eax, edi
call fcn.0047a1c0
mov eax, dword [edi + 0x240]
call fcn.005d2ddc
test al, al
je 0x5cff2f
mov eax, edi
call fcn.005ce938
test al, al
jne 0x5cff8d
cmp byte [edi + 0x284], 0
je 0x5cff8d
mov eax, dword [ebp - 4]
mov al, byte [eax]
cmp al, 0x20
jne 0x5cff8d
mov eax, edi
mov si, 0xffb2
call fcn.00403df4
push 0x11
call sub.user32.dll_GetKeyState
test ax, ax
jl 0x5cff8d
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005cf748
test al, al
je 0x5cff8d
cmp word [edi + 0x24a], 0
je 0x5d0233
lea edx, [ebp - 0x10]
mov eax, edi
call fcn.004fb12c
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.005d1f64
jmp 0x5d0233
mov eax, dword [ebp - 4]
mov al, byte [eax]
mov byte [ebp - 9], al
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005d2264
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp byte [eax], 0
jne 0x5cffbd
cmp byte [edi + 0x259], 0
je 0x5cffbd
mov dl, 1
mov eax, edi
call fcn.005d2f00
jmp 0x5cffe0
mov eax, edi
call fcn.004fb3e0
test al, al
je 0x5cffe0
mov eax, dword [ebp - 4]
cmp byte [eax], 0
jne 0x5cffe0
cmp byte [ebp - 9], 0
je 0x5cffe0
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 9]
mov byte [eax], dl
mov bl, 1
lea ecx, [ebp - 8]
xor edx, edx
mov eax, edi
mov esi, dword [eax]
call dword [esi + 0x144]
test al, al
jne 0x5d0110
mov eax, dword [edi + 0x270]
mov esi, dword [eax + 0x1c]
mov eax, esi
mov edx, dword [0x4b2cb8]
call fcn.00403d84
test al, al
jne 0x5d0026
mov eax, esi
mov edx, dword [0x4b341c]
call fcn.00403d84
test al, al
je 0x5d00d2
lea edx, [ebp - 0x14]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x108]
cmp dword [ebp - 0x14], 0
je 0x5d00d2
mov eax, dword [ebp - 4]
mov al, byte [eax]
add al, 0xe0
sub al, 0xe0
jae 0x5d0110
mov eax, dword [edi + 0x270]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x4b2cb8]
call fcn.00403d84
test al, al
je 0x5d0092
mov eax, dword [ebp - 4]
mov al, byte [eax]
sub al, 0x2b
je 0x5d0110
sub al, 2
je 0x5d0110
add al, 0xfd
sub al, 0xa
jb 0x5d0110
push 0
call sub.user32.dll_MessageBeep
mov eax, dword [ebp - 4]
mov byte [eax], 0
jmp 0x5d0110
push edi
mov esi, 0x5d0280
lea edi, [ebp - 0x34]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [0x6a48ac]
mov al, byte [eax]
and eax, 0xff
bts dword [ebp - 0x34], eax
mov eax, dword [ebp - 4]
mov al, byte [eax]
and eax, 0xff
bt dword [ebp - 0x34], eax
jb 0x5d0110
push 0
call sub.user32.dll_MessageBeep
mov eax, dword [ebp - 4]
mov byte [eax], 0
jmp 0x5d0110
mov eax, dword [ebp - 4]
mov al, byte [eax]
add al, 0xe0
sub al, 0xe0
jae 0x5d0110
mov eax, dword [edi + 0x270]
cmp dword [eax + 0x1c], 0
je 0x5d0110
mov edx, dword [ebp - 4]
mov dl, byte [edx]
mov eax, dword [edi + 0x270]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0xd8]
test al, al
jne 0x5d0110
push 0
call sub.user32.dll_MessageBeep
mov eax, dword [ebp - 4]
mov byte [eax], 0
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
cmp eax, 0x16
jg 0x5d0137
je 0x5d014f
sub eax, 8
je 0x5d014f
dec eax
je 0x5d0207
sub eax, 4
je 0x5d01c4
jmp 0x5d0229
sub eax, 0x18
je 0x5d014f
sub eax, 3
je 0x5d0180
add eax, 0xfffffffb
sub eax, 0xe0
jae 0x5d0229
mov eax, dword [edi + 0x270]
call fcn.00507714
mov dl, 1
mov eax, edi
call fcn.005d2f00
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0x118]
test al, al
jne 0x5d0229
mov eax, dword [ebp - 4]
mov byte [eax], 0
jmp 0x5d0229
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0xec]
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0x7c]
mov eax, dword [ebp - 4]
mov byte [eax], 0
mov esi, dword [edi + 0x30]
test esi, esi
je 0x5d0229
mov eax, esi
call fcn.00403b40
mov edx, 0x5d0270
call fcn.005d67d4
test al, al
je 0x5d0229
mov eax, dword [edi + 0x30]
mov edx, dword [eax]
call dword [edx + 0xc4]
jmp 0x5d0229
cmp byte [edi + 0x251], 0
je 0x5d01e3
mov eax, dword [edi + 0x270]
call fcn.00507714
mov dl, 1
mov eax, edi
call fcn.005d2f00
jmp 0x5d0229
mov esi, dword [edi + 0x30]
test esi, esi
je 0x5d0229
mov eax, esi
call fcn.00403b40
mov edx, 0x5d0270
call fcn.005d67d4
test al, al
je 0x5d0229
mov eax, dword [ebp - 4]
mov byte [eax], 0
jmp 0x5d0229
mov esi, dword [edi + 0x30]
test esi, esi
je 0x5d0229
mov eax, esi
call fcn.00403b40
mov edx, 0x5d0270
call fcn.005d67d4
test al, al
je 0x5d0229
mov eax, dword [ebp - 4]
mov byte [eax], 0
test bl, bl
je 0x5d0233
mov eax, dword [ebp - 4]
mov byte [eax], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5d0260
lea eax, [ebp - 0x14]
call fcn.00404aec
lea eax, [ebp - 0x10]
call fcn.00404aec
lea eax, [ebp - 8]
call fcn.00404aec
ret