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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x1010c040]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x102c033d], 0
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
je 0x10020101
cmp dword [0x114d9b04], 1
je 0x10020101
call esi
sub eax, dword [0x114d9afc]
cmp eax, 0x3e8
jbe 0x10020101
mov eax, dword [0x114d9a58]
test eax, eax
jle 0x10020087
dec eax
mov dword [0x114d9a58], eax
jmp 0x100200fa
mov byte [0x102c033d], 0
mov ecx, 0x114d9ad4
mov eax, 0x114d9a5c
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, 0x114d9ad4
jl 0x100200a0
mov dword [0x114d9a10], 0
mov dword [0x114d9a18], 0x43c80000
mov dword [0x114d9a1c], 0x428c0000
mov dword [0x114d9a30], 0
mov dword [0x114d9a34], 0
call esi
mov dword [0x114d9afc], eax
cmp dword [0x114d9a10], 0
je 0x10020b73
mov eax, dword [0x114d9a14]
test eax, eax
jle 0x10020135
add eax, 0xffffffff
mov dword [0x114d9a14], eax
jne 0x10020135
mov dword [0x114d9a10], 0
mov dword [0xe8cb3c], 0
cmp dword [0x114d9a28], 0
xorps xmm1, xmm1
je 0x100201ce
mov eax, dword [0x879340c]
mov ecx, dword [0x1010cba8]
cmp eax, ecx
je 0x10020175
sub eax, dword [0x114d9a20]
test eax, eax
jle 0x10020175
add ecx, 0xffffff42
cmp eax, ecx
jle 0x1002016e
movd xmm1, ecx
jmp 0x10020172
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [0x114d9a18], xmm1
mov eax, dword [0x8793410]
cmp eax, 0x1e0
je 0x100201bc
sub eax, dword [0x114d9a24]
cmp eax, 4
jle 0x100201bc
cmp eax, 0x7d
jle 0x100201ab
movss xmm0, dword [0x1010405c]
movss dword [0x114d9a1c], xmm0
jmp 0x100201de
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x114d9a1c], xmm0
jmp 0x100201de
movss xmm0, dword [0x10103df0]
movss dword [0x114d9a1c], xmm0
jmp 0x100201de
movss xmm0, dword [0x114d9a1c]
movss xmm1, dword [0x114d9a18]
subss xmm0, dword [0x10103908]
addss xmm1, dword [0x101040f0]
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 0x10020223
push 1
call edi
test ax, ax
jns 0x10020223
mov dword [0x114d9a14], 5
movss xmm0, dword [0x114d9a1c]
subss xmm0, dword [0x10103a48]
push 0x14
push 0x96
cvttss2si eax, xmm0
movss xmm0, dword [0x114d9a18]
addss xmm0, dword [0x10103ea4]
push eax
cvttss2si eax, xmm0
push eax
call ebx
add esp, 0x10
cmp al, 1
jne 0x100202b3
push 1
call edi
test ax, ax
jns 0x100202b3
cmp dword [0x114d9a28], 0
jne 0x100202a7
movd xmm0, dword [0x879340c]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x114d9a18]
cvttss2si eax, xmm0
mov dword [0x114d9a20], eax
movd xmm0, dword [0x8793410]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x114d9a1c]
cvttss2si eax, xmm0
mov dword [0x114d9a24], eax
mov dword [0x114d9a28], 1
jmp 0x100202bd
mov dword [0x114d9a28], 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 [0x114d9a1c]
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 [0x114d9a18]
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 [0x114d9a1c]
mov eax, 0x637c60
subss xmm0, dword [0x10103df0]
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 [0x114d9a18]
subss xmm0, dword [0x10103908]
movss dword [esp], xmm0
push 0x7a79
call eax
movss xmm0, dword [0x114d9a1c]
add esp, 0x30
cvtps2pd xmm0, xmm0
mov eax, 0x637c60
push 0
push 1
push 1
sub esp, 0x20
addsd xmm0, qword [0x10103a60]
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 [0x114d9a18]
subss xmm0, dword [0x10103908]
movss dword [esp], xmm0
push 0x7a58
call eax
movss xmm0, dword [0x114d9a1c]
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 [0x10103cd0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movss xmm0, dword [0x114d9a18]
subss xmm0, dword [0x10103908]
movss dword [esp], xmm0
push 0x7a59
call eax
add esp, 0x30
mov ecx, 0x101c5a88
push 0x5f
call fcn.10043560
push eax
cvttss2si eax, dword [0x114d9a1c]
push 3
push 0xbe
inc eax
push eax
cvttss2si eax, dword [0x114d9a18]
push eax
push 0xff19bdff
push 0x102bc710
call fcn.1007a330
add esp, 0x1c
mov ecx, 0x101c5a88
push 0x60
call fcn.10043560
push eax
cvttss2si eax, dword [0x114d9a1c]
push 3
push 0xbe
add eax, 0x64
push eax
cvttss2si eax, dword [0x114d9a18]
push eax
push 0xff19bdff
push 0x102bc710
call fcn.1007a330
add esp, 0x1c
cmp dword [0x114d9b04], 1
jne 0x1002071d
call fcn.10020f40
push 0x67
mov ecx, 0x101c5a88
call fcn.10043560
movss xmm0, dword [0x114d9a1c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0xbe
addsd xmm0, qword [0x10103c60]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x114d9a18]
push eax
push 0xff19bdff
push 0x102bc710
call fcn.1007a330
movss xmm0, dword [0x114d9a1c]
add esp, 0x1c
cvtps2pd xmm0, xmm0
push 0x19
push 0x6e
addsd xmm0, qword [0x10103c90]
cvttsd2si eax, xmm0
movss xmm0, dword [0x114d9a18]
cvtps2pd xmm0, xmm0
push eax
addsd xmm0, qword [0x10103a70]
cvttsd2si eax, xmm0
push eax
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1002063a
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 0x1002063a
call esi
sub eax, dword [0x114d9b00]
cmp eax, 0x1f4
jb 0x1002061e
call esi
mov dword [ebp - 0x28], 0xf304c1
lea ecx, [ebp - 0x28]
mov edx, 4
mov dword [0x114d9b00], eax
mov byte [ebp - 0x25], 0xff
call fcn.100c6fd0
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call ebx
movss xmm0, dword [0x114d9a1c]
mov eax, 0x637c60
cvtps2pd xmm0, xmm0
push 0
push 1
push 1
sub esp, 0x20
addsd xmm0, qword [0x10103c90]
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 [0x114d9a18]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x10103a70]
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, 0x101c5a88
call fcn.10043560
movss xmm0, dword [0x114d9a1c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0x6e
addsd xmm0, qword [0x10103cb8]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x114d9a18]
add eax, 0x28
push eax
push 0xffffffffffffffff
jmp 0x10020b4a
call fcn.10020b90
cmp dword [0x114d9a48], 0
mov ecx, 0x101c5a88
jle 0x100207c5
push 0x61
call fcn.10043560
movss xmm0, dword [0x114d9a1c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0x4b
addsd xmm0, qword [0x10103c48]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x114d9a18]
add eax, 0x3a
push eax
push 0xff19bdff
push 0x102bc710
call fcn.1007a330
movss xmm0, dword [0x114d9a1c]
add esp, 0x1c
cvtps2pd xmm0, xmm0
push 0x114d9a4c
push dword [0x114d9a48]
addsd xmm0, qword [0x10103c60]
push str._d___s_
push 3
push 0x4b
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x114d9a18]
add eax, 0x3a
push eax
push 0xff8be100
push 0x102bc710
call fcn.1007a330
add esp, 0x24
jmp 0x1002084c
push 0x66
call fcn.10043560
movss xmm0, dword [0x114d9a1c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0x4b
addsd xmm0, qword [0x10103c48]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x114d9a18]
add eax, 0x3a
push eax
push 0xff19bdff
push 0x102bc710
call fcn.1007a330
movss xmm0, dword [0x114d9a1c]
add esp, 0x1c
cvtps2pd xmm0, xmm0
push dword [0x114d9a40]
addsd xmm0, qword [0x10103c60]
push 0x10100360
push 3
push 0x4b
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x114d9a18]
add eax, 0x3a
push eax
push 0xff8be100
push 0x102bc710
call fcn.1007a330
add esp, 0x20
movss xmm0, dword [0x114d9a1c]
cvtps2pd xmm0, xmm0
push 0xf
push 0x4b
addsd xmm0, qword [0x10103c90]
cvttsd2si eax, xmm0
movss xmm0, dword [0x114d9a18]
cvtps2pd xmm0, xmm0
push eax
addsd xmm0, qword [0x10103ab8]
cvttsd2si eax, xmm0
push eax
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1002091d
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 0x1002091d
call esi
sub eax, dword [0x114d9b00]
cmp eax, 0x12c
jb 0x10020901
call esi
mov ecx, dword [0x114d9a48]
mov dword [0x114d9b00], eax
xor eax, eax
mov dword [ebp - 0x2b], eax
mov word [ebp - 0x27], ax
mov byte [ebp - 0x25], al
mov eax, dword [0x114d9a40]
mov dword [ebp - 0x2c], 0xfef308c1
test ecx, ecx
jle 0x100208f1
add eax, ecx
mov edx, 8
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x2c]
call fcn.100c6fd0
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call ebx
movss xmm0, dword [0x114d9a1c]
mov eax, 0x637c60
cvtps2pd xmm0, xmm0
push 0
push 1
push 1
sub esp, 0x20
addsd xmm0, qword [0x10103c90]
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 [0x114d9a18]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x10103ab8]
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 [0x114d9a44]
mov ecx, dword [0x114d9a48]
add eax, 0x61
mov esi, dword [0x114d9a40]
push eax
test ecx, ecx
jle 0x100209df
add esi, ecx
mov ecx, 0x101c5a88
call fcn.10043560
movss xmm0, dword [0x114d9a1c]
movss xmm1, dword [0x114d9a18]
cvtps2pd xmm0, xmm0
push esi
push eax
push 3
push 0x4b
addsd xmm0, qword [0x10103ca0]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, xmm1
add eax, 0x3a
push eax
push 0xffffffffffffffff
push 0x102bc710
call fcn.1007a330
add esp, 0x20
mov ecx, 0x101c5a88
push 0x65
call fcn.10043560
movss xmm0, dword [0x114d9a1c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0xbe
addsd xmm0, qword [0x10103cc8]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x114d9a18]
push eax
push 0xff19bdff
push 0x102bc710
call fcn.1007a330
mov edi, dword [0x114d9a58]
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 0x10020b01
mov eax, 0x2aaaaaab
mov ecx, 0x101c5a88
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0x84
call fcn.10043560
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [sym.imp.USER32.dll_wsprintfA]
call eax
add esp, 0xc
jmp 0x10020b19
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 [0x114d9a1c]
lea eax, [ebp - 0x24]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0xbe
addsd xmm0, qword [0x10103ce0]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x114d9a18]
push eax
push 0xff8be100
push 0x102bc710
call fcn.1007a330
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.100d2be8
mov esp, ebp
pop ebp
ret