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

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc0
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0xb0], xmm7
mov rbx, qword [0x22ddadb80]
mov rcx, qword [rbx]
call fcn.22dbfa2f0
cmp byte [0x22dde33a0], 0
mov rsi, qword [0x22ddac700]
je 0x22dc0d908
mov eax, dword [0x22dde3300]
lea edx, [rax + 1]
imul eax, edx, 0xcccccccd
mov dword [0x22dde3300], edx
add eax, 0x19999998
ror eax, 1
cmp eax, 0x19999998
jbe 0x22dc0dc70
movsxd rax, edx
imul rax, rax, 0xffffffff88888889
shr rax, 0x20
add eax, edx
sar edx, 0x1f
sar eax, 3
sub eax, edx
mov edx, eax
shr edx, 0x1f
add eax, edx
and eax, 1
sub eax, edx
cmp eax, 1
je 0x22dc0dda0
mov rcx, qword [rbx]
call fcn.22dbfa2f0
mov rdi, qword [rsi]
test rdi, rdi
je 0x22dc0dd30
mov rbx, qword [0x22ddae300]
mov r12d, dword [rbx]
test r12d, r12d
je 0x22dc0dc58
mov ebp, dword [rdi + 0x208]
test ebp, ebp
je 0x22dc0dd50
mov rcx, rdi
call qword [rdi + 0x258]
mov edi, dword [rbx]
test edi, edi
je 0x22dc0da40
mov r11d, dword [rbx + 0x1670]
test r11d, r11d
jne 0x22dc0da28
call qword [rbx + 0x24a8]
mov eax, eax
sub rax, qword [rbx + 0x1668]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
jns 0x22dc0d98b
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
mov rax, qword [rbx + 0x1678]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
test rax, rax
jns 0x22dc0d9b9
mov rdx, rax
and eax, 1
pxor xmm1, xmm1
shr rdx, 1
or rdx, rax
cvtsi2sd xmm1, rdx
addsd xmm1, xmm1
divsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, qword [rsi + 0x888]
unpcklpd xmm0, xmm0
movsd xmm2, qword [rsi + 0x890]
movsd xmm7, qword [rsi + 0x8a8]
movaps xmmword [rsi + 0x880], xmm0
addsd xmm2, xmm1
comisd xmm7, xmm2
unpcklpd xmm1, xmm2
movups xmmword [rsi + 0x898], xmm1
ja 0x22dc0da58
call fcn.22dc14930
add dword [rsi + 0x8b0], 1
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
add rsp, 0xc0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x68]
jmp 0x22dc0d960
xor edx, edx
mov ecx, 0x10001
call fcn.22dad20f0
pxor xmm0, xmm0
jmp 0x22dc0d9bd
mov r10d, dword [rbx]
subsd xmm7, xmm2
test r10d, r10d
je 0x22dc0dd70
mov r9d, dword [rbx + 0x1670]
test r9d, r9d
jne 0x22dc0dd00
call qword [rbx + 0x24a8]
mov eax, eax
sub rax, qword [rbx + 0x1668]
pxor xmm6, xmm6
cvtsi2sd xmm6, rax
jns 0x22dc0daab
mov rdx, rax
and eax, 1
pxor xmm6, xmm6
shr rdx, 1
or rdx, rax
cvtsi2sd xmm6, rdx
addsd xmm6, xmm6
mov rax, qword [rbx + 0x1678]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
jns 0x22dc0dad9
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
divsd xmm6, xmm0
addsd xmm6, xmm7
mulsd xmm7, qword [0x22dd94078]
lea rbp, [rsp + 0x68]
cvttsd2si rcx, xmm7
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rdi, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
jmp 0x22dc0db81
mov ecx, dword [rbx + 0x1670]
test ecx, ecx
jne 0x22dc0dd18
call qword [rbx + 0x24a8]
mov eax, eax
sub rax, qword [rbx + 0x1668]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
jns 0x22dc0db49
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
mov rax, qword [rbx + 0x1678]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
test rax, rax
jns 0x22dc0db77
mov rdx, rax
and eax, 1
pxor xmm1, xmm1
shr rdx, 1
or rdx, rax
cvtsi2sd xmm1, rdx
addsd xmm1, xmm1
divsd xmm0, xmm1
comisd xmm6, xmm0
jbe 0x22dc0dba3
mov r8d, dword [rbx]
test r8d, r8d
jne 0x22dc0db08
xor edx, edx
mov ecx, 0x10001
call fcn.22dad20f0
pxor xmm0, xmm0
comisd xmm6, xmm0
ja 0x22dc0db81
mov edx, dword [rbx]
test edx, edx
je 0x22dc0dd88
mov eax, dword [rbx + 0x1670]
test eax, eax
jne 0x22dc0dea0
call qword [rbx + 0x24a8]
mov eax, eax
sub rax, qword [rbx + 0x1668]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
jns 0x22dc0dbee
mov rdx, rax
and eax, 1
pxor xmm1, xmm1
shr rdx, 1
or rdx, rax
cvtsi2sd xmm1, rdx
addsd xmm1, xmm1
mov rax, qword [rbx + 0x1678]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
jns 0x22dc0dc1c
mov rdx, rax
and eax, 1
pxor xmm0, xmm0
shr rdx, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
divsd xmm1, xmm0
movapd xmm0, xmm1
movsd xmm2, qword [rsi + 0x888]
unpcklpd xmm0, xmm0
movaps xmmword [rsi + 0x880], xmm0
movsd xmm0, qword [rsi + 0x8a0]
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd qword [rsi + 0x8a0], xmm0
jmp 0x22dc0d9f9
xor edx, edx
mov ecx, 0x10001
call fcn.22dad20f0
jmp 0x22dc0d93e
call fcn.22dc0c650
mov edx, dword [rsi + 0x40]
pxor xmm0, xmm0
movd xmm6, eax
shr rax, 0x20
cvtsi2ss xmm0, rdx
movd xmm4, eax
mov eax, dword [rsi + 0x3c]
mulss xmm0, xmm4
cvttss2si edx, xmm0
pxor xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, xmm6
cvttss2si ecx, xmm0
call fcn.22dbf7ba0
pxor xmm0, xmm0
mov r9d, 0x10
mov r8d, 0xa
mov r12, rax
mov eax, dword [rsi + 0x3c]
lea rcx, [0x22dde3320]
mov rdx, r12
cvtsi2ss xmm0, rax
mulss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 2
mov dword [rsp + 0x20], eax
call fcn.22dc02280
mov rcx, r12
call sub.msvcrt.dll_free
mov edx, dword [0x22dde3300]
jmp 0x22dc0d8d3
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x68]
jmp 0x22dc0da80
mov rcx, rbp
call rdi
mov rax, qword [rsp + 0x68]
jmp 0x22dc0db1e
mov r8d, 0x282
lea rdx, [0x22dd93998]
lea rcx, [0x22dd92d64]
call qword [sym.imp.msvcrt.dll__wassert]
jmp 0x22dc0d914
lea rdx, [0x22dd93ab8]
mov ecx, 0x1000a
call fcn.22dad20f0
jmp 0x22dc0d93e
xor edx, edx
mov ecx, 0x10001
movapd xmm6, xmm7
call fcn.22dad20f0
jmp 0x22dc0dae1
xor edx, edx
mov ecx, 0x10001
call fcn.22dad20f0
pxor xmm1, xmm1
jmp 0x22dc0dc20
mov eax, dword [rsi + 0x30]
pxor xmm5, xmm5
mov dword [rsp + 0x28], 0xff3721be
pxor xmm2, xmm2
mov dword [rsp + 0x20], 0x24
movss xmm3, dword [0x22dd9406c]
sub eax, 0x14
movss xmm1, dword [0x22dd94070]
cvtsi2ss xmm5, eax
movd ecx, xmm5
shl rcx, 0x20
or rcx, 0x41f00000
call fcn.22daeb1d0
mov rax, qword [0x22ddae4f0]
mov edx, dword [rsi + 0x30]
mov ecx, dword [rax + 0xc]
test ecx, ecx
je 0x22dc0d900
sub edx, 0x19
pxor xmm3, xmm3
movdqa xmm0, xmmword [rax]
mov r10, qword [rax + 0x10]
cvtsi2ss xmm3, edx
mov r11, qword [rax + 0x18]
mov rdx, qword [rax + 0x28]
lea rcx, [rsp + 0x30]
mov rax, qword [rax + 0x20]
mov dword [rsp + 0x28], 0xff3729e6
mov dword [rsp + 0x20], 0x3f800000
mov qword [rsp + 0x98], rdx
movd r8d, xmm3
movss xmm3, dword [0x22dd94070]
mov qword [rsp + 0x58], rdx
lea rdx, str.GIF_RECORDING
shl r8, 0x20
mov qword [rsp + 0x80], r10
or r8, 0x42480000
mov qword [rsp + 0x88], r11
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x50], rax
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x30], xmm0
call fcn.22db30940
jmp 0x22dc0d900
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x68]
jmp 0x22dc0dbc3