Function at 0x409dd0
Capabilities:
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x4620e0
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x47b748]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [0x484718]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.004083b0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0040ca80
xor ebx, ebx
cmp eax, ebx
mov dword [edi + 0xdc], eax
jne 0x409e80
mov eax, dword [edi + 0x88]
mov esi, dword [sym.imp.USER32.dll_KillTimer]
push eax
mov eax, dword [edi + 0x20]
push eax
mov dword [edi + 0x78], ebx
call esi
mov eax, dword [edi + 0x8c]
mov ecx, dword [edi + 0x20]
push eax
push ecx
call esi
mov eax, edi
call fcn.0040bd00
mov eax, dword [edi + 0x84]
mov edx, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push ebx
push 0xc8
push eax
push edx
call esi
mov eax, dword [edi + 0x20]
push ebx
push 0x50
push 0x50
push eax
call esi
mov ecx, dword [edi + 0x20]
push ebx
push 0x78
push 0x78
push ecx
call esi
cmp dword [edi + 0xe10], 0x400000
jae 0x409eb0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x46d41c
call fcn.004087a0
mov edx, dword [edi + 0xdc]
push edx
push edi
call fcn.0040d360
mov dword [edi + 0xe10], eax
mov eax, dword [edi + 0xd28]
cmp eax, dword [edi + 0xe10]
lea ebp, [edi + 0xd28]
jbe 0x409ecd
add eax, 5
mov dword [edi + 0xd30], eax
mov eax, dword [edi + 0xd8]
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessWorkingSetSize]
mov ecx, dword [str.abcbefghikm__pqrstuvwxyzno___]
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push ecx
call esi
test ax, ax
jns 0x409f59
push 2
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x18
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push str.83_B9_____00_7E__6A
mov esi, 1
mov byte [ecx + 4], bl
call fcn.004019d0
mov ecx, esi
mov edx, edi
call fcn.0040d5d0
cmp eax, dword [edi + 0xe10]
mov dword [edi + 0xd24], eax
jbe 0x40a5ec
mov ebx, 0x4840e8
mov esi, 0x48412c
call fcn.0040d680
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov edx, dword [0x47d430]
push edx
call esi
test ax, ax
jns 0x40a017
push 1
push 0x484128
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xffffffffffffffff
push ebx
lea eax, [edi + 0x480]
mov esi, 0xf
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00401810
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x68], ebx
mov dword [esp + 0x58], esp
push 0xffffffffffffffff
push ebx
lea edx, [edi + 0x9c0]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00401810
lea eax, [edi + 0xda0]
push eax
sub esp, 0x1c
mov ecx, esp
mov byte [esp + 0x88], 1
mov dword [esp + 0x7c], esp
push 0xffffffffffffffff
push ebx
lea edx, [edi + 0x100]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00401810
push 6
mov edx, ebp
mov ecx, edi
mov dword [esp + 0x8c], 0xffffffff
call fcn.0040c060
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [0x47d434]
push eax
call esi
test ax, ax
jns 0x40a0da
push 1
push 0x484124
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push 0xffffffffffffffff
push ebx
lea edx, [edi + 0x49c]
mov esi, 0xf
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00401810
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x68], 2
mov dword [esp + 0x58], esp
push 0xffffffffffffffff
push ebx
lea eax, [edi + 0x9dc]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00401810
lea ecx, [edi + 0xda4]
push ecx
sub esp, 0x1c
mov ecx, esp
mov byte [esp + 0x88], 3
mov dword [esp + 0x74], esp
push 0xffffffffffffffff
push ebx
lea edx, [edi + 0x11c]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00401810
lea edx, [edi + 0xd2c]
mov ecx, edi
mov dword [esp + 0x88], 0xffffffff
call fcn.0040c220
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [0x47d438]
push eax
call esi
test ax, ax
jns 0x40a176
push 1
push 0x484120
sub esp, 0x1c
lea edx, [edi + 0x4b8]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.004078f0
sub esp, 0x1c
mov dword [esp + 0x68], 4
lea eax, [edi + 0x9f8]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call fcn.004078f0
lea ecx, [edi + 0xda8]
push ecx
sub esp, 0x1c
mov byte [esp + 0x88], 5
lea edx, [edi + 0x138]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
call fcn.004078f0
push 0xb
lea edx, [edi + 0xd30]
mov ecx, edi
mov dword [esp + 0x8c], 0xffffffff
call fcn.0040c060
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [0x47d43c]
push eax
call esi
test ax, ax
jns 0x40a210
push 1
push 0x48411c
sub esp, 0x1c
lea edx, [edi + 0x4d4]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.004078f0
sub esp, 0x1c
mov dword [esp + 0x68], 6
lea eax, [edi + 0xa14]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call fcn.004078f0
lea ecx, [edi + 0xdac]
push ecx
sub esp, 0x1c
mov byte [esp + 0x88], 7
lea edx, [edi + 0x154]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
call fcn.004078f0
lea edx, [edi + 0xd34]
mov ecx, edi
mov dword [esp + 0x88], 0xffffffff
call fcn.0040c220
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [0x47d440]
push eax
call esi
test ax, ax
jns 0x40a2aa
push 1
push 0x484118
sub esp, 0x1c
lea edx, [edi + 0x4f0]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.004078f0
sub esp, 0x1c
mov dword [esp + 0x68], 8
lea eax, [edi + 0xa30]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call fcn.004078f0
lea ecx, [edi + 0xdb0]
push ecx
sub esp, 0x1c
mov byte [esp + 0x88], 9
lea edx, [edi + 0x170]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
call fcn.004078f0
lea edx, [edi + 0xd3c]
mov ecx, edi
mov dword [esp + 0x88], 0xffffffff
call fcn.0040c220
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [0x47d444]
push eax
call esi
test ax, ax
jns 0x40a344
push 1
push 0x484114
sub esp, 0x1c
lea edx, [edi + 0x50c]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.004078f0
sub esp, 0x1c
mov dword [esp + 0x68], 0xa
lea eax, [edi + 0xa4c]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call fcn.004078f0
lea ecx, [edi + 0xdb4]
push ecx
sub esp, 0x1c
mov byte [esp + 0x88], 0xb
lea edx, [edi + 0x18c]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
call fcn.004078f0
lea edx, [edi + 0xd40]
mov ecx, edi
mov dword [esp + 0x88], 0xffffffff
call fcn.0040c220
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [0x47d448]
push eax
call esi
test ax, ax
jns 0x40a483
cmp dword [0x484110], ebx
jne 0x40a3ea
push 1
push 0x484110
sub esp, 0x1c
lea edx, [edi + 0x528]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.004078f0
sub esp, 0x1c
mov dword [esp + 0x68], 0xc
lea eax, [edi + 0xa68]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call fcn.004078f0
lea ecx, [edi + 0xdb8]
push ecx
sub esp, 0x1c
mov byte [esp + 0x88], 0xd
lea edx, [edi + 0x1a8]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
call fcn.004078f0
lea edx, [edi + 0xd44]
mov ecx, edi
mov dword [esp + 0x88], 0xffffffff
call fcn.0040c220
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push ebx
push 0x484110
sub esp, 0x1c
lea eax, [edi + 0x528]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
mov dword [0x484110], ebx
call fcn.004078f0
sub esp, 0x1c
mov dword [esp + 0x68], 0xe
lea edx, [edi + 0xc44]
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
call fcn.004078f0
lea eax, [edi + 0xdb8]
push eax
sub esp, 0x1c
mov byte [esp + 0x88], 0xf
lea edx, [edi + 0x1a8]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
call fcn.004078f0
lea edx, [edi + 0xd44]
mov ecx, edi
mov dword [esp + 0x88], 0xffffffff
call fcn.0040c220
mov dword [0x484110], ebx
call fcn.0040cd20
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [0x47d44c]
push eax
call esi
test ax, ax
jns 0x40a5c2
cmp dword [0x48410c], ebx
jne 0x40a529
push 1
push 0x48410c
sub esp, 0x1c
lea edx, [edi + 0x544]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.004078f0
sub esp, 0x1c
mov dword [esp + 0x68], 0x10
lea eax, [edi + 0xa84]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call fcn.004078f0
lea ecx, [edi + 0xdbc]
push ecx
sub esp, 0x1c
mov byte [esp + 0x88], 0x11
lea edx, [edi + 0x1c4]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
call fcn.004078f0
lea edx, [edi + 0xd48]
mov ecx, edi
mov dword [esp + 0x88], 0xffffffff
call fcn.0040c220
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push ebx
push 0x48410c
sub esp, 0x1c
lea eax, [edi + 0x544]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
mov dword [0x48410c], ebx
call fcn.004078f0
sub esp, 0x1c
mov dword [esp + 0x68], 0x12
lea edx, [edi + 0xc60]
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
call fcn.004078f0
lea eax, [edi + 0xdbc]
push eax
sub esp, 0x1c
mov byte [esp + 0x88], 0x13
lea edx, [edi + 0x1c4]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
call fcn.004078f0
lea edx, [edi + 0xd48]
mov ecx, edi
mov dword [esp + 0x88], 0xffffffff
call fcn.0040c220
mov dword [0x48410c], ebx
call fcn.0040cd20
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [0x47d460]
push eax
call esi
test ax, ax
jns 0x40a5d6
mov ecx, edi
call fcn.0040a660
push edi
mov ecx, 1
call fcn.004070e0
push edi
mov ecx, 2
call fcn.004070e0
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret