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

Disassembly:
push 0x60
mov eax, 0x1017c3d1
call fcn.1014d21b
mov esi, ecx
xor ebx, ebx
lea edi, [esi + 0x68]
lea eax, [ebp - 0x6c]
push eax
mov ecx, edi
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x18], edi
call fcn.100416f0
cmp dword [eax + 0x18], 0x10
jb 0x10106718
mov eax, dword [eax + 4]
jmp 0x1010671b
add eax, 4
push ebx
push 1
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x48], eax
call fcn.10001800
mov ecx, dword [esi + 0x39c]
lea edx, [ebp - 0x50]
push edx
mov dword [ebp - 0x4c], 3
mov eax, dword [ecx]
push edi
call dword [eax + 0x34]
mov dword [ebp - 0x10], ebx
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov byte [esi + 0x3e0], bl
lea ebx, [esi + 0x38]
mov dword [ebp - 0x14], eax
mov al, byte [ebx]
test al, al
je 0x10106aad
mov edi, dword [ebp + 8]
cmp byte [edi + 0x34], 0
jne 0x10106aad
cmp byte [esi + 0x3e0], 0
jne 0x10106aad
lea eax, [esi + 0x410]
push eax
lea ecx, [ebp - 0x2c]
call fcn.100010c0
and dword [esi + 0x3d8], 0
lea ecx, [ebp - 0x2c]
call fcn.100010e0
mov eax, dword [edi + 0x28]
or eax, dword [edi + 0x2c]
je 0x10106a93
cmp byte [edi + 0x35], 0
je 0x101067b1
push edi
mov ecx, esi
call fcn.10104a0e
lea eax, [esi + 0x4a4]
push eax
lea ecx, [ebp - 0x34]
call fcn.100010c0
mov eax, dword [edi + 0x10]
sub eax, dword [esi + 0x3d0]
mov ecx, dword [edi + 0x14]
sbb ecx, dword [esi + 0x3d4]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
lea ecx, [ebp - 0x34]
call fcn.100010e0
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
jmp 0x10106a4d
xor eax, eax
cmp dword [edi + 0xc], eax
jl 0x10106a84
jg 0x10106801
cmp dword [edi + 8], eax
jbe 0x10106a84
push eax
call fcn.101005a3
pop ecx
mov ecx, eax
call fcn.1010022a
push 1
mov dword [ebp + 8], eax
call fcn.101005a3
pop ecx
mov ecx, eax
call fcn.1010022a
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x10106832
test eax, eax
je 0x10106832
cmp ecx, eax
jae 0x10106838
jmp 0x10106836
cmp ecx, eax
jbe 0x10106838
mov eax, ecx
push eax
mov ecx, esi
call fcn.10104674
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [ebp - 0x1c], eax
lea eax, [esi + 0x480]
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp + 0xb], 0
call fcn.100010c0
mov ecx, dword [esi + 0x49c]
and dword [ebp - 4], 0
test ecx, ecx
je 0x10106877
mov eax, dword [ecx]
call dword [eax + 0x14]
test eax, eax
jne 0x10106877
mov byte [ebp + 0xb], 1
mov ecx, dword [esi + 0x4a0]
test ecx, ecx
je 0x1010688e
mov eax, dword [ecx]
call dword [eax + 0x14]
test eax, eax
jne 0x1010688e
mov byte [ebp + 0xb], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.100010e0
cmp byte [ebp + 0xb], 0
je 0x101068a8
mov ebx, dword [ebp - 0x1c]
jmp 0x10106a24
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
push 2
call dword [eax + 0xc]
test al, al
je 0x10106a08
lea eax, [esi + 0x4a4]
push eax
lea ecx, [ebp - 0x44]
call fcn.100010c0
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x101068d5
and dword [ebp + 8], ecx
jmp 0x101068dd
mov eax, dword [esi + 0x20]
sub eax, ecx
mov dword [ebp + 8], eax
lea ecx, [ebp - 0x44]
call fcn.100010e0
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0x10]
push eax
sub ecx, eax
push ecx
push dword [ebp + 8]
mov ecx, esi
call fcn.1010470d
test al, al
je 0x10106a74
lea eax, [esi + 0x4a4]
push eax
lea ecx, [ebp - 0x24]
call fcn.100010c0
push dword [edi + 8]
mov ecx, esi
mov dword [ebp - 4], 1
call fcn.10104956
test eax, eax
jne 0x1010693e
push 2
call dword [sym.imp.KERNEL32.DLL_Sleep]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.100010e0
jmp 0x10106a4a
mov ecx, dword [esi + 8]
mov ebx, dword [ecx]
lea ecx, [esi + 0x38]
push ecx
push eax
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 8]
lea ecx, [esi + 0x18]
push eax
add ebx, 4
call fcn.101047ea
mov ecx, dword [esi + 8]
push eax
call dword [ebx]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
mov ebx, eax
call fcn.100010e0
test ebx, ebx
jle 0x101069d4
mov al, byte [esi + 0x38]
test al, al
je 0x101069d4
cmp dword [esi + 0x520], 0
jne 0x1010698e
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [esi + 0x520], eax
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x39c]
sub eax, dword [edi + 8]
mov edx, dword [ecx]
add dword [ebp - 0x10], ebx
lea ecx, [eax + ebx - 1]
push ecx
mov ecx, dword [esi + 0x39c]
push eax
push dword [edi + 0x18]
push dword [ebp - 0x18]
call dword [edx + 0x38]
push ebx
push 0
call fcn.101005a3
pop ecx
mov ecx, eax
call fcn.101002c7
push ebx
push 1
call fcn.101005a3
pop ecx
mov ecx, eax
call fcn.101002c7
push edi
push ebx
mov ecx, esi
call fcn.10105be3
test al, al
je 0x10106a84
mov ebx, dword [ebp - 0x1c]
mov eax, ebx
sub eax, dword [ebp - 0x14]
cmp eax, 0x3e8
jb 0x10106a4a
push eax
push dword [ebp - 0x10]
mov ecx, esi
call fcn.10104afe
and dword [ebp - 0x10], 0
mov dword [ebp - 0x14], ebx
jmp 0x10106a4a
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 0x18]
test al, al
jne 0x10106a59
cmp byte [esi + 0x3e0], al
jne 0x10106a79
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ebx, eax
mov eax, ebx
sub eax, dword [ebp - 0x14]
cmp eax, 0x3e8
jb 0x10106a42
push eax
push dword [ebp - 0x10]
mov ecx, esi
call fcn.10104afe
and dword [ebp - 0x10], 0
mov dword [ebp - 0x14], ebx
push 1
call dword [sym.imp.KERNEL32.DLL_Sleep]
lea ebx, [esi + 0x38]
mov al, byte [ebx]
test al, al
jne 0x101067eb
jmp 0x10106a84
mov ecx, dword [esi + 0x39c]
inc dword [esi + 0x3ec]
mov edx, dword [ecx]
xor eax, eax
push eax
push 1
push eax
push eax
push dword [ebp - 0x18]
call dword [edx + 0x2c]
mov byte [ebx], 0
jmp 0x10106a84
mov ecx, esi
call fcn.10104bda
mov byte [edi + 0x34], 0
lea ebx, [esi + 0x38]
mov al, byte [ebx]
test al, al
jne 0x10106762
jmp 0x10106aad
mov esi, dword [esi + 0x39c]
mov edx, dword [esi]
push 1
xor eax, eax
push eax
push eax
push eax
push dword [ebp - 0x18]
mov ecx, esi
call dword [edx + 0x2c]
mov byte [ebx], 0
call fcn.1014d2f3
ret 4