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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cmp byte [0x1027883d], 0
push ebx
push esi
push edi
je 0x10022448
mov eax, dword [0x104f9dc8]
movss xmm1, dword [0x11b3794]
add eax, 0x140
movss xmm0, dword [0x100d183c]
movd xmm2, eax
xor eax, eax
comiss xmm0, xmm1
xorps xmm0, xmm0
cvtdq2ps xmm2, xmm2
setae al
movd xmm5, eax
cvtdq2ps xmm5, xmm5
mulss xmm2, xmm1
ucomiss xmm5, xmm0
lahf
test ah, 0x44
jnp 0x10021a3b
movaps xmm3, xmm1
jmp 0x10021a43
movss xmm3, dword [0x11b3798]
mulss xmm3, dword [0x100d1e74]
ucomiss xmm5, xmm0
subss xmm2, xmm3
lahf
test ah, 0x44
jnp 0x10021a5d
movaps xmm3, xmm1
jmp 0x10021a65
movss xmm3, dword [0x11b3798]
mulss xmm3, dword [0x100d1d9c]
ucomiss xmm5, xmm0
addss xmm3, xmm2
lahf
movss dword [ebp - 4], xmm3
test ah, 0x44
jnp 0x10021a84
movaps xmm4, xmm1
jmp 0x10021a8c
movss xmm4, dword [0x11b3798]
mulss xmm4, dword [0x100d1e44]
ucomiss xmm5, xmm0
divss xmm4, xmm1
lahf
test ah, 0x44
jnp 0x10021aaa
movaps xmm2, xmm1
addss xmm2, xmm1
jmp 0x10021ab6
movss xmm2, dword [0x11b3798]
addss xmm2, xmm2
movaps xmm0, xmm3
mov eax, 0x631289
subss xmm0, xmm2
push ecx
mov dword [esp], 0
push 1
push 1
divss xmm0, xmm1
sub esp, 0x20
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x18], 0x3f800000
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x43870000
movss dword [esp + 8], xmm4
mov dword [esp + 4], 0x41200000
movss dword [esp], xmm0
push 0xf070
call eax
movss xmm2, dword [0x11b3794]
xor eax, eax
movss xmm0, dword [0x100d183c]
add esp, 0x30
comiss xmm0, xmm2
xorps xmm1, xmm1
movss dword [ebp - 0xc], xmm2
setae al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10021b51
movss dword [ebp - 8], xmm2
jmp 0x10021b5e
movss xmm0, dword [0x11b3798]
movss dword [ebp - 8], xmm0
push 0xce
mov ecx, 0x101888b0
call fcn.1003ad30
movss xmm0, dword [ebp - 8]
mulss xmm0, dword [0x100d1e44]
push eax
push 0
push 3
divss xmm0, dword [ebp - 0xc]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 4]
divss xmm0, dword [ebp - 0xc]
push eax
push 0x1c
cvttss2si eax, xmm0
push eax
push 0xff19bdff
push 0x10276e38
call fcn.100712f0
movss xmm0, dword [0x100d183c]
xor eax, eax
movss xmm2, dword [0x11b3794]
add esp, 0x20
comiss xmm0, xmm2
xorps xmm0, xmm0
setae al
movd xmm3, eax
cvtdq2ps xmm3, xmm3
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jnp 0x10021bdc
movaps xmm1, xmm2
jmp 0x10021be4
movss xmm1, dword [0x11b3798]
mulss xmm1, dword [0x100d1e10]
ucomiss xmm3, xmm0
addss xmm1, dword [ebp - 4]
lahf
divss xmm1, xmm2
movss dword [ebp - 8], xmm1
test ah, 0x44
jnp 0x10021c08
movaps xmm0, xmm2
jmp 0x10021c10
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1bbc]
mov ebx, 0x799756
push 9
cvttss2si edi, xmm1
divss xmm0, xmm2
cvttss2si esi, xmm0
movss dword [ebp - 4], xmm0
push esi
push 0x1d
push edi
call ebx
add esp, 0x10
test al, al
je 0x10021cc1
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x10021cc1
movss xmm0, dword [ebp - 4]
mov eax, 0x631289
push ecx
mov dword [esp], 0
push 1
push 1
sub esp, 0x20
mov dword [esp + 0x1c], 0x3e222378
mov dword [esp + 0x18], 0x3f29dda9
mov dword [esp + 0x14], 0x3ea8f5c3
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41100000
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 8]
mov dword [esp + 4], 0x41e80000
movss dword [esp], xmm0
push 0xf072
call eax
mov byte [0x1027883d], 0
mov dword [0x11c4454], 0
jmp 0x10021d3a
push 9
push esi
push 0x1d
push edi
call ebx
movss xmm0, dword [ebp - 4]
add esp, 0x10
push ecx
mov dword [esp], 0
push 1
push 1
sub esp, 0x20
test al, al
mov eax, 0x631289
mov dword [esp + 0x1c], 0x3e222378
mov dword [esp + 0x18], 0x3f29dda9
je 0x10021d03
mov dword [esp + 0x14], 0x3e28f5c3
jmp 0x10021d0b
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41100000
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 8]
mov dword [esp + 4], 0x41e80000
movss dword [esp], xmm0
push 0xf072
call eax
mov eax, dword [0x104f9dc8]
add esp, 0x30
movss xmm2, dword [0x11b3794]
add eax, 0x140
movss xmm0, dword [0x100d183c]
xorps xmm1, xmm1
movd xmm4, eax
xor eax, eax
comiss xmm0, xmm2
cvtdq2ps xmm4, xmm4
setae al
movd xmm5, eax
cvtdq2ps xmm5, xmm5
mulss xmm4, xmm2
ucomiss xmm5, xmm1
lahf
test ah, 0x44
jnp 0x10021d82
movaps xmm0, xmm2
jmp 0x10021d8a
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1e74]
ucomiss xmm5, xmm1
subss xmm4, xmm0
lahf
test ah, 0x44
jnp 0x10021da4
movaps xmm3, xmm2
jmp 0x10021dac
movss xmm3, dword [0x11b3798]
mulss xmm3, dword [0x100d1dd4]
ucomiss xmm5, xmm1
addss xmm3, xmm4
lahf
movss dword [ebp - 8], xmm3
test ah, 0x44
jnp 0x10021dcb
movaps xmm0, xmm2
jmp 0x10021dd3
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1df0]
ucomiss xmm5, xmm1
addss xmm0, xmm3
lahf
divss xmm0, xmm2
cvttss2si edi, xmm0
test ah, 0x44
jnp 0x10021df5
movaps xmm4, xmm2
jmp 0x10021dfd
movss xmm4, dword [0x11b3798]
mulss xmm4, dword [0x100d1bf4]
movaps xmm0, xmm3
mov ecx, dword [0x106a7618]
mov ebx, dword [sym.imp.OPENGL32.dll_glColor4f]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
subss xmm0, xmm4
divss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [ebp - 0xc], eax
mov eax, dword [0x106a761c]
test ecx, ecx
jne 0x10021e37
cmp eax, 0x19
jg 0x10021e53
cmp ecx, 1
jne 0x10021e41
cmp eax, 0x32
jg 0x10021e53
cmp ecx, 2
jne 0x10022033
cmp eax, 0x4b
jle 0x10022033
ucomiss xmm5, xmm1
lahf
test ah, 0x44
jnp 0x10021e61
movaps xmm0, xmm2
jmp 0x10021e69
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1c08]
push 0x19
divss xmm0, xmm2
cvttss2si eax, xmm0
push eax
push 0x70
push edi
mov eax, 0x799756
call eax
add esp, 0x10
cmp al, 1
jne 0x10021f8f
sub esp, 0x10
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3d00346e
mov dword [esp + 4], 0x3f1c985f
mov dword [esp], 0x3f72f1aa
call ebx
movss xmm0, dword [0x100d183c]
xor eax, eax
movss xmm2, dword [0x11b3794]
xorps xmm1, xmm1
comiss xmm0, xmm2
setae al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10021ee5
movaps xmm0, xmm2
jmp 0x10021eed
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1be8]
mov eax, 0x631289
push ecx
mov dword [esp], 0
push 1
divss xmm0, xmm2
push 1
sub esp, 0x20
mov dword [esp + 0x1c], 0x3f19999a
mov dword [esp + 0x18], 0x3f3ae148
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41c80000
movss dword [esp + 8], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov dword [esp + 4], 0x42e00000
movss dword [esp], xmm0
push 0x8323
call eax
add esp, 0x30
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x10022033
call esi
sub eax, dword [0x106a7620]
cmp eax, 0x3e8
jbe 0x10022033
inc dword [0x106a7618]
call esi
mov dword [0x106a7620], eax
jmp 0x10022033
movss xmm0, dword [0x100d183c]
xor eax, eax
movss xmm2, dword [0x11b3794]
xorps xmm1, xmm1
comiss xmm0, xmm2
setae al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10021fbf
movaps xmm0, xmm2
jmp 0x10021fc7
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1be8]
mov eax, 0x631289
push ecx
mov dword [esp], 0
push 1
divss xmm0, xmm2
push 1
sub esp, 0x20
mov dword [esp + 0x1c], 0x3f19999a
mov dword [esp + 0x18], 0x3f3ae148
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41c80000
movss dword [esp + 8], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov dword [esp + 4], 0x42e00000
movss dword [esp], xmm0
push 0x8323
call eax
add esp, 0x30
sub esp, 0x10
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call ebx
mov eax, dword [0x106a7618]
cmp eax, 1
je 0x1002206f
cmp eax, 2
je 0x1002206f
cmp eax, 3
jne 0x10022274
movss xmm0, dword [0x100d183c]
xor eax, eax
movss xmm2, dword [0x11b3794]
xorps xmm1, xmm1
comiss xmm0, xmm2
setae al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1002209f
movaps xmm0, xmm2
jmp 0x100220a7
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1c08]
mov edi, dword [ebp - 0xc]
push 0x19
divss xmm0, xmm2
cvttss2si eax, xmm0
push eax
push 0x6e
push edi
mov eax, 0x799756
call eax
add esp, 0x10
cmp al, 1
jne 0x100221d0
sub esp, 0x10
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3d00346e
mov dword [esp + 4], 0x3f1c985f
mov dword [esp], 0x3f72f1aa
call ebx
movss xmm0, dword [0x100d183c]
xor eax, eax
movss xmm2, dword [0x11b3794]
xorps xmm1, xmm1
comiss xmm0, xmm2
setae al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10022126
movaps xmm0, xmm2
jmp 0x1002212e
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1bdc]
mov eax, 0x631289
push ecx
mov dword [esp], 0
push 1
divss xmm0, xmm2
push 1
sub esp, 0x20
mov dword [esp + 0x1c], 0x3f19999a
mov dword [esp + 0x18], 0x3f19999a
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41c80000
movss dword [esp + 8], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov dword [esp + 4], 0x42dc0000
movss dword [esp], xmm0
push 0x8324
call eax
add esp, 0x30
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x10022274
call esi
sub eax, dword [0x106a7620]
cmp eax, 0x3e8
jbe 0x10022274
dec dword [0x106a7618]
call esi
mov dword [0x106a7620], eax
jmp 0x10022274
movss xmm0, dword [0x100d183c]
xor eax, eax
movss xmm2, dword [0x11b3794]
xorps xmm1, xmm1
comiss xmm0, xmm2
setae al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10022200
movaps xmm0, xmm2
jmp 0x10022208
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1bdc]
mov eax, 0x631289
push ecx
mov dword [esp], 0
push 1
divss xmm0, xmm2
push 1
sub esp, 0x20
mov dword [esp + 0x1c], 0x3f19999a
mov dword [esp + 0x18], 0x3f19999a
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41c80000
movss dword [esp + 8], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov dword [esp + 4], 0x42dc0000
movss dword [esp], xmm0
push 0x8324
call eax
add esp, 0x30
sub esp, 0x10
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call ebx
movss xmm0, dword [0x100d183c]
xor eax, eax
movss xmm1, dword [0x11b3794]
comiss xmm0, xmm1
xorps xmm0, xmm0
setae al
movd xmm5, eax
cvtdq2ps xmm5, xmm5
ucomiss xmm5, xmm0
lahf
test ah, 0x44
jnp 0x100222c8
movaps xmm2, xmm1
jmp 0x100222d0
movss xmm2, dword [0x11b3798]
mulss xmm2, dword [0x100d1bb8]
movss xmm4, dword [ebp - 8]
ucomiss xmm5, xmm0
addss xmm2, xmm4
lahf
divss xmm2, xmm1
movss dword [ebp - 0x10], xmm2
test ah, 0x44
jnp 0x100222f8
movaps xmm3, xmm1
jmp 0x10022300
movss xmm3, dword [0x11b3798]
mulss xmm3, dword [0x100d1d0c]
ucomiss xmm5, xmm0
addss xmm3, xmm4
lahf
divss xmm3, xmm1
movss dword [ebp - 0xc], xmm3
test ah, 0x44
jnp 0x10022323
movaps xmm0, xmm1
jmp 0x1002232b
movss xmm0, dword [0x11b3798]
mulss xmm0, dword [0x100d1ce4]
mov edi, dword [0x106a7618]
imul edx, edi, 0x19
divss xmm0, xmm1
mov dword [ebp - 4], edx
lea eax, [edx + 0x19]
movss dword [ebp - 0x14], xmm0
cmp edx, eax
jge 0x10022448
imul ecx, edx, 0x58
mov esi, 0xffcc6699
add ecx, 0x106a53bc
mov dword [ebp - 8], ecx
cmp dword [ecx - 4], 0xffffffff
je 0x10022430
mov eax, dword [ecx]
cmp eax, 1
jne 0x1002237c
mov ebx, 0xff19bdff
jmp 0x100223c1
cmp eax, 2
jne 0x10022386
or ebx, 0xffffffff
jmp 0x100223c1
cmp eax, 3
jne 0x10022392
mov ebx, 0xff1969ff
jmp 0x100223c1
cmp eax, 4
jne 0x1002239e
mov ebx, 0xff2d5fe1
jmp 0x100223c1
cmp eax, 5
jne 0x100223aa
mov ebx, 0xff8be100
jmp 0x100223c1
cmp eax, 6
jne 0x100223b6
mov ebx, 0xff00ffff
jmp 0x100223c1
cmp eax, 7
mov ebx, 0xff19bdff
cmove ebx, esi
mov esi, edx
test edi, edi
jle 0x100223cc
imul eax, edi, 0x19
sub esi, eax
lea eax, [esi + esi*4]
lea esi, [eax*2 + 0x2d]
cvttss2si edi, xmm0
lea eax, [ecx + 4]
push eax
push 0
push 1
cvttss2si eax, xmm2
push edi
push esi
push eax
push ebx
push 0x10276e38
call fcn.100712f0
mov eax, dword [ebp - 8]
add eax, 0x2c
push eax
cvttss2si eax, dword [ebp - 0xc]
push 0
push 1
push edi
push esi
push eax
push ebx
push 0x10276e38
call fcn.100712f0
mov edi, dword [0x106a7618]
add esp, 0x40
movss xmm2, dword [ebp - 0x10]
mov esi, 0xffcc6699
movss xmm0, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
lea eax, [edi + 1]
inc edx
imul eax, eax, 0x19
add ecx, 0x58
mov dword [ebp - 4], edx
mov dword [ebp - 8], ecx
cmp edx, eax
jl 0x10022364
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret