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

Disassembly:
push rsi
push rbx
sub rsp, 0x88
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 ebx, dword [rcx]
mov esi, dword [rcx + 8]
mov dword [0x22dd0dd0c], eax
cmp eax, 1
je 0x22dc000f0
cmp eax, 2
je 0x22dc000b8
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]
add rsp, 0x88
pop rbx
pop rsi
ret
cmp ebx, 1
je 0x22dc004c0
cmp ebx, 2
je 0x22dc00388
test ebx, ebx
jne 0x22dc0008d
mov dword [0x22dd0dd0c], 0
pxor xmm0, xmm0
mov dword [0x22dd0dd00], 0
movups xmmword [0x22dd0dd88], xmm0
jmp 0x22dc0008d
cmp ebx, 1
je 0x22dc002a0
test ebx, ebx
jne 0x22dc00240
cmp dword [0x22dd0dd00], 8
jne 0x22dc00115
mov rax, qword [rcx + 0x28]
mov qword [0x22dd0dd18], rax
movss xmm0, dword [0x22dd0dd18]
movss xmm1, dword [0x22dd0dd1c]
lea rcx, [rsp + 0x20]
subss xmm0, dword [0x22dd0dd20]
subss xmm1, dword [0x22dd0dd24]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
movaps xmm6, xmm0
sqrtss xmm6, xmm6
movss dword [0x22dd0dd6c], 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 0x22dc00192
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 0x22dc001be
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 [0x22dd0dd78], 0
mulsd xmm0, qword [0x22dd92a38]
subsd xmm0, qword [0x22dd0dd80]
cvtsd2ss xmm0, xmm0
divss xmm6, xmm0
comiss xmm6, dword [0x22dd92a4c]
movss dword [0x22dd0dd70], xmm6
jbe 0x22dc001fe
cmp dword [0x22dd0dd08], esi
je 0x22dc00678
mov qword [0x22dd0dd6c], 0
pxor xmm1, xmm1
xor eax, eax
mov dword [0x22dd0dd00], eax
mov qword [0x22dd0dd30], 0
mov dword [0x22dd0dd0c], 0
movss dword [0x22dd0dd68], xmm1
jmp 0x22dc0008d
cmp ebx, 2
jne 0x22dc0008d
cmp dword [0x22dd0dd00], 8
je 0x22dc00781
cmp byte [0x22dd0dd78], 0
je 0x22dc00758
mov rax, qword [rcx + 0x28]
cmp dword [0x22dd0dd00], 4
mov qword [0x22dd0dd38], rax
je 0x22dc006e0
movq xmm0, qword [0x22dd0dd38]
movq xmm1, qword [0x22dd0dd30]
subps xmm0, xmm1
movlps qword [0x22dd0dd60], xmm0
jmp 0x22dc0008d
mov eax, dword [0x22dd0dd48]
mov edx, dword [0x22dd0dd00]
add eax, 1
mov dword [0x22dd0dd48], eax
test edx, edx
jne 0x22dc002c2
cmp eax, 1
jg 0x22dc00600
mov eax, 1
mov dword [0x22dd0dd00], eax
mov rax, qword [rcx + 0x28]
lea rcx, [rsp + 0x20]
mov dword [0x22dd0dd48], ebx
mov qword [0x22dd0dd20], rax
mov qword [0x22dd0dd30], rax
mov qword [0x22dd0dd18], rax
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 0x22dc0032e
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 0x22dc0035a
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 [0x22dd0dd08], esi
mov qword [0x22dd0dd60], 0
mulsd xmm0, qword [0x22dd92a38]
movsd qword [0x22dd0dd10], xmm0
jmp 0x22dc0008d
movss xmm6, dword [0x22dd0dd40]
movss xmm5, dword [0x22dd0dd44]
movss xmm9, dword [0x22dd0dd38]
movss xmm7, dword [0x22dd0dd3c]
movaps xmm0, xmm6
movaps xmm1, xmm5
mov rax, qword [0x22dd0dd38]
subss xmm0, xmm9
subss xmm1, xmm7
mov qword [0x22dd0dd20], rax
mov rax, qword [0x22dd0dd40]
mulss xmm1, xmm1
mov qword [0x22dd0dd28], rax
mov rax, qword [rcx + 0x28]
mulss xmm0, xmm0
mov qword [0x22dd0dd38], 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 [0x22dd0dd40], rax
subps xmm2, xmm0
shufps xmm4, xmm4, 0xe5
movaps xmm10, xmm4
movss dword [0x22dd0dd94], xmm3
movaps xmm4, xmm2
movaps xmm1, xmm2
movlps qword [0x22dd0dd88], 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 [0x22dd92a70]
jb 0x22dc00580
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 [0x22dd0dd00], eax
movaps xmm0, xmm4
call fcn.22dcf00b0
mulss xmm0, dword [0x22dd92a50]
movss xmm1, dword [0x22dd92a54]
comiss xmm6, xmm0
ja 0x22dc005f0
subss xmm1, xmm0
movss dword [0x22dd0dd90], xmm1
jmp 0x22dc0008d
mov rdx, qword [rcx + 0x28]
mov rax, qword [rcx + 0x30]
mov dword [0x22dd0dd00], 4
lea rcx, [rsp + 0x20]
movq xmm5, rdx
movq xmm0, rax
mov qword [0x22dd0dd20], rdx
subps xmm0, xmm5
mov qword [0x22dd0dd28], rax
movlps qword [0x22dd0dd88], 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 0x22dc00536
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 0x22dc00562
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 [0x22dd92a38]
movsd qword [0x22dd0dd58], xmm0
jmp 0x22dc0008d
movd xmm0, eax
movaps xmm2, xmm10
subss xmm0, xmm6
subss xmm2, xmm5
mulss xmm0, xmm0
mulss xmm2, xmm2
addss xmm0, xmm2
comiss xmm0, dword [0x22dd92a70]
jae 0x22dc00459
mov dword [0x22dd0dd00], 4
pxor xmm6, xmm6
call fcn.22dbfffc0
movss xmm1, dword [0x22dd0dd40]
movss xmm4, dword [0x22dd0dd44]
subss xmm1, dword [0x22dd0dd38]
subss xmm4, dword [0x22dd0dd3c]
movsd qword [0x22dd0dd58], xmm0
jmp 0x22dc0048d
addss xmm0, xmm1
jmp 0x22dc004ae
mov qword [rsp + 0xa0], rcx
call fcn.22dbfffc0
subsd xmm0, qword [0x22dd0dd10]
movsd xmm1, qword [0x22dd92a40]
mov rcx, qword [rsp + 0xa0]
comisd xmm1, xmm0
jbe 0x22dc002c2
movss xmm0, dword [rcx + 0x28]
movss xmm1, dword [rcx + 0x2c]
subss xmm0, dword [0x22dd0dd20]
subss xmm1, dword [0x22dd0dd24]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
movss xmm1, dword [0x22dd92a48]
comiss xmm1, xmm0
jbe 0x22dc002c2
xor ebx, ebx
mov eax, 2
jmp 0x22dc002c7
movss xmm0, dword [0x22dd0dd1c]
movss xmm1, dword [0x22dd0dd18]
subss xmm0, dword [0x22dd0dd24]
subss xmm1, dword [0x22dd0dd20]
call fcn.22dcf00b0
mulss xmm0, dword [0x22dd92a50]
pxor xmm1, xmm1
comiss xmm1, xmm0
movss xmm1, dword [0x22dd92a54]
jbe 0x22dc006ba
addss xmm0, xmm1
comiss xmm0, dword [0x22dd92a58]
subss xmm1, xmm0
ja 0x22dc006d4
comiss xmm0, dword [0x22dd92a5c]
jae 0x22dc007a3
mov eax, 0x10
jmp 0x22dc0020f
cmp byte [0x22dd0dd50], 0
je 0x22dc006f0
mov qword [0x22dd0dd20], rax
movq xmm0, qword [0x22dd0dd38]
mov byte [0x22dd0dd50], 0
movaps xmm7, xmm0
movaps xmm1, xmm0
subss xmm1, dword [0x22dd0dd20]
shufps xmm7, xmm7, 0xe5
movaps xmm2, xmm7
subss xmm2, dword [0x22dd0dd24]
mulss xmm1, xmm1
mulss xmm2, xmm2
addss xmm1, xmm2
comiss xmm1, dword [0x22dd92a6c]
jb 0x22dc00283
call fcn.22dbfffc0
mov dword [0x22dd0dd00], 8
movsd qword [0x22dd0dd10], xmm0
jmp 0x22dc0027b
mov qword [rsp + 0xa0], rcx
call fcn.22dbfffc0
mov byte [0x22dd0dd78], 1
mov rcx, qword [rsp + 0xa0]
movsd qword [0x22dd0dd80], xmm0
jmp 0x22dc00263
mov qword [rsp + 0xa0], rcx
call fcn.22dbfffc0
mov rcx, qword [rsp + 0xa0]
movsd qword [0x22dd0dd10], xmm0
jmp 0x22dc00256
comiss xmm0, dword [0x22dd92a60]
jbe 0x22dc007be
comiss xmm0, dword [0x22dd92a58]
mov eax, 0x40
jb 0x22dc0020f
comiss xmm0, dword [0x22dd92a64]
jbe 0x22dc007d9
comiss xmm0, dword [0x22dd92a60]
mov eax, 0x20
jb 0x22dc0020f
comiss xmm0, dword [0x22dd92a68]
seta dl
xor eax, eax
comiss xmm0, dword [0x22dd92a64]
setb al
and eax, edx
shl eax, 7
jmp 0x22dc0020f