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

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov qword [rbp + 0x17], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov rdi, rcx
add rcx, 0x300
call fcn.1600156cc
xor r15d, r15d
cmp dword [rdi + 0x12c], r15d
jne 0x16007db52
mov r14d, r15d
lea rbx, [rdi + 0x110]
mov rax, qword [rbx]
dec rax
cmp rax, 0xfffffffffffffffd
ja 0x16001473a
mov eax, dword [rdi + 0x188]
test al, 1
jne 0x160014723
mov rcx, rdi
call fcn.160014300
test eax, eax
je 0x160014723
cmp dword [rdi + 0x134], r15d
sete r14b
mov eax, dword [rdi + 0x128]
test r14d, r14d
je 0x1600148c5
test eax, eax
jne 0x1600149e0
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
mov ebx, eax
lea rcx, [rdi + 0xb0]
mov qword [rbp + 0x7f], rcx
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
nop
mov eax, dword [rdi + 0x19c]
test eax, eax
je 0x16007db70
sub ebx, eax
cmp ebx, 0x1388
jb 0x1600148ee
mov dword [rdi + 0x1a0], ebx
mov rcx, rdi
call fcn.160014ac4
mov esi, eax
xor edx, edx
mov rcx, rdi
call fcn.1600143a8
mov ebx, eax
cmp eax, 0x32
ja 0x1600149c5
test eax, eax
jne 0x1600149ae
mov rcx, rdi
call fcn.160014344
mov dword [rdi + 0x134], r15d
mov dl, 1
mov rcx, rdi
call fcn.1600143a8
mov r12d, eax
mov r13d, r15d
cmp esi, 0x63
je 0x1600147e9
cmp esi, 9
je 0x1600147e9
test eax, eax
jne 0x16001494e
mov eax, dword [rdi + 0x188]
test al, 0x20
je 0x16007dbd2
cmp dword [rdi + 0x134], r15d
jne 0x16001495d
cmp dword [0x160273a20], esi
jne 0x160014918
cmp esi, 3
jne 0x160014908
mov ebx, dword [rdi + 0x304]
and ebx, 0xfffffffe
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
sub eax, ebx
lea edx, [rsi - 1]
mov r9d, edx
mov ecx, edx
lea r8, [0x1601f5e90]
mov r8d, dword [r8 + rcx*4]
cmp r8d, eax
jb 0x1600149d2
lea edx, [r9 - 1]
cmp r8d, eax
cmovae edx, r9d
lea rbx, [rdi + 0x280]
mov rcx, rbx
call fcn.160015298
mov rcx, rbx
call fcn.160015140
mov edx, esi
mov rcx, rdi
call fcn.160014d58
mov edx, esi
mov rcx, rdi
call fcn.160014d1c
mov edx, esi
mov rcx, rdi
call fcn.160014a4c
mov rcx, rdi
call fcn.1600149f4
mov rax, qword [0x160273d18]
mov ecx, dword [rax + 0x1dcc]
mov dword [rdi + 0x1bc], ecx
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
mov dword [rdi + 0x19c], eax
test r15d, r15d
jne 0x160014939
mov rcx, qword [rbp + 0x7f]
test rcx, rcx
je 0x1600148aa
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
mov rbx, qword [rsp + 0xd8]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test eax, eax
jne 0x16001473a
mov rcx, qword [rbx]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ResetEvent]
mov ecx, 1
mov dword [rdi + 0x128], ecx
test eax, eax
jne 0x16001473a
jmp 0x16007db60
test dword [rdi + 0x1d0], 0x200
jne 0x16001489b
cmp byte [rdi + 0x148], r15b
je 0x16001489b
jmp 0x160014770
xor eax, eax
sub eax, esi
neg eax
sbb edx, edx
and edx, 3
jmp 0x160014836
mov dword [0x160273a20], esi
mov r15d, 1
test dword [0x160274340], 0x400
je 0x1600147f5
jmp 0x16007dc33
test dword [0x160274340], 0x400
je 0x16001489b
jmp 0x16007dc48
mov dword [rdi + 0x134], 1
jmp 0x1600147dc
test esi, esi
je 0x1600147e9
test byte [0x160273a14], 0x30
je 0x16007dc28
mov dword [rbp + 0x67], r15d
mov byte [rbp + 0x6b], r15b
mov eax, r15d
mov dword [rbp + 0x77], eax
movzx eax, word [rbp + 0x6b]
mov word [rbp + 0x7b], ax
xor r9d, r9d
lea r8, [rbp + 0x77]
mov edx, 0xa09f9d
lea rcx, [0x160273a14]
call fcn.1600165dc
mov esi, r15d
mov r13d, 1
jmp 0x1600147e9
mov rcx, qword [rdi + 0x118]
inc rcx
test rcx, 0xfffffffffffffffe
je 0x16001479d
mov rcx, rdi
call fcn.16006d45c
jmp 0x1600147a5
add edx, 0xffffffff
jne 0x160014812
jmp 0x16001482b
mov rcx, qword [rbx]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_SetEvent]
mov ecx, r15d
jmp 0x1600148db
mov rcx, rdi
call fcn.1600f87fc
nop
jmp 0x1600148aa
xor edx, edx
mov rcx, rbx
call fcn.1600161cc
nop
jmp 0x16001473a
mov dword [rdi + 0x19c], ebx
mov dword [rdi + 0x1a0], r15d
mov rax, qword [0x160273d18]
mov ecx, dword [rax + 0x1dcc]
mov dword [rdi + 0x1bc], ecx
cmp dword [rdi + 0x1c0], r15d
je 0x16001489b
bts dword [rdi + 0x1d0], 0xf
mov edx, 0x63
mov rcx, rdi
call fcn.160014a4c
mov edx, 0x63
mov rcx, rdi
call fcn.160014d58
mov edx, 0x63
mov rcx, rdi
call fcn.160014d1c
nop
jmp 0x16001489b
mov r9d, dword [rdi + 0x1b8]
test r9d, r9d
je 0x1600147dc
cmp ebx, r9d
ja 0x16007dbf4
mov eax, 1
mov dword [rdi + 0x134], eax
jmp 0x16007dbf7
mov eax, r15d
test ebx, ebx
je 0x1600147dc
test dword [0x160274340], 0x400
je 0x1600147dc
mov dword [rsp + 0x20], eax
mov r8d, ebx
lea rdx, [0x1601f9358]
call fcn.1600fa408
nop
jmp 0x1600147dc
call fcn.1600f7f08
nop
jmp 0x160014972
mov r8d, esi
lea rdx, [0x1601f93f8]
call fcn.1600c260c
nop
jmp 0x1600147f5
mov eax, dword [rdi + 0x278]
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x68], r14d
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0x48], r13d
mov eax, dword [rdi + 0x134]
mov dword [rsp + 0x40], eax
mov eax, dword [rdi + 0x188]
mov dword [rsp + 0x28], eax
mov eax, dword [rdi + 0x1d0]
mov dword [rsp + 0x20], eax
mov r8d, esi
call fcn.1600fa2b8
nop
jmp 0x16001489b