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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
lea rbp, [rax - 0x38]
sub rsp, 0x130
mov qword [rax - 0x10], rbx
mov qword [rax - 0x18], rsi
xor esi, esi
cmp dword [0x18007b970], esi
mov qword [rax - 0x20], rdi
mov qword [rax - 0x28], r12
mov qword [rax - 0x38], r14
mov qword [rax - 0x40], r15
mov rdi, rcx
mov r15d, esi
mov qword [rsp + 0x50], rsi
mov qword [rbp - 0x80], rsi
mov dword [rbp - 0x78], 1
mov r14d, esi
mov qword [rbp - 0x70], rsi
jne 0x18001e366
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x18007b970], eax
inc dword [0x18007b890]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [0x18007b970]
cmp ecx, 0x3e8
jbe 0x18001e39a
mov ecx, dword [0x18007b890]
mov dword [0x18007b970], eax
mov dword [0x18007b890], esi
mov dword [0x18007b894], ecx
call fcn.18001b3e0
cmp dword [0x18007b974], esi
mov ebx, dword [0x18007b064]
mov dword [rbp + 0x50], ebx
mov r12d, esi
mov dword [rsp + 0x58], esi
jl 0x18001e933
mov qword [rsp + 0x108], r13
mov edx, ebx
mov ecx, r12d
call fcn.18001a610
mov r13, rax
mov qword [rbp - 0x28], rax
test rax, rax
je 0x18001e8b7
cmp qword [rsp + 0x50], 0
jne 0x18001e402
mov r9, qword [rdi]
lea r8, [rsp + 0x50]
lea rdx, [0x18003f130]
mov rcx, rdi
call qword [r9]
test eax, eax
js 0x18001e906
mov ecx, r12d
call fcn.180013480
mov rdi, rax
mov qword [rbp - 0x48], rax
test rax, rax
je 0x18001e8aa
lea rax, [rbp - 0x30]
mov dword [rsp + 0x48], 4
lea r8, [rbp - 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x58]
or rdx, 0xffffffffffffffff
mov rcx, rdi
mov qword [rbp - 0x58], 0
mov qword [rbp - 0x40], rsi
mov qword [rsp + 0x28], rax
mov qword [rbp - 0x30], rsi
call fcn.1800141f0
test eax, eax
jns 0x18001e470
mov ecx, eax
call fcn.180013d90
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
jmp 0x18001e8ad
mov rsi, qword [rbp - 0x40]
test rsi, rsi
jne 0x18001e48a
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
jmp 0x18001e8ad
mov rcx, qword [rbp - 0x80]
test rcx, rcx
jne 0x18001e4b3
mov rcx, qword [rsp + 0x50]
lea r8, [rbp - 0x80]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x130]
test eax, eax
js 0x18001e8f5
mov rcx, qword [rbp - 0x80]
xor eax, eax
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov rax, qword [rcx]
call qword [rax + 0x60]
mov eax, dword [rsp + 0x60]
mov rcx, rsi
add eax, 0xffffffeb
cmp eax, 2
ja 0x18001e8f8
call fcn.18001a520
test eax, eax
je 0x18001e8f5
cmp eax, 0xb
jne 0x18001e524
test r15, r15
je 0x18001e50e
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
xor r15d, r15d
mov qword [rbp - 0x70], r15
test r14, r14
je 0x18001e524
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
xor r10d, r10d
mov r14d, r10d
jmp 0x18001e527
xor r10d, r10d
mov edx, dword [rsp + 0x78]
cmp edx, dword [rsi + 0x14]
jb 0x18001e8f5
mov r8d, dword [rsp + 0x7c]
cmp r8d, dword [rsi + 0x18]
jb 0x18001e8f5
test r14, r14
jne 0x18001e5d4
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x40], r10
lea r9, [rbp - 0x60]
mov qword [rsp + 0x38], r9
mov r9d, dword [rsp + 0x60]
mov dword [rsp + 0x30], r10d
mov qword [rbp - 0x60], r10
mov rax, qword [rcx]
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], r10d
call qword [rax + 0xe0]
test eax, eax
js 0x18001e8f5
mov rcx, qword [rsp + 0x50]
mov r9d, dword [rsp + 0x60]
mov r8d, dword [rsp + 0x7c]
xor edx, edx
mov qword [rsp + 0x30], rdx
mov qword [rbp - 0x38], rdx
mov rax, qword [rcx]
lea rdx, [rbp - 0x38]
mov qword [rsp + 0x28], rdx
mov edx, dword [rsp + 0x78]
mov dword [rsp + 0x20], 2
call qword [rax + 0x120]
test eax, eax
js 0x18001e8cf
mov r15, qword [rbp - 0x60]
mov r14, qword [rbp - 0x38]
mov qword [rbp - 0x70], r15
cmp dword [rbp - 0x78], 0
je 0x18001e628
mov rcx, qword [rsp + 0x50]
xor edx, edx
mov r9, r15
mov rax, qword [rcx]
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rdx
mov rdx, qword [rbp - 0x80]
xor r8d, r8d
call qword [rax + 0x110]
test eax, eax
js 0x18001e8f5
mov rcx, qword [rsp + 0x50]
mov r8, r14
mov rdx, r15
mov rax, qword [rcx]
call qword [rax + pe_nt_image_headers64]
test eax, eax
js 0x18001e8f5
mov dword [rbp - 0x78], 0
mov rax, qword [r14]
lea rdx, [rbp - 0x20]
mov r9d, 0x10
xor r8d, r8d
mov rcx, r14
call qword [rax + 0x68]
test eax, eax
js 0x18001e8f5
test ebx, ebx
je 0x18001e660
mov edx, 0xbb8
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x18001e890
xor eax, eax
lea rdx, [rsp + 0x60]
mov rcx, r14
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov rax, qword [r14]
call qword [rax + 0x60]
mov r12d, dword [rbp - 0x20]
mov r15d, dword [rsi + 0x14]
mov rbx, qword [rbp - 0x18]
mov dword [rbp + 0x58], r12d
shl r15d, 2
lea rdi, [rsi + 0x24]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r8, qword [rbp + 0x48]
test r8, r8
je 0x18001e6e9
mov ecx, dword [r8]
mov eax, dword [r8 + 8]
sub eax, ecx
cmp eax, dword [rsi + 0x14]
jl 0x18001e6e9
mov edx, dword [r8 + 4]
mov eax, dword [r8 + 0xc]
sub eax, edx
cmp eax, dword [rsi + 0x18]
jl 0x18001e6e9
cmp dword [rsp + 0x60], 0x17
lea eax, [rcx + rcx]
je 0x18001e6d9
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 [rsp + 0x60], 0x17
mov edx, 1
mov eax, r8d
cmove eax, edx
mov edx, dword [rbp + 0x50]
test edx, edx
mov dword [rsi + 0x20], eax
cmove eax, r8d
mov dword [rsi + 0x20], eax
test ecx, ecx
je 0x18001e85d
movsxd rax, r15d
mov qword [rbp - 0x50], rcx
mov r15d, ecx
mov qword [rbp - 0x68], rax
movsxd rax, dword [rbp + 0x58]
lea r13d, [r12*4]
mov rcx, qword [rbp - 0x68]
nop dword [rax]
cmp dword [rsp + 0x60], 0x17
jne 0x18001e82d
test edx, edx
jne 0x18001e825
test r12d, r12d
je 0x18001e846
mov r10, rdi
mov r11, rbx
mov r15, r12
mov r13d, 0xff
nop dword [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 0x18001e770
mov r15, qword [rbp - 0x50]
lea r13d, [r12*4]
jmp 0x18001e83b
mov r8d, r13d
shr r8, 1
jmp 0x18001e830
mov r8d, r13d
mov rdx, rbx
mov rcx, rdi
call fcn.1800029a0
mov edx, dword [rbp + 0x50]
movsxd rax, dword [rbp + 0x58]
mov rcx, qword [rbp - 0x68]
add rbx, rax
add rdi, rcx
dec r15
mov qword [rbp - 0x50], r15
jne 0x18001e740
mov r13, qword [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [rbp + 0x50]
mov eax, 1
mov dword [rsi + 0x1c], eax
mov rcx, r13
test ebx, ebx
je 0x18001e87d
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x18001e883
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov r12d, dword [rsp + 0x58]
mov r15, qword [rbp - 0x70]
mov rdi, qword [rbp - 0x48]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x70]
mov rcx, rsi
call fcn.180013a60
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rbp + 0x40]
inc r12d
cmp r12d, dword [0x18007b974]
mov dword [rsp + 0x58], r12d
jg 0x18001e90f
xor esi, esi
jmp 0x18001e3c3
mov rcx, rsi
call fcn.180013a60
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x60]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x18001e90f
mov rcx, rsi
call fcn.180013a60
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r13, qword [rsp + 0x108]
test r15, r15
je 0x18001e925
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
test r14, r14
je 0x18001e933
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x80]
mov r15, qword [rsp + 0xf8]
mov r14, qword [rsp + 0x100]
mov r12, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x128]
test rcx, rcx
je 0x18001e972
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x18001e982
mov rax, qword [rcx]
call qword [rax + 0x10]
add rsp, 0x130
pop rbp
ret