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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cmp dword [0x102bc248], 1
push ebx
push esi
push edi
je 0x1003ca0d
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movd xmm0, dword [ebp + 8]
mov ecx, 0x101a8848
cvtdq2pd xmm0, xmm0
push 0x70
addsd xmm0, qword [0x100e7208]
movsd qword [ebp - 0x10], xmm0
call fcn.1003fea0
mov esi, dword [ebp + 0xc]
push eax
push 3
push 0x78
lea eax, [esi + 0x48]
push eax
cvttsd2si eax, qword [ebp - 0x10]
push eax
push 0xffffffffffffffff
push 0x10297260
call fcn.1006a050
movsd xmm0, qword [ebp - 0x10]
add esi, 0x55
mov edi, dword [sym.imp.OPENGL32.dll_glColor3f]
add esp, 0x1c
cmp dword [0x102bc1bc], 0
mov edx, 0x790b10
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
cvtpd2ps xmm0, xmm0
movd xmm1, esi
cvttss2si ecx, xmm0
cvtdq2ps xmm1, xmm1
mov dword [ebp - 4], ecx
jne 0x1003caa2
sub esp, 0xc
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call edi
jmp 0x1003cb1e
cvttss2si eax, xmm1
push 0xd
push 0xf
push eax
push ecx
call edx
add esp, 0x10
cmp al, 1
jne 0x1003cb1e
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call edi
call ebx
sub eax, dword [0x1085f158]
cmp eax, 0x12c
jbe 0x1003cb1e
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x1003cb1e
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call edi
push 0
mov ecx, 0x1085f13c
call fcn.1003d7f0
call ebx
mov dword [0x1085f158], eax
push 0
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, 0x637c60
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41500000
mov dword [esp + 8], 0x41700000
movss dword [esp + 4], xmm0
movsd xmm0, qword [ebp - 0x10]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push 0x7b4b
call eax
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call dword [sym.imp.OPENGL32.dll_glColor4f]
movd xmm1, esi
cvtdq2ps xmm0, xmm1
push 0x100e4064
push 3
push 0xf
addss xmm0, dword [0x100e6fc8]
cvttss2si eax, xmm0
push eax
push dword [ebp - 4]
mov dword [ebp + 0xc], eax
push 0xffffffffffffffff
push 0x10297260
call fcn.1006a050
movd xmm1, dword [ebp + 8]
add esp, 0x1c
cmp dword [0x102bc1bc], 1
cvtdq2pd xmm0, xmm1
addsd xmm0, qword [0x100e7218]
cvtpd2ps xmm0, xmm0
cvttss2si ecx, xmm0
movss dword [ebp - 4], xmm0
mov dword [ebp - 0xc], ecx
jne 0x1003cc23
sub esp, 0xc
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call edi
jmp 0x1003ccab
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push 0xd
push 0xf
cvttss2si eax, xmm0
push eax
push ecx
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1003ccab
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call edi
call ebx
sub eax, dword [0x1085f158]
cmp eax, 0x12c
jbe 0x1003ccab
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x1003ccab
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call edi
push 1
mov ecx, 0x1085f13c
call fcn.1003d7f0
call ebx
mov dword [0x1085f158], eax
push 0
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, 0x637c60
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41500000
mov dword [esp + 8], 0x41700000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 4]
movss dword [esp], xmm0
push 0x7b4b
call eax
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call dword [sym.imp.OPENGL32.dll_glColor4f]
push 0x100e4784
push 3
push 0xf
push dword [ebp + 0xc]
push dword [ebp - 0xc]
push 0xffffffffffffffff
push 0x10297260
call fcn.1006a050
movd xmm0, dword [ebp + 8]
add esp, 0x1c
cmp dword [0x102bc1bc], 2
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100e7230]
cvtpd2ps xmm0, xmm0
cvttss2si ecx, xmm0
movss dword [ebp - 0xc], xmm0
mov dword [ebp - 4], ecx
jne 0x1003cd98
sub esp, 0xc
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call edi
jmp 0x1003ce20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push 0xd
push 0xf
cvttss2si eax, xmm0
push eax
push ecx
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1003ce20
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call edi
call ebx
sub eax, dword [0x1085f158]
cmp eax, 0x12c
jbe 0x1003ce20
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x1003ce20
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call edi
push 2
mov ecx, 0x1085f13c
call fcn.1003d7f0
call ebx
mov dword [0x1085f158], eax
push 0
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, 0x637c60
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41500000
mov dword [esp + 8], 0x41700000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push 0x7b4b
call eax
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call dword [sym.imp.OPENGL32.dll_glColor4f]
push 0x100e4788
push 3
push 0xf
push dword [ebp + 0xc]
push dword [ebp - 4]
push 0xffffffffffffffff
push 0x10297260
call fcn.1006a050
movd xmm0, dword [ebp + 8]
add esp, 0x1c
cmp dword [0x102bc1bc], 3
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100e7238]
cvtpd2ps xmm0, xmm0
cvttss2si ecx, xmm0
movss dword [ebp - 0xc], xmm0
mov dword [ebp - 4], ecx
jne 0x1003cf0d
sub esp, 0xc
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call edi
jmp 0x1003cf95
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push 0xd
push 0xf
cvttss2si eax, xmm0
push eax
push ecx
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1003cf95
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call edi
call ebx
sub eax, dword [0x1085f158]
cmp eax, 0x12c
jbe 0x1003cf95
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x1003cf95
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call edi
push 3
mov ecx, 0x1085f13c
call fcn.1003d7f0
call ebx
mov dword [0x1085f158], eax
push 0
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, 0x637c60
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41500000
mov dword [esp + 8], 0x41700000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push 0x7b4b
call eax
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call dword [sym.imp.OPENGL32.dll_glColor4f]
push 0x100e478c
push 3
push 0xf
push dword [ebp + 0xc]
push dword [ebp - 4]
push 0xffffffffffffffff
push 0x10297260
call fcn.1006a050
movd xmm0, dword [ebp + 8]
add esp, 0x1c
cmp dword [0x102bc1bc], 4
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100e7248]
cvtpd2ps xmm0, xmm0
cvttss2si ecx, xmm0
movss dword [ebp - 0xc], xmm0
mov dword [ebp - 4], ecx
jne 0x1003d082
sub esp, 0xc
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call edi
jmp 0x1003d10a
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push 0xd
push 0xf
cvttss2si eax, xmm0
push eax
push ecx
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1003d10a
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call edi
call ebx
sub eax, dword [0x1085f158]
cmp eax, 0x12c
jbe 0x1003d10a
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x1003d10a
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call edi
push 4
mov ecx, 0x1085f13c
call fcn.1003d7f0
call ebx
mov dword [0x1085f158], eax
push 0
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, 0x637c60
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41500000
mov dword [esp + 8], 0x41700000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push 0x7b4b
call eax
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call dword [sym.imp.OPENGL32.dll_glColor4f]
push 0x100e4790
push 3
push 0xf
push dword [ebp + 0xc]
push dword [ebp - 4]
push 0xffffffffffffffff
push 0x10297260
call fcn.1006a050
movd xmm0, dword [ebp + 8]
add esp, 0x1c
cmp dword [0x102bc1bc], 5
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100e7268]
cvtpd2ps xmm0, xmm0
cvttss2si ecx, xmm0
movss dword [ebp - 0xc], xmm0
mov dword [ebp - 4], ecx
jne 0x1003d1f7
sub esp, 0xc
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call edi
jmp 0x1003d27f
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push 0xd
push 0xf
cvttss2si eax, xmm0
push eax
push ecx
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1003d27f
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call edi
call ebx
sub eax, dword [0x1085f158]
cmp eax, 0x12c
jbe 0x1003d27f
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x1003d27f
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call edi
push 5
mov ecx, 0x1085f13c
call fcn.1003d7f0
call ebx
mov dword [0x1085f158], eax
push 0
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, 0x637c60
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41500000
mov dword [esp + 8], 0x41700000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push 0x7b4b
call eax
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call dword [sym.imp.OPENGL32.dll_glColor4f]
push 0x100e4794
push 3
push 0xf
push dword [ebp + 0xc]
push dword [ebp - 4]
push 0xffffffffffffffff
push 0x10297260
call fcn.1006a050
movd xmm0, dword [ebp + 8]
add esp, 0x1c
cmp dword [0x102bc1bc], 6
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100e7290]
cvtpd2ps xmm0, xmm0
cvttss2si ecx, xmm0
movss dword [ebp - 0xc], xmm0
mov dword [ebp - 4], ecx
jne 0x1003d36c
sub esp, 0xc
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call edi
jmp 0x1003d3f4
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push 0xd
push 0xf
cvttss2si eax, xmm0
push eax
push ecx
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1003d3f4
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call edi
call ebx
sub eax, dword [0x1085f158]
cmp eax, 0x12c
jbe 0x1003d3f4
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x1003d3f4
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call edi
push 6
mov ecx, 0x1085f13c
call fcn.1003d7f0
call ebx
mov dword [0x1085f158], eax
push 0
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov eax, 0x637c60
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41500000
mov dword [esp + 8], 0x41700000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push 0x7b4b
call eax
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call dword [sym.imp.OPENGL32.dll_glColor4f]
push 0x100e4798
push 3
push 0xf
push dword [ebp + 0xc]
push dword [ebp - 4]
push 0xffffffffffffffff
push 0x10297260
call fcn.1006a050
movd xmm0, dword [ebp + 8]
add esp, 0x1c
cmp dword [0x102bc1bc], 7
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100e72b0]
movsd qword [ebp - 0x10], xmm0
cvtpd2ps xmm0, xmm0
cvttss2si ecx, xmm0
mov dword [ebp + 8], ecx
jne 0x1003d4e1
sub esp, 0xc
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call edi
jmp 0x1003d569
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push 0xd
push 0x19
cvttss2si eax, xmm0
push eax
push ecx
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1003d569
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call edi
call ebx
sub eax, dword [0x1085f158]
cmp eax, 0x12c
jbe 0x1003d569
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x1003d569
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call edi
push 7
mov ecx, 0x1085f13c
call fcn.1003d7f0
call ebx
mov dword [0x1085f158], eax
movsd xmm1, qword [ebp - 0x10]
mov eax, 0x637c60
push 0
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1c], 0x3f4ccccd
mov dword [esp + 0x18], 0x3f266666
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41500000
mov dword [esp + 8], 0x41c80000
movss dword [esp + 4], xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp], xmm0
push 0x7b4b
call eax
add esp, 0x20
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call dword [sym.imp.OPENGL32.dll_glColor4f]
push 0x7f
mov ecx, 0x101a8848
call fcn.1003fea0
push eax
push 3
push 0x19
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0xffffffffffffffff
push 0x10297260
call fcn.1006a050
add esp, 0x1c
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8