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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x40
mov rbx, r9
mov rdi, r8
mov rax, qword [0x14029b028]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rax, qword [rcx + 8]
mov r15d, 1
lock xadd qword [rax + 0x28], r15
mov rsi, rdx
movabs r13, 0x8637bd05af7
mov rax, qword [r8 + 0x38]
cmp rax, 1
jne 0x140020a1a
cmp byte [rbx], 0
jne 0x140020ad1
mov rax, qword [fcn.140105050]
lea rcx, [0x140182e50]
cmp rax, rcx
jne 0x140020b33
lea r14, [rsp + 0x30]
mov qword [r14], 0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r14]
cmp rax, r13
jge 0x140020bb8
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b0aa0]
cmp byte [rbx], 0
mov qword [rbx + 8], rax
jne 0x1400208bc
mov byte [rbx], 1
mov r12, qword [rdi + 0x30]
xor ecx, ecx
cmp r12, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rdx, rcx
sub r12, rax
cmovo r12, rdx
cmp byte [rbx], 0
jne 0x140020a11
mov rax, qword [fcn.140105050]
lea rcx, [0x140182e50]
cmp rax, rcx
jne 0x140020b1d
lea r14, [rsp + 0x30]
mov qword [r14], 0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r14]
cmp rax, r13
jge 0x140020b5f
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b0aa0]
cmp byte [rbx], 0
mov qword [rbx + 8], rax
jne 0x140020939
mov byte [rbx], 1
mov r13, qword [rdi]
xor r11d, r11d
mov qword [rdi], r11
movups xmm0, xmmword [rdi + 0x18]
movups xmmword [rsi + 0x18], xmm0
movups xmm0, xmmword [rdi + 8]
movups xmmword [rsi + 8], xmm0
mov cl, byte [rdi + 0x28]
mov dl, byte [rdi + 0x29]
mov r10, qword [rdi + 0x38]
mov ebx, dword [rdi + 0x40]
mov r8, qword [rdi + 0x48]
xorps xmm0, xmm0
mov r9, qword [rdi + 0x50]
movups xmmword [rdi + 0x48], xmm0
mov r14d, 0
cmp r10, 1
jne 0x14002097e
mov r14, qword [rdi + 0x30]
mov r10, qword [rdi + 0x58]
mov qword [rsi], r13
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x30], r14
mov qword [rsi + 0x38], r11
test r14, r14
jne 0x140020ae0
xor eax, eax
cmp r12, 0x7d00
mov dword [rsi + 0x40], r11d
mov qword [rsi + 0x70], rax
mov byte [rsi + 0x7c], 0
movups xmmword [rsi + 0x48], xmm0
movups xmmword [rsi + 0x58], xmm0
mov dword [rsi + 0x68], 0
mov byte [rsi + 0x80], cl
mov byte [rsi + 0x82], dl
mov qword [rsi + 0x88], r8
mov qword [rsi + 0x90], rax
mov qword [rsi + 0x98], r9
mov qword [rsi + 0xa0], r10
mov dword [rsi + 0x78], r15d
setl byte [rsi + 0x81]
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1401874c0
mov rax, rsi
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rbx + 8]
jmp 0x140020939
test rax, rax
jne 0x140020b18
mov r12, qword [rdi + 0x30]
cmp byte [rbx], 0
jne 0x140020ada
mov rax, qword [fcn.140105050]
lea rcx, [0x140182e50]
cmp rax, rcx
jne 0x140020b49
lea r14, [rsp + 0x30]
mov qword [r14], 0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r14]
cmp rax, r13
jge 0x140020bdf
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b0aa0]
cmp byte [rbx], 0
mov qword [rbx + 8], rax
jne 0x140020a84
mov byte [rbx], 1
movabs rdx, 0x8000000000000001
lea rcx, [r12 + rdx]
cmp rcx, 2
jb 0x140020b86
lea rcx, [rax + r12]
sar rcx, 0x3f
btc rcx, 0x3f
add rax, r12
cmovo rax, rcx
mov rcx, rax
mov rax, qword [rdi + 0x38]
test rax, rax
jne 0x140020ba5
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x38], 1
jmp 0x1400208dc
mov rax, qword [rbx + 8]
jmp 0x1400208bc
mov rax, qword [rbx + 8]
jmp 0x140020a84
xor r11d, r11d
cmp r14, rax
setns r11b
movabs rdi, 0x7fffffffffffffff
add rdi, r11
sub r14, rax
cmovo r14, rdi
xor r11d, r11d
cmp r14, 0x7d00
cmovl r11d, ebx
cmp ebx, 2
cmovne r11d, ebx
jmp 0x14002099a
call fcn.1401c4480
lea r14, [rsp + 0x28]
mov rcx, r14
call qword [case.0x1401eda70.0]
mov rax, qword [r14]
jmp 0x14002092d
lea r14, [rsp + 0x28]
mov rcx, r14
call qword [case.0x1401eda70.0]
mov rax, qword [r14]
jmp 0x1400208b0
lea r14, [rsp + 0x28]
mov rcx, r14
call qword [case.0x1401eda70.0]
mov rax, qword [r14]
jmp 0x140020a78
mov rcx, qword [0x1402b0aa0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14002092d
add rdx, rax
mov rcx, r12
cmp rdx, 1
ja 0x140020ab3
mov rcx, r12
cmp rax, r12
je 0x140020ab3
int3
cmp rax, 1
jne 0x140020ac0
mov qword [rdi + 0x30], rcx
jmp 0x1400208dc
mov rcx, qword [0x1402b0aa0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400208b0
mov rcx, qword [0x1402b0aa0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140020a78