Function at 0x6990c8
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x6996ac
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x16], 0
mov eax, dword [0x6af72c]
mov eax, dword [eax]
call fcn.006048c4
test eax, eax
sete byte [ebp - 0x15]
xor eax, eax
push ebp
push 0x6995e2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x6af588]
mov eax, dword [eax]
call fcn.005eedf8
dec eax
test eax, eax
jl 0x6995d8
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 8], 0
xor eax, eax
push ebp
push 0x6995c2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x6af588]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
call fcn.005eee00
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x10], 0
je 0x6995a0
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x24], 0
je 0x69917c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6995cc
mov eax, dword [ebp - 0x10]
call fcn.006065b0
test al, al
je 0x699195
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6995cc
mov eax, dword [ebp - 0x10]
call fcn.00606598
test al, al
je 0x6991ae
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6995cc
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x6c], 0
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x6d], 0
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x6e], 0
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x6f], 0
mov eax, dword [ebp - 0x10]
fld qword [eax + 0x58]
fcomp dword [0x6996bc]
fnstsw ax
sahf
je 0x6992f2
xor eax, eax
push ebp
push 0x6992d3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x6afb20]
mov eax, dword [eax]
fld qword [eax + 0x290]
fmul dword [0x6996c0]
call fcn.00402cb0
mov ebx, eax
test ebx, ebx
jge 0x69920d
xor ebx, ebx
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x48], 0
je 0x699218
xor ebx, ebx
mov eax, ebx
cdq
push edx
push eax
call fcn.005c9a84
fstp qword [ebp - 0x24]
wait
call fcn.0040c100
fadd qword [ebp - 0x24]
add esp, 0xfffffff8
fstp qword [esp]
wait
push 0
mov edx, dword [0x6afa74]
mov edx, dword [edx]
mov cl, 1
mov eax, dword [ebp - 0x10]
call fcn.005ef6c4
mov eax, dword [ebp - 0x10]
fld qword [eax + 0x118]
fcomp dword [0x6996bc]
fnstsw ax
sahf
jbe 0x699264
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x6c], 1
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x64], 0
jle 0x6992c9
mov ebx, 0x1d
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x48], 0
je 0x69927d
xor ebx, ebx
mov eax, ebx
cdq
push edx
push eax
call fcn.005c9a84
fstp qword [ebp - 0x24]
wait
call fcn.0040c100
fadd qword [ebp - 0x24]
add esp, 0xfffffff8
fstp qword [esp]
wait
push 0
mov edx, dword [0x6afa74]
mov edx, dword [edx]
mov cl, 1
mov eax, dword [ebp - 0x10]
call fcn.005ef6c4
mov eax, dword [ebp - 0x10]
fld qword [eax + 0x118]
fcomp dword [0x6996bc]
fnstsw ax
sahf
jbe 0x6992c9
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x6e], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6992f2
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x60], 0
je 0x6993c4
xor eax, eax
push ebp
push 0x6993a5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x6afb20]
mov eax, dword [eax]
fld qword [eax + 0x298]
fmul dword [0x6996c0]
call fcn.00402cb0
mov ebx, eax
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x48], 0
je 0x699332
xor ebx, ebx
call fcn.0040c100
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 0x10]
call fcn.005f80b4
add ebx, eax
mov eax, dword [ebp - 0x10]
imul eax, dword [eax + 0x60], 0x3c
cmp ebx, eax
jl 0x69935a
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x6d], 1
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x68], 0
jle 0x69939b
mov ebx, 0x1d
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x48], 0
je 0x699373
xor ebx, ebx
call fcn.0040c100
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 0x10]
call fcn.005f80b4
add ebx, eax
mov eax, dword [ebp - 0x10]
imul eax, dword [eax + 0x60], 0x3c
cmp ebx, eax
jl 0x69939b
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x6f], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6993c4
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x6c], 0
jne 0x6993da
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x6d], 0
je 0x6994d7
xor eax, eax
push ebp
push 0x6994b8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0x14]
mov eax, dword [0x6af72c]
mov eax, dword [eax]
call fcn.0060483c
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x69949d
mov eax, dword [0x6af72c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc]
call fcn.00604710
mov dword [ebp - 0x14], eax
mov eax, dword [0x6afb20]
mov eax, dword [eax]
cmp byte [eax + 0x280], 0
je 0x69949d
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x6c], 0
je 0x699464
mov eax, dword [0x6afb20]
mov eax, dword [eax]
mov eax, dword [eax + 0x284]
call fcn.0040a1c8
test al, al
je 0x69949d
push 1
mov eax, dword [0x6afb20]
mov eax, dword [eax]
mov eax, dword [eax + 0x284]
call fcn.00404e4c
push eax
call sub.winmm.dll_sndPlaySoundA
jmp 0x69949d
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x6d], 0
je 0x69949d
mov eax, dword [0x6afb20]
mov eax, dword [eax]
mov eax, dword [eax + 0x288]
call fcn.0040a1c8
test al, al
je 0x69949d
push 1
mov eax, dword [0x6afb20]
mov eax, dword [eax]
mov eax, dword [eax + 0x288]
call fcn.00404e4c
push eax
call sub.winmm.dll_sndPlaySoundA
cmp dword [ebp - 0x14], 0
je 0x6994ae
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
call fcn.00604964
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6994d7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x57], 0
je 0x6995a0
xor eax, eax
push ebp
push 0x699581
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x6e], 0
je 0x699504
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x64], 0
jg 0x699516
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x6f], 0
je 0x699577
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x68], 0
jle 0x699577
xor eax, eax
push ebp
push 0x699558
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 0x10]
sub eax, dword [edx + 0x70]
cmp eax, 0xea60
jbe 0x69954e
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x70], eax
mov cl, 1
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.0069770c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x699577
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6995a0
cmp dword [ebp - 0x14], 0
jne 0x6995b8
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0x14]
mov eax, dword [0x6af72c]
mov eax, dword [eax]
call fcn.006047e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6995cc
inc dword [ebp - 8]
dec dword [ebp - 0x1c]
jne 0x69912e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6995ec
xor eax, eax
push ebp
push 0x699646
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [0x6af72c]
mov eax, dword [eax]
call fcn.006048c4
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 0
lea edx, [ebp - 0x24]
xor ecx, ecx
mov eax, 0x699754
call fcn.0040af08
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x28]
call fcn.00405254
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x604]
call fcn.004eca70
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x699650
cmp byte [ebp - 0x15], 0
je 0x699676
mov eax, dword [0x6af72c]
mov eax, dword [eax]
call fcn.006048c4
test eax, eax
jle 0x699676
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x604]
xor edx, edx
call fcn.004ec9dc
cmp byte [ebp - 0x16], 0
je 0x69968e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov si, 0xffeb
call fcn.00403c98
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6996b3
lea eax, [ebp - 0x2c]
call fcn.0040498c
lea eax, [ebp - 0x28]
call fcn.004050c0
ret