Function at 0x100491b6
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [0x10163938]
sub esp, 0x60
push ebx
push ebp
push esi
xor ebp, ebp
cmp byte [eax + 0xcf22], 0
push edi
je 0x100491fd
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x1043c230]
cmp eax, 0x32
jbe 0x100491fd
push ebp
push 0xffffffffffffffff
call fcn.1003051c
push 0x3f2
push eax
call fcn.100300fe
add esp, 0x10
call esi
mov dword [0x1043c230], eax
mov eax, dword [0x10163938]
cmp dword [eax + 0xce73], ebp
jne 0x10049780
call fcn.1002e16d
test eax, eax
jne 0x10049780
cmp dword [0x1043c4b0], ebp
je 0x10049780
cmp dword [0x1042ec70], ebp
je 0x10049780
cmp dword [0x1042ec74], ebp
je 0x10049780
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 9
call esi
test ax, ax
jns 0x1004925a
cmp dword [0x104124ac], ebp
jne 0x10049780
mov eax, dword [0x1042ec88]
cmp dword [eax], ebp
jne 0x10049780
push 0x79
call esi
test ax, ax
js 0x10049780
cmp dword [0x1043c4c4], ebp
je 0x10049780
push dword [0x1043c4cc]
call fcn.1002e411
pop ecx
test eax, eax
jne 0x10049780
mov eax, dword [0x10163938]
push dword [eax + 0xcf25]
call fcn.10044b9b
push ebp
push 0xffffffffffffffff
mov esi, eax
call fcn.1002ddce
add esp, 0xc
test esi, esi
je 0x10049780
cmp eax, esi
je 0x10049780
mov ecx, dword [0x1043c4c4]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov ebx, eax
test ebx, ebx
je 0x10049780
mov ecx, dword [0x10129980]
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 esi, esi
mov edi, 0xff0080ff
inc esi
cmp esi, 8
jbe 0x10049331
cmp esi, 0x15
jb 0x10049311
cmp esi, 0x1a
jbe 0x10049331
cmp esi, 0x1f
jb 0x1004931b
cmp esi, 0x24
jbe 0x10049331
cmp esi, 0x29
jb 0x10049325
cmp esi, 0x2c
jbe 0x10049331
lea eax, [esi - 0x33]
cmp eax, 3
ja 0x1004947d
mov eax, dword [ebx]
lea ecx, [esp + 0x10]
and dword [esp + 0x10], ebp
and dword [esp + 0x14], ebp
and dword [esp + 0x18], ebp
and dword [esp + 0x1c], ebp
and dword [esp + 0x20], ebp
and dword [esp + 0x24], ebp
push ecx
push 8
mov ecx, ebx
call dword [eax + 0x74]
mov eax, dword [ebx]
lea ecx, [esp + 0x1c]
push ecx
push 0x2c
mov ecx, ebx
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x10]
lea eax, [esp + 0x58]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x14]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x20]
push eax
movss dword [esp + 0x54], xmm0
lea eax, [esp + 0x44]
movss xmm0, dword [esp + 0x28]
push eax
movss dword [esp + 0x5c], xmm0
call fcn.10004311
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.10004311
movss xmm0, dword [0x1008b6e8]
add esp, 0x10
comiss xmm0, dword [esp + 0x60]
ja 0x1004947d
comiss xmm0, dword [esp + 0x6c]
ja 0x1004947d
movss xmm3, dword [esp + 0x5c]
movss xmm4, dword [esp + 0x58]
movaps xmm0, xmm3
subss xmm0, dword [esp + 0x68]
mov ecx, dword [0x10436a18]
push ebp
push edi
sub esp, 0x10
cvtps2pd xmm2, xmm0
movaps xmm0, xmm4
subss xmm0, dword [esp + 0x7c]
mulsd xmm2, xmm2
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm0
cvtpd2ps xmm1, xmm0
cvtpd2ps xmm0, xmm2
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
mulss xmm0, dword [0x1009daf8]
movaps xmm1, xmm0
movss dword [esp + 0xc], xmm0
mulss xmm1, dword [0x1008b6e0]
mulss xmm0, dword [0x1008db80]
movss dword [esp + 8], xmm1
mulss xmm1, dword [0x1008b6e0]
subss xmm3, xmm0
subss xmm4, xmm1
movss dword [esp + 4], xmm3
movss dword [esp], xmm4
call fcn.10045f35
inc esi
cmp esi, 0x36
jle 0x10049302
mov eax, dword [0x10163938]
and dword [esp + 0x34], ebp
and dword [esp + 0x38], ebp
and dword [esp + 0x3c], ebp
and dword [esp + 0x28], ebp
and dword [esp + 0x2c], ebp
and dword [esp + 0x30], ebp
cmp byte [eax + 0x9b38], 0
je 0x10049760
mov ecx, dword [0x1043c4cc]
lea edx, [esp + 0x34]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [ebx]
lea ecx, [esp + 0x28]
push ecx
push 1
mov ecx, ebx
call dword [eax + 0x74]
push edi
sub esp, 0xc
lea esi, [esp + 0x38]
mov edi, esp
lea eax, [esp + 0x74]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002d6d3
add esp, 0x10
lea esi, [esp + 0x38]
push eax
sub esp, 0xc
lea eax, [esp + 0x6c]
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.1002d6d3
mov ecx, dword [0x10436a18]
add esp, 0x10
push eax
call fcn.100464bd
mov ecx, dword [0x10163938]
mov edi, 0xffff0000
cmp byte [ecx + 0x15a5], 0
je 0x10049686
mov eax, dword [0x1042ec74]
mov eax, dword [eax + 0x1e]
cmp byte [eax + 0x18d], 0x22
mov eax, dword [0x104368d4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
je 0x1004958e
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008b710]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1008b6e4]
movss dword [ecx + 0x89], xmm0
mov eax, dword [0x104368d8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008b710]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1008b6dc]
jmp 0x100495d3
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008b710]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1008b6e0]
movss dword [ecx + 0x89], xmm0
mov eax, dword [0x104368d8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008b710]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1008b6e0]
mov eax, dword [0x10163938]
movss dword [eax + 0x8d], xmm0
mov edx, dword [0x10163938]
mov eax, dword [edx + 0x1598]
mov dword [edx + 0x91], eax
mov esi, dword [0x10163938]
mov eax, dword [esi + 0x159c]
mov dword [esi + 0x95], eax
mov ecx, dword [0x10163938]
cmp byte [ecx + 0x15a4], 1
jne 0x10049686
movss xmm0, dword [edx + 0x1598]
lea eax, [esp + 0x58]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esi + 0x159c]
push eax
movss dword [esp + 0x6c], xmm0
lea eax, [esp + 0x68]
movss xmm0, dword [ecx + 0x15a0]
push eax
movss dword [esp + 0x74], xmm0
call fcn.10004311
cvttss2si eax, dword [esp + 0x64]
pop ecx
pop ecx
mov ecx, dword [0x10163938]
push edi
push eax
cvttss2si eax, dword [esp + 0x60]
push eax
cvttss2si eax, dword [ecx + 0x8d]
push eax
cvttss2si eax, dword [ecx + 0x89]
mov ecx, dword [0x10436a18]
push eax
call fcn.10046152
mov ecx, dword [0x10163938]
cmp byte [ecx + 0x1597], 0
je 0x10049760
mov eax, dword [0x104368d8]
mov esi, ebp
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008b710]
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
mov dword [ecx + 0x9d], eax
mov eax, dword [0x10163938]
cmp byte [esi + eax + 0x2567], 1
jne 0x10049753
push esi
call fcn.10044207
pop ecx
test al, al
je 0x10049753
lea eax, [esp + 0x64]
push eax
push esi
call fcn.10044ce3
movss xmm0, dword [esp + 0x6c]
lea eax, [esp + 0x54]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x70]
push eax
movss dword [esp + 0x68], xmm0
lea eax, [esp + 0x64]
movss xmm0, dword [esp + 0x78]
push eax
movss dword [esp + 0x70], xmm0
call fcn.10004311
movss xmm0, dword [0x1008b6e8]
add esp, 0x10
comiss xmm0, dword [esp + 0x54]
ja 0x10049753
cvttss2si eax, dword [esp + 0x50]
push edi
mov ecx, dword [0x10436a18]
push eax
cvttss2si eax, dword [esp + 0x54]
push eax
mov eax, dword [0x10163938]
push ebp
cvttss2si eax, dword [eax + 0x89]
push eax
call fcn.10046152
inc esi
cmp esi, 0x3ec
jl 0x100496bc
mov ecx, dword [0x10436a18]
push ebp
push 0x1c
sub esp, 0x10
and dword [esp + 0xc], ebp
and dword [esp + 8], ebp
and dword [esp + 4], ebp
and dword [esp], ebp
call fcn.10045f35
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret