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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x100fa040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
call fcn.10070e40
test al, al
jne 0x1001bd66
call fcn.10071370
test al, al
jne 0x1001bd66
push 0x2b
mov edi, 0x861110
call edi
mov esi, 0x85ec20
mov ecx, eax
call esi
test al, al
jne 0x1001bd66
push 0x2d
call edi
mov ecx, eax
call esi
test al, al
jne 0x1001bd66
mov eax, dword [0xe61e18]
cmp eax, 0x1e
je 0x1001bd66
cmp eax, 0x22
je 0x1001bd66
cmp eax, 0x41
jl 0x1001a1ca
cmp eax, 0x44
jle 0x1001bd66
cmp eax, 0x45
jl 0x1001a1cf
cmp eax, 0x48
jle 0x1001bd66
cmp eax, 0x2d
jl 0x1001a1d8
cmp eax, 0x32
jle 0x1001bd66
cmp eax, 0x12
jl 0x1001a1f8
cmp eax, 0x17
jle 0x1001bd66
cmp eax, 0x35
je 0x1001bd66
cmp eax, 0x27
je 0x1001bd66
mov ecx, dword [0x102c724c]
lea eax, [ecx - 1]
cmp eax, 2
ja 0x1001a225
push 0x21
call edi
mov ecx, eax
call esi
test al, al
je 0x1001a21f
cmp byte [0x1088da98], 0
je 0x1001bd66
mov ecx, dword [0x102c724c]
test ecx, ecx
je 0x1001a231
lea eax, [ecx - 5]
cmp eax, 1
ja 0x1001a246
call edi
mov edx, 0x861200
mov ecx, eax
call edx
cmp byte [eax + 0x40], 0
jne 0x1001bd66
cmp dword [0x107e7d48], 0
je 0x1001bd66
cmp dword [0x107e7d4c], 0
je 0x1001bd66
cmp dword [0x10109c50], 0
mov edi, 0x790b10
mov ebx, dword [sym.imp.OPENGL32.dll_glColor3f]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x1001af5e
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call ebx
push 0xf
push 0x3c
push dword [0x10109c5c]
push dword [0x10109c58]
call edi
add esp, 0x10
cmp al, 1
jne 0x1001b3aa
xor ecx, ecx
cmp dword [0x10109b7c], ecx
setne cl
add ecx, 7
cmp dword [0x10109b80], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109b84], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109b94], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109b9c], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109ba0], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109ba4], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109ba8], 0
lea edx, [ecx + 1]
cmove edx, ecx
inc edx
cmp dword [0x10109bac], 0
lea eax, [edx + 3]
cmove eax, edx
cmp dword [0x10109bb0], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109bb4], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109bb8], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109bbc], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109bc0], 0
mov ecx, 1
lea esi, [eax + 1]
cmove esi, eax
mov eax, dword [0x102c724c]
add eax, 0xfffffffb
lea edx, [esi + 2]
lea edx, [edx + edx*4]
add edx, edx
cmp ecx, eax
sbb ebx, ebx
and ebx, 0x28
add ebx, 0x14
cmp word [0x10109bc8], 0
jl 0x1001a39c
add edx, 0xb
inc esi
movzx eax, word [0x10109bca]
lea ecx, [edx + 0xb]
test ax, ax
movzx eax, word [0x10109bcc]
push 1
cmovs ecx, edx
lea edx, [esi + 1]
cmovs edx, esi
test ax, ax
movzx eax, word [0x10109bce]
lea esi, [ecx + 0xb]
cmovs esi, ecx
lea edi, [edx + 1]
cmovs edi, edx
test ax, ax
movzx eax, word [0x10109bd0]
lea edx, [esi + 0xb]
cmovs edx, esi
lea ecx, [edi + 1]
cmovs ecx, edi
test ax, ax
mov eax, 0x635fd0
lea edi, [edx + 0xb]
lea esi, [ecx + 1]
cmovs edi, edx
cmovs esi, ecx
mov dword [ebp - 0x20], edi
call eax
mov eax, dword [sym.imp.OPENGL32.dll_glColor4f]
mov dword [esp], 0x3f4ccccd
sub esp, 0xc
mov dword [esp + 8], 0x3f000000
mov dword [esp + 4], 0x3f000000
mov dword [esp], 0x3f000000
call eax
mov eax, dword [0x10109c5c]
sub eax, edi
movd xmm1, ebx
sub eax, 3
push 0
sub esp, 0x14
cvtdq2ps xmm1, xmm1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3f800000
movd xmm0, eax
mov eax, 0x6378a0
cvtdq2ps xmm0, xmm0
mov dword [esp + 8], 0x42e80000
movss dword [esp + 4], xmm0
movd xmm0, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
subss xmm0, xmm1
subss xmm0, dword [0x100f150c]
movss dword [esp], xmm0
call eax
mov eax, dword [0x10109c5c]
add esp, 0x18
imul esi, esi, 0xb
sub eax, edi
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
push 0
sub esp, 0x14
sub eax, 3
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x10], 0
movss dword [ebp - 0x18], xmm0
addss xmm0, dword [0x100f1878]
movss dword [esp + 0xc], xmm0
movss dword [ebp - 0x1c], xmm0
movd xmm0, eax
mov eax, 0x6378a0
cvtdq2ps xmm0, xmm0
mov dword [esp + 8], 0x3f800000
movss dword [esp + 4], xmm0
movd xmm0, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
subss xmm0, xmm1
subss xmm0, dword [0x100f150c]
movss dword [esp], xmm0
call eax
movss xmm0, dword [ebp - 0x1c]
add esp, 0x18
movd xmm1, dword [0x10109c5c]
mov eax, 0x6378a0
cvtdq2ps xmm1, xmm1
push 0
sub esp, 0x14
mov dword [esp + 0x10], 0
movss dword [esp + 0xc], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov dword [esp + 8], 0x3f800000
subss xmm1, xmm0
movd xmm0, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
subss xmm1, dword [0x100f1878]
movss dword [esp + 4], xmm1
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
subss xmm0, xmm1
subss xmm0, dword [0x100f150c]
addss xmm0, dword [0x100f1e4c]
addss xmm0, dword [0x100f150c]
movss dword [esp], xmm0
call eax
add esp, 0x18
movd xmm1, ebx
sub esi, edi
mov eax, 0x6378a0
add esi, dword [0x10109c5c]
cvtdq2ps xmm1, xmm1
push 0
sub esp, 0x14
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x42ea0000
movss dword [esp + 4], xmm0
movd xmm0, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
subss xmm0, xmm1
subss xmm0, dword [0x100f150c]
movss dword [esp], xmm0
call eax
mov esi, dword [sym.imp.OPENGL32.dll_glColor4f]
add esp, 8
mov dword [esp + 0xc], 0x3f666666
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call esi
movss xmm0, dword [ebp - 0x18]
addss xmm0, dword [0x100f1740]
mov eax, dword [0x10109c5c]
sub eax, edi
push 0
sub esp, 0x14
sub eax, 2
mov dword [esp + 0x10], 0
movss dword [esp + 0xc], xmm0
movd xmm0, eax
mov eax, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
sub eax, ebx
mov dword [esp + 8], 0x42e60000
movss dword [esp + 4], xmm0
movd xmm0, eax
mov eax, 0x6378a0
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call eax
mov eax, 0x636070
call eax
add esp, 8
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call esi
push 0
mov eax, 0x635fd0
call eax
mov dword [esp], 0x3f800000
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call esi
cmp dword [0x10109b98], 0
mov ecx, 0x101b3888
je 0x1001a6d0
push 0x121
jmp 0x1001a6d5
push 0x120
call fcn.10042330
push 0x11d
mov ecx, 0x101b3888
mov esi, eax
call fcn.10042330
mov ecx, dword [0x10109c58]
mov edx, eax
mov eax, dword [0x10109c5c]
sub ecx, ebx
push esi
push edx
push str._s___s_
push 3
sub eax, edi
push 0x73
add eax, 2
push eax
push ecx
push 0xff19bdff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov ecx, 0x101b3888
push dword [0x10109b90]
push dword [0x10109b88]
push 0x125
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, edi
push 0x73
add eax, 0x14
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov esi, 0x1f
xor edi, edi
nop word [eax + eax]
movsx eax, word [edi*2 + 0x10109bc8]
mov dword [ebp - 0x18], eax
test eax, eax
js 0x1001a84e
movsx eax, byte [edi + 0x10109bd2]
push eax
lea eax, [ebp - 0x10]
push 0x100ee3ec
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov al, byte [edi + 0x10109bd2]
add esp, 0xc
mov byte [ebp - 0x11], al
movzx eax, al
push 0
push eax
push dword [ebp - 0x18]
call fcn.10087ca0
lea ecx, [esi + 0xb]
mov dword [ebp - 0x1c], ecx
test eax, eax
jne 0x1001a811
cmp byte [ebp - 0x11], 0
lea eax, [ebp - 0x10]
mov ecx, 0x100ed2ab
cmovle eax, ecx
push eax
imul eax, dword [ebp - 0x18], 0x54
add eax, dword [0x8128ac0]
push eax
movzx eax, byte [edi + 0x10109bd7]
push eax
mov eax, dword [0x10109c5c]
sub eax, dword [ebp - 0x20]
push str._dx__s_s
push 3
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x28
jmp 0x1001a84b
add eax, 2
push eax
movzx eax, byte [edi + 0x10109bd7]
push eax
mov eax, dword [0x10109c5c]
sub eax, dword [ebp - 0x20]
push str._dx__s
push 3
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov esi, dword [ebp - 0x1c]
inc edi
cmp edi, 5
jl 0x1001a770
cmp dword [0x10109bac], 0
jle 0x1001a8f6
push 0x11d
mov ecx, 0x101b3888
add esi, 9
call fcn.10042330
push eax
push 0x129
mov ecx, 0x101b3888
call fcn.10042330
mov edi, dword [ebp - 0x20]
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff8be100
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x20
mov ecx, 0x101b3888
add esi, 0xb
push dword [0x10109bac]
push 0x12a
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x20
add esi, 0xb
jmp 0x1001a8f9
mov edi, dword [ebp - 0x20]
push 0x122
mov ecx, 0x101b3888
add esi, 9
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff8be100
push 0x102a22b0
call fcn.1006c9b0
mov eax, dword [0x10109bc0]
add esp, 0x1c
add eax, dword [0x107e7b6c]
mov ecx, 0x101b3888
add esi, 0xc
push dword [0x10109b94]
push eax
push 0x11d
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push str._s___d__d_
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
mov eax, dword [0x10109bb0]
add esp, 0x28
add esi, 0xb
test eax, eax
jle 0x1001a9ca
push eax
push 0x5d
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 0x100ee1fc
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
add esi, 0xb
mov eax, dword [0x10109bb4]
test eax, eax
jle 0x1001aa14
push eax
push 0xf5
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 0x100ee410
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff00ffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
add esi, 0xb
mov eax, dword [0x10109bb8]
test eax, eax
jle 0x1001aa5e
push eax
push 0xf6
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 0x100ee410
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff00ffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
add esi, 0xb
mov eax, dword [0x10109bbc]
test eax, eax
jle 0x1001aaa8
push eax
push 0xf7
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 0x100ee410
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff00ffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
add esi, 0xb
cmp dword [0x10109b80], 0
jle 0x1001aaec
push 0x127
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
add esi, 0xc
cmp dword [0x10109b84], 0
jle 0x1001ab30
push 0x128
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
add esi, 0xc
push 0xbd
mov ecx, 0x101b3888
add esi, 9
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xff8be100
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
mov ecx, 0x101b3888
add esi, 0xc
push dword [0x10109b8c]
push 0xef
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x20
mov ecx, 0x8128adc
mov eax, 0x402320
add esi, 0xb
push 0xa6
call eax
cmp dword [0x10109b98], 0
je 0x1001ad3a
push 0xa6
mov ecx, 0x8128adc
mov eax, 0x402320
call eax
push dword [0x10109b98]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov ecx, 0x8128adc
mov eax, 0x402320
add esi, 0xb
push 0xa7
call eax
push dword [0x10109b9c]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov ecx, 0x8128adc
mov eax, 0x402320
add esi, 0xb
push 0xa9
call eax
push dword [0x10109ba0]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov ecx, 0x8128adc
mov eax, 0x402320
add esi, 0xb
push 0xa8
call eax
push dword [0x10109ba4]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
mov eax, dword [0x107e7d48]
add esp, 0x24
movzx eax, byte [eax + 0xb]
push eax
mov eax, 0x405230
call eax
add esp, 4
cmp al, 4
jne 0x1001ad72
push 0x6ca
mov ecx, 0x8128adc
mov eax, 0x402320
call eax
push dword [0x10109ba8]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
sub eax, edi
push 3
add eax, 0xb
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
jmp 0x1001ad72
push 0x120
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, edi
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
sub eax, ebx
push eax
push 0xffcc6699
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
mov ebx, dword [sym.imp.OPENGL32.dll_glColor3f]
sub esp, 0xc
mov dword [esp + 8], 0x3f333333
mov dword [esp + 4], 0x3f4ccccd
mov dword [esp], 0x3f666666
call ebx
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1001ae82
push 9
mov edi, 0x861110
call edi
mov ecx, eax
mov esi, 0x85ec20
call esi
test al, al
jne 0x1001ae82
push 8
call edi
mov ecx, eax
call esi
test al, al
jne 0x1001ae82
push 0xc
call edi
mov ecx, eax
call esi
test al, al
jne 0x1001ae82
push 7
call edi
mov ecx, eax
call esi
test al, al
jne 0x1001ae82
push 0xe
call edi
mov ecx, eax
call esi
test al, al
jne 0x1001ae82
push 0xf
call edi
mov ecx, eax
call esi
test al, al
jne 0x1001ae82
push 0x3c
call edi
mov ecx, eax
call esi
test al, al
jne 0x1001ae82
push 0x3d
call edi
mov ecx, eax
call esi
test al, al
jne 0x1001ae82
mov ecx, 0x102a22b0
call fcn.10071a40
sub esp, 0xc
mov byte [0x102a527d], 1
mov dword [0xe8cb3c], 1
mov dword [0x10109c3c], 1
mov dword [0x10109c4c], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [0x102a5328], 0xbf800000
mov dword [0x102a52c8], 0xbf800000
mov dword [esp], 0x3f800000
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, 0x790b10
movd xmm0, dword [0x10109c5c]
mov eax, 0x637c60
push 0
push 1
push 1
sub esp, 0x20
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x18], 0x3f5eb852
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41600000
mov dword [esp + 8], 0x42a00000
movss dword [esp + 4], xmm0
movd xmm0, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push 0xf08e
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 0x11d
mov ecx, 0x101b3888
call fcn.10042330
movd xmm0, dword [0x10109c5c]
cvtdq2pd xmm0, xmm0
push eax
push 3
push 0x50
addsd xmm0, qword [0x100f1768]
cvttsd2si eax, xmm0
push eax
push dword [0x10109c58]
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
cmp dword [0x10109c54], 0
je 0x1001bd66
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call ebx
push 0xf
push 0x3c
push dword [0x10109c64]
push dword [0x10109c60]
call edi
add esp, 0x10
cmp al, 1
jne 0x1001bc1f
xor ecx, ecx
cmp dword [0x10109bdc], ecx
push 1
setne cl
add ecx, 7
cmp dword [0x10109be0], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109be4], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109bf4], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109bfc], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109c00], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109c04], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109c08], 0
lea edx, [ecx + 1]
cmove edx, ecx
inc edx
cmp dword [0x10109c0c], 0
lea eax, [edx + 3]
cmove eax, edx
cmp dword [0x10109c10], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109c14], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109c18], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109c1c], 0
lea eax, [ecx + 1]
cmove eax, ecx
cmp dword [0x10109c20], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp dword [0x10109c24], 0
lea edi, [ecx + 1]
cmove edi, ecx
movzx ecx, word [0x10109c28]
lea eax, [edi + 2]
lea eax, [eax + eax*4]
add eax, eax
lea esi, [edi + 1]
test cx, cx
cmovs esi, edi
lea edx, [eax + 0xb]
cmovs edx, eax
movzx eax, word [0x10109c2a]
test ax, ax
movzx eax, word [0x10109c2c]
lea ecx, [edx + 0xb]
cmovs ecx, edx
lea edx, [esi + 1]
cmovs edx, esi
test ax, ax
movzx eax, word [0x10109c2e]
lea esi, [ecx + 0xb]
cmovs esi, ecx
lea edi, [edx + 1]
cmovs edi, edx
test ax, ax
movzx eax, word [0x10109c30]
lea edx, [esi + 0xb]
cmovs edx, esi
lea ecx, [edi + 1]
cmovs ecx, edi
test ax, ax
lea ebx, [edx + 0xb]
lea esi, [ecx + 1]
cmovs ebx, edx
cmovs esi, ecx
mov eax, 0x635fd0
call eax
mov edi, dword [sym.imp.OPENGL32.dll_glColor4f]
mov dword [esp], 0x3f4ccccd
sub esp, 0xc
mov dword [esp + 8], 0x3f000000
mov dword [esp + 4], 0x3f000000
mov dword [esp], 0x3f000000
call edi
mov eax, dword [0x10109c5c]
sub eax, ebx
sub eax, 3
push 0
sub esp, 0x14
movd xmm0, eax
mov eax, 0x6378a0
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x42e80000
movss dword [esp + 4], xmm0
movd xmm0, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x100f1d90]
subss xmm0, dword [0x100f150c]
movss dword [esp], xmm0
call eax
mov eax, dword [0x10109c5c]
add esp, 0x18
imul esi, esi, 0xb
sub eax, ebx
sub eax, 3
push 0
sub esp, 0x14
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x10], 0
movss dword [ebp - 0x18], xmm0
addss xmm0, dword [0x100f1878]
movss dword [esp + 0xc], xmm0
movss dword [ebp - 0x1c], xmm0
movd xmm0, eax
mov eax, 0x6378a0
cvtdq2ps xmm0, xmm0
mov dword [esp + 8], 0x3f800000
movss dword [esp + 4], xmm0
movd xmm0, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x100f1d90]
subss xmm0, dword [0x100f150c]
movss dword [esp], xmm0
call eax
movss xmm0, dword [ebp - 0x1c]
add esp, 0x18
movd xmm1, dword [0x10109c5c]
mov eax, 0x6378a0
cvtdq2ps xmm1, xmm1
push 0
sub esp, 0x14
mov dword [esp + 0x10], 0
movss dword [esp + 0xc], xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mov dword [esp + 8], 0x3f800000
subss xmm1, xmm0
movd xmm0, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
subss xmm1, dword [0x100f1878]
subss xmm0, dword [0x100f1d90]
movss dword [esp + 4], xmm1
subss xmm0, dword [0x100f150c]
addss xmm0, dword [0x100f1e4c]
addss xmm0, dword [0x100f150c]
movss dword [esp], xmm0
call eax
add esp, 0x18
push 0
sub esp, 0x14
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x42ea0000
sub esi, ebx
add esi, dword [0x10109c5c]
movd xmm0, esi
mov esi, 0x6378a0
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movd xmm0, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x100f1d90]
subss xmm0, dword [0x100f150c]
movss dword [esp], xmm0
call esi
add esp, 8
mov dword [esp + 0xc], 0x3f666666
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
movss xmm0, dword [ebp - 0x18]
addss xmm0, dword [0x100f1740]
mov eax, dword [0x10109c5c]
sub eax, ebx
push 0
sub esp, 0x14
sub eax, 2
mov dword [esp + 0x10], 0
movss dword [esp + 0xc], xmm0
movd xmm0, eax
mov eax, dword [0x10109c58]
cvtdq2ps xmm0, xmm0
add eax, 0xffffffc4
mov dword [esp + 8], 0x42e60000
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call esi
mov eax, 0x636070
call eax
add esp, 8
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call edi
push 0
mov eax, 0x635fd0
call eax
mov dword [esp], 0x3f800000
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call edi
cmp dword [0x10109bf8], 0
mov ecx, 0x101b3888
je 0x1001b425
push 0x121
jmp 0x1001b42a
mov edx, dword [0x107e7d48]
movsx eax, word [0x87935d8]
movzx ecx, word [edx + 0xe]
add ecx, eax
cmp ecx, dword [0x10109b88]
jl 0x1001ae8d
mov eax, dword [edx + 0x1744]
cmp eax, dword [0x10109b90]
jl 0x1001ae8d
call esi
sub eax, dword [0x10109c68]
cmp eax, 0x1f4
jbe 0x1001ae8d
call esi
sub eax, dword [0x10109c68]
cmp eax, 0x3e8
jbe 0x1001b404
call esi
mov dword [0x10109c68], eax
sub esp, 0xc
mov dword [esp + 8], 0x3f333333
mov dword [esp + 4], 0x3f4ccccd
mov dword [esp], 0x3f666666
call ebx
jmp 0x1001ae8d
push 0x120
call fcn.10042330
push 0x11e
mov ecx, 0x101b3888
mov esi, eax
call fcn.10042330
mov ecx, dword [0x10109c58]
mov edx, eax
mov eax, dword [0x10109c5c]
add ecx, 0xffffffc4
push esi
push edx
push str._s___s_
push 3
sub eax, ebx
push 0x73
add eax, 2
push eax
push ecx
push 0xff19bdff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov ecx, 0x101b3888
push dword [0x10109bf0]
push dword [0x10109be8]
push 0x125
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, 0x14
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov esi, 0x1f
xor edi, edi
movsx eax, word [edi*2 + 0x10109c28]
mov dword [ebp - 0x1c], eax
test eax, eax
js 0x1001b59f
movsx eax, byte [edi + 0x10109c32]
push eax
lea eax, [ebp - 0x10]
push 0x100ee3ec
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov al, byte [edi + 0x10109c32]
add esp, 0xc
mov byte [ebp - 0x11], al
movzx eax, al
push 0
push eax
push dword [ebp - 0x1c]
call fcn.10087ca0
lea ecx, [esi + 0xb]
mov dword [ebp - 0x18], ecx
test eax, eax
jne 0x1001b562
cmp byte [ebp - 0x11], 0
lea eax, [ebp - 0x10]
mov ecx, 0x100ed2ab
cmovle eax, ecx
push eax
imul eax, dword [ebp - 0x1c], 0x54
add eax, dword [0x8128ac0]
push eax
movzx eax, byte [edi + 0x10109c37]
push eax
mov eax, dword [0x10109c5c]
push str._dx__s_s
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x28
jmp 0x1001b59c
add eax, 2
push eax
movzx eax, byte [edi + 0x10109c37]
push eax
mov eax, dword [0x10109c5c]
push str._dx__s
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov esi, dword [ebp - 0x18]
inc edi
cmp edi, 5
jl 0x1001b4c1
mov eax, dword [0x10109c24]
test eax, eax
jle 0x1001b5ef
push eax
push 0x82
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x20
add esi, 0xb
cmp dword [0x10109c0c], 0
jle 0x1001b68a
push 0x11e
mov ecx, 0x101b3888
add esi, 9
call fcn.10042330
push eax
push 0x129
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff8be100
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x20
mov ecx, 0x101b3888
add esi, 0xb
push dword [0x10109c0c]
push 0x12a
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x20
add esi, 0xb
push 0x122
mov ecx, 0x101b3888
add esi, 9
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff8be100
push 0x102a22b0
call fcn.1006c9b0
mov eax, dword [0x10109c20]
add esp, 0x1c
add eax, dword [0x107e7b68]
mov ecx, 0x101b3888
add esi, 0xc
push dword [0x10109bf4]
push eax
push 0x11e
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push str._s___d__d_
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
mov eax, dword [0x10109c10]
add esp, 0x28
add esi, 0xb
test eax, eax
jle 0x1001b75e
push eax
push 0x5d
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 0x100ee1fc
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
add esi, 0xb
mov eax, dword [0x10109c14]
test eax, eax
jle 0x1001b7a9
push eax
push 0xf5
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 0x100ee410
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff00ffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
add esi, 0xb
mov eax, dword [0x10109c18]
test eax, eax
jle 0x1001b7f4
push eax
push 0xf6
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 0x100ee410
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff00ffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
add esi, 0xb
mov eax, dword [0x10109c1c]
test eax, eax
jle 0x1001b83f
push eax
push 0xf7
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 0x100ee410
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff00ffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
add esi, 0xb
cmp dword [0x10109be0], 0
jle 0x1001b884
push 0x127
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
add esi, 0xc
cmp dword [0x10109be4], 0
jle 0x1001b8c9
push 0x128
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff0000e1
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
add esi, 0xc
push 0xbd
mov ecx, 0x101b3888
add esi, 9
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xff8be100
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
mov ecx, 0x101b3888
add esi, 0xc
push dword [0x10109bec]
push 0xef
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x20
mov ecx, 0x8128adc
mov edi, 0x402320
add esi, 0xb
push 0xa6
call edi
cmp dword [0x10109bf8], 0
je 0x1001bac5
push 0xa6
mov ecx, 0x8128adc
call edi
push dword [0x10109bf8]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov ecx, 0x8128adc
add esi, 0xb
push 0xa7
call edi
push dword [0x10109bfc]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov ecx, 0x8128adc
add esi, 0xb
push 0xa9
call edi
push dword [0x10109c00]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
mov ecx, 0x8128adc
add esi, 0xb
push 0xa8
call edi
push dword [0x10109c04]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
mov eax, dword [0x107e7d48]
add esp, 0x24
movzx eax, byte [eax + 0xb]
push eax
mov eax, 0x405230
call eax
add esp, 4
cmp al, 4
jne 0x1001bafe
push 0x6ca
mov ecx, 0x8128adc
call edi
push dword [0x10109c08]
push eax
mov eax, dword [0x10109c5c]
push str._s:__d
sub eax, ebx
push 3
add eax, 0xb
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x24
jmp 0x1001bafe
push 0x120
mov ecx, 0x101b3888
call fcn.10042330
push eax
mov eax, dword [0x10109c5c]
push 3
sub eax, ebx
push 0x73
add eax, esi
push eax
mov eax, dword [0x10109c58]
add eax, 0xffffffc4
push eax
push 0xffcc6699
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
mov esi, dword [sym.imp.OPENGL32.dll_glColor3f]
sub esp, 0xc
mov dword [esp + 8], 0x3f333333
mov dword [esp + 4], 0x3f4ccccd
mov dword [esp], 0x3f666666
call esi
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1001bc96
push 9
mov edi, 0x861110
call edi
mov ecx, eax
mov ebx, 0x85ec20
call ebx
test al, al
jne 0x1001bc96
push 8
call edi
mov ecx, eax
call ebx
test al, al
jne 0x1001bc96
push 0xc
call edi
mov ecx, eax
call ebx
test al, al
jne 0x1001bc96
push 7
call edi
mov ecx, eax
call ebx
test al, al
jne 0x1001bc96
push 0xe
call edi
mov ecx, eax
call ebx
test al, al
jne 0x1001bc96
push 0xf
call edi
mov ecx, eax
call ebx
test al, al
jne 0x1001bc96
push 0x3c
call edi
mov ecx, eax
call ebx
test al, al
jne 0x1001bc96
push 0x3d
call edi
mov ecx, eax
call ebx
test al, al
jne 0x1001bc96
mov ecx, 0x102a22b0
call fcn.10071a40
sub esp, 0xc
mov byte [0x102a527d], 1
mov dword [0xe8cb3c], 1
mov dword [0x10109c3c], 2
mov dword [0x10109c4c], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [0x102a5328], 0xbf800000
mov dword [0x102a52c8], 0xbf800000
mov dword [esp], 0x3f800000
call esi
jmp 0x1001bc96
mov eax, dword [0x107e7b6c]
cmp eax, dword [0x10109c24]
jl 0x1001bc96
mov edx, dword [0x107e7d48]
movsx eax, word [0x87935d8]
movzx ecx, word [edx + 0xe]
add ecx, eax
cmp ecx, dword [0x10109be8]
jl 0x1001bc96
mov eax, dword [edx + 0x1744]
cmp eax, dword [0x10109bf0]
jl 0x1001bc96
call esi
sub eax, dword [0x10109c68]
cmp eax, 0x1f4
jbe 0x1001bc96
call esi
sub eax, dword [0x10109c68]
cmp eax, 0x3e8
jbe 0x1001bc7a
call esi
mov dword [0x10109c68], eax
sub esp, 0xc
mov dword [esp + 8], 0x3f333333
mov dword [esp + 4], 0x3f4ccccd
mov dword [esp], 0x3f666666
call ebx
movd xmm0, dword [0x10109c64]
mov eax, 0x637c60
push 0
push 1
push 1
sub esp, 0x20
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x18], 0x3f5eb852
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41600000
mov dword [esp + 8], 0x42a00000
movss dword [esp + 4], xmm0
movd xmm0, dword [0x10109c60]
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push 0xf08e
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 0x11e
mov ecx, 0x101b3888
call fcn.10042330
movd xmm0, dword [0x10109c64]
cvtdq2pd xmm0, xmm0
push eax
push 3
push 0x50
addsd xmm0, qword [0x100f1768]
cvttsd2si eax, xmm0
push eax
push dword [0x10109c60]
push 0xffffffffffffffff
push 0x102a22b0
call fcn.1006c9b0
add esp, 0x1c
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100c0a54
mov esp, ebp
pop ebp
ret