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

Disassembly:
push rsi
sub rsp, 0x60
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm7
mov rax, qword [0x1400c5040]
xor rax, rsp
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x70], rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1400c72d0]
mov rsi, qword [rsp + 0x20]
add rcx, 0xf0
call fcn.14000fff0
mov rbx, qword [0x1400c72d0]
xorps xmm6, xmm6
mov ecx, dword [rbx + 0x1f90]
sub ecx, 1
je 0x140005add
sub ecx, 2
je 0x140005ac7
cmp ecx, 1
jne 0x140005bd4
call fcn.140008360
mov rax, qword [0x1400c72d0]
cmp byte [rax + 0x22a], 0
jne 0x140005a33
cmp byte [rax + 0x1fac], 0
jne 0x140005a33
cmp dword [rax + 0x1f90], 4
mov ecx, 1
je 0x140005a17
mov byte [rax + 0x1fac], 0
jmp 0x140005a1e
mov byte [rax + 0x1fac], 1
call qword [sym.imp.USER32.dll_ShowCursor]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ClipCursor]
mov rax, qword [0x1400c72d0]
test byte [rax + 0x310], 2
je 0x140005a52
cmp byte [rax + 0x1fac], 0
sete cl
call fcn.140004860
mov rax, qword [0x1400c72d0]
mov rbx, qword [rax + 0x1fb0]
mov rdx, rbx
mov rcx, rbx
call fcn.140008890
mov rcx, qword [0x1400c72d0]
cmp byte [rcx + 0x1fac], 0
jne 0x140005aaa
mov eax, dword [0x1400c5ed4]
cmp eax, 0xffffffff
je 0x140005aaa
mov edx, eax
mov rcx, rbx
mov rax, qword [rbx + 0x108]
mov rdx, qword [rax + rdx*8]
lea rdx, [rdx + rdx*8]
shl rdx, 4
add rdx, qword [rbx + 0x118]
call fcn.140008dc0
mov rcx, qword [0x1400c72d0]
mov rcx, qword [rcx + 0x1fb0]
call fcn.140010320
call fcn.140008470
mov rbx, qword [0x1400c72d0]
jmp 0x140005bd4
call fcn.140008360
call fcn.140008470
mov rbx, qword [0x1400c72d0]
jmp 0x140005bd4
call fcn.140006c40
mov rbx, qword [0x1400c72d0]
movss xmm0, dword [0x1400c5ec8]
addss xmm0, dword [rbx + 0x1f88]
movss dword [0x1400c5ec8], xmm0
test byte [rbx + 0x2f8], 4
je 0x140005b47
mov rcx, qword [0x1400c5ea0]
mov rax, qword [0x1400c5eb0]
shl rcx, 5
mov byte [rcx + rax + 0x19], 0
mov rax, qword [0x1400c5ea0]
inc rax
mov dword [0x1400c5ec8], 0
cqo
idiv qword [0x1400c5eb8]
mov qword [0x1400c5ea0], rdx
jmp 0x140005b4e
mov rdx, qword [0x1400c5ea0]
test byte [rbx + 0x2f4], 4
je 0x140005b96
mov rax, qword [0x1400c5eb0]
shl rdx, 5
mov byte [rdx + rax + 0x19], 0
mov rdx, qword [0x1400c5ea0]
sub rdx, 1
mov qword [0x1400c5ea0], rdx
jns 0x140005b8c
mov rdx, qword [0x1400c5eb8]
dec rdx
mov qword [0x1400c5ea0], rdx
mov dword [0x1400c5ec8], 0
test byte [rbx + 0x304], 4
je 0x140005bd4
mov rax, qword [0x1400c5eb0]
shl rdx, 5
cmp byte [rdx + rax + 0x19], 0
jne 0x140005bbf
cmp byte [rdx + rax + 0x18], 0
je 0x140005bbf
mov byte [rdx + rax + 0x19], 1
jmp 0x140005bca
call qword [rdx + rax + reloc.WS2_32.dll_recv]
mov rbx, qword [0x1400c72d0]
mov dword [0x1400c5ec8], 0
movss xmm0, dword [rbx + 0x1fa8]
comiss xmm0, xmm6
jbe 0x140005c57
subss xmm0, dword [rbx + 0x1f88]
comiss xmm6, xmm0
movss dword [rbx + 0x1fa8], xmm0
jb 0x140005c57
mov qword [rsp + 0x78], rbp
xor ebp, ebp
mov qword [rsp + 0x80], rdi
lea rdi, [rbx + 0x1f98]
cmp qword [rdi], rbp
je 0x140005c2f
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x140005c28
mov rcx, qword [rbx + 0x48]
call qword [rbx + 0x58]
mov rbx, qword [0x1400c72d0]
mov qword [rdi], rbp
mov qword [rdi + 8], rbp
mov qword [rbx + 0x1f98], rbp
lea rax, [0x1400b620e]
mov qword [rbx + 0x1fa0], rax
mov rdi, qword [rsp + 0x80]
mov dword [rbx + 0x1fa8], ebp
mov rbp, qword [rsp + 0x78]
call fcn.1400054d0
mov rax, qword gs:[0x58]
mov edx, reloc.WS2_32.dll_recv
add rdx, qword [rax]
mov rcx, qword [rdx]
call qword [rdx + 0x20]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp byte [0x1400c7318], 0
mov rbx, qword [rsp + 0x70]
jne 0x140005ca2
lea rcx, [0x1400c7320]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
setne byte [0x1400c7318]
mov rax, qword [rsp + 0x20]
xorps xmm1, xmm1
movsd xmm7, qword [0x1400b8658]
sub rax, rsi
movsd xmm6, qword [0x1400b8648]
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [0x1400c7320]
cvtsi2sd xmm1, rax
divsd xmm1, xmm0
mulsd xmm1, xmm7
comisd xmm6, xmm1
jbe 0x140005db4
movaps xmm0, xmm6
subsd xmm0, xmm1
divsd xmm0, qword [0x1400b8640]
call fcn.14008d410
cvttsd2si ecx, xmm0
cmp ecx, 1
jle 0x140005d05
dec ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp byte [0x1400c7318], 0
jne 0x140005d2f
lea rcx, [0x1400c7320]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
setne byte [0x1400c7318]
mov rax, qword [rsp + 0x28]
xorps xmm1, xmm1
sub rax, rsi
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [0x1400c7320]
cvtsi2sd xmm1, rax
divsd xmm1, xmm0
mulsd xmm1, xmm7
comisd xmm6, xmm1
jbe 0x140005db4
nop dword [rax]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp byte [0x1400c7318], 0
jne 0x140005d8a
lea rcx, [0x1400c7320]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
setne byte [0x1400c7318]
mov rax, qword [rsp + 0x30]
xorps xmm1, xmm1
sub rax, rsi
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [0x1400c7320]
cvtsi2sd xmm1, rax
divsd xmm1, xmm0
mulsd xmm1, xmm7
comisd xmm6, xmm1
ja 0x140005d60
mov rax, qword [0x1400c72d0]
movss xmm0, dword [rax + 0x43c]
minss xmm0, dword [0x1400b85e8]
movss dword [rax + 0x1f88], xmm0
movss dword [rax + 0x1f8c], xmm0
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140074360
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x40]
add rsp, 0x60
pop rsi
ret