Function at 0x14016c040
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
lea rbp, [rsp + 0xe0]
xorps xmm4, xmm4
movups xmmword [rbp - 0x68], xmm4
xor eax, eax
mov qword [rbp - 0x58], rax
call fcn.14016dc90
lea rcx, [0x14022baa8]
call fcn.140003430
mov rbx, rax
lea rsi, [0x14020aa88]
cmp qword [rsi - 8], 0
jne 0x14016c354
mov qword [rbp - 0x80], rsi
mov edi, dword [rsi]
lea rcx, [0x140211b88]
call fcn.140003430
mov r14, rax
lea rcx, [0x1401e5fe0]
call fcn.140081730
mov rdx, rax
mov rcx, r14
mov r8d, edi
call fcn.140082200
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov r8, rax
mov r9d, dword [r14 + 0x10]
mov rdx, r14
mov rcx, rbx
call fcn.140078ca0
call fcn.140171980
test eax, eax
jne 0x14016c0f6
lea rcx, [0x1401ee270]
call fcn.14007dd90
mov ecx, dword [rsi + 8]
mov eax, ecx
mov dword [rbx + 0x5c], eax
mov dword [rbx + 0x60], ecx
mov byte [rbx + 0x66], 1
mov rcx, rbx
mov rax, qword [rbx]
call qword [rax + 0x38]
lea rcx, [0x14022b990]
call fcn.140003430
mov rbx, rax
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call fcn.14016c7c0
mov qword [rbp - 0x70], rbx
mov edi, dword [rsi + 0x38]
mov r14d, dword [rsi + 0x1c]
mov r15d, dword [rsi + 0xc]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rsi + 0x18]
movsd xmm6, qword [0x1402ed778]
divsd xmm6, xmm0
lea rcx, [0x140219af0]
call fcn.140003430
mov r13, rax
xor ecx, ecx
mov qword [r13 + 8], rcx
mov byte [r13 + 0x18], 0
mov qword [r13 + 0x10], rcx
mov qword [rbp - 0x78], r13
xor ecx, ecx
mov qword [r13 + 8], rcx
lea rcx, [rbp - 0x60]
call sub.KERNEL32.dll_QueryPerformanceCounter
mov rcx, qword [rbp - 0x60]
mov r13, qword [rbp - 0x78]
mov qword [r13 + 0x10], rcx
mov byte [r13 + 0x18], 1
cmp dword [0x140397398], 0
jne 0x14016c35e
mov r13, qword [rbp - 0x78]
mov ecx, edi
call fcn.14016bfd0
and eax, 0x8000
jle 0x14016c205
mov rsi, qword [rbp - 0x80]
cmp byte [rsi + 0x59], 0
sete cl
mov byte [rsi + 0x59], cl
cmp byte [rsi + 0x59], 0
je 0x14016c1d3
mov ecx, 0x4b0
mov edx, shutdown
call fcn.14007e010
jmp 0x14016c1fb
mov ecx, 0x708
mov edx, shutdown
call fcn.14007e010
mov ecx, 0x64
call fcn.1400d1d10
mov ecx, 0x708
mov edx, shutdown
call fcn.14007e010
mov ecx, 0x1f4
call fcn.1400d1d10
mov ecx, r14d
call fcn.14016bfd0
and eax, 0x8000
jle 0x14016c231
mov rsi, qword [rbp - 0x80]
mov r9d, dword [rsi + 0x10]
mov ecx, dword [rsi + 0x14]
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbp - 0x70]
xor edx, edx
xor r8d, r8d
call fcn.14016caa0
mov ecx, r15d
call fcn.14016bfd0
and eax, 0x8000
jle 0x14016c2ab
call fcn.14016dc90
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov ecx, 0x320
mov dword [rbp - 0x84], ecx
mov edx, 0xc8
mov dword [rbp - 0x88], edx
lea rcx, [rbp - 0xb0]
call fcn.1400040c0
mov ecx, dword [rbp - 0x84]
mov edx, dword [rbp - 0x88]
call sub.KERNEL32.dll_Beep
lea rcx, [rbp - 0xb0]
call fcn.140004110
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
call fcn.14000245d
mov dword [rax + 0xb0], ebx
mov ecx, 0x3e8
call fcn.1400d1d10
mov r13, qword [rbp - 0x78]
mov rcx, r13
call fcn.1400ec530
mov rbx, qword [r13 + 8]
cmp byte [r13 + 0x18], 0
je 0x14016c2e3
lea rcx, [rbp - 0x68]
call sub.KERNEL32.dll_QueryPerformanceCounter
mov rcx, qword [rbp - 0x68]
mov r13, qword [rbp - 0x78]
sub rcx, qword [r13 + 0x10]
add rbx, rcx
cmp dword [0x140397398], 0
jne 0x14016c36c
lea r12, [0x14020a838]
cmp qword [r12 - 8], 0
jne 0x14016c384
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
mulsd xmm0, qword [r12 + 0x10]
cvttsd2si rcx, xmm0
mov qword [rbp - 0x58], rcx
lea rcx, [rbp - 0x58]
call fcn.1400b0330
movaps xmm1, xmm6
subsd xmm1, xmm0
cvttsd2si ecx, xmm1
test ecx, ecx
mov r13, qword [rbp - 0x78]
jle 0x14016c16f
call fcn.1400d1d10
jmp 0x14016c16f
call fcn.1400014a5
jmp 0x14016c096
call fcn.140005b90
mov r13, qword [rbp - 0x78]
jmp 0x14016c1a0
call fcn.140005b90
lea r12, [0x14020a838]
cmp qword [r12 - 8], 0
je 0x14016c2f6
call fcn.14000132c
jmp 0x14016c2f6