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 - 0x128]
sub rsp, 0x220
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 rbx, 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 0x18001e369
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 0x18001e39d
mov ecx, dword [0x18007b890]
mov dword [0x18007b970], eax
mov dword [0x18007b890], esi
mov dword [0x18007b894], ecx
call fcn.18001b4f0
cmp dword [0x18007b974], esi
mov edi, dword [0x18007b064]
mov dword [rbp + 0x140], edi
mov r12d, esi
mov dword [rsp + 0x58], esi
jl 0x18001e953
mov qword [rsp + 0x1f8], r13
mov esi, 0xff
nop
mov edx, edi
mov ecx, r12d
call fcn.18001a720
mov r13, rax
mov qword [rbp - 0x40], rax
test rax, rax
je 0x18001e8d8
cmp qword [rsp + 0x50], 0
jne 0x18001e40f
mov r9, qword [rbx]
lea r8, [rsp + 0x50]
lea rdx, [0x18003f150]
mov rcx, rbx
call qword [r9]
test eax, eax
js 0x18001e926
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea rcx, [rbp - 0x1f]
mov r8, rsi
xor edx, edx
mov byte [rbp - 0x20], 0
mov ebx, eax
call fcn.180008040
mov r8d, ebx
lea rcx, [rbp - 0x20]
test r12d, r12d
jne 0x18001e443
lea rdx, [0x18007d070]
call fcn.180001a10
jmp 0x18001e452
lea rdx, [0x18007cf70]
mov r9d, r12d
call fcn.180001a10
lea r8, [rbp - 0x20]
call fcn.180013870
mov rbx, rax
mov qword [rbp - 0x58], rax
test rax, rax
jne 0x18001e475
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18001e8d1
mov rcx, rax
call fcn.180013ac0
mov rsi, rax
test rax, rax
jne 0x18001e496
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbx
jmp 0x18001e8c6
mov rcx, qword [rbp - 0x80]
test rcx, rcx
jne 0x18001e4bf
mov rcx, qword [rsp + 0x50]
lea r8, [rbp - 0x80]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x130]
test eax, eax
js 0x18001e915
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 0x18001e918
call fcn.18001a630
test eax, eax
je 0x18001e915
cmp eax, 0xb
jne 0x18001e530
test r15, r15
je 0x18001e51a
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
xor r15d, r15d
mov qword [rbp - 0x70], r15
test r14, r14
je 0x18001e530
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
xor r10d, r10d
mov r14d, r10d
jmp 0x18001e533
xor r10d, r10d
mov edx, dword [rsp + 0x78]
cmp edx, dword [rsi + 0x14]
jb 0x18001e915
mov r8d, dword [rsp + 0x7c]
cmp r8d, dword [rsi + 0x18]
jb 0x18001e915
test r14, r14
jne 0x18001e5e0
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 0x18001e915
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 - 0x50], rdx
mov rax, qword [rcx]
lea rdx, [rbp - 0x50]
mov qword [rsp + 0x28], rdx
mov edx, dword [rsp + 0x78]
mov dword [rsp + 0x20], 2
call qword [rax + 0x120]
test eax, eax
js 0x18001e8ef
mov r15, qword [rbp - 0x60]
mov r14, qword [rbp - 0x50]
mov qword [rbp - 0x70], r15
cmp dword [rbp - 0x78], 0
je 0x18001e632
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 0x18001e915
mov rcx, qword [rsp + 0x50]
mov r8, r14
mov rdx, r15
mov rax, qword [rcx]
call qword [rax + 0x100]
test eax, eax
js 0x18001e915
xor eax, eax
mov dword [rbp - 0x78], eax
mov rax, qword [r14]
lea rdx, [rbp - 0x38]
mov r9d, 0x10
xor r8d, r8d
mov rcx, r14
call qword [rax + 0x68]
test eax, eax
js 0x18001e915
test edi, edi
je 0x18001e66a
mov edx, 0xbb8
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x18001e8a9
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 - 0x38]
mov r15d, dword [rsi + 0x14]
mov rbx, qword [rbp - 0x30]
mov dword [rbp + 0x148], r12d
shl r15d, 2
lea rdi, [rsi + 0x24]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r8, qword [rbp + 0x138]
test r8, r8
je 0x18001e6f9
mov ecx, dword [r8]
mov eax, dword [r8 + 8]
sub eax, ecx
cmp eax, dword [rsi + 0x14]
jl 0x18001e6f9
mov edx, dword [r8 + 4]
mov eax, dword [r8 + 0xc]
sub eax, edx
cmp eax, dword [rsi + 0x18]
jl 0x18001e6f9
cmp dword [rsp + 0x60], 0x17
lea eax, [rcx + rcx]
je 0x18001e6e9
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 + 0x140]
test edx, edx
mov dword [rsi + 0x20], eax
cmove eax, r8d
mov dword [rsi + 0x20], eax
test ecx, ecx
je 0x18001e873
movsxd rax, r15d
mov qword [rbp - 0x48], rcx
mov r15d, ecx
mov qword [rbp - 0x68], rax
movsxd rax, dword [rbp + 0x148]
lea r13d, [r12*4]
mov rcx, qword [rbp - 0x68]
cmp dword [rsp + 0x60], 0x17
jne 0x18001e83d
test edx, edx
jne 0x18001e835
test r12d, r12d
je 0x18001e85c
mov r10, rdi
mov r11, rbx
mov r15, r12
mov r13d, 0xff
nop dword [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 0x18001e780
mov r15, qword [rbp - 0x48]
lea r13d, [r12*4]
jmp 0x18001e84b
mov r8d, r13d
shr r8, 1
jmp 0x18001e840
mov r8d, r13d
mov rdx, rbx
mov rcx, rdi
call fcn.1800029a0
mov edx, dword [rbp + 0x140]
movsxd rax, dword [rbp + 0x148]
mov rcx, qword [rbp - 0x68]
add rbx, rax
add rdi, rcx
dec r15
mov qword [rbp - 0x48], r15
jne 0x18001e752
mov r13, qword [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [rbp + 0x140]
mov eax, 1
mov dword [rsi + 0x1c], eax
mov rcx, r13
test edi, edi
je 0x18001e896
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x18001e89c
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov r12d, dword [rsp + 0x58]
mov r15, qword [rbp - 0x70]
mov rbx, qword [rbp - 0x58]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x70]
mov rcx, rsi
call fcn.180013a10
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0xff
mov rbx, qword [rbp + 0x130]
inc r12d
cmp r12d, dword [0x18007b974]
mov dword [rsp + 0x58], r12d
jle 0x18001e3d0
jmp 0x18001e92f
mov rcx, rsi
call fcn.180013a10
mov rcx, rbx
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 0x18001e92f
mov rcx, rsi
call fcn.180013a10
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r13, qword [rsp + 0x1f8]
test r15, r15
je 0x18001e945
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
test r14, r14
je 0x18001e953
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x80]
mov r15, qword [rsp + 0x1e8]
mov r14, qword [rsp + 0x1f0]
mov r12, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x208]
mov rsi, qword [rsp + 0x210]
mov rbx, qword [rsp + 0x218]
test rcx, rcx
je 0x18001e992
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x18001e9a2
mov rax, qword [rcx]
call qword [rax + 0x10]
add rsp, 0x220
pop rbp
ret