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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x10129040]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x102e23cd], 0
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
je 0x10021031
cmp dword [0x11500c74], 1
je 0x10021031
call esi
sub eax, dword [0x11500c6c]
cmp eax, 0x3e8
jbe 0x10021031
mov eax, dword [0x11500bc8]
test eax, eax
jle 0x10020fb7
dec eax
mov dword [0x11500bc8], eax
jmp 0x1002102a
mov byte [0x102e23cd], 0
mov ecx, 0x11500c44
mov eax, 0x11500bcc
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, 0x11500c44
jl 0x10020fd0
mov dword [0x11500b80], 0
mov dword [0x11500b88], 0x43c80000
mov dword [0x11500b8c], 0x428c0000
mov dword [0x11500ba0], 0
mov dword [0x11500ba4], 0
call esi
mov dword [0x11500c6c], eax
cmp dword [0x11500b80], 0
je 0x10021aa3
mov eax, dword [0x11500b84]
test eax, eax
jle 0x10021065
add eax, 0xffffffff
mov dword [0x11500b84], eax
jne 0x10021065
mov dword [0x11500b80], 0
mov dword [0xe8cb3c], 0
cmp dword [0x11500b98], 0
xorps xmm1, xmm1
je 0x100210fe
mov eax, dword [0x879340c]
mov ecx, dword [0x10129bac]
cmp eax, ecx
je 0x100210a5
sub eax, dword [0x11500b90]
test eax, eax
jle 0x100210a5
add ecx, 0xffffff42
cmp eax, ecx
jle 0x1002109e
movd xmm1, ecx
jmp 0x100210a2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [0x11500b88], xmm1
mov eax, dword [0x8793410]
cmp eax, 0x1e0
je 0x100210ec
sub eax, dword [0x11500b94]
cmp eax, 4
jle 0x100210ec
cmp eax, 0x7d
jle 0x100210db
movss xmm0, dword [0x101204f8]
movss dword [0x11500b8c], xmm0
jmp 0x1002110e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x11500b8c], xmm0
jmp 0x1002110e
movss xmm0, dword [0x10120280]
movss dword [0x11500b8c], xmm0
jmp 0x1002110e
movss xmm0, dword [0x11500b8c]
movss xmm1, dword [0x11500b88]
subss xmm0, dword [0x1011fd88]
addss xmm1, dword [0x10120584]
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 0x10021153
push 1
call edi
test ax, ax
jns 0x10021153
mov dword [0x11500b84], 5
movss xmm0, dword [0x11500b8c]
subss xmm0, dword [0x1011fec8]
push 0x14
push 0x96
cvttss2si eax, xmm0
movss xmm0, dword [0x11500b88]
addss xmm0, dword [0x10120334]
push eax
cvttss2si eax, xmm0
push eax
call ebx
add esp, 0x10
cmp al, 1
jne 0x100211e3
push 1
call edi
test ax, ax
jns 0x100211e3
cmp dword [0x11500b98], 0
jne 0x100211d7
movd xmm0, dword [0x879340c]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x11500b88]
cvttss2si eax, xmm0
mov dword [0x11500b90], eax
movd xmm0, dword [0x8793410]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x11500b8c]
cvttss2si eax, xmm0
mov dword [0x11500b94], eax
mov dword [0x11500b98], 1
jmp 0x100211ed
mov dword [0x11500b98], 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 [0x11500b8c]
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 [0x11500b88]
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 [0x11500b8c]
mov eax, 0x637c60
subss xmm0, dword [0x10120280]
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 [0x11500b88]
subss xmm0, dword [0x1011fd88]
movss dword [esp], xmm0
push 0x7a79
call eax
movss xmm0, dword [0x11500b8c]
add esp, 0x30
cvtps2pd xmm0, xmm0
mov eax, 0x637c60
push 0
push 1
push 1
sub esp, 0x20
addsd xmm0, qword [0x1011fee8]
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 [0x11500b88]
subss xmm0, dword [0x1011fd88]
movss dword [esp], xmm0
push 0x7a58
call eax
movss xmm0, dword [0x11500b8c]
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 [0x10120158]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movss xmm0, dword [0x11500b88]
subss xmm0, dword [0x1011fd88]
movss dword [esp], xmm0
push 0x7a59
call eax
add esp, 0x30
mov ecx, 0x101e2dc0
push 0x5f
call fcn.10047dc0
push eax
cvttss2si eax, dword [0x11500b8c]
push 3
push 0xbe
inc eax
push eax
cvttss2si eax, dword [0x11500b88]
push eax
push 0xff19bdff
push 0x102de7a0
call fcn.10087460
add esp, 0x1c
mov ecx, 0x101e2dc0
push 0x60
call fcn.10047dc0
push eax
cvttss2si eax, dword [0x11500b8c]
push 3
push 0xbe
add eax, 0x64
push eax
cvttss2si eax, dword [0x11500b88]
push eax
push 0xff19bdff
push 0x102de7a0
call fcn.10087460
add esp, 0x1c
cmp dword [0x11500c74], 1
jne 0x1002164d
call fcn.10021e70
push 0x67
mov ecx, 0x101e2dc0
call fcn.10047dc0
movss xmm0, dword [0x11500b8c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0xbe
addsd xmm0, qword [0x101200e8]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x11500b88]
push eax
push 0xff19bdff
push 0x102de7a0
call fcn.10087460
movss xmm0, dword [0x11500b8c]
add esp, 0x1c
cvtps2pd xmm0, xmm0
push 0x19
push 0x6e
addsd xmm0, qword [0x10120118]
cvttsd2si eax, xmm0
movss xmm0, dword [0x11500b88]
cvtps2pd xmm0, xmm0
push eax
addsd xmm0, qword [0x1011fef8]
cvttsd2si eax, xmm0
push eax
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1002156a
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 0x1002156a
call esi
sub eax, dword [0x11500c70]
cmp eax, 0x1f4
jb 0x1002154e
call esi
mov dword [ebp - 0x28], 0xf304c1
lea ecx, [ebp - 0x28]
mov edx, 4
mov dword [0x11500c70], eax
mov byte [ebp - 0x25], 0xff
call fcn.100e16c0
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call ebx
movss xmm0, dword [0x11500b8c]
mov eax, 0x637c60
cvtps2pd xmm0, xmm0
push 0
push 1
push 1
sub esp, 0x20
addsd xmm0, qword [0x10120118]
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 [0x11500b88]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x1011fef8]
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, 0x101e2dc0
call fcn.10047dc0
movss xmm0, dword [0x11500b8c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0x6e
addsd xmm0, qword [0x10120140]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x11500b88]
add eax, 0x28
push eax
push 0xffffffffffffffff
jmp 0x10021a7a
call fcn.10021ac0
cmp dword [0x11500bb8], 0
mov ecx, 0x101e2dc0
jle 0x100216f5
push 0x61
call fcn.10047dc0
movss xmm0, dword [0x11500b8c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0x4b
addsd xmm0, qword [0x101200d0]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x11500b88]
add eax, 0x3a
push eax
push 0xff19bdff
push 0x102de7a0
call fcn.10087460
movss xmm0, dword [0x11500b8c]
add esp, 0x1c
cvtps2pd xmm0, xmm0
push 0x11500bbc
push dword [0x11500bb8]
addsd xmm0, qword [0x101200e8]
push str._d___s_
push 3
push 0x4b
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x11500b88]
add eax, 0x3a
push eax
push 0xff8be100
push 0x102de7a0
call fcn.10087460
add esp, 0x24
jmp 0x1002177c
push 0x66
call fcn.10047dc0
movss xmm0, dword [0x11500b8c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0x4b
addsd xmm0, qword [0x101200d0]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x11500b88]
add eax, 0x3a
push eax
push 0xff19bdff
push 0x102de7a0
call fcn.10087460
movss xmm0, dword [0x11500b8c]
add esp, 0x1c
cvtps2pd xmm0, xmm0
push dword [0x11500bb0]
addsd xmm0, qword [0x101200e8]
push 0x1011c3a0
push 3
push 0x4b
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x11500b88]
add eax, 0x3a
push eax
push 0xff8be100
push 0x102de7a0
call fcn.10087460
add esp, 0x20
movss xmm0, dword [0x11500b8c]
cvtps2pd xmm0, xmm0
push 0xf
push 0x4b
addsd xmm0, qword [0x10120118]
cvttsd2si eax, xmm0
movss xmm0, dword [0x11500b88]
cvtps2pd xmm0, xmm0
push eax
addsd xmm0, qword [0x1011ff40]
cvttsd2si eax, xmm0
push eax
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1002184d
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 0x1002184d
call esi
sub eax, dword [0x11500c70]
cmp eax, 0x12c
jb 0x10021831
call esi
mov ecx, dword [0x11500bb8]
mov dword [0x11500c70], eax
xor eax, eax
mov dword [ebp - 0x2b], eax
mov word [ebp - 0x27], ax
mov byte [ebp - 0x25], al
mov eax, dword [0x11500bb0]
mov dword [ebp - 0x2c], 0xfef308c1
test ecx, ecx
jle 0x10021821
add eax, ecx
mov edx, 8
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x2c]
call fcn.100e16c0
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x3f800000
call ebx
movss xmm0, dword [0x11500b8c]
mov eax, 0x637c60
cvtps2pd xmm0, xmm0
push 0
push 1
push 1
sub esp, 0x20
addsd xmm0, qword [0x10120118]
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 [0x11500b88]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x1011ff40]
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 [0x11500bb4]
mov ecx, dword [0x11500bb8]
add eax, 0x61
mov esi, dword [0x11500bb0]
push eax
test ecx, ecx
jle 0x1002190f
add esi, ecx
mov ecx, 0x101e2dc0
call fcn.10047dc0
movss xmm0, dword [0x11500b8c]
movss xmm1, dword [0x11500b88]
cvtps2pd xmm0, xmm0
push esi
push eax
push 3
push 0x4b
addsd xmm0, qword [0x10120128]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, xmm1
add eax, 0x3a
push eax
push 0xffffffffffffffff
push 0x102de7a0
call fcn.10087460
add esp, 0x20
mov ecx, 0x101e2dc0
push 0x65
call fcn.10047dc0
movss xmm0, dword [0x11500b8c]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0xbe
addsd xmm0, qword [0x10120150]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x11500b88]
push eax
push 0xff19bdff
push 0x102de7a0
call fcn.10087460
mov edi, dword [0x11500bc8]
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 0x10021a31
mov eax, 0x2aaaaaab
mov ecx, 0x101e2dc0
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0x84
call fcn.10047dc0
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [sym.imp.USER32.dll_wsprintfA]
call eax
add esp, 0xc
jmp 0x10021a49
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 [0x11500b8c]
lea eax, [ebp - 0x24]
cvtps2pd xmm0, xmm0
push eax
push 3
push 0xbe
addsd xmm0, qword [0x10120168]
cvttsd2si eax, xmm0
push eax
cvttss2si eax, dword [0x11500b88]
push eax
push 0xff8be100
push 0x102de7a0
call fcn.10087460
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.100ee369
mov esp, ebp
pop ebp
ret