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

Disassembly:
mov rcx, qword [rcx + 0x18]
jmp 0x1401ea400
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov qword [rsp + 0x38], 0xfffffffffffffffe
movaps xmmword [rsp + 0x50], xmm6
mov r15, r9
mov ebx, r8d
mov rsi, rdx
mov r13, rcx
lea rbp, [rcx + 0x2f8]
mov qword [rsp + 0x40], rbp
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
lea rcx, [r13 + 0x380]
movsxd rdi, dword [rsp + 0xd8]
mov r9d, edi
mov r8d, ebx
mov rdx, rsi
call fcn.1401e9ea0
lea rcx, [r13 + 0x390]
mov r9d, edi
movsxd rsi, dword [rsp + 0xd0]
mov r8d, esi
mov rdx, r15
call fcn.1401e9ea0
mov r14, rsi
mov qword [rsp + 0xb0], rsi
cmp dword [r13 + 0x100], 0
jle 0x1401ea861
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rsp + 0x30]
add rcx, qword [0x1404be740]
xorps xmm6, xmm6
cvtsi2sd xmm6, rcx
mulsd xmm6, qword [0x1404be748]
mov ebp, 1
mov r15d, ebp
cmp edi, ebp
cmovg r15d, edi
cmp esi, ebp
cmovg ebp, esi
cmp r15d, dword [r13 + 0x17c]
jne 0x1401ea4f2
cmp ebp, dword [r13 + 0x178]
je 0x1401ea5e2
lea r14, [r15 + 3]
mov eax, 0xfffffffc
and r14, rax
lea eax, [rbp + 1]
lea r12, [rax*8 + 0xf]
mov eax, 0xfffffff0
and r12, rax
movsxd rsi, ebp
mov rdx, rsi
imul rdx, r14
add rdx, 8
lea rdx, [r12 + rdx*4]
cmp qword [r13 + 0x180], rdx
jb 0x1401ea549
cmp byte [r13 + 0x298], 0
je 0x1401ea57d
mov r8, rdx
xor edx, edx
mov rcx, qword [r13 + 0x190]
call fcn.1400c0ec0
jmp 0x1401ea57d
mov qword [r13 + 0x180], rdx
cmp byte [r13 + 0x298], 0
setne r8b
lea rcx, [r13 + 0x190]
call fcn.140006c50
mov rax, qword [r13 + 0x190]
mov qword [r13 + 0x188], rax
mov ebx, dword [rsp + 0xc0]
mov rdx, qword [r13 + 0x190]
add rdx, r12
xor ecx, ecx
test ebp, ebp
jle 0x1401ea5b6
lea r8, [r14*4]
nop word [rax + rax]
mov rax, qword [r13 + 0x188]
mov qword [rax + rcx*8], rdx
add rdx, r8
inc rcx
cmp rcx, rsi
jl 0x1401ea5a0
mov rax, qword [r13 + 0x188]
mov qword [rax + rsi*8], 0
mov dword [r13 + 0x17c], r15d
mov dword [r13 + 0x178], ebp
mov r14, qword [rsp + 0xb0]
mov esi, dword [rsp + 0xd0]
mov rax, qword [r13 + 0xf0]
mov rcx, qword [rax]
mov rax, qword [rcx]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], esi
mov r15, qword [rsp + 0xc8]
mov r9, r15
mov r8d, ebx
mov rdx, qword [rsp + 0xb8]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov byte [r13 + 0x298], 0
mov r12, qword [r13 + 0x188]
mov eax, dword [r13 + 0x100]
dec eax
mov rbx, rdi
movsxd rbp, eax
test eax, eax
jle 0x1401ea7f0
nop word [rax + rax]
mov rax, qword [r13 + 0xf0]
mov rcx, qword [rax + rbp*8]
mov rax, qword [rcx]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], esi
mov r9, r12
mov r8d, dword [rsp + 0xc0]
mov rdx, qword [rsp + 0xb8]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test r14, r14
jle 0x1401ea7e4
mov r11, r15
mov r14, r12
sub r14, r15
mov rsi, qword [rsp + 0xb0]
nop word [rax + rax]
mov r9, qword [r14 + r11]
test r9, r9
je 0x1401ea7c7
mov r10, qword [r11]
test r10, r10
je 0x1401ea7c7
xor edx, edx
test edi, edi
jle 0x1401ea71a
cmp edi, 8
jb 0x1401ea71a
lea eax, [rdi - 1]
movsxd rcx, eax
lea r8, [r10 + rcx*4]
lea rax, [r9 + rcx*4]
cmp r10, rax
ja 0x1401ea6cc
cmp r8, r9
jae 0x1401ea71a
mov ecx, edi
and ecx, 0x80000007
jge 0x1401ea6dd
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, edi
sub eax, ecx
movsxd r8, eax
lea rax, [r10 + 0x10]
mov rcx, r9
sub rcx, r10
nop
movups xmm1, xmmword [rcx + rax - 0x10]
movups xmm0, xmmword [rax - 0x10]
addps xmm1, xmm0
movups xmmword [rax - 0x10], xmm1
movups xmm2, xmmword [rcx + rax]
movups xmm0, xmmword [rax]
addps xmm2, xmm0
movups xmmword [rax], xmm2
add rdx, 8
add rax, 0x20
cmp rdx, r8
jl 0x1401ea6f0
cmp rdx, rbx
jge 0x1401ea7c7
mov rax, rbx
sub rax, rdx
cmp rax, 4
jl 0x1401ea79d
lea rax, [rdx + 1]
lea rax, [r10 + rax*4]
mov r8, r9
sub r8, r10
mov rcx, rbx
sub rcx, rdx
sub rcx, 4
shr rcx, 2
inc rcx
lea rdx, [rdx + rcx*4]
movss xmm0, dword [r8 + rax - 4]
addss xmm0, dword [rax - 4]
movss dword [rax - 4], xmm0
movss xmm1, dword [r8 + rax]
addss xmm1, dword [rax]
movss dword [rax], xmm1
movss xmm0, dword [r8 + rax + 4]
addss xmm0, dword [rax + 4]
movss dword [rax + 4], xmm0
movss xmm1, dword [r8 + rax + 8]
addss xmm1, dword [rax + 8]
movss dword [rax + 8], xmm1
add rax, 0x10
sub rcx, 1
jne 0x1401ea752
cmp rdx, rbx
jge 0x1401ea7c7
lea rax, [r10 + rdx*4]
sub r9, r10
mov rcx, rbx
sub rcx, rdx
movss xmm0, dword [r9 + rax]
addss xmm0, dword [rax]
movss dword [rax], xmm0
add rax, 4
sub rcx, 1
jne 0x1401ea7af
add r11, 8
sub rsi, 1
jne 0x1401ea690
mov r14, qword [rsp + 0xb0]
mov esi, dword [rsp + 0xd0]
dec rbp
test rbp, rbp
jg 0x1401ea640
lea rcx, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x1404be740]
add rcx, qword [rsp + 0xb0]
xorps xmm2, xmm2
cvtsi2sd xmm2, rcx
mulsd xmm2, qword [0x1404be748]
subsd xmm2, xmm6
movsd xmm0, qword [r13 + 0x360]
movaps xmm1, xmm2
subsd xmm1, xmm0
mulsd xmm1, qword [0x140437328]
addsd xmm1, xmm0
movsd qword [r13 + 0x360], xmm1
lea rbp, [r13 + 0x2f8]
comisd xmm2, xmmword [r13 + 0x370]
jbe 0x1401ea886
inc dword [r13 + 0x378]
jmp 0x1401ea886
xor ebx, ebx
test esi, esi
jle 0x1401ea886
lea rsi, [rdi*4]
nop
mov r8, rsi
xor edx, edx
mov rcx, qword [r15 + rbx*8]
call fcn.1400c0ec0
inc rbx
cmp rbx, r14
jl 0x1401ea870
mov rcx, qword [r13 + 0x350]
test rcx, rcx
je 0x1401eaa51
mov eax, dword [rcx + 4]
sub eax, dword [r13 + 0x358]
cmp eax, edi
cmovl edi, eax
movsxd rdx, dword [r13 + 0x358]
mov rax, qword [rcx + 0x10]
mov rcx, qword [rax]
lea rbx, [rcx + rdx*4]
movsxd r10, edi
xor r9d, r9d
test r14, r14
jle 0x1401eaa08
xor edx, edx
test edi, edi
jle 0x1401ea93a
cmp edi, 8
jb 0x1401ea93a
mov r8, qword [r15 + r9*8]
lea eax, [rdi - 1]
movsxd rcx, eax
lea r11, [r8 + rcx*4]
lea rax, [rbx + rcx*4]
cmp r8, rax
ja 0x1401ea8ed
cmp r11, rbx
jae 0x1401ea93a
mov ecx, edi
and ecx, 0x80000007
jge 0x1401ea8fe
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, edi
sub eax, ecx
movsxd r11, eax
lea rax, [r8 + 0x10]
mov rcx, rbx
sub rcx, r8
nop
movups xmm1, xmmword [rax + rcx - 0x10]
movups xmm0, xmmword [rax - 0x10]
addps xmm1, xmm0
movups xmmword [rax - 0x10], xmm1
movups xmm2, xmmword [rax + rcx]
movups xmm0, xmmword [rax]
addps xmm2, xmm0
movups xmmword [rax], xmm2
add rdx, 8
add rax, 0x20
cmp rdx, r11
jl 0x1401ea910
cmp rdx, r10
jge 0x1401ea9fc
mov rax, r10
sub rax, rdx
cmp rax, 4
jl 0x1401ea9cb
mov rax, qword [r15 + r9*8]
lea rcx, [rdx + 1]
lea rcx, [rax + rcx*4]
mov r8, rbx
sub r8, rax
mov rax, r10
sub rax, rdx
sub rax, 4
shr rax, 2
inc rax
lea rdx, [rdx + rax*4]
nop word [rax + rax]
movss xmm0, dword [rcx + r8 - 4]
addss xmm0, dword [rcx - 4]
movss dword [rcx - 4], xmm0
movss xmm1, dword [rcx + r8]
addss xmm1, dword [rcx]
movss dword [rcx], xmm1
movss xmm0, dword [rcx + r8 + 4]
addss xmm0, dword [rcx + 4]
movss dword [rcx + 4], xmm0
movss xmm1, dword [rcx + r8 + 8]
addss xmm1, dword [rcx + 8]
movss dword [rcx + 8], xmm1
add rcx, 0x10
sub rax, 1
jne 0x1401ea980
cmp rdx, r10
jge 0x1401ea9fc
mov rax, qword [r15 + r9*8]
lea rcx, [rax + rdx*4]
mov r8, rbx
sub r8, rax
mov rax, r10
sub rax, rdx
movss xmm0, dword [r8 + rcx]
addss xmm0, dword [rcx]
movss dword [rcx], xmm0
add rcx, 4
sub rax, 1
jne 0x1401ea9e4
inc r9
cmp r9, r14
jl 0x1401ea8c6
add dword [r13 + 0x358], edi
mov ecx, dword [r13 + 0x358]
mov rax, qword [r13 + 0x350]
cmp ecx, dword [rax + 4]
jl 0x1401eaa51
mov rbx, rax
test rax, rax
je 0x1401eaa51
mov qword [r13 + 0x350], 0
test rax, rax
je 0x1401eaa51
mov rcx, qword [rax + 0x18]
call fcn.1400c1bd0
mov edx, 0x128
mov rcx, rbx
call fcn.1400bd658
nop
mov rcx, rbp
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]