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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1118a7f8
mov eax, dword fs:[0]
push eax
sub esp, 0x110
push ebx
push esi
push edi
mov eax, dword [0x111ec774]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x111ee258], 0
jne 0x1110687a
cmp dword [0x111ee254], 0
jne 0x1110687a
cmp byte [0x111ee26c], 0
je 0x11106ab0
push 0x111b5ebc
call fcn.11147060
add esp, 4
call fcn.11106190
cmp byte [0x111ee26c], 0
je 0x1110689a
call fcn.111063a0
cmp dword [0x111ee254], 0
je 0x111068b0
cmp byte [0x111ee282], 0
jne 0x11106ab0
mov edi, dword [sym.imp.KeRneL32.DLl_GetTickCount]
xor ebx, ebx
call edi
mov esi, eax
push 0x111f160c
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], 0x111f160c
call dword [sym.imp.KeRneL32.DLl_EnterCriticalSection]
call edi
mov edi, eax
sub eax, esi
mov dword [ebp - 0x14], edi
cmp eax, 0x64
jb 0x111068ed
push eax
push 0x111b26d4
call fcn.11147060
add esp, 8
mov eax, dword [0x111f174c]
mov esi, dword [eax]
mov dword [ebp - 4], 0
cmp esi, eax
je 0x11106982
mov edi, dword [esi + 0x10]
cmp dword [edi + 0x60], 0
jne 0x1110691d
cmp dword [edi + 0x1c], 0
jne 0x1110691d
call fcn.11110130
cmp dword [edi + 0x1c], 0
je 0x11106912
mov ecx, edi
call fcn.110f62e0
test eax, eax
je 0x11106935
cmp ebx, 0x40
jge 0x11106935
mov dword [ebp + ebx*4 - 0x11c], eax
inc ebx
cmp byte [esi + 0x15], 0
jne 0x11106977
mov eax, dword [esi + 8]
cmp byte [eax + 0x15], 0
jne 0x1110695c
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x15], 0
jne 0x11106977
mov edi, edi
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x15], 0
je 0x11106950
jmp 0x11106977
mov eax, dword [esi + 4]
cmp byte [eax + 0x15], 0
jne 0x11106975
cmp esi, dword [eax + 8]
jne 0x11106975
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x11106965
mov esi, eax
cmp esi, dword [0x111f174c]
jne 0x11106903
mov edi, dword [ebp - 0x14]
call dword [sym.imp.KeRneL32.DLl_GetTickCount]
push 0x111f160c
mov esi, eax
call dword [sym.imp.KeRneL32.DLl_LeaveCriticalSection]
mov eax, esi
sub eax, edi
cmp eax, 0x64
jb 0x111069ac
push eax
push 0x111b26fc
call fcn.11147060
add esp, 8
test ebx, ebx
je 0x111069e0
push ebx
push 0x111b5ea4
call fcn.11147060
add esp, 8
push 0x7530
push 1
lea eax, [ebp - 0x11c]
push eax
push ebx
call dword [sym.imp.KeRneL32.DLl_WaitForMultipleObjects]
push 0x111b4e40
call fcn.11147060
add esp, 4
mov edi, dword [sym.imp.KeRneL32.DLl_GetTickCount]
call edi
push 0x111f160c
mov esi, eax
call dword [sym.imp.KeRneL32.DLl_EnterCriticalSection]
call edi
mov ebx, eax
sub eax, esi
cmp eax, 0x64
jb 0x11106a0e
push eax
push 0x111b26d4
call fcn.11147060
add esp, 8
mov eax, dword [0x111f174c]
mov esi, dword [eax]
cmp esi, eax
je 0x11106a8a
lea esp, [esp]
mov eax, dword [esi + 0x10]
add eax, 0x34
cmp dword [eax], 0
je 0x11106a3f
push 0
push eax
call dword [sym.imp.KeRneL32.DLl_InterlockedExchange]
test eax, eax
je 0x11106a3f
push eax
call dword [sym.imp.KeRneL32.DLl_CloseHandle]
cmp byte [esi + 0x15], 0
jne 0x11106a82
mov eax, dword [esi + 8]
cmp byte [eax + 0x15], 0
jne 0x11106a64
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x15], 0
jne 0x11106a82
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x15], 0
je 0x11106a58
jmp 0x11106a82
mov eax, dword [esi + 4]
cmp byte [eax + 0x15], 0
jne 0x11106a80
lea ecx, [ecx]
cmp esi, dword [eax + 8]
jne 0x11106a80
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x11106a70
mov esi, eax
cmp esi, dword [0x111f174c]
jne 0x11106a20
call edi
push 0x111f160c
mov esi, eax
call dword [sym.imp.KeRneL32.DLl_LeaveCriticalSection]
mov eax, esi
sub eax, ebx
cmp eax, 0x64
jb 0x11106ab0
push eax
push 0x111b26fc
call fcn.11147060
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret