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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
mov ebx, ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.008f8604
test al, al
je 0x8f8d37
xor edx, edx
push ebp
push 0x8f8d2d
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [ebp - 5], 0
je 0x8f8c68
mov eax, dword [ebp - 4]
call fcn.008f98d0
test bl, bl
je 0x8f8984
xor eax, eax
push ebp
push 0x8f897a
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0xd]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
mov eax, dword [eax + 0x48]
sar eax, 1
jns 0x8f8941
adc eax, 0
xor edx, edx
call fcn.0041f9dc
lea ecx, [ebp - 0x18]
lea edx, [ebp - 0xd]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
call fcn.004587b8
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xd], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 9], eax
lea eax, [ebp - 0xd]
call fcn.008aeb98
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x8f8984
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
cmp byte [eax + 0x614], 0
jne 0x8f89ec
xor edx, edx
push ebp
push 0x8f89e2
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, dword [eax + 0x2f4]
mov eax, dword [ebp - 4]
call fcn.0092c324
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
mov dl, 1
call fcn.004a24d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov byte [eax + 0x614], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x8f89ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
xor edx, edx
call fcn.008c9e8c
call sub.kernel32.dll_GetTickCount
xor edx, edx
mov ecx, dword [0x98a548]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x7d8]
mov dword [ecx + 0xa78], eax
mov dword [ecx + 0xa7c], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xea4]
mov ebx, dword [ecx + 0x2f0]
mov eax, dword [ebx + 0x48]
mov esi, dword [ecx + 0x48]
sub eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x8f8a47
mov edx, esi
mov eax, ebx
call fcn.00458434
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f0]
xor edx, edx
call fcn.0045840c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f0]
call fcn.00458f0c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov ebx, dword [eax + 0x30c]
cmp dword [ebx + 0x40], 0
jl 0x8f8a9b
mov eax, 0x12c
call fcn.008ae474
mov edx, eax
neg edx
mov eax, ebx
call fcn.004583e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x50c]
mov edx, dword [eax + 0x48]
inc edx
call fcn.00458434
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x50c]
mov edx, dword [eax + 0x48]
dec edx
call fcn.00458434
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
cmp dword [eax + 0x618], 0
setne dl
call fcn.008ce138
xor eax, eax
push ebp
push 0x8f8c39
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006518c4
test eax, eax
je 0x8f8c1b
xor eax, eax
push ebp
push 0x8f8c11
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006518c4
lea edx, [ebp - 0x18]
call fcn.0049e8bc
mov ebx, dword [ebp - 0x18]
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.004a1fb4
cmp ebx, dword [ebp - 0x20]
jl 0x8f8ba5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006518c4
lea edx, [ebp - 0x28]
call fcn.0049e8bc
mov ebx, dword [ebp - 0x28]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.004a1fb4
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xea4]
mov edx, dword [edx + 0x2f4]
add eax, dword [edx + 0x48]
cmp ebx, eax
jle 0x8f8bec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006518c4
call fcn.0049e8a0
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.008f8744
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006519b0
pop edx
call fcn.00651470
xor edx, edx
call fcn.0049e36c
jmp 0x8f8c07
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.006518c4
xor edx, edx
call fcn.0049e36c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x8f8c1b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f4]
call fcn.008b54a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x8f8c43
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
cmp dword [eax + 0x61c], 0
je 0x8f8d23
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.008faaa8
jmp 0x8f8d23
test bl, bl
je 0x8f8cdb
xor eax, eax
push ebp
push 0x8f8cd1
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0xd]
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x50c]
mov edx, dword [ebx + 0x4c]
sar edx, 1
jns 0x8f8c90
adc edx, 0
mov eax, dword [ebx + 0x48]
sar eax, 1
jns 0x8f8c9a
adc eax, 0
call fcn.0041f9dc
lea ecx, [ebp - 0x18]
lea edx, [ebp - 0xd]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
call fcn.004587b8
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xd], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 9], eax
lea eax, [ebp - 0xd]
call fcn.008aeb98
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x8f8cdb
mov eax, 0x190
call fcn.008ae474
mov edx, eax
neg edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
mov eax, dword [eax + 0x2f0]
call fcn.0045840c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xea4]
xor edx, edx
call fcn.008ce138
call sub.kernel32.dll_GetTickCount
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x10b8], eax
mov dword [ecx + 0x10bc], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x8f8d37
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret