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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rax, qword [rcx + 0x38]
mov edi, edx
movd xmm0, dword [rsp + 0x50]
mov edx, r8d
cvtdq2ps xmm0, xmm0
mov qword [rcx + 0x68], r9
mov esi, r8d
mov rbx, rcx
divss xmm0, dword [rax + 0x28]
mov rax, qword [rcx]
movss dword [rcx + 0x94], xmm0
call qword [rax + 0xc0]
test al, al
je 0x1400312b8
mov dword [rbx + 0x4c], esi
mov rax, qword [rbx + 0x38]
mov dword [rbx + 0x48], edi
mov dword [rbx + 0x9c], edi
mov rax, qword [rax + 0x20]
test edi, edi
jne 0x14003132c
mov edx, eax
test eax, eax
je 0x140031313
sub edx, 1
je 0x1400312f8
cmp edx, 1
jne 0x14003132c
mov rcx, rax
mov dword [rbx + 0x48], 6
shr rcx, 0x28
test cl, cl
je 0x14003132c
mov dword [rbx + 0x48], 3
jmp 0x14003132c
mov rcx, rax
mov dword [rbx + 0x48], 5
shr rcx, 0x28
test cl, cl
je 0x14003132c
mov dword [rbx + 0x48], 2
jmp 0x14003132c
mov rcx, rax
mov dword [rbx + 0x48], 4
shr rcx, 0x28
test cl, cl
je 0x14003132c
mov dword [rbx + 0x48], 1
shr rax, 0x20
mov rcx, rbx
mov byte [rbx + 0x250], al
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp 0x140031350
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x50
xor ebp, ebp
movaps xmmword [rsp + 0x40], xmm6
mov rdi, rcx
movaps xmmword [rsp + 0x30], xmm7
cmp qword [rcx + 0x40], rbp
je 0x140031384
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x140031384
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + SafeArrayCopy]
movsxd r12, eax
mov edx, 0x4c
mov rcx, r12
call fcn.140109ad8
xor edx, edx
mov qword [rdi + 0x40], rax
lea rcx, str.DisplayModel::BuildPagesInfo_started_n
call fcn.1400b31d8
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi + 0x38]
mov rbx, qword [rsp + 0x90]
movss xmm7, dword [rax + 0x28]
cvtps2pd xmm6, xmm7
call fcn.1400b8f18
and dword [rsp + 0x20], ebp
and dword [rsp + 0x24], ebp
test eax, eax
jne 0x14003140b
movaps xmm1, xmm6
mulsd xmm6, qword [0x140156900]
mulsd xmm1, qword [0x1401568f0]
cvtpd2ps xmm0, xmm1
movss dword [rsp + 0x28], xmm0
cvtpd2ps xmm0, xmm6
movss dword [rsp + 0x2c], xmm0
jmp 0x14003142b
mulsd xmm6, qword [0x1401568f8]
mulss xmm7, dword [0x1401569a8]
cvtpd2ps xmm0, xmm6
movss dword [rsp + 0x2c], xmm7
movss dword [rsp + 0x28], xmm0
mov eax, dword [rdi + 0x48]
movups xmm6, xmmword [rsp + 0x20]
cmp eax, 1
je 0x140031443
mov r15d, 2
cmp eax, 4
jne 0x140031449
mov r15d, 1
mov esi, dword [rdi + 0x4c]
cmp eax, 3
je 0x140031456
cmp eax, 6
jne 0x140031461
cmp esi, 1
jne 0x140031461
cmp r15d, esi
cmova esi, ebp
mov ebp, 1
cmp r12d, ebp
jl 0x1400314db
mov edx, ebp
mov rcx, rdi
call fcn.140031220
mov rcx, qword [rdi + 0x38]
mov r8d, ebp
mov r14, rax
mov rdx, qword [rcx]
mov r9, qword [rdx + 8]
lea rdx, [rsp + 0x20]
call r9
mov rcx, r14
movups xmm0, xmmword [rax]
movdqu xmmword [r14], xmm0
call fcn.1400ba7b4
test al, al
je 0x1400314a7
movdqu xmmword [r14], xmm6
and dword [r14 + 0x30], 0
mov byte [r14 + 0x48], 0
mov ecx, dword [rdi + 0x48]
sub ecx, 4
je 0x1400314cf
sub ecx, 1
je 0x1400314cf
cmp ecx, 1
je 0x1400314cf
cmp esi, ebp
jg 0x1400314d4
lea eax, [rsi + r15]
cmp ebp, eax
jge 0x1400314d4
mov byte [r14 + 0x48], 1
inc ebp
cmp ebp, r12d
jle 0x14003146b
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea rcx, [rsp + 0x98]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov rax, qword [rsp + 0x90]
lea rcx, str.DisplayModel::BuildPagesInfo_took__.2f_ms_n
xorps xmm1, xmm1
sub rax, rbx
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x98]
cvtsi2sd xmm1, rax
divsd xmm1, xmm0
mulsd xmm1, qword [0x140156958]
movq rdx, xmm1
call fcn.1400b3458
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x30]
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret