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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
mov eax, dword [0x45a040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
xor ecx, ecx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x110], ecx
lea ecx, [ebp - 0x114]
mov eax, dword [edi + 0xb8]
push ecx
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x10c], eax
push ecx
push 2
push eax
call fcn.00416120
mov esi, dword [ebp + 0x14]
test eax, eax
je 0x40cee9
mov ecx, dword [ebp + 0x10]
cmp ecx, 0x286
je 0x40d118
test dword [edi + 0x10], 0x100
je 0x40ceca
lea eax, [ecx - 0x100]
cmp eax, 9
ja 0x40ceca
push dword [ebp + 0x18]
push esi
push ecx
push dword [edi + 0x108]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x110], 1
push dword [ebp + 0x18]
push esi
push ecx
push dword [ebp - 0x108]
push dword [ebp - 0x10c]
push ebx
call fcn.00405f77
test eax, eax
jne 0x40d10b
mov ecx, dword [ebp + 0x10]
cmp ecx, 0x100
jne 0x40d097
cmp esi, 0x1b
jne 0x40cf2c
test dword [edi + 0x88], 0x8000
je 0x40d024
cmp dword [ebp - 0x110], 0
jne 0x40d024
push 0
push 0
push 0x10
push ebx
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x40d024
cmp esi, 0x20
jne 0x40cf83
call fcn.00409f8b
test eax, eax
jne 0x40d024
cmp dword [ebp - 0x108], eax
je 0x40d024
push 0x200000
push 0x10
push dword [ebp - 0x108]
call fcn.004153be
test eax, eax
jne 0x40d024
push eax
push eax
push 0x201
push dword [ebp - 0x108]
push dword [ebp - 0x10c]
push edi
push ebx
call fcn.0040c91d
jmp 0x40d024
cmp esi, 0xd
jne 0x40cfec
call fcn.00409f8b
test eax, eax
jne 0x40d024
cmp dword [ebp - 0x108], eax
je 0x40d024
push 0x200000
push 0x10
push dword [ebp - 0x108]
call fcn.004153be
test eax, eax
jne 0x40d024
push dword [ebp + 0x18]
push esi
push 0xfffffffffffffffc
push eax
push dword [ebp - 0x10c]
push dword [ebp - 0x108]
push ebx
call fcn.00406a9d
test eax, eax
jne 0x40d024
push eax
push eax
push 0xfffffffffffffffd
push dword [ebp - 0x108]
push dword [ebp - 0x10c]
push ebx
call fcn.00405f77
jmp 0x40d024
cmp esi, 9
jne 0x40d000
push dword [ebp - 0x10c]
push edi
push ebx
call fcn.0040ac8d
jmp 0x40d024
cmp esi, 0x26
je 0x40d014
cmp esi, 0x28
je 0x40d014
cmp esi, 0x25
je 0x40d014
cmp esi, 0x27
jne 0x40d024
test dword [edi + 0x88], 0x40000000
jne 0x40d10b
test dword [edi + 0x10], 0x1000
je 0x40d145
push 2
push esi
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
test eax, eax
je 0x40d145
push 0x100
xor edi, edi
lea eax, [ebp - 0x104]
push edi
push eax
call fcn.00432460
add esp, 0xc
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
push edi
push 2
lea eax, [ebp - 0x110]
mov dword [ebp - 0x110], edi
push eax
lea eax, [ebp - 0x104]
push eax
push dword [ebp + 0x18]
push esi
call dword [sym.imp.USER32.dll_ToUnicode]
push dword [ebp + 0x18]
movzx eax, word [ebp - 0x110]
push eax
jmp 0x40d12e
cmp ecx, 0x101
jne 0x40d0e1
cmp esi, 0x20
jne 0x40d145
cmp dword [ebp - 0x108], 0
je 0x40d145
push 0x200000
push 0x10
push dword [ebp - 0x108]
call fcn.004153be
test eax, eax
jne 0x40d145
xor esi, esi
push esi
push esi
push 0x202
push ebx
push edi
call fcn.0040d35b
push esi
push esi
push 0xfffffffffffffffd
jmp 0x40d133
cmp ecx, 0x301
jne 0x40d110
cmp dword [edi + 0x88], 0
jge 0x40d145
mov ecx, dword [ebp - 0x108]
test ecx, ecx
je 0x40d145
mov ecx, dword [ecx + 0x134]
cmp dword [ecx + 0x1c], 0x63313881
jne 0x40d145
xor eax, eax
inc eax
jmp 0x40d147
cmp ecx, 0x286
jne 0x40d145
test dword [edi + 0x10], 0x1000
je 0x40d145
cmp dword [ebp - 0x108], 0
je 0x40d145
push dword [ebp + 0x18]
push esi
push 0x102
push dword [ebp - 0x108]
push dword [ebp - 0x10c]
push ebx
call fcn.00405f77
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00430697
leave
ret 0x14