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

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
add rsp, 0xffffffffffffff80
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x40], xmm7
movaps xmmword [rsp + 0x50], xmm8
movaps xmmword [rsp + 0x60], xmm9
movaps xmmword [rsp + 0x70], xmm10
mov eax, dword [rcx + 4]
mov esi, dword [rcx]
mov edi, dword [rcx + 8]
mov dword [0x2e3e6ad0c], eax
mov rbx, rcx
cmp eax, 1
je 0x2e3d61420
cmp eax, 2
je 0x2e3d613e0
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
sub rsp, 0xffffffffffffff80
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
cmp esi, 1
je 0x2e3d61800
cmp esi, 2
je 0x2e3d616c8
test esi, esi
jne 0x2e3d613b5
mov dword [0x2e3e6ad0c], 0
pxor xmm0, xmm0
mov dword [0x2e3e6ad00], 0
movups xmmword [0x2e3e6ad88], xmm0
jmp 0x2e3d613b5
cmp esi, 1
je 0x2e3d615d0
test esi, esi
jne 0x2e3d61570
cmp dword [0x2e3e6ad00], 8
jne 0x2e3d61445
mov rax, qword [rcx + 0x28]
mov qword [0x2e3e6ad18], rax
movss xmm0, dword [0x2e3e6ad18]
movss xmm1, dword [0x2e3e6ad1c]
lea rcx, [rsp + 0x20]
subss xmm0, dword [0x2e3e6ad20]
subss xmm1, dword [0x2e3e6ad24]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
movaps xmm6, xmm0
sqrtss xmm6, xmm6
movss dword [0x2e3e6ad6c], xmm6
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x28]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
jns 0x2e3d614c2
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
mov rax, qword [rsp + 0x20]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
test rax, rax
jns 0x2e3d614ee
mov rdx, rax
and eax, 1
pxor xmm1, xmm1
shr rdx, 1
or rdx, rax
cvtsi2sd xmm1, rdx
addsd xmm1, xmm1
divsd xmm0, xmm1
mov byte [0x2e3e6ad78], 0
mulsd xmm0, qword [0x2e3eefb98]
subsd xmm0, qword [0x2e3e6ad80]
cvtsd2ss xmm0, xmm0
divss xmm6, xmm0
comiss xmm6, dword [0x2e3eefbac]
movss dword [0x2e3e6ad70], xmm6
jbe 0x2e3d6152e
cmp dword [0x2e3e6ad08], edi
je 0x2e3d61a28
mov qword [0x2e3e6ad6c], 0
pxor xmm1, xmm1
xor eax, eax
mov dword [0x2e3e6ad00], eax
mov qword [0x2e3e6ad30], 0
mov dword [0x2e3e6ad0c], 0
movss dword [0x2e3e6ad68], xmm1
jmp 0x2e3d613b5
cmp esi, 2
jne 0x2e3d613b5
cmp dword [0x2e3e6ad00], 8
je 0x2e3d61b21
cmp byte [0x2e3e6ad78], 0
je 0x2e3d61b08
mov rax, qword [rbx + 0x28]
cmp dword [0x2e3e6ad00], 4
mov qword [0x2e3e6ad38], rax
je 0x2e3d61a90
movq xmm0, qword [0x2e3e6ad38]
movq xmm1, qword [0x2e3e6ad30]
subps xmm0, xmm1
movlps qword [0x2e3e6ad60], xmm0
jmp 0x2e3d613b5
mov eax, dword [0x2e3e6ad48]
mov edx, dword [0x2e3e6ad00]
lea r14, [rsp + 0x20]
add eax, 1
mov dword [0x2e3e6ad48], eax
test edx, edx
jne 0x2e3d615f7
cmp eax, 1
jg 0x2e3d61940
mov r13, qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov rbp, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea r12, [rsp + 0x28]
movsd xmm6, qword [0x2e3eefb98]
mov eax, 1
mov dword [0x2e3e6ad00], eax
mov rax, qword [rbx + 0x28]
mov rcx, r14
mov dword [0x2e3e6ad48], esi
mov qword [0x2e3e6ad20], rax
mov qword [0x2e3e6ad30], rax
mov qword [0x2e3e6ad18], rax
call r13
mov rcx, r12
call rbp
mov rax, qword [rsp + 0x28]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
jns 0x2e3d61673
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
mov rax, qword [rsp + 0x20]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
test rax, rax
jns 0x2e3d6169f
mov rdx, rax
and eax, 1
pxor xmm1, xmm1
shr rdx, 1
or rdx, rax
cvtsi2sd xmm1, rdx
addsd xmm1, xmm1
divsd xmm0, xmm1
mov dword [0x2e3e6ad08], edi
mov qword [0x2e3e6ad60], 0
mulsd xmm0, xmm6
movsd qword [0x2e3e6ad10], xmm0
jmp 0x2e3d613b5
movss xmm6, dword [0x2e3e6ad40]
movss xmm5, dword [0x2e3e6ad44]
movss xmm9, dword [0x2e3e6ad38]
movss xmm7, dword [0x2e3e6ad3c]
movaps xmm0, xmm6
movaps xmm1, xmm5
mov rax, qword [0x2e3e6ad38]
subss xmm0, xmm9
subss xmm1, xmm7
mov qword [0x2e3e6ad20], rax
mov rax, qword [0x2e3e6ad40]
mulss xmm1, xmm1
mov qword [0x2e3e6ad28], rax
mov rax, qword [rcx + 0x28]
mulss xmm0, xmm0
mov qword [0x2e3e6ad38], rax
addss xmm0, xmm1
movaps xmm3, xmm0
movq xmm0, rax
mov rax, qword [rcx + 0x30]
sqrtss xmm3, xmm3
movq xmm2, rax
movq xmm4, rax
mov qword [0x2e3e6ad40], rax
subps xmm2, xmm0
shufps xmm4, xmm4, 0xe5
movaps xmm10, xmm4
movss dword [0x2e3e6ad94], xmm3
movaps xmm4, xmm2
movaps xmm1, xmm2
movlps qword [0x2e3e6ad88], xmm2
movaps xmm2, xmm0
subss xmm2, xmm9
shufps xmm0, xmm0, 0xe5
subss xmm0, xmm7
shufps xmm4, xmm4, 0xe5
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm2, xmm0
comiss xmm2, dword [0x2e3eefbd0]
jb 0x2e3d618c0
movaps xmm2, xmm1
movaps xmm0, xmm4
pxor xmm6, xmm6
mov eax, 0x100
mulss xmm2, xmm1
mov edx, 0x200
mulss xmm0, xmm4
addss xmm0, xmm2
sqrtss xmm0, xmm0
subss xmm0, xmm3
comiss xmm6, xmm0
cmovbe eax, edx
mov dword [0x2e3e6ad00], eax
movaps xmm0, xmm4
call fcn.2e3e4ccd0
mulss xmm0, dword [0x2e3eefbb0]
movss xmm1, dword [0x2e3eefbb4]
comiss xmm6, xmm0
ja 0x2e3d61930
subss xmm1, xmm0
movss dword [0x2e3e6ad90], xmm1
jmp 0x2e3d613b5
mov rdx, qword [rcx + 0x28]
mov rax, qword [rcx + 0x30]
mov dword [0x2e3e6ad00], 4
lea rcx, [rsp + 0x20]
movq xmm5, rdx
movq xmm0, rax
mov qword [0x2e3e6ad20], rdx
subps xmm0, xmm5
mov qword [0x2e3e6ad28], rax
movlps qword [0x2e3e6ad88], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x28]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
jns 0x2e3d61876
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
mov rax, qword [rsp + 0x20]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
test rax, rax
jns 0x2e3d618a2
mov rdx, rax
and eax, 1
pxor xmm1, xmm1
shr rdx, 1
or rdx, rax
cvtsi2sd xmm1, rdx
addsd xmm1, xmm1
divsd xmm0, xmm1
mulsd xmm0, qword [0x2e3eefb98]
movsd qword [0x2e3e6ad58], xmm0
jmp 0x2e3d613b5
movd xmm0, eax
movaps xmm2, xmm10
subss xmm0, xmm6
subss xmm2, xmm5
mulss xmm0, xmm0
mulss xmm2, xmm2
addss xmm0, xmm2
comiss xmm0, dword [0x2e3eefbd0]
jae 0x2e3d61799
mov dword [0x2e3e6ad00], 4
pxor xmm6, xmm6
call fcn.2e3d612e0
movss xmm1, dword [0x2e3e6ad40]
movss xmm4, dword [0x2e3e6ad44]
subss xmm1, dword [0x2e3e6ad38]
subss xmm4, dword [0x2e3e6ad3c]
movsd qword [0x2e3e6ad58], xmm0
jmp 0x2e3d617cd
addss xmm0, xmm1
jmp 0x2e3d617ee
lea r12, [rsp + 0x28]
mov rcx, r14
mov r13, qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
call r13
mov rbp, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, r12
call rbp
mov rax, qword [rsp + 0x28]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
jns 0x2e3d6198a
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
mov rax, qword [rsp + 0x20]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
test rax, rax
jns 0x2e3d619b6
mov rdx, rax
and eax, 1
pxor xmm1, xmm1
shr rdx, 1
or rdx, rax
cvtsi2sd xmm1, rdx
addsd xmm1, xmm1
divsd xmm0, xmm1
movsd xmm6, qword [0x2e3eefb98]
movsd xmm1, qword [0x2e3eefba0]
mulsd xmm0, xmm6
subsd xmm0, qword [0x2e3e6ad10]
comisd xmm1, xmm0
jbe 0x2e3d61612
movss xmm0, dword [rbx + 0x28]
movss xmm1, dword [rbx + 0x2c]
subss xmm0, dword [0x2e3e6ad20]
subss xmm1, dword [0x2e3e6ad24]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
movss xmm1, dword [0x2e3eefba8]
comiss xmm1, xmm0
jbe 0x2e3d61612
xor esi, esi
mov eax, 2
jmp 0x2e3d61617
movss xmm0, dword [0x2e3e6ad1c]
movss xmm1, dword [0x2e3e6ad18]
subss xmm0, dword [0x2e3e6ad24]
subss xmm1, dword [0x2e3e6ad20]
call fcn.2e3e4ccd0
mulss xmm0, dword [0x2e3eefbb0]
pxor xmm1, xmm1
comiss xmm1, xmm0
movss xmm1, dword [0x2e3eefbb4]
jbe 0x2e3d61a6a
addss xmm0, xmm1
comiss xmm0, dword [0x2e3eefbb8]
subss xmm1, xmm0
ja 0x2e3d61a84
comiss xmm0, dword [0x2e3eefbbc]
jae 0x2e3d61b33
mov eax, 0x10
jmp 0x2e3d6153f
cmp byte [0x2e3e6ad50], 0
je 0x2e3d61aa0
mov qword [0x2e3e6ad20], rax
movq xmm0, qword [0x2e3e6ad38]
mov byte [0x2e3e6ad50], 0
movaps xmm7, xmm0
movaps xmm1, xmm0
subss xmm1, dword [0x2e3e6ad20]
shufps xmm7, xmm7, 0xe5
movaps xmm2, xmm7
subss xmm2, dword [0x2e3e6ad24]
mulss xmm1, xmm1
mulss xmm2, xmm2
addss xmm1, xmm2
comiss xmm1, dword [0x2e3eefbcc]
jb 0x2e3d615b3
call fcn.2e3d612e0
mov dword [0x2e3e6ad00], 8
movsd qword [0x2e3e6ad10], xmm0
jmp 0x2e3d615ab
call fcn.2e3d612e0
mov byte [0x2e3e6ad78], 1
movsd qword [0x2e3e6ad80], xmm0
jmp 0x2e3d61593
call fcn.2e3d612e0
movsd qword [0x2e3e6ad10], xmm0
jmp 0x2e3d61586
comiss xmm0, dword [0x2e3eefbb8]
jae 0x2e3d61b4e
comiss xmm0, dword [0x2e3eefbc0]
mov eax, 0x40
ja 0x2e3d6153f
comiss xmm0, dword [0x2e3eefbc4]
jbe 0x2e3d61b69
comiss xmm0, dword [0x2e3eefbc0]
mov eax, 0x20
jb 0x2e3d6153f
comiss xmm0, dword [0x2e3eefbc8]
seta dl
xor eax, eax
comiss xmm0, dword [0x2e3eefbc4]
setb al
and eax, edx
shl eax, 7
jmp 0x2e3d6153f