Function at 0x406b20
Capabilities:
Check for time delay via queryperformancecounter
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x45a080]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
push esi
push edi
mov edi, ecx
mov ecx, 0x4690e3
call fcn.00447953
push 0
push 0
push 0x410
push dword [edi + 0x154c]
call dword [sym.imp.USER32.dll_PostMessageA]
mov ebx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [edi + 0x1640]
push eax
mov dword [edi + 0x1ee4], 0
mov dword [edi + 0x169c], 0x7d0
mov byte [edi + 0x15fe], 1
call ebx
lea eax, [edi + 0x1660]
mov dword [edi + 0x1638], 0
xorps xmm0, xmm0
push eax
movsd qword [edi + 0x1650], xmm0
call ebx
xorps xmm0, xmm0
mov dword [edi + 0x1658], 0
movsd qword [edi + 0x1670], xmm0
cmp byte [edi + 0x15f5], 0
je 0x406e1b
cmp byte [edi + 0x160c], 0
je 0x406bdc
push 0x1b
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x406e2f
lea esi, [edi + 0x1628]
push esi
call ebx
mov ecx, dword [esi]
sub ecx, dword [edi + 0x1620]
mov edx, dword [esi + 4]
sbb edx, dword [edi + 0x1624]
call fcn.00447a00
mulsd xmm0, qword [0x461ce0]
cvttsd2si eax, xmm0
cmp eax, 0x2bf20
jl 0x406c1c
mov ecx, edi
call fcn.00405310
mov ecx, edi
call fcn.00405260
mov ecx, edi
call fcn.00406e70
test eax, eax
jg 0x406e1d
cmp byte [edi + 0x160d], 0
jne 0x406c82
cmp byte [edi + 0x1d14], 0
jne 0x406e0e
cmp eax, 0xffffffff
je 0x406e0e
cmp byte [edi + 0x15fa], 0
je 0x406c63
lea ecx, [edi + 0x1554]
call fcn.0040d970
jmp 0x406e0e
push 0
push dword [edi + 0x1604]
mov byte [edi + 0x1609], 1
push 0x406810
call dword [sym.imp.KERNEL32.dll_QueueUserAPC]
jmp 0x406e0e
lea esi, [edi + 0x1648]
push esi
call ebx
mov ecx, dword [esi]
sub ecx, dword [edi + 0x1640]
mov edx, dword [esi + 4]
sbb edx, dword [edi + 0x1644]
call fcn.00447a00
mulsd xmm0, qword [0x461ce0]
cvttsd2si eax, xmm0
cmp eax, 0xbb8
jg 0x406e46
cmp dword [edi + 0x1ee4], 0
jle 0x406e0e
lea esi, [edi + 0x1668]
push esi
call ebx
mov ecx, dword [esi]
sub ecx, dword [edi + 0x1660]
mov edx, dword [esi + 4]
sbb edx, dword [edi + 0x1664]
call fcn.00447a00
mulsd xmm0, qword [0x461ce0]
cvttsd2si eax, xmm0
cmp eax, 0xfa
jl 0x406e0e
lea eax, [edi + 0x1660]
push eax
call ebx
mov dword [edi + 0x1658], 0
xorps xmm0, xmm0
movsd qword [edi + 0x1670], xmm0
add dword [edi + 0x1ee4], 0xffffff06
mov eax, dword [edi + 0x1554]
mov esi, dword [edi + 0x1ee4]
push dword [eax + 0x1550]
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
mov eax, 0x10624dd3
imul esi
lea eax, [esp + 0x10]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push 0x453304
push 3
push eax
call fcn.004013f0
add esp, 0x10
push dword [edi + 0x15d0]
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xc8c8c8
push ebx
mov esi, eax
call dword [sym.imp.GDI32.dll_SetTextColor]
push 6
push ebx
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 1
push ebx
call dword [sym.imp.GDI32.dll_SetBkMode]
lea eax, [esp + 0x14]
push eax
mov eax, dword [edi + 0x1554]
push dword [eax + 0x1550]
call dword [sym.imp.USER32.dll_GetClientRect]
push 3
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.USER32.dll_FillRect]
lea ecx, [esp + 0x10]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x406dc3
sub ecx, edx
lea eax, [esp + 0x10]
push ecx
push eax
mov eax, dword [esp + 0x28]
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [esp + 0x28]
cdq
sub eax, edx
sar eax, 1
push eax
push ebx
call dword [sym.imp.GDI32.dll_TextOutA]
push esi
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [edi + 0x1554]
push ebx
push dword [eax + 0x1550]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ebx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp byte [edi + 0x15f5], 0
jne 0x406bc2
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0042195a
mov esp, ebp
pop ebp
ret
mov eax, 0x6f
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0042195a
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x24]
mov eax, 0x64
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042195a
mov esp, ebp
pop ebp
ret