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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc0
mov rax, qword [0x140219028]
xor rax, rsp
mov qword [rsp + 0xb8], rax
mov rax, qword [rcx + 8]
mov r15d, 1
lock xadd qword [rax + 0x28], r15
mov rsi, r9
mov rdi, r8
mov r14, rdx
mov rax, qword [r8 + 0x38]
test rax, rax
jne 0x140015c22
mov rbx, qword [rdi + 0x30]
cmp byte [rsi + 8], 0
je 0x140015ba4
mov rax, qword [rsi + 0x10]
movabs rdx, 0x8000000000000001
lea rcx, [rbx + rdx]
cmp rcx, 2
jb 0x140015cbf
lea rcx, [rax + rbx]
sar rcx, 0x3f
btc rcx, 0x3f
add rax, rbx
cmovo rax, rcx
mov rcx, rax
mov rax, qword [rdi + 0x38]
test rax, rax
jne 0x140015d3d
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x38], 1
xor ebp, ebp
cmp rbx, 0x7d00
setl bpl
cmp byte [rsi + 8], 0
je 0x140015b3b
mov rax, qword [rsi + 0x10]
mov rcx, qword [rdi]
lea rdx, [rsp + 0x50]
mov qword [rdx], rcx
xor ecx, ecx
mov qword [rdi], rcx
movups xmm0, xmmword [rdi + 8]
movups xmm1, xmmword [rdi + 0x18]
movups xmmword [rdx + 0x18], xmm1
movups xmmword [rdx + 8], xmm0
movups xmm0, xmmword [rdi + 0x28]
movups xmm1, xmmword [rdi + 0x38]
movups xmmword [rdx + 0x28], xmm0
movups xmmword [rdx + 0x38], xmm1
mov ebx, dword [rdi + 0x48]
mov dword [rdx + 0x48], ebx
mov rbx, qword [rdi + 0x50]
mov qword [rdx + 0x50], rbx
mov qword [rdi + 0x50], rcx
mov rbx, qword [rdi + 0x58]
mov qword [rdx + 0x58], rbx
mov qword [rdi + 0x58], rcx
mov rbx, qword [rdi + 0x60]
mov qword [rdx + 0x60], rbx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rax
mov rcx, r14
mov r8, r15
xor r9d, r9d
call fcn.1400f94d0
mov rcx, qword [rdi + 0x58]
test rcx, rcx
jne 0x140015c0f
mov rcx, qword [rdi + 0x50]
test rcx, rcx
jne 0x140015cde
mov rcx, qword [rdi]
test rcx, rcx
jne 0x140015c42
mov rcx, qword [rsp + 0xb8]
xor rcx, rsp
call fcn.14011fe20
mov rax, r14
add rsp, 0xc0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rax, qword [fcn.1401122d0]
lea rcx, [0x14011c810]
cmp rax, rcx
jne 0x140015cfa
lea rbx, [rsp + 0x48]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140015d50
imul rax, rax, 0xf4240
cqo
idiv qword [0x140227198]
cmp byte [rsi + 8], 0
mov qword [rsi + 0x10], rax
jne 0x140015a7e
mov byte [rsi + 8], 1
jmp 0x140015a7e
mov rax, qword [fcn.1401122d0]
lea rcx, [0x14011c810]
cmp rax, rcx
jne 0x140015d10
lea r12, [rsp + 0x48]
mov qword [r12], 0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r12]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140015d77
imul rax, rax, 0xf4240
cqo
idiv qword [0x140227198]
cmp byte [rsi + 8], 0
mov qword [rsi + 0x10], rax
jne 0x140015a1b
mov byte [rsi + 8], 1
jmp 0x140015a1b
lock dec dword [rcx]
jne 0x140015afd
call fcn.14011d780
jmp 0x140015afd
cmp rax, 1
jne 0x140015d9e
cmp byte [rsi + 8], 0
je 0x140015c5a
mov rax, qword [rsi + 0x10]
mov rbx, qword [rdi + 0x30]
sub rbx, rax
jmp 0x140015a63
lock dec dword [rcx]
jne 0x140015b16
mov rax, qword [rcx + 0x10]
call qword [0x14023a010]
jmp 0x140015b16
mov rax, qword [fcn.1401122d0]
lea rcx, [0x14011c810]
cmp rax, rcx
jne 0x140015d27
lea rbx, [rsp + 0x48]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140015da3
imul rax, rax, 0xf4240
cqo
idiv qword [0x140227198]
cmp byte [rsi + 8], 0
mov qword [rsi + 0x10], rax
jne 0x140015c36
mov byte [rsi + 8], 1
jmp 0x140015c36
add rdx, rax
mov rcx, rbx
cmp rdx, 1
ja 0x140015a4a
mov rcx, rbx
cmp rax, rbx
je 0x140015a4a
int3
lock dec dword [rcx + 8]
jne 0x140015b0a
add rcx, 8
add rcx, 0xfffffffffffffff8
call fcn.1400e9a50
jmp 0x140015b0a
lea rbx, [rsp + 0x40]
mov rcx, rbx
call qword [0x14023a010]
mov rax, qword [rbx]
jmp 0x140015b8d
lea r12, [rsp + 0x40]
mov rcx, r12
call qword [0x14023a010]
mov rax, qword [r12]
jmp 0x140015bf8
lea rbx, [rsp + 0x40]
mov rcx, rbx
call qword [0x14023a010]
mov rax, qword [rbx]
jmp 0x140015cac
cmp rax, 1
jne 0x140015a57
mov qword [rdi + 0x30], rcx
jmp 0x140015a63
mov rcx, qword [0x140227198]
cqo
idiv rcx
imul rbx, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbx
jmp 0x140015b8d
mov rcx, qword [0x140227198]
cqo
idiv rcx
imul rbp, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbp
jmp 0x140015bf8
call fcn.1401566f0
mov rcx, qword [0x140227198]
cqo
idiv rcx
imul rbp, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbp
jmp 0x140015cac