Function at 0x406241
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
xor ebx, ebx
push ebx
push ebx
mov esi, ecx
push 0x157
push dword [esi + 0x44]
call edi
test eax, eax
je 0x40626a
push ebx
push ebx
push 0x14f
push dword [esi + 0x44]
call edi
mov eax, dword [esi + 0x9a0]
test al, 4
je 0x40627d
mov ecx, esi
call fcn.004041b4
jmp 0x406288
test al, 3
je 0x406288
mov ecx, esi
call fcn.00405ce1
mov eax, dword [esp + 0x10]
sub eax, 0x21
je 0x4063e0
dec eax
je 0x4063a1
sub eax, 3
je 0x406375
dec eax
je 0x40633b
dec eax
je 0x406313
dec eax
jne 0x40647b
mov eax, dword [esi + 0x9a8]
mov ecx, dword [esi + 0x64]
cmp eax, ecx
jae 0x40638c
cmp dword [esi + 0x9a4], 1
je 0x406301
inc eax
cmp eax, ecx
je 0x40638c
push eax
mov ecx, esi
call fcn.00402e3d
lea ecx, [eax + 2]
cmp dword [esi + 0x9a4], ecx
jb 0x4062fb
inc eax
push 0xffffffffffffffff
mov dword [esi + 0x9a4], eax
call dword [sym.imp.USER32.dll_MessageBeep]
mov eax, dword [esi + 0x9a8]
mov dword [esi + 0x9ac], eax
inc eax
mov dword [esi + 0x9a8], eax
jmp 0x406434
mov eax, dword [esi + 0x9a8]
cmp eax, dword [esi + 0x64]
jae 0x40638c
push eax
mov ecx, esi
call fcn.00402e3d
lea ecx, [esi + 0x9a4]
mov edx, dword [ecx]
inc eax
cmp edx, eax
jae 0x40638c
inc edx
mov dword [ecx], edx
jmp 0x406434
mov eax, dword [esi + 0x9a8]
cmp eax, ebx
je 0x40638c
dec eax
push eax
mov ecx, esi
call fcn.00402e3d
lea ecx, [esi + 0x9a4]
lea edx, [eax + 2]
cmp dword [ecx], edx
jb 0x406366
inc eax
push 0xffffffffffffffff
mov dword [ecx], eax
call dword [sym.imp.USER32.dll_MessageBeep]
mov eax, dword [esi + 0x9a8]
mov dword [esi + 0x9ac], eax
dec eax
jmp 0x406308
mov eax, dword [esi + 0x9a8]
cmp eax, dword [esi + 0x64]
jae 0x40638c
lea eax, [esi + 0x9a4]
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x406399
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x406434
dec ecx
mov dword [eax], ecx
jmp 0x406434
mov edx, dword [esi + 0x64]
cmp edx, ebx
je 0x406434
mov eax, dword [esi + 0x9a8]
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x9ac], eax
add eax, ecx
cmp eax, edx
mov dword [esi + 0x9a8], eax
jb 0x4063ce
dec edx
mov dword [esi + 0x9a8], edx
add dword [esi + 0x7c], ecx
mov ecx, dword [esi + 0x7c]
mov eax, dword [esi + 0x80]
cmp ecx, eax
jle 0x406417
jmp 0x406414
cmp dword [esi + 0x64], ebx
je 0x406434
mov eax, dword [esi + 0x9a8]
mov ecx, dword [esi + 0x60]
cmp eax, ecx
mov dword [esi + 0x9ac], eax
ja 0x406403
mov dword [esi + 0x9a8], ebx
mov dword [esi + 0x7c], ebx
jmp 0x406417
sub eax, ecx
mov dword [esi + 0x9a8], eax
mov eax, dword [esi + 0x7c]
cmp eax, ecx
jbe 0x4063fe
sub eax, ecx
mov dword [esi + 0x7c], eax
push dword [esi + 0x9a8]
mov ecx, esi
call fcn.00402e3d
lea edx, [eax + 2]
lea ecx, [esi + 0x9a4]
cmp dword [ecx], edx
jb 0x406434
inc eax
mov dword [ecx], eax
mov eax, dword [esi + 0x9a4]
sub eax, ebx
je 0x406453
dec eax
mov ecx, esi
je 0x40644a
call fcn.004051d9
jmp 0x40646b
push 1
call fcn.0040505c
jmp 0x40646b
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test al, al
mov ecx, esi
jns 0x406465
push 8
jmp 0x406466
push ebx
call fcn.00404eec
push 0x101
push ebx
push ebx
push dword [esi + 0x2c]
call dword [sym.imp.USER32.dll_RedrawWindow]
pop edi
pop esi
pop ebx
ret 4