Function at 0x40c646
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push edi
mov edx, 0xe
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x40c64d
call fcn.0048d6d0
mov edx, dword [esp + 0x48]
lea ecx, [esp]
call fcn.0042e000
push 1
call fcn.0040e3ec
call fcn.0041a887
push 0
push 0
push 0xb
push 0x4d
call fcn.004735ef
push eax
call sub.USER32.dll_SendMessageW
push 0x4e
call fcn.0047374c
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x4c]
and ebx, ebx
jle 0x40c6b9
push 0x4d
call fcn.00473591
mov ebx, dword [esp + 0x50]
and ebx, ebx
jle 0x40c6d6
mov eax, 0x5dc9d4
push eax
push 0xffffffff
push 0x4d
call fcn.004737e6
mov dword [esp + 8], 0
call fcn.0047a474
push edx
push eax
pop dword [esp + 0x10]
pop dword [esp + 0x10]
push dword [esp + 0x10]
push dword [esp + 0x10]
pop dword [esp + 0x18]
pop dword [esp + 0x18]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
mov edx, str.SELECT_key__Description__ActivCount__Comment__Blocked__ActivVal__EditionID_FROM_keys
push edx
call fcn.0048d570
mov edx, dword [esp + 8]
push edx
call fcn.0048d570
call fcn.0048d660
push dword [esp + 0x4c]
call fcn.0042e5e2
add dword [esp + 4], edx
call fcn.0047f11d
call fcn.0042e610
mov ebx, eax
and ebx, ebx
je 0x40cb29
push dword [esp + 0x44]
call fcn.0047f12f
and eax, eax
je 0x40cb12
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [esp + 0x50]
call fcn.0047f157
lea eax, [esp + 0x20]
push eax
call fcn.0048d5d0
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 1
push dword [esp + 0x50]
call fcn.0047f157
lea eax, [esp + 0x24]
push eax
call fcn.0048d5d0
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 2
push dword [esp + 0x50]
call fcn.0047f157
lea eax, [esp + 0x28]
push eax
call fcn.0048d5d0
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 3
push dword [esp + 0x50]
call fcn.0047f157
lea eax, [esp + 0x2c]
push eax
call fcn.0048d5d0
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 4
push dword [esp + 0x50]
call fcn.0047f157
lea eax, [esp + 0x30]
push eax
call fcn.0048d5d0
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 5
push dword [esp + 0x54]
call fcn.0047f157
call fcn.0042e5e2
add dword [esp], edx
call fcn.0048afd0
call fcn.0042e610
mov dword [esp + 0x30], eax
mov eax, str.key
push eax
push dword [esp + 4]
call fcn.0048ad20
mov ebx, eax
and ebx, ebx
jle 0x40c91d
push edx
call fcn.0048d530
pop edx
push eax
mov edx, dword [esp + 0x24]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5cf28c
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
mov eax, dword [esp + 0x40]
cdq
push edx
push eax
call fcn.0048ad90
pop eax
mov edx, 0x5cf87e
push edx
call fcn.0048d570
call fcn.0048d660
push 0xffffffff
push 0x4d
call fcn.0042e5e2
add dword [esp + 8], edx
call fcn.004737e6
call fcn.0042e610
push 0
push 0
call fcn.0047afac
mov ebx, eax
add ebx, 0xffffff92
push ebx
push 1
push 0
push 0x4d
call fcn.004734f7
mov dword [0x8f9c08], 0
jmp 0x40caa4
mov dword [0x8f9c08], 1
push 0
push dword [0x8f99f4]
push 1
push 0
push 0x4d
call fcn.004734f7
push dword [esp + 0x1c]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
jne 0x40caa4
push dword [esp + 0x24]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
jne 0x40ca53
push dword [esp + 0x24]
mov edx, str.Key_Blocked_
pop ecx
call fcn.0042e590
je 0x40c991
mov edx, str.Key_Blocked_
lea ecx, [esp + 0x34]
call fcn.0042e008
jmp 0x40c9eb
mov eax, 0x5dd34c
push eax
push dword [esp + 0x28]
call fcn.0048ad20
mov ebx, eax
and ebx, ebx
jle 0x40c9c4
mov edx, dword [esp + 0x24]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
lea eax, [esp + 0x38]
push eax
call fcn.0048d5d0
jmp 0x40c9eb
push edx
call fcn.0048d530
pop edx
push eax
mov edx, 0x5d0658
push edx
call fcn.0048d570
mov edx, dword [esp + 0x28]
push edx
call fcn.0048d570
lea eax, [esp + 0x38]
push eax
call fcn.0048d5d0
push edx
call fcn.0048d530
pop edx
push eax
mov edx, dword [esp + 0x20]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5cf3a2
push edx
call fcn.0048d570
mov edx, dword [esp + 0x3c]
push edx
call fcn.0048d570
mov edx, 0x5cf3a2
push edx
call fcn.0048d570
mov edx, dword [esp + 0x30]
push edx
call fcn.0048d570
call fcn.0048d660
push 0xffffffff
push 0x4d
call fcn.0042e5e2
add dword [esp + 8], edx
call fcn.004737e6
call fcn.0042e610
jmp 0x40caa4
push edx
call fcn.0048d530
pop edx
push eax
mov edx, dword [esp + 0x20]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5d8f54
push edx
call fcn.0048d570
mov edx, dword [esp + 0x30]
push edx
call fcn.0048d570
call fcn.0048d660
push 0xffffffff
push 0x4d
call fcn.0042e5e2
add dword [esp + 8], edx
call fcn.004737e6
call fcn.0042e610
call fcn.0047a474
push edx
push eax
lea eax, [esp + 0x14]
mov edx, dword [eax]
sub dword [esp], edx
mov edx, dword [eax + 4]
sbb dword [esp + 4], edx
pop ebx
pop edi
cmp edi, 0
jg 0x40cacd
jl 0x40cac9
cmp ebx, 0x5a
ja 0x40cacd
xor eax, eax
jmp 0x40cad2
mov eax, 1
or eax, eax
je 0x40caea
call fcn.0047a474
push edx
push eax
pop dword [esp + 0x10]
pop dword [esp + 0x10]
call fcn.0041a887
push 0x1b
call sub.USER32.dll_GetKeyState
mov ebx, eax
cmp ebx, 1
jle 0x40cb0d
call fcn.0047af05
mov ebx, eax
and ebx, ebx
jne 0x40cb0d
call fcn.0041a887
jmp 0x40cb12
jmp 0x40c748
push dword [esp + 4]
push 0x4e
call fcn.004733ab
push dword [esp + 0x44]
call fcn.0047f184
mov ebx, dword [0x8f9c08]
and ebx, ebx
jle 0x40cb6d
mov eax, dword [0x8f9b40]
push eax
mov eax, dword [0x8f9aa8]
push eax
push dword [0x8f9abc]
push 0x4d
call fcn.004735ef
push eax
call fcn.0042206a
push dword [0x8f9b40]
push dword [0x8f9abc]
push 0x4d
call fcn.00416a88
jmp 0x40cba5
mov eax, dword [0x8f9d34]
push eax
mov eax, dword [0x8f9d0c]
push eax
push dword [0x8f9c10]
push 0x4d
call fcn.004735ef
push eax
call fcn.0042206a
push dword [0x8f9d34]
push dword [0x8f9c10]
push 0x4d
call fcn.00416a88
push 0
push 1
push 0xb
push 0x4d
call fcn.004735ef
push eax
call sub.USER32.dll_SendMessageW
call fcn.0041a887
push 0
call fcn.0040e3ec
xor eax, eax
push dword [esp + 0x24]
call fcn.0048d760
push dword [esp + 0x34]
call fcn.0048d760
push dword [esp]
call fcn.0048d760
push dword [esp + 0x20]
call fcn.0048d760
push dword [esp + 0x28]
call fcn.0048d760
push dword [esp + 0x1c]
call fcn.0048d760
push dword [esp + 0x2c]
call fcn.0048d760
add esp, 0x38
pop edi
pop ebx
ret 0x10