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

Disassembly:
sub esp, 0xe0
mov eax, dword [esp + 0xe4]
push ebx
push ebp
push esi
add eax, 0xfffffff8
or esi, 0xffffffff
cmp eax, 0xf7
push edi
mov dword [esp + 0x10], ecx
mov byte [0x77ed30], 0
ja case.0x5d3485.77
xor ecx, ecx
mov cl, byte [eax + 0x5d3c0c]
jmp dword [ecx*4 + 0x5d3af4]
mov esi, 0x4c2c
jmp case.0x5d3485.77
mov esi, 0x4c2d
jmp case.0x5d3485.77
mov esi, 0x4c2f
jmp case.0x5d3485.77
mov esi, 0x4c36
jmp case.0x5d3485.77
mov esi, 0x4c37
jmp case.0x5d3485.77
mov esi, 0x4c38
jmp case.0x5d3485.77
mov esi, 0x4c39
jmp case.0x5d3485.77
mov esi, 0x4c3a
jmp case.0x5d3485.77
mov esi, 0x4c3b
jmp case.0x5d3485.77
mov esi, 0x4c3c
jmp case.0x5d3485.77
mov esi, 0x4c3d
jmp case.0x5d3485.77
mov esi, 0x4c3e
jmp case.0x5d3485.77
mov esi, 0x4c43
jmp case.0x5d3485.77
mov esi, 0x4c44
jmp case.0x5d3485.77
mov esi, 0x4c49
jmp case.0x5d3485.77
mov esi, 0x4c4a
jmp case.0x5d3485.77
mov esi, 0x4c4b
jmp case.0x5d3485.77
mov esi, 0x4c4c
jmp case.0x5d3485.77
mov esi, 0x4c4d
jmp case.0x5d3485.77
mov esi, 0x4c4e
jmp case.0x5d3485.77
mov esi, 0x4c4f
jmp case.0x5d3485.77
mov esi, 0x4c50
jmp case.0x5d3485.77
mov esi, 0x4c51
jmp case.0x5d3485.77
mov esi, 0x4c52
jmp case.0x5d3485.77
mov esi, 0x4c53
jmp case.0x5d3485.77
mov esi, 0x4c54
jmp case.0x5d3485.77
mov esi, 0x4c55
jmp case.0x5d3485.77
mov esi, 0x4c56
jmp case.0x5d3485.77
mov esi, 0x4c92
jmp case.0x5d3485.77
mov esi, 0x4c57
jmp case.0x5d3485.77
mov esi, 0x4c58
jmp case.0x5d3485.77
mov esi, 0x4c59
jmp case.0x5d3485.77
mov esi, 0x4c5a
jmp case.0x5d3485.77
mov esi, 0x4c5b
jmp case.0x5d3485.77
mov esi, 0x4c5c
jmp case.0x5d3485.77
mov esi, 0x4c5d
jmp case.0x5d3485.77
mov esi, 0x4c5e
jmp case.0x5d3485.77
mov esi, 0x4c5f
jmp case.0x5d3485.77
mov esi, 0x4c60
jmp case.0x5d3485.77
mov esi, 0x4c61
jmp case.0x5d3485.77
mov esi, 0x4c63
jmp case.0x5d3485.77
mov esi, 0x4c64
jmp case.0x5d3485.77
mov esi, 0x4c65
jmp case.0x5d3485.77
mov esi, 0x4c66
jmp case.0x5d3485.77
mov esi, 0x4c67
jmp case.0x5d3485.77
mov esi, 0x4c68
jmp case.0x5d3485.77
mov esi, 0x4c69
jmp case.0x5d3485.77
mov esi, 0x4c6a
jmp case.0x5d3485.77
mov esi, 0x4c6b
jmp case.0x5d3485.77
mov esi, 0x4c6c
jmp case.0x5d3485.77
mov esi, 0x4c6d
jmp case.0x5d3485.77
mov esi, 0x4c6e
jmp case.0x5d3485.77
mov esi, 0x4c6f
jmp case.0x5d3485.77
mov esi, 0x4c70
jmp case.0x5d3485.77
mov esi, 0x4c91
jmp case.0x5d3485.77
mov esi, 0x4c90
jmp case.0x5d3485.77
mov esi, 0x4d09
jmp case.0x5d3485.77
mov esi, 0x4cf7
jmp case.0x5d3485.77
mov esi, 0x4cf8
jmp case.0x5d3485.77
mov esi, 0x4cf9
jmp case.0x5d3485.77
mov esi, 0x4cfa
jmp case.0x5d3485.77
mov esi, 0x4cfb
jmp case.0x5d3485.77
mov esi, 0x4cfc
jmp case.0x5d3485.77
mov esi, 0x4c93
jmp case.0x5d3485.77
mov esi, 0x4cfe
jmp case.0x5d3485.77
mov esi, 0x4cff
jmp case.0x5d3485.77
mov esi, 0x4d00
jmp case.0x5d3485.77
mov esi, 0x4d07
jmp case.0x5d3485.77
mov esi, 0x4d08
mov eax, dword [0x67be58]
mov ebx, dword [sym.imp.USER32.dll_GetKeyNameTextA]
mov edi, dword [sym.imp.USER32.dll_MapVirtualKeyA]
mov byte [esp + 0x44], 0
test eax, eax
mov byte [esp + 0x2c], 0
mov byte [esp + 0x14], 0
jne 0x5d37d2
lea edx, [esp + 0x5c]
push 0x14
push edx
push 0
push 0x11
call edi
shl eax, 0x10
push eax
call ebx
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
test eax, eax
je 0x5d3764
mov al, byte [esp + 0x5c]
test al, al
je 0x5d3764
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x44]
push eax
push 0x67c868
push ecx
call ebp
add esp, 0xc
lea edx, [esp + 0x5c]
push 0x14
push edx
push 0
push 0x12
call edi
shl eax, 0x10
push eax
call ebx
test eax, eax
je 0x5d3797
mov al, byte [esp + 0x5c]
test al, al
je 0x5d3797
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x2c]
push eax
push 0x67c868
push ecx
call ebp
add esp, 0xc
lea edx, [esp + 0x5c]
push 0x14
push edx
push 0
push 0x10
call edi
shl eax, 0x10
push eax
call ebx
test eax, eax
je 0x5d37ca
mov al, byte [esp + 0x5c]
test al, al
je 0x5d37ca
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x14]
push eax
push 0x67c868
push ecx
call ebp
add esp, 0xc
mov al, byte [esp + 0x44]
test al, al
jne 0x5d37e7
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x44]
push 0x14
push eax
mov edx, dword [ecx]
push 0x4cf4
call dword [edx + 0x28]
mov al, byte [esp + 0x2c]
test al, al
jne 0x5d3804
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x2c]
push 0x14
push eax
mov edx, dword [ecx]
push 0x4cf5
call dword [edx + 0x28]
mov al, byte [esp + 0x14]
test al, al
jne 0x5d3821
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x14]
push 0x14
push eax
mov edx, dword [ecx]
push 0x4cf6
call dword [edx + 0x28]
mov eax, dword [0x67be58]
test eax, eax
jne 0x5d39e0
mov edx, dword [esp + 0xf4]
test esi, esi
jl 0x5d3a3f
cmp edx, 0xfb
jl 0x5d3851
cmp edx, 0xff
jle 0x5d39e7
cmp edx, 0x70
jl 0x5d3862
cmp edx, 0x87
jle 0x5d39e7
xor ebp, ebp
push ebp
push edx
call edi
test eax, eax
je 0x5d397e
mov ecx, dword [esp + 0xf4]
add ecx, 0xffffffdf
cmp ecx, 0x4e
ja case.0x5d3887.34
xor edx, edx
mov dl, byte [ecx + 0x5d3d0c]
jmp dword [edx*4 + 0x5d3d04]
mov ebp, 0x1000000
mov edi, eax
lea eax, [esp + 0x70]
shl edi, 0x10
mov ecx, edi
push 0x80
or ecx, ebp
push eax
push ecx
call ebx
test eax, eax
je 0x5d38d2
mov eax, dword [esp + 0x100]
lea edx, [esp + 0x14]
test eax, eax
jne 0x5d38c1
mov edx, 0x6819d0
mov eax, dword [esp + 0xfc]
lea ecx, [esp + 0x2c]
test eax, eax
jne 0x5d390b
jmp 0x5d3906
lea edx, [esp + 0x70]
push 0x80
push edx
push edi
call ebx
test eax, eax
mov eax, dword [esp + 0x100]
je 0x5d3931
test eax, eax
lea edx, [esp + 0x14]
jne 0x5d38f7
mov edx, 0x6819d0
mov eax, dword [esp + 0xfc]
lea ecx, [esp + 0x2c]
test eax, eax
jne 0x5d390b
mov ecx, 0x6819d0
mov eax, dword [esp + 0xf8]
test eax, eax
lea eax, [esp + 0x44]
jne 0x5d391f
mov eax, 0x6819d0
lea esi, [esp + 0x70]
push esi
push edx
push ecx
push eax
push str._s_s_s_s
jmp 0x5d3ad4
test eax, eax
lea ebx, [esp + 0x14]
jne 0x5d393e
mov ebx, 0x6819d0
mov eax, dword [esp + 0xfc]
lea ebp, [esp + 0x2c]
test eax, eax
jne 0x5d3952
mov ebp, 0x6819d0
mov eax, dword [esp + 0xf8]
lea edi, [esp + 0x44]
test eax, eax
jne 0x5d3966
mov edi, 0x6819d0
mov ecx, dword [esp + 0x10]
push esi
mov eax, dword [ecx]
call dword [eax + 0x24]
push eax
push ebx
push ebp
push edi
push str._s_s_s_s
jmp 0x5d3ad4
cmp dword [esp + 0xf4], 0x6f
jne 0x5d3ae1
mov eax, dword [esp + 0x100]
lea ebx, [esp + 0x14]
test eax, eax
jne 0x5d39a0
mov ebx, 0x6819d0
mov eax, dword [esp + 0xfc]
lea ebp, [esp + 0x2c]
test eax, eax
jne 0x5d39b4
mov ebp, 0x6819d0
mov eax, dword [esp + 0xf8]
lea edi, [esp + 0x44]
test eax, eax
jne 0x5d39c8
mov edi, 0x6819d0
mov ecx, dword [esp + 0x10]
push esi
mov edx, dword [ecx]
call dword [edx + 0x24]
push eax
push ebx
push ebp
push edi
push str._s_s_s_s
jmp 0x5d3ad4
mov edx, dword [esp + 0xf4]
test esi, esi
jl 0x5d3a3f
mov eax, dword [esp + 0x100]
lea ebx, [esp + 0x14]
test eax, eax
jne 0x5d39ff
mov ebx, 0x6819d0
mov eax, dword [esp + 0xfc]
lea ebp, [esp + 0x2c]
test eax, eax
jne 0x5d3a13
mov ebp, 0x6819d0
mov eax, dword [esp + 0xf8]
lea edi, [esp + 0x44]
test eax, eax
jne 0x5d3a27
mov edi, 0x6819d0
mov ecx, dword [esp + 0x10]
push esi
mov eax, dword [ecx]
call dword [eax + 0x24]
push eax
push ebx
push ebp
push edi
push str._s_s_s_s
jmp 0x5d3ad4
cmp edx, 0x30
jl 0x5d3a82
cmp edx, 0x39
jg 0x5d3a82
mov eax, dword [esp + 0x100]
lea esi, [esp + 0x14]
test eax, eax
jne 0x5d3a5d
mov esi, 0x6819d0
mov eax, dword [esp + 0xfc]
lea ecx, [esp + 0x2c]
test eax, eax
jne 0x5d3a71
mov ecx, 0x6819d0
mov eax, dword [esp + 0xf8]
test eax, eax
lea eax, [esp + 0x44]
jne 0x5d3ac8
jmp 0x5d3ac3
cmp edx, 0x41
jl 0x5d3ae1
cmp edx, 0x5a
jg 0x5d3ae1
mov eax, dword [esp + 0x100]
lea esi, [esp + 0x14]
test eax, eax
jne 0x5d3aa0
mov esi, 0x6819d0
mov eax, dword [esp + 0xfc]
lea ecx, [esp + 0x2c]
test eax, eax
jne 0x5d3ab4
mov ecx, 0x6819d0
mov eax, dword [esp + 0xf8]
test eax, eax
lea eax, [esp + 0x44]
jne 0x5d3ac8
mov eax, 0x6819d0
movsx edx, dl
push edx
push esi
push ecx
push eax
push str._s_s_s_c
push 0x77ed30
call fcn.00613634
add esp, 0x18
pop edi
pop esi
pop ebp
mov eax, 0x77ed30
pop ebx
add esp, 0xe0
ret 0x10