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

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x28]
sub rsp, 0x120
mov rax, qword [0x180047520]
xor rax, rsp
mov qword [rbp - 0x18], rax
mov qword [r11 + 0x18], rbx
mov qword [r11 - 0x10], rsi
xor esi, esi
cmp dword [0x18007b958], esi
mov qword [r11 - 0x18], rdi
mov qword [r11 - 0x20], r12
mov qword [r11 - 0x30], r14
mov qword [r11 - 0x38], r15
mov qword [rbp - 0x70], rdx
mov r15d, esi
mov rdi, rcx
mov qword [rsp + 0x70], rcx
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], rsi
mov dword [rsp + 0x5c], 1
mov r14d, esi
mov qword [rsp + 0x68], rsi
jne 0x18000cc82
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x18007b958], eax
inc dword [0x18007b874]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [0x18007b958]
cmp ecx, 0x3e8
jbe 0x18000ccb6
mov ecx, dword [0x18007b874]
mov dword [0x18007b958], eax
mov dword [0x18007b874], esi
mov dword [0x18007b880], ecx
mov r8d, dword [0x18007b928]
test r8d, r8d
je 0x18000cd00
mov rdx, qword [0x18007c098]
mov rax, qword [0x18007c090]
mov ecx, esi
sub rdx, rax
sar rdx, 2
test edx, edx
je 0x18000ccf2
nop dword [rax]
cmp dword [rax], 0x16b07b2b
je 0x18000cd00
inc ecx
add rax, 4
cmp ecx, edx
jb 0x18000cce0
lea ecx, [r8*2 - 2]
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x18007b95c], esi
mov ebx, dword [0x18007b850]
mov r12d, esi
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x58], esi
jl 0x18000d23a
mov qword [rsp + 0x100], r13
mov edx, ebx
mov ecx, r12d
call fcn.18000bb10
mov r13, rax
mov qword [rbp - 0x78], rax
test rax, rax
je 0x18000d1bf
cmp qword [rbp - 0x68], 0
jne 0x18000cd62
mov r9, qword [rdi]
lea r8, [rbp - 0x68]
lea rdx, [0x18003f1a0]
mov rcx, rdi
call qword [r9]
test eax, eax
js 0x18000d20d
mov ecx, r12d
call fcn.180007620
mov rdi, rax
mov qword [rbp - 0x80], rax
test rax, rax
je 0x18000d1b1
mov rcx, rax
call fcn.180006f90
mov rsi, rax
test rax, rax
jne 0x18000cd9b
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
jmp 0x18000d1b4
mov rcx, qword [rbp - 0x60]
test rcx, rcx
jne 0x18000cdc3
mov rcx, qword [rbp - 0x68]
lea r8, [rbp - 0x60]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x130]
test eax, eax
js 0x18000d1fc
mov rcx, qword [rbp - 0x60]
xor eax, eax
lea rdx, [rbp - 0x38]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov rax, qword [rcx]
call qword [rax + 0x60]
mov eax, dword [rbp - 0x38]
mov rcx, rsi
add eax, 0xffffffeb
cmp eax, 2
ja 0x18000d1ff
call fcn.18000bc30
test eax, eax
je 0x18000d1fc
cmp eax, 0xb
jne 0x18000ce2f
test r15, r15
je 0x18000ce19
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
xor r15d, r15d
mov qword [rsp + 0x68], r15
test r14, r14
je 0x18000ce2f
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
xor r10d, r10d
mov r14d, r10d
jmp 0x18000ce32
xor r10d, r10d
mov edx, dword [rbp - 0x20]
cmp edx, dword [rsi + 0x14]
jb 0x18000d1fc
mov r8d, dword [rbp - 0x1c]
cmp r8d, dword [rsi + 0x18]
jb 0x18000d1fc
test r14, r14
jne 0x18000ced8
mov rcx, qword [rbp - 0x68]
mov qword [rsp + 0x40], r10
lea r9, [rbp - 0x58]
mov qword [rsp + 0x38], r9
mov r9d, dword [rbp - 0x38]
mov dword [rsp + 0x30], r10d
mov qword [rbp - 0x58], r10
mov rax, qword [rcx]
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], r10d
call qword [rax + 0xe0]
test eax, eax
js 0x18000d1fc
mov rcx, qword [rbp - 0x68]
mov r9d, dword [rbp - 0x38]
mov r8d, dword [rbp - 0x1c]
xor edx, edx
mov qword [rsp + 0x30], rdx
mov qword [rbp - 0x50], rdx
mov rax, qword [rcx]
lea rdx, [rbp - 0x50]
mov qword [rsp + 0x28], rdx
mov edx, dword [rbp - 0x20]
mov dword [rsp + 0x20], 2
call qword [rax + 0x120]
test eax, eax
js 0x18000d1d6
mov r15, qword [rbp - 0x58]
mov r14, qword [rbp - 0x50]
mov qword [rsp + 0x68], r15
cmp dword [rsp + 0x5c], 0
je 0x18000cf2a
mov rcx, qword [rbp - 0x68]
xor edx, edx
mov r9, r15
mov rax, qword [rcx]
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rdx
mov rdx, qword [rbp - 0x60]
xor r8d, r8d
call qword [rax + 0x110]
test eax, eax
js 0x18000d1fc
mov rcx, qword [rbp - 0x68]
mov r8, r14
mov rdx, r15
mov rax, qword [rcx]
call qword [rax + pe_nt_image_headers64]
test eax, eax
js 0x18000d1fc
xor eax, eax
mov dword [rsp + 0x5c], eax
mov rax, qword [r14]
lea rdx, [rbp - 0x48]
mov r9d, 0x10
xor r8d, r8d
mov rcx, r14
call qword [rax + 0x68]
test eax, eax
js 0x18000d1fc
test ebx, ebx
je 0x18000cf62
mov edx, 0xbb8
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x18000d197
xor eax, eax
lea rdx, [rbp - 0x38]
mov rcx, r14
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov rax, qword [r14]
call qword [rax + 0x60]
mov r12d, dword [rbp - 0x48]
mov r15d, dword [rsi + 0x14]
mov rbx, qword [rbp - 0x40]
mov dword [rsp + 0x54], r12d
shl r15d, 2
lea rdi, [rsi + 0x24]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r8, qword [rbp - 0x70]
test r8, r8
je 0x18000cfe6
mov ecx, dword [r8]
mov eax, dword [r8 + 8]
sub eax, ecx
cmp eax, dword [rsi + 0x14]
jl 0x18000cfe6
mov edx, dword [r8 + 4]
mov eax, dword [r8 + 0xc]
sub eax, edx
cmp eax, dword [rsi + 0x18]
jl 0x18000cfe6
cmp dword [rbp - 0x38], 0x17
lea eax, [rcx + rcx]
je 0x18000cfd6
lea eax, [rcx*4]
imul edx, r12d
movsxd rcx, eax
add rbx, rcx
movsxd rax, edx
add rbx, rax
mov ecx, dword [rsi + 0x18]
mov r12d, dword [rsi + 0x14]
xor r8d, r8d
mov dword [rsi + 0x20], r8d
cmp dword [rbp - 0x38], 0x17
mov edx, 1
mov eax, r8d
cmove eax, edx
mov edx, dword [rsp + 0x50]
test edx, edx
mov dword [rsi + 0x20], eax
cmove eax, r8d
mov dword [rsi + 0x20], eax
test ecx, ecx
je 0x18000d162
movsxd rax, r15d
mov qword [rsp + 0x78], rcx
mov r15d, ecx
mov qword [rsp + 0x60], rax
movsxd rax, dword [rsp + 0x54]
lea r13d, [r12*4]
mov rcx, qword [rsp + 0x60]
nop dword [rax]
cmp dword [rbp - 0x38], 0x17
jne 0x18000d12e
test edx, edx
jne 0x18000d126
test r12d, r12d
je 0x18000d14a
mov r10, rdi
mov r11, rbx
mov r15, r12
mov r13d, 0xff
nop word [rax + rax]
movzx r9d, word [r11]
mov eax, 0x8421085
lea r10, [r10 + 4]
mov r8d, r9d
mov ecx, r9d
and r9d, 0x1f
shr ecx, 3
shr r8d, 8
shl r9d, 3
and ecx, 0xfc
and r8d, 0xf8
lea r11, [r11 + 2]
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
add r8d, eax
mov eax, 0x4104105
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
add ecx, eax
mov eax, 0x8421085
mul r9d
mov eax, r9d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
add r9d, eax
cmp r8d, r13d
cmova r8d, r13d
cmp ecx, r13d
cmova ecx, r13d
cmp r9d, r13d
movzx eax, r8b
cmova r9d, r13d
movzx ecx, cl
shl eax, 0x10
shl ecx, 8
or ecx, eax
movzx eax, r9b
or ecx, eax
mov dword [r10 - 4], ecx
dec r15
jne 0x18000d070
mov r15, qword [rsp + 0x78]
lea r13d, [r12*4]
jmp 0x18000d13c
mov r8d, r13d
shr r8, 1
jmp 0x18000d131
mov r8d, r13d
mov rdx, rbx
mov rcx, rdi
call fcn.180024b90
mov edx, dword [rsp + 0x50]
movsxd rax, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x60]
add rbx, rax
add rdi, rcx
dec r15
mov qword [rsp + 0x78], r15
jne 0x18000d040
mov r13, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [rsp + 0x50]
mov eax, 1
mov dword [rsi + 0x1c], eax
mov rcx, r13
test ebx, ebx
je 0x18000d183
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x18000d189
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov r12d, dword [rsp + 0x58]
mov r15, qword [rsp + 0x68]
mov rdi, qword [rbp - 0x80]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x70]
mov rcx, rsi
call fcn.1800076e0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rsp + 0x70]
inc r12d
cmp r12d, dword [0x18007b95c]
mov dword [rsp + 0x58], r12d
jle 0x18000cd25
jmp 0x18000d216
mov rcx, rsi
call fcn.1800076e0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x18000d216
mov rcx, rsi
call fcn.1800076e0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r13, qword [rsp + 0x100]
test r15, r15
je 0x18000d22c
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
test r14, r14
je 0x18000d23a
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x60]
mov r15, qword [rsp + 0xf0]
mov r14, qword [rsp + 0xf8]
mov r12, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x140]
test rcx, rcx
je 0x18000d279
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x18000d288
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.180024b60
add rsp, 0x120
pop rbp
ret