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

Disassembly:
push 0x58
mov eax, 0x1017c3f4
call fcn.1014d21b
mov esi, ecx
xor ebx, ebx
lea edi, [esi + 0x68]
lea eax, [ebp - 0x64]
push eax
mov ecx, edi
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x14], edi
call fcn.100416f0
cmp dword [eax + 0x18], 0x10
jb 0x10106aea
mov eax, dword [eax + 4]
jmp 0x10106aed
add eax, 4
push ebx
push 1
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x40], eax
call fcn.10001800
mov ecx, dword [esi + 0x39c]
lea edx, [ebp - 0x48]
push edx
mov dword [ebp - 0x44], 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 - 0x18], eax
mov al, byte [ebx]
test al, al
je 0x10106e53
mov edi, dword [ebp + 8]
cmp byte [edi + 0x34], 0
jne 0x10106e53
cmp byte [esi + 0x3e0], 0
jne 0x10106e53
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 0x10106e39
mov eax, dword [edi + 0x10]
mov dword [edi + 8], eax
mov eax, dword [edi + 0x14]
mov dword [edi + 0xc], eax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
jmp 0x10106dc0
xor eax, eax
cmp dword [edi + 0xc], eax
jl 0x10106e2a
jg 0x10106ba2
cmp dword [edi + 8], eax
jbe 0x10106e2a
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 0x10106bd3
test eax, eax
je 0x10106bd3
cmp ecx, eax
jae 0x10106bd9
jmp 0x10106bd7
cmp ecx, eax
jbe 0x10106bd9
mov eax, ecx
push eax
mov ecx, esi
call fcn.10104674
xor eax, eax
lea ecx, [ebp - 0x1c]
push ecx
push eax
push eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
call fcn.101005a3
pop ecx
mov ecx, eax
call fcn.10100251
test al, al
jne 0x10106db5
lea eax, [ebp - 0x20]
push eax
push 0
push 1
call fcn.101005a3
pop ecx
mov ecx, eax
call fcn.10100251
test al, al
jne 0x10106db5
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
push 2
call dword [eax + 0xc]
test al, al
je 0x10106d75
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [ebp - 0x24], eax
lea eax, [esi + 0x4a4]
push eax
lea ecx, [ebp - 0x34]
call fcn.100010c0
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x10106c57
and dword [ebp + 8], eax
jmp 0x10106c5f
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov dword [ebp + 8], ecx
lea ecx, [ebp - 0x34]
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 0x10106e1a
lea eax, [esi + 0x4a4]
push eax
lea ecx, [ebp - 0x3c]
call fcn.100010c0
mov eax, dword [esi + 8]
mov ebx, dword [eax]
mov eax, dword [edi + 8]
and dword [ebp - 4], 0
lea ecx, [esi + 0x38]
push ecx
mov ecx, dword [edi + 0x10]
sub ecx, eax
push eax
push ecx
lea ecx, [esi + 0x18]
add ebx, 4
call fcn.101047ea
mov ecx, dword [esi + 8]
push eax
call dword [ebx]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
mov ebx, eax
call fcn.100010e0
test ebx, ebx
jle 0x10106d2e
mov al, byte [esi + 0x38]
test al, al
je 0x10106d2e
cmp dword [esi + 0x520], 0
jne 0x10106ce8
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 - 0x14]
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
xor eax, eax
cmp ebx, eax
je 0x10106dcc
cmp ebx, 0xffffffff
je 0x10106dea
push edi
push ebx
mov ecx, esi
call fcn.10105be3
test al, al
je 0x10106de4
mov ebx, dword [ebp - 0x24]
mov eax, ebx
sub eax, dword [ebp - 0x18]
cmp eax, 0x3e8
jb 0x10106dbd
push eax
push dword [ebp - 0x10]
mov ecx, esi
call fcn.10104afe
and dword [ebp - 0x10], 0
mov dword [ebp - 0x18], ebx
jmp 0x10106dbd
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 0x18]
test al, al
jne 0x10106dff
cmp byte [esi + 0x3e0], al
jne 0x10106e1f
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ebx, eax
sub eax, dword [ebp - 0x18]
cmp eax, 0x3e8
jb 0x10106db1
push eax
push dword [ebp - 0x10]
mov ecx, esi
call fcn.10104afe
and dword [ebp - 0x10], 0
mov dword [ebp - 0x18], ebx
push 1
jmp 0x10106db7
push 2
call dword [sym.imp.KERNEL32.DLL_Sleep]
lea ebx, [esi + 0x38]
mov al, byte [ebx]
test al, al
jne 0x10106b8c
jmp 0x10106e2a
mov ecx, dword [esi + 0x39c]
mov eax, dword [ecx]
push 1
push dword [edi + 0x18]
push dword [edi + 4]
push dword [edi]
push dword [ebp - 0x14]
call dword [eax + 0x2c]
mov byte [esi + 0x38], 0
jmp 0x10106e2a
mov ecx, dword [esi + 0x39c]
mov edx, dword [ecx]
push eax
push 1
push eax
push eax
push dword [ebp - 0x14]
call dword [edx + 0x2c]
jmp 0x10106de4
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 - 0x14]
call dword [edx + 0x2c]
mov byte [ebx], 0
jmp 0x10106e2a
mov ecx, esi
call fcn.10104bda
mov byte [edi + 0x34], 0
lea ebx, [esi + 0x38]
mov al, byte [ebx]
test al, al
jne 0x10106b34
jmp 0x10106e53
mov esi, dword [esi + 0x39c]
mov edx, dword [esi]
push 1
xor eax, eax
push eax
push eax
push eax
push dword [ebp - 0x14]
mov ecx, esi
call dword [edx + 0x2c]
mov byte [ebx], 0
call fcn.1014d2f3
ret 4