Function at 0x401060
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
mov eax, dword [0x482230]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x482e88], 0
mov ecx, dword [0x482198]
mov eax, dword [0x48219c]
mov dword [ebp - 0x14], 0x40
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
jne 0x40170a
push esi
lea eax, [ebp - 0x104]
mov ecx, 0x485d68
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.00415240
push 0
lea eax, [ebp - 0xf4]
mov ecx, 0x486b80
push eax
call fcn.0040d310
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x12
mov dword [0x481018], 0xfffe7961
mov dword [0x481008], 0xfffe7961
mov dword [0x48101c], 0xfffe7961
call esi
test ax, ax
jns 0x401113
mov ecx, 1
jmp 0x401124
push 0x5d
call esi
xor ecx, ecx
mov edx, 2
test ax, ax
cmovs ecx, edx
push edi
push 9
mov dword [0x482c3c], ecx
call esi
xor ecx, ecx
test ax, ax
lea eax, [ebp - 0xf8]
sets cl
push eax
lea eax, [ebp - 0xfc]
mov dword [0x481020], ecx
push eax
mov ecx, 0x485d90
call fcn.0040d0e0
cmp dword [0x481020], 1
mov edi, dword [0x48219c]
mov esi, dword [ebp - 0xf8]
jne 0x40117a
lea eax, [edi - 0x10]
cmp esi, eax
jge 0x40117a
lea esi, [edi - 8]
mov dword [ebp - 0xf8], esi
mov ecx, dword [ebp - 0xfc]
push ebx
cmp ecx, 0x40
jge 0x4012ec
test ecx, ecx
js 0x401707
mov ebx, dword [sym.imp.USER32.dll_RedrawWindow]
test esi, esi
js 0x401204
lea eax, [edi - 0xa0]
cmp esi, eax
jge 0x401204
mov eax, 0x2aaaaaab
imul esi
mov al, 0x5f
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub al, cl
mov cl, al
sub cl, byte [ebp - 0x104]
movzx eax, cl
push ecx
mov ecx, 0x486b80
mov dword [0x48101c], eax
call fcn.0040ea50
mov ecx, 0x486b80
call fcn.0040bb60
push 0x201
push 0
lea eax, [ebp - 0x24]
push eax
push dword [0x485d5c]
call ebx
mov esi, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xfc]
mov edi, dword [0x48219c]
test ecx, ecx
js 0x401707
lea edx, [edi - 0x10]
cmp esi, edx
jl 0x40123c
cmp esi, edi
jge 0x40123c
push 0xffffffffffffffff
call fcn.00413c90
add esp, 4
mov ecx, 0x486b80
call fcn.0040bb60
mov ecx, dword [0x48219c]
mov dword [ebp - 8], ecx
lea eax, [ecx - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x4012ba
lea eax, [edi - 0xa0]
cmp esi, eax
jl 0x40127b
lea eax, [edi - 0x58]
cmp esi, eax
jge 0x40127b
mov eax, 1
mov ecx, 0x486b80
sub eax, dword [0x484874]
mov dword [0x484874], eax
call fcn.0040bb60
mov ecx, dword [0x48219c]
lea eax, [ecx - 0xa0]
mov dword [ebp - 0x10], eax
lea eax, [ecx - 0x58]
jmp 0x4012b7
lea eax, [edi - 0x58]
cmp esi, eax
jl 0x401707
cmp esi, edx
jge 0x401707
mov eax, 1
mov ecx, 0x486b80
sub eax, dword [0x484878]
mov dword [0x484878], eax
call fcn.0040bb60
mov ecx, dword [0x48219c]
lea eax, [ecx - 0x58]
mov dword [ebp - 0x10], eax
lea eax, [ecx - 0x10]
mov dword [ebp - 8], eax
push 0x201
push 0
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push dword [0x485d5c]
mov dword [ebp - 0xc], 0x40
call ebx
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041aab7
mov esp, ebp
pop ebp
ret
test esi, esi
js 0x40140c
lea eax, [edi - 0xa0]
cmp esi, eax
jge 0x40140c
lea eax, [ecx - 0x40]
mov ecx, 0x5f
cdq
idiv dword [0x4852a8]
add eax, dword [ebp - 0x100]
mov dword [ebp - 0xfc], eax
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
sub ecx, dword [ebp - 0x104]
mov dword [ebp - 0xf8], ecx
js 0x401707
call fcn.00414d50
cmp dword [0x482c38], 0
mov ecx, dword [ebp - 0xfc]
je 0x401369
mov eax, dword [0x481018]
cmp byte [0x2488660], 8
cmovl eax, ecx
mov dword [0x481018], eax
mov esi, dword [0x4852a8]
cmp esi, 0x10
je 0x4013a8
mov eax, 0x10
cdq
idiv esi
push edx
push eax
push dword [ebp - 0xf8]
push ecx
mov ecx, 0x486b80
call fcn.0040dcd0
mov ecx, dword [ebp - 0xfc]
mov dword [0x482c40], eax
test eax, eax
jle 0x4013b2
sub ecx, eax
mov dword [ebp - 0xfc], ecx
jmp 0x4013b2
mov dword [0x482c40], 0
push dword [0x482c38]
push dword [ebp - 0xf8]
push ecx
mov ecx, 0x486b80
call fcn.0040dfa0
test eax, eax
jne 0x4013d2
call fcn.00414970
mov ecx, 0x486b80
call fcn.0040bb60
push 0x201
push 0
lea eax, [ebp - 0x14]
push eax
push dword [0x485d5c]
call dword [sym.imp.USER32.dll_RedrawWindow]
mov dword [0x481010], 0xfffe7961
mov dword [0x481014], 0xfffe7961
jmp 0x4016ef
lea eax, [edi - 0x9c]
cmp esi, eax
jl 0x4014bf
lea eax, [edi - 0x5a]
cmp esi, eax
jge 0x4014bf
lea eax, [ecx - 0x40]
sub edi, esi
cdq
sub edi, 0x5c
idiv dword [0x4852a8]
mov ecx, dword [ebp - 0x100]
add ecx, eax
mov eax, 0x66666667
imul edi
mov dword [ebp - 0xfc], ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xf8], eax
cmp ecx, dword [section..data]
jne 0x401468
cmp eax, dword [0x481004]
je 0x401479
call fcn.00414d50
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xfc]
push eax
push ecx
mov ecx, 0x486b80
call fcn.0040e4a0
mov ecx, 0x486b80
call fcn.0040bb60
push 0x201
push 0
lea eax, [ebp - 0x14]
push eax
push dword [0x485d5c]
call dword [sym.imp.USER32.dll_RedrawWindow]
mov dword [0x481010], 0xfffe7961
mov dword [0x481014], 0xfffe7961
jmp 0x4016ef
lea eax, [edi - 0x53]
cmp esi, eax
jl 0x401579
lea eax, [edi - 0x14]
cmp esi, eax
jge 0x401579
lea eax, [ecx - 0x40]
sub edi, esi
cdq
idiv dword [0x4852a8]
lea edi, [edi*4 - 0x50]
add eax, dword [ebp - 0x100]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], edi
cmp eax, dword [section..data]
jne 0x40150a
cmp edi, dword [0x481004]
je 0x40151b
call fcn.00414d50
mov edi, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xfc]
push edi
push eax
mov ecx, 0x486b80
call fcn.0040e920
mov ecx, 0x486b80
call fcn.0040bb60
push 0x201
push 0
lea eax, [ebp - 0x14]
push eax
push dword [0x485d5c]
call dword [sym.imp.USER32.dll_RedrawWindow]
mov ecx, dword [ebp - 0xfc]
mov esi, dword [ebp - 0xf8]
mov dword [0x481008], ecx
mov dword [0x48100c], esi
mov dword [0x481010], 0xfffe7961
mov dword [0x481014], 0xfffe7961
jmp 0x4016fb
lea eax, [edi - 0xd]
cmp esi, eax
jl 0x4016fb
lea eax, [edi - 2]
cmp esi, eax
jg 0x4016fb
mov ebx, dword [ebp + 8]
test bl, 4
je 0x40163e
cmp dword [0x4810dc], 0
jl 0x40163e
lea eax, [ecx - 0x40]
cdq
idiv dword [0x4852a8]
add eax, dword [ebp - 0x100]
cmp eax, dword [0x482c50]
jle 0x4015ff
cmp dword [0x482c6c], 0
jne 0x4015ec
mov ecx, dword [0x482c3c]
cmp ecx, 1
je 0x4015ec
cmp ecx, 2
jne 0x4015e2
push eax
call fcn.00414540
add esp, 4
mov dword [0x482c54], eax
jmp 0x4016c9
push eax
call fcn.004144f0
add esp, 4
mov dword [0x482c54], eax
jmp 0x4016c9
cmp dword [0x482c6c], 0
jne 0x40162b
mov ecx, dword [0x482c3c]
cmp ecx, 1
je 0x40162b
cmp ecx, 2
jne 0x401634
push eax
call fcn.004145f0
add esp, 4
mov dword [0x482c50], eax
jmp 0x4016c9
push eax
call fcn.004145a0
add esp, 4
mov dword [0x482c50], eax
jmp 0x4016c9
lea eax, [ecx - 0x40]
mov dword [0x481010], ecx
cdq
idiv dword [0x4852a8]
add eax, dword [ebp - 0x100]
cmp dword [0x482c6c], 0
mov dword [0x481014], eax
jne 0x401691
mov ecx, dword [0x482c3c]
cmp ecx, 1
je 0x401691
cmp ecx, 2
jne 0x40168a
push eax
call fcn.004145f0
push dword [0x481014]
mov dword [0x482c50], eax
call fcn.00414540
jmp 0x4016a7
mov dword [0x482c50], eax
jmp 0x4016aa
push eax
call fcn.004145a0
push dword [0x481014]
mov dword [0x482c50], eax
call fcn.004144f0
add esp, 8
mov dword [0x482c54], eax
movsx eax, byte [0x2488660]
mov dword [0x4810dc], eax
movzx eax, bl
shr eax, 3
and eax, 1
mov dword [0x482c64], eax
mov ecx, 0x486b80
call fcn.0040bb60
push 0x201
push 0
lea eax, [ebp - 0x14]
push eax
push dword [0x485d5c]
call dword [sym.imp.USER32.dll_RedrawWindow]
call fcn.00405530
mov esi, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xfc]
mov dword [section..data], ecx
mov dword [0x481004], esi
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041aab7
mov esp, ebp
pop ebp
ret