Function at 0x40f5d0
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
sub esp, 0x200
push ebx
push esi
call fcn.0040fea0
mov eax, dword [esp + 0x20c]
xor esi, esi
push 0x4439d8
push str.SK2ID
push esi
mov dword [0x44bef0], esi
mov dword [0x4439d0], eax
mov dword [0x4439d4], esi
call fcn.0040fbf0
mov ebx, 1
add esp, 0xc
cmp eax, ebx
je 0x40f61e
pop esi
xor eax, eax
pop ebx
add esp, 0x200
ret
push 0x424aa0
push 0x433fb8
push 0x443ad8
call dword [sym.imp.KERNEL32.dll_lstrcpyA_1]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA_1]
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x40f64f
mov dword [0x42c168], ebx
jmp 0x40f65c
mov ecx, dword [esp + 0x210]
mov dword [0x42c168], ecx
mov edx, dword [0x42cb10]
push ebp
dec edx
push edi
neg edx
sbb edx, edx
mov ecx, 0x1000
and edx, 0xc0000000
xor eax, eax
mov edi, 0x436a38
mov dword [0x436a30], esi
rep stosd dword es:[edi], eax
mov ecx, 0x50
mov edi, 0x42c028
rep stosd dword es:[edi], eax
mov ecx, 0x1000
mov edi, 0x43aa50
rep stosd dword es:[edi], eax
mov dword [0x42caa0], esi
mov dword [0x42cb08], edx
mov dword [0x44bef4], esi
mov dword [0x44befc], esi
mov dword [0x44bf00], esi
mov dword [0x44bf10], esi
mov dword [0x44bef8], esi
mov dword [0x44bf08], esi
mov dword [0x44bf0c], esi
mov dword [0x44bf04], esi
mov dword [0x44bf14], esi
mov dword [0x44bf18], esi
mov dword [0x44bf1c], esi
mov dword [0x44bf24], esi
mov dword [0x44bf20], esi
mov dword [0x44bf28], esi
mov dword [0x44bf2c], esi
mov dword [0x44bf34], esi
mov dword [0x44bf38], esi
mov dword [0x44bf3c], esi
mov dword [0x433fac], 0x3dcccccd
mov dword [0x436a18], esi
mov eax, 0x43aa50
mov dword [eax], 0xffffffff
add eax, 0x40
cmp eax, 0x43ea50
jl 0x40f728
mov ecx, 0x50
xor eax, eax
mov edi, 0x44388c
mov dword [0x433f98], esi
rep stosd dword es:[edi], eax
mov dword [0x42caa8], eax
mov dword [0x44387c], esi
mov dword [0x42caac], eax
mov dword [0x433fa8], 0xffffffef
mov dword [0x42cab0], eax
mov dword [0x4341c0], esi
mov dword [0x42cab4], eax
mov dword [0x42a004], esi
mov dword [0x42cab8], eax
mov dword [0x433f90], esi
mov dword [0x429fe4], esi
mov dword [0x43aa48], esi
mov dword [0x42c288], 2
mov dword [0x429ffc], 0x21
call dword [sym.imp.KERNEL32.dll_GetTickCount_1]
mov dword [0x443888], eax
mov eax, 0xff000000
mov dword [0x436a1c], eax
mov dword [0x4365c8], eax
mov dword [0x4365e4], eax
mov dword [0x436604], eax
mov dword [0x4365dc], eax
mov dword [0x443ed4], eax
mov ecx, 0x5f0
xor eax, eax
mov edi, 0x434db4
mov ebp, 0xff
rep stosd dword es:[edi], eax
mov ecx, 0x2f8
mov edi, 0x440618
mov dword [0x443be0], esi
mov dword [0x436574], esi
mov dword [0x443bdc], esi
mov dword [0x42c010], ebx
mov dword [0x436a14], esi
mov dword [0x433f88], esi
mov dword [0x443bd8], esi
mov dword [0x440610], 0x280
mov dword [0x443ee4], 0x1e0
mov dword [0x429ff4], esi
mov dword [0x44377c], esi
mov dword [0x4365d8], ebp
mov dword [0x436608], ebp
mov dword [0x4365e0], ebp
mov dword [0x4365d0], ebp
mov dword [0x42cb14], esi
mov dword [0x433f94], esi
mov dword [0x433f84], esi
mov dword [0x433f80], esi
mov dword [0x433f8c], esi
mov dword [0x433f9c], esi
mov dword [0x429fd8], esi
mov dword [0x43aa40], esi
mov dword [0x436a28], esi
mov dword [0x43aa44], esi
mov dword [0x43aa3c], esi
mov dword [0x436a2c], 0
mov dword [0x429ff0], esi
mov dword [0x443ed0], 6
mov dword [0x429fe8], esi
mov dword [0x42cb18], esi
mov dword [0x4365fc], esi
mov dword [0x4341bc], 0x3f800000
mov dword [0x42caa4], 0x3e4ccccd
mov dword [0x42cafc], 0x3f800000
mov dword [0x42caf8], 0x3f800000
mov dword [0x42cac0], 0x3f800000
mov dword [0x42cb0c], 0x3f800000
mov dword [0x42cb04], 0x3f800000
mov dword [0x42cb00], 0x3f800000
mov dword [0x434da8], 0x3f800000
mov dword [0x434dac], 0xbf800000
mov dword [0x434db0], 0x3f800000
mov dword [0x4365d4], ebx
mov dword [0x429f50], esi
rep stosd dword es:[edi], eax
mov ecx, 0x2f8
mov edi, 0x4341c4
rep stosd dword es:[edi], eax
mov ecx, 0x2f8
mov edi, 0x43f630
rep stosd dword es:[edi], eax
mov ecx, 0x2f8
mov edi, 0x43ea50
rep stosd dword es:[edi], eax
xor edi, edi
mov eax, 1
xor edx, edx
mov ecx, eax
mov ebx, 0x10
test edi, eax
je 0x40f978
or edx, ecx
shl eax, 1
shl ecx, 2
dec ebx
jne 0x40f972
lea ecx, [edx + edx]
mov dword [edi*4 + 0x42b008], edx
mov dword [edi*4 + 0x42a008], ecx
inc edi
cmp edi, 0x400
jl 0x40f964
mov ecx, 0x960
xor eax, eax
mov edi, 0x4411fc
push 0x10
rep stosd dword es:[edi], eax
mov dword [0x43658c], esi
mov dword [0x443ee0], esi
call fcn.0040a720
push 0xffffffffffffffff
call fcn.0040a700
mov ecx, 0x300
xor eax, eax
mov edi, 0x429350
push str.MANAGE.DAT
rep stosd dword es:[edi], eax
push 0x424aa0
mov ecx, 0x2000
mov edi, 0x443ef0
push 0x433fb8
lea edx, [esp + 0x24]
push str._s_s_s
rep stosd dword es:[edi], eax
push edx
mov dword [0x433fa0], esi
mov dword [0x42c178], esi
mov dword [0x433fb4], esi
mov dword [0x436588], esi
mov dword [0x4365c0], esi
mov dword [0x443ee8], esi
mov dword [0x429fdc], esi
mov dword [0x443c00], esi
mov dword [0x443bf8], esi
mov dword [0x436a10], esi
call fcn.00412b72
lea eax, [esp + 0x2c]
push 0x424aa4
push eax
call fcn.00413c38
mov edi, eax
add esp, 0x24
cmp edi, esi
je 0x40fa76
push edi
push 1
push 0x810
push 0x42c290
call fcn.00413fc1
add esp, 0x10
cmp eax, 1
jne 0x40fa6d
mov dword [0x436a10], eax
push edi
call fcn.00413a03
add esp, 4
cmp dword [0x436a10], 1
jne 0x40fa9f
mov dword [0x4411f8], 0x42c290
mov dword [0x443ed8], 0x443bf4
mov dword [0x42934c], 0x433f78
jmp 0x40faab
mov dword [0x4411f8], esi
mov dword [0x443ed8], esi
mov dword [0x443bf4], esi
mov dword [0x433f78], esi
mov dword [0x42c28c], esi
mov dword [0x443edc], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount_1]
sub eax, 0x1f4
mov dword [0x443884], esi
mov dword [0x429fe0], eax
mov dword [0x443880], esi
mov dword [0x443ecc], esi
xor edi, edi
jmp 0x40faee
mov ebp, 0xff
mov edx, edi
and edx, ebp
mov ecx, edx
and ecx, 3
lea eax, [ecx*4]
or eax, ecx
shl eax, 2
or eax, ecx
shl eax, 2
or ecx, eax
mov eax, edx
and eax, 0x1c
and edx, 0xe0
mov esi, eax
shr esi, 3
lea ebx, [eax*8]
or esi, ebx
or eax, esi
mov esi, edx
shr esi, 3
or esi, edx
mov ebx, eax
shr esi, 3
or edx, esi
mov esi, ecx
and ebx, 0xfff0
shr esi, 4
or bh, 0xff
and esi, 0xf
shl ebx, 4
or esi, ebx
mov bl, dl
and ebx, 0xf0
or esi, ebx
mov ebx, edx
mov word [edi*2 + 0x440618], si
mov esi, eax
and esi, 0xfff8
and eax, 0xf8
mov ebp, esi
and ebx, 0xf8
or ebp, 0xff00
and edx, 0xfc
shl ebp, 5
shl esi, 5
shl eax, 5
shr ecx, 3
or ebp, ebx
or esi, edx
or eax, ebx
and ecx, 0x1f
shl ebp, 2
shl esi, 3
shl eax, 2
or ebp, ecx
or esi, ecx
or eax, ecx
mov word [edi*2 + 0x4341c4], bp
mov word [edi*2 + 0x43f630], si
mov word [edi*2 + 0x43ea50], ax
inc edi
cmp edi, 0x5f0
jl 0x40fae9
xor eax, eax
pop edi
pop ebp
mov dword [0x436a24], eax
mov byte [0x440210], al
pop esi
mov eax, 1
pop ebx
add esp, 0x200
ret