Function at 0x18001e4c0
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 0x18001e529
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 0x18001e55d
mov ecx, dword [0x18007b890]
mov dword [0x18007b970], eax
mov dword [0x18007b890], esi
mov dword [0x18007b894], ecx
call fcn.18001b6b0
cmp dword [0x18007b974], esi
mov edi, dword [0x18007b064]
mov dword [rbp + 0x140], edi
mov r12d, esi
mov dword [rsp + 0x58], esi
jl 0x18001eb13
mov qword [rsp + 0x1f8], r13
mov esi, 0xff
nop
mov edx, edi
mov ecx, r12d
call fcn.18001a8e0
mov r13, rax
mov qword [rbp - 0x40], rax
test rax, rax
je 0x18001ea98
cmp qword [rsp + 0x50], 0
jne 0x18001e5cf
mov r9, qword [rbx]
lea r8, [rsp + 0x50]
lea rdx, [0x18003f150]
mov rcx, rbx
call qword [r9]
test eax, eax
js 0x18001eae6
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 0x18001e603
lea rdx, [0x18007d080]
call fcn.180001a10
jmp 0x18001e612
lea rdx, [0x18007cf80]
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 0x18001e635
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18001ea91
mov rcx, rax
call fcn.180013ac0
mov rsi, rax
test rax, rax
jne 0x18001e656
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbx
jmp 0x18001ea86
mov rcx, qword [rbp - 0x80]
test rcx, rcx
jne 0x18001e67f
mov rcx, qword [rsp + 0x50]
lea r8, [rbp - 0x80]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x130]
test eax, eax
js 0x18001ead5
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 0x18001ead8
call fcn.18001a7f0
test eax, eax
je 0x18001ead5
cmp eax, 0xb
jne 0x18001e6f0
test r15, r15
je 0x18001e6da
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
xor r15d, r15d
mov qword [rbp - 0x70], r15
test r14, r14
je 0x18001e6f0
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
xor r10d, r10d
mov r14d, r10d
jmp 0x18001e6f3
xor r10d, r10d
mov edx, dword [rsp + 0x78]
cmp edx, dword [rsi + 0x14]
jb 0x18001ead5
mov r8d, dword [rsp + 0x7c]
cmp r8d, dword [rsi + 0x18]
jb 0x18001ead5
test r14, r14
jne 0x18001e7a0
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 0x18001ead5
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 0x18001eaaf
mov r15, qword [rbp - 0x60]
mov r14, qword [rbp - 0x50]
mov qword [rbp - 0x70], r15
cmp dword [rbp - 0x78], 0
je 0x18001e7f2
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 0x18001ead5
mov rcx, qword [rsp + 0x50]
mov r8, r14
mov rdx, r15
mov rax, qword [rcx]
call qword [rax + 0x100]
test eax, eax
js 0x18001ead5
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 0x18001ead5
test edi, edi
je 0x18001e82a
mov edx, 0xbb8
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x18001ea69
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 0x18001e8b9
mov ecx, dword [r8]
mov eax, dword [r8 + 8]
sub eax, ecx
cmp eax, dword [rsi + 0x14]
jl 0x18001e8b9
mov edx, dword [r8 + 4]
mov eax, dword [r8 + 0xc]
sub eax, edx
cmp eax, dword [rsi + 0x18]
jl 0x18001e8b9
cmp dword [rsp + 0x60], 0x17
lea eax, [rcx + rcx]
je 0x18001e8a9
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 0x18001ea33
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 0x18001e9fd
test edx, edx
jne 0x18001e9f5
test r12d, r12d
je 0x18001ea1c
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 0x18001e940
mov r15, qword [rbp - 0x48]
lea r13d, [r12*4]
jmp 0x18001ea0b
mov r8d, r13d
shr r8, 1
jmp 0x18001ea00
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 0x18001e912
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 0x18001ea56
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x18001ea5c
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 0x18001e590
jmp 0x18001eaef
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 0x18001eaef
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 0x18001eb05
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x10]
test r14, r14
je 0x18001eb13
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 0x18001eb52
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x18001eb62
mov rax, qword [rcx]
call qword [rax + 0x10]
add rsp, 0x220
pop rbp
ret