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

Disassembly:
mov eax, dword [0x10161380]
sub esp, 0x80
push ebx
push ebp
xor ebx, ebx
push esi
push edi
cmp byte [eax + 0x2c4], bl
je 0x10045d58
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x10418e28]
cmp eax, 0x32
jbe 0x10045d58
push ebx
push 0xffffffffffffffff
call fcn.1002c12f
push 0x3f2
push eax
call fcn.1002bd11
add esp, 0x10
call esi
mov dword [0x10418e28], eax
mov eax, dword [0x10161380]
cmp dword [eax + 0x111], ebx
jne 0x1004608a
call fcn.10029d80
test eax, eax
jne 0x1004608a
cmp dword [0x10419098], ebx
je 0x1004608a
cmp dword [0x1040b874], ebx
je 0x1004608a
cmp dword [0x1040b878], ebx
je 0x1004608a
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 9
call esi
test ax, ax
jns 0x10045db5
cmp dword [0x103ef0d8], ebx
jne 0x1004608a
mov eax, dword [0x1040b88c]
cmp dword [eax], ebx
jne 0x1004608a
push 0x79
call esi
test ax, ax
js 0x1004608a
cmp dword [0x104190ac], ebx
je 0x1004608a
push dword [0x104190b4]
call fcn.1002a024
pop ecx
test eax, eax
jne 0x1004608a
mov eax, dword [0x10161380]
push dword [eax + 0x2c7]
call fcn.1004130f
push ebx
push 0xffffffffffffffff
mov esi, eax
call fcn.100299e1
add esp, 0xc
test esi, esi
je 0x1004608a
cmp eax, esi
je 0x1004608a
mov ecx, dword [0x104190ac]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov ebp, eax
test ebp, ebp
je 0x1004608a
mov ecx, dword [0x101273c8]
mov edx, dword [ecx]
call dword [edx + 0x3c]
mov esi, eax
mov ecx, esi
mov edi, dword [esi]
call dword [edi + 0x28]
movzx ecx, al
push ecx
mov ecx, esi
call dword [edi + 0x2c]
xor ebx, ebx
inc ebx
cmp ebx, 1
jl 0x10045e62
cmp ebx, 8
jle 0x10045e8c
cmp ebx, 0x15
jl 0x10045e6c
cmp ebx, 0x1a
jle 0x10045e8c
cmp ebx, 0x1f
jl 0x10045e76
cmp ebx, 0x24
jle 0x10045e8c
cmp ebx, 0x29
jl 0x10045e80
cmp ebx, 0x2c
jle 0x10045e8c
lea eax, [ebx - 0x33]
cmp eax, 3
ja 0x10046080
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
and dword [esp + 0x18], 0
and dword [esp + 0x1c], 0
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
and dword [esp + 0x28], 0
and dword [esp + 0x2c], 0
push ecx
push 8
mov ecx, ebp
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x24]
push ecx
push 0x2c
mov ecx, ebp
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x18]
lea eax, [esp + 0x30]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x20]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x28]
push eax
movss dword [esp + 0x68], xmm0
lea eax, [esp + 0x58]
movss xmm0, dword [esp + 0x30]
push eax
movss dword [esp + 0x70], xmm0
call fcn.10044875
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.10044875
movss xmm0, dword [0x1008745c]
add esp, 0x10
comiss xmm0, dword [esp + 0x38]
ja 0x1004608a
xorps xmm0, xmm0
comiss xmm0, dword [esp + 0x74]
ja 0x1004608a
movss xmm0, dword [esp + 0x34]
lea edx, [esp + 0x48]
subss xmm0, dword [esp + 0x70]
mov ecx, dword [0x104190b4]
and dword [esp + 0x48], 0
and dword [esp + 0x4c], 0
and dword [esp + 0x50], 0
cvtps2pd xmm2, xmm0
and dword [esp + 0x3c], 0
and dword [esp + 0x40], 0
and dword [esp + 0x44], 0
mov eax, dword [ecx]
push edx
movss xmm0, dword [esp + 0x34]
subss xmm0, dword [esp + 0x70]
mulsd xmm2, xmm2
push 1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm0
cvtpd2ps xmm1, xmm0
cvtpd2ps xmm0, xmm2
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
mulss xmm0, dword [0x1009b4cc]
movss dword [esp + 0x18], xmm0
mulss xmm0, dword [0x10087458]
movss dword [esp + 0x1c], xmm0
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x3c]
push ecx
push 1
mov ecx, ebp
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [esp + 0x34]
mov ecx, dword [0x10413618]
push 0
push 0xff0000ff
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp + 8], xmm0
mulss xmm0, dword [0x10087458]
movss dword [esp + 4], xmm1
movss xmm1, dword [esp + 0x48]
subss xmm1, xmm0
movss dword [esp], xmm1
call fcn.100425de
push 0xff0000ff
sub esp, 0xc
lea esi, [esp + 0x4c]
mov edi, esp
lea eax, [esp + 0x88]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.100292e6
add esp, 0x10
lea esi, [esp + 0x4c]
push eax
sub esp, 0xc
lea eax, [esp + 0x98]
mov edi, esp
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.100292e6
mov ecx, dword [0x10413618]
add esp, 0x10
push eax
call fcn.10042b66
inc ebx
cmp ebx, 0x36
jle 0x10045e58
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret