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

Disassembly:
mov rax, rsp
mov dword [rax + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rax - 0x68], 0xfffffffffffffffe
mov qword [rax + 8], rbx
movaps xmmword [rax - 0x48], xmm6
mov r15, rdx
mov rsi, rcx
test rdx, rdx
jne 0x1800778fe
mov r15, qword [rcx + 8]
test r15, r15
je 0x180077c74
call fcn.18007e010
mov rcx, qword [rsi + 0xc8]
mov rax, qword [rcx]
mov edx, 0x8b
call qword [rax]
mov edi, eax
mov rcx, qword [rsi + 0xc8]
mov r8, qword [rcx]
mov edx, 0x8c
call qword [r8]
mov ebx, eax
call fcn.180021500
movaps xmm6, xmm0
movd xmm1, edi
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm6
cvttss2si r12d, xmm1
movd xmm2, ebx
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm6
cvttss2si edx, xmm2
mov dword [rsp + 0x98], edx
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x2c], r12d
mov ecx, dword [rsi + 0x88]
add ecx, r12d
mov dword [rsp + 0x30], ecx
mov ecx, dword [rsi + 0x8c]
add ecx, edx
mov dword [rsp + 0x34], ecx
xor edi, edi
mov r14, qword [0x180278790]
test r14, r14
jne 0x1800779be
mov ecx, 0x260
call fcn.1800b543c
mov r14, rax
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x1800779b4
mov rcx, rax
call fcn.180001a60
mov dword [r14 + 0x258], edi
jmp 0x1800779b7
mov r14, rdi
mov qword [0x180278790], r14
lea rcx, [r14 + 0x1f8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea rcx, [r14 + 0x1f0]
mov rax, qword [r14 + 0x1f8]
sub rax, qword [rcx]
imul rax, rax, 0x3e8
cqo
idiv qword [r14 + 0x250]
cmp rax, 0x3e8
jle 0x180077a0f
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call fcn.18001a3e0
mov dword [r14], eax
mov eax, dword [0x180278bf8]
mov dword [r14 + 0x1e8], eax
mov eax, dword [r14]
mov dword [rsp + 0xa0], eax
mov rbx, qword [0x180278790]
test rbx, rbx
jne 0x180077a59
mov ecx, 0x260
call fcn.1800b543c
mov rbx, rax
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x180077a4f
mov rcx, rax
call fcn.180001a60
mov dword [rbx + 0x258], edi
jmp 0x180077a52
mov rbx, rdi
mov qword [0x180278790], rbx
mov r13d, dword [rbx + 8]
mov rcx, rbx
call fcn.180004450
mov r14d, eax
mov rbp, qword [0x180278790]
test rbp, rbp
jne 0x180077aa8
mov ecx, 0x260
call fcn.1800b543c
mov rbp, rax
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x180077a9e
mov rcx, rax
call fcn.180001a60
mov dword [rbp + 0x258], edi
jmp 0x180077aa1
mov rbp, rdi
mov qword [0x180278790], rbp
cmp dword [rbp + 0x14], 0
jg 0x180077abf
lea rcx, [rsp + 0x28]
call fcn.18001a250
mov ebx, eax
mov dword [rbp + 0x14], eax
jmp 0x180077b17
lea rcx, [rbp + 0x248]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea rcx, [rbp + 0x240]
mov rax, qword [rbp + 0x248]
sub rax, qword [rcx]
imul rax, rax, 0x3e8
cqo
idiv qword [rbp + 0x250]
cmp rax, 0x3e8
jle 0x180077b14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea rcx, [rsp + 0x28]
call fcn.18001a250
mov dword [rbp + 0x14], eax
mov eax, dword [0x180278bf8]
mov dword [rbp + 0x1e8], eax
mov ebx, dword [rbp + 0x14]
mov eax, dword [rsp + 0xa0]
sub r14d, dword [rsi + 0x88]
cmp r12d, eax
jge 0x180077b2f
add r14d, eax
jmp 0x180077b3c
mov eax, r14d
mov r14d, r12d
cmp r12d, eax
cmovg r14d, eax
mov ecx, dword [rsp + 0x98]
sub ebx, dword [rsi + 0x8c]
cmp ecx, r13d
jge 0x180077b53
add ebx, r13d
jmp 0x180077b5c
mov eax, ebx
mov ebx, ecx
cmp ecx, eax
cmovge ebx, eax
mov rcx, qword [rsi + 0xc8]
mov rax, qword [rcx]
movd xmm0, r14d
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si r8d, xmm0
mov edx, 0x8b
call qword [rax + 0x18]
mov rcx, qword [rsi + 0xc8]
mov rax, qword [rcx]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si r8d, xmm0
mov edx, 0x8c
call qword [rax + 0x18]
mov rcx, qword [rsi + 0xc8]
mov rax, qword [rcx]
mov edx, 0x8b
call qword [rax + 0x28]
mov rcx, qword [rsi + 0xc8]
mov rax, qword [rcx]
mov edx, 0x8c
call qword [rax + 0x28]
mov rcx, qword [rsi + 0xc8]
mov rax, qword [rcx]
mov edx, 0x57
call qword [rax]
test eax, eax
je 0x180077c28
mov rcx, qword [rsi + 0xc8]
mov rax, qword [rcx]
mov edx, 0xa2
call qword [rax + 0x20]
lea rdx, str.default
nop word [rax + rax]
movzx ecx, word [rax + rdi*2]
inc rdi
cmp cx, word [rdx + rdi*2 - 2]
jne 0x180077c1e
cmp rdi, 8
jne 0x180077c00
xor edx, edx
mov rcx, rsi
call fcn.180077d10
xor r8d, r8d
mov edx, 0x4c8
jmp 0x180077c59
mov dword [rsi + 0x24], r14d
mov dword [rsi + 0x28], ebx
cmp dword [rsi + 0x88], 0
jle 0x180077c65
cmp dword [rsi + 0x8c], 0
jle 0x180077c65
mov rcx, r15
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x180077c65
mov edx, 0x4c9
mov r8d, 4
xor r9d, r9d
mov rcx, r15
call qword [sym.imp.USER32.dll_PostMessageW]
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, r15
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rbx, qword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret