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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x1010a040]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x102be39d], 0
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
je 0x1001f8f1
cmp dword [0x1088567c], 1
je 0x1001f8f1
call esi
sub eax, dword [0x10885674]
cmp eax, 0x3e8
jbe 0x1001f8f1
mov eax, dword [0x108855d0]
test eax, eax
jle 0x1001f877
dec eax
mov dword [0x108855d0], eax
jmp 0x1001f8ea
mov byte [0x102be39d], 0
mov ecx, 0x1088564c
mov eax, 0x108855d4
nop dword [eax + eax]
mov dword [eax], 0xffffffff
lea ecx, [ecx + 4]
mov dword [eax + 4], 0xffffffff
mov dword [eax + 8], 0xffffffff
add eax, 0xc
mov dword [ecx - 4], 0
cmp eax, 0x1088564c
jl 0x1001f890
mov dword [0x10885588], 0
mov dword [0x10885590], 0x43c80000
mov dword [0x10885594], 0x428c0000
mov dword [0x108855a8], 0
mov dword [0x108855ac], 0
call esi
mov dword [0x10885674], eax
cmp dword [0x10885588], 0
je 0x10020363
mov eax, dword [0x1088558c]
test eax, eax
jle 0x1001f925
add eax, 0xffffffff
mov dword [0x1088558c], eax
jne 0x1001f925
mov dword [0x10885588], 0
mov dword [0xe8cb3c], 0
cmp dword [0x108855a0], 0
xorps xmm1, xmm1
je 0x1001f9be
mov eax, dword [0x879340c]
mov ecx, dword [0x1010ac74]
cmp eax, ecx
je 0x1001f965
sub eax, dword [0x10885598]
test eax, eax
jle 0x1001f965
add ecx, 0xffffff42
cmp eax, ecx
jle 0x1001f95e
movd xmm1, ecx
jmp 0x1001f962
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [0x10885590], xmm1
mov eax, dword [0x8793410]
cmp eax, 0x1e0
je 0x1001f9ac
sub eax, dword [0x1088559c]
cmp eax, 4
jle 0x1001f9ac
cmp eax, 0x7d
jle 0x1001f99b
movss xmm0, dword [0x1010201c]
movss dword [0x10885594], xmm0
jmp 0x1001f9ce
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x10885594], xmm0
jmp 0x1001f9ce
movss xmm0, dword [0x10101db0]
movss dword [0x10885594], xmm0
jmp 0x1001f9ce
movss xmm0, dword [0x10885594]
movss xmm1, dword [0x10885590]
subss xmm0, dword [0x101018e8]
addss xmm1, dword [0x101020b0]
push 0x14
push 0x14
mov ebx, 0x790b10
cvttss2si eax, xmm0
push eax
cvttss2si eax, xmm1
push eax
call ebx
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
add esp, 0x10
cmp al, 1
jne 0x1001fa13
push 1
call edi
test ax, ax
jns 0x1001fa13
mov dword [0x1088558c], 5
movss xmm0, dword [0x10885594]
subss xmm0, dword [0x10101a28]
push 0x14
push 0x96
cvttss2si eax, xmm0
movss xmm0, dword [0x10885590]
addss xmm0, dword [0x10101e64]
push eax
cvttss2si eax, xmm0
push eax
call ebx
add esp, 0x10
cmp al, 1
jne 0x1001faa3
push 1
call edi
test ax, ax
jns 0x1001faa3
cmp dword [0x108855a0], 0
jne 0x1001fa97
movd xmm0, dword [0x879340c]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x10885590]
cvttss2si eax, xmm0
mov dword [0x10885598], eax
movd xmm0, dword [0x8793410]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x10885594]
cvttss2si eax, xmm0
mov dword [0x1088559c], eax
mov dword [0x108855a0], 1
jmp 0x1001faad
mov dword [0x108855a0], 0
push 1
mov eax, 0x635fd0
call eax
mov dword [esp], 0x3f666666
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.OPENGL32.dll_glColor4f]
movss xmm0, dword [0x10885594]
mov eax, 0x6378a0
push 0
sub esp, 0x14
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x43988000
mov dword [esp + 8], 0x433e0000
movss dword [esp + 4], xmm0
movss xmm0, dword [0x10885590]
movss dword [esp], xmm0
call eax
mov eax, 0x636070
call eax
mov ebx, dword [sym.imp.OPENGL32.dll_glColor3f]
add esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call ebx
movss xmm0, dword [0x10885594]
mov eax, 0x637c60
subss xmm0, dword [0x10101db0]
push 0
push 1
push 1
sub esp, 0x20
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x18], 0x3f3d70a4
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x42200000
mov dword [esp + 8], 0x43410000
movss dword [esp + 4], xmm0
movss xmm0, dword [0x10885590]
subss xmm0, dword [0x101018e8]
movss dword [esp], xmm0
push 0x7a79
call eax
movss xmm0, dword [0x10885594]
add esp, 0x30
cvtps2pd xmm0, xmm0
mov eax, 0x637c60
push 0
push 1
push 1
sub esp, 0x20
addsd xmm0, qword [0x10101a40]
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f608312
cvtpd2ps xmm0, xmm0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x436d0000
mov dword [esp + 8], 0x43410000
movss dword [esp + 4], xmm0
movss xmm0, dword [0x10885590]
subss xmm0, dword [0x101018e8]
movss dword [esp], xmm0
push 0x7a58
call eax
movss xmm0, dword [0x10885594]
add esp, 0x30
push 0
push 1
push 1
sub esp, 0x20
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x18], 0x3f608312
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x42480000
mov dword [esp + 8], 0x43410000
cvtps2pd xmm0, xmm0
mov eax, 0x637c60
addsd xmm0, qword [0x10101cb0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movss xmm0, dword [0x10885590]
subss xmm0, dword [0x101018e8]
movss dword [esp], xmm0
push 0x7a59
call eax
add esp, 0x30
mov ecx, 0x101c3ae8
push 0x5f
call fcn.100429f0
push eax
cvttss2si eax, dword [0x10885594]
push 3
push 0xbe
inc eax
push eax
cvttss2si eax, dword [0x10885590]
push eax
push 0xff19bdff
push 0x102ba770
call fcn.10077f60
add esp, 0x1c
mov ecx, 0x101c3ae8
push 0x60
call fcn.100429f0
push eax
cvttss2si eax, dword [0x10885594]
push 3
push 0xbe
add eax, 0x64
push eax
cvttss2si eax, dword [0x10885590]
push eax
push 0xff19bdff
push 0x102ba770
call fcn.10077f60
add esp, 0x1c
cmp dword [0x1088567c], 1
jne 0x1001ff0d
call fcn.10020730
push 0x67
mov ecx, 0x101c3ae8
call fcn.100429f0
movss xmm0, dword [0x10885594]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0xbe
addsd xmm0, qword [0x10101c40]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x10885590]
push eax
push 0xff19bdff
push 0x102ba770
call fcn.10077f60
movss xmm0, dword [0x10885594]
add esp, 0x1c
cvtps2pd xmm0, xmm0
push 0x19
push 0x6e
addsd xmm0, qword [0x10101c70]
cvttsd2si eax, xmm0
movss xmm0, dword [0x10885590]
cvtps2pd xmm0, xmm0
push eax
addsd xmm0, qword [0x10101a50]
cvttsd2si eax, xmm0
push eax
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1001fe2a
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call ebx
push 1
call edi
test ax, ax
jns 0x1001fe2a
call esi
sub eax, dword [0x10885678]
cmp eax, 0x1f4
jb 0x1001fe0e
call esi
mov dword [ebp - 0x28], 0xf304c1
lea ecx, [ebp - 0x28]
mov edx, 4
mov dword [0x10885678], eax
mov byte [ebp - 0x25], 0xff
call fcn.100c4b10
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call ebx
movss xmm0, dword [0x10885594]
mov eax, 0x637c60
cvtps2pd xmm0, xmm0
push 0
push 1
push 1
sub esp, 0x20
addsd xmm0, qword [0x10101c70]
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
cvtpd2ps xmm0, xmm0
mov dword [esp + 0xc], 0x41c80000
mov dword [esp + 8], 0x42dc0000
movss dword [esp + 4], xmm0
movss xmm0, dword [0x10885590]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x10101a50]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push 0x7b4b
call eax
mov eax, dword [sym.imp.OPENGL32.dll_glColor4f]
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call eax
push 0x68
mov ecx, 0x101c3ae8
call fcn.100429f0
movss xmm0, dword [0x10885594]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0x6e
addsd xmm0, qword [0x10101c98]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x10885590]
add eax, 0x28
push eax
push 0xffffffffffffffff
jmp 0x1002033a
call fcn.10020380
cmp dword [0x108855c0], 0
mov ecx, 0x101c3ae8
jle 0x1001ffb5
push 0x61
call fcn.100429f0
movss xmm0, dword [0x10885594]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0x4b
addsd xmm0, qword [0x10101c28]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x10885590]
add eax, 0x3a
push eax
push 0xff19bdff
push 0x102ba770
call fcn.10077f60
movss xmm0, dword [0x10885594]
add esp, 0x1c
cvtps2pd xmm0, xmm0
push 0x108855c4
push dword [0x108855c0]
addsd xmm0, qword [0x10101c40]
push str._d___s_
push 3
push 0x4b
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x10885590]
add eax, 0x3a
push eax
push 0xff8be100
push 0x102ba770
call fcn.10077f60
add esp, 0x24
jmp 0x1002003c
push 0x66
call fcn.100429f0
movss xmm0, dword [0x10885594]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0x4b
addsd xmm0, qword [0x10101c28]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x10885590]
add eax, 0x3a
push eax
push 0xff19bdff
push 0x102ba770
call fcn.10077f60
movss xmm0, dword [0x10885594]
add esp, 0x1c
cvtps2pd xmm0, xmm0
push dword [0x108855b8]
addsd xmm0, qword [0x10101c40]
push 0x100fe368
push 3
push 0x4b
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x10885590]
add eax, 0x3a
push eax
push 0xff8be100
push 0x102ba770
call fcn.10077f60
add esp, 0x20
movss xmm0, dword [0x10885594]
cvtps2pd xmm0, xmm0
push 0xf
push 0x4b
addsd xmm0, qword [0x10101c70]
cvttsd2si eax, xmm0
movss xmm0, dword [0x10885590]
cvtps2pd xmm0, xmm0
push eax
addsd xmm0, qword [0x10101a98]
cvttsd2si eax, xmm0
push eax
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1002010d
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call ebx
push 1
call edi
test ax, ax
jns 0x1002010d
call esi
sub eax, dword [0x10885678]
cmp eax, 0x12c
jb 0x100200f1
call esi
mov ecx, dword [0x108855c0]
mov dword [0x10885678], eax
xor eax, eax
mov dword [ebp - 0x2b], eax
mov word [ebp - 0x27], ax
mov byte [ebp - 0x25], al
mov eax, dword [0x108855b8]
mov dword [ebp - 0x2c], 0xfef308c1
test ecx, ecx
jle 0x100200e1
add eax, ecx
mov edx, 8
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x2c]
call fcn.100c4b10
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call ebx
movss xmm0, dword [0x10885594]
mov eax, 0x637c60
cvtps2pd xmm0, xmm0
push 0
push 1
push 1
sub esp, 0x20
addsd xmm0, qword [0x10101c70]
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
cvtpd2ps xmm0, xmm0
mov dword [esp + 0xc], 0x41700000
mov dword [esp + 8], 0x42960000
movss dword [esp + 4], xmm0
movss xmm0, dword [0x10885590]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x10101a98]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push 0x7b4b
call eax
mov eax, dword [sym.imp.OPENGL32.dll_glColor4f]
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call eax
mov eax, dword [0x108855bc]
mov ecx, dword [0x108855c0]
add eax, 0x61
mov esi, dword [0x108855b8]
push eax
test ecx, ecx
jle 0x100201cf
add esi, ecx
mov ecx, 0x101c3ae8
call fcn.100429f0
movss xmm0, dword [0x10885594]
movss xmm1, dword [0x10885590]
cvtps2pd xmm0, xmm0
push esi
push eax
push 3
push 0x4b
addsd xmm0, qword [0x10101c80]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, xmm1
add eax, 0x3a
push eax
push 0xffffffffffffffff
push 0x102ba770
call fcn.10077f60
add esp, 0x20
mov ecx, 0x101c3ae8
push 0x65
call fcn.100429f0
movss xmm0, dword [0x10885594]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0xbe
addsd xmm0, qword [0x10101ca8]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x10885590]
push eax
push 0xff19bdff
push 0x102ba770
call fcn.10077f60
mov edi, dword [0x108855d0]
mov eax, 0x91a2b3c5
imul edi
mov eax, 0x88888889
mov dword [ebp - 0x28], 0x3c
add edx, edi
add esp, 0x1c
sar edx, 0xb
mov esi, edx
shr esi, 0x1f
add esi, edx
imul edi
add edx, edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
cdq
idiv dword [ebp - 0x28]
mov eax, ecx
shl eax, 4
sub eax, ecx
mov dword [ebp - 0x28], edx
shl eax, 2
sub edi, eax
lea eax, [ebp - 0x24]
push edi
push edx
push esi
push str._02d:_02d:_02d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
cmp esi, 0x17
jle 0x100202f1
mov eax, 0x2aaaaaab
mov ecx, 0x101c3ae8
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0x84
call fcn.100429f0
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [sym.imp.USER32.dll_wsprintfA]
call eax
add esp, 0xc
jmp 0x10020309
push edi
push dword [ebp - 0x28]
lea eax, [ebp - 0x24]
push esi
push str._02d:_02d:_02d
push eax
mov eax, dword [sym.imp.USER32.dll_wsprintfA]
call eax
add esp, 0x14
movss xmm0, dword [0x10885594]
lea eax, [ebp - 0x24]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0xbe
addsd xmm0, qword [0x10101cc0]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x10885590]
push eax
push 0xff8be100
push 0x102ba770
call fcn.10077f60
add esp, 0x1c
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100d0970
mov esp, ebp
pop ebp
ret