Function at 0x405570
Capabilities:
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xf4
push ebx
mov ebx, edx
push esi
push edi
cmp dword [ebx + 0x18], 0
je 0x405c14
push 0x4449c4
call fcn.00403250
add esp, 4
push str.Windows_Mixed_Reality:
call fcn.00403250
add esp, 4
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
call fcn.00404b50
mov eax, dword [ebx + 0x18]
cmp eax, 2
jae 0x4055c4
xorps xmm0, xmm0
movsd qword [esp + 0x28], xmm0
jmp 0x40561b
add eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebx + 0x10]
dec ecx
and ecx, dword [ebx + 0x14]
dec esi
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x24], eax
dec eax
and esi, eax
mov eax, dword [edx + ecx*4]
mov edx, dword [edx + esi*4]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [edx + 4]
sbb edx, dword [eax + 4]
call fcn.00439db0
mov edx, dword [0x44da94]
mov ecx, dword [0x44da90]
movsd qword [esp + 0x28], xmm0
call fcn.00439e00
movsd xmm1, qword [esp + 0x28]
divsd xmm1, xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x28], xmm1
mov eax, dword [ebx + 0x40]
cmp eax, 2
jae 0x40562b
movsd qword [esp + 0x18], xmm0
jmp 0x4056a6
mov edi, dword [ebx + 0x3c]
mov esi, dword [ebx + 0x38]
mov edx, dword [ebx + 0x34]
dec esi
lea ecx, [edi + eax]
dec eax
mov dword [esp + 0x24], ecx
dec ecx
and esi, ecx
mov ecx, dword [ebx + 0x38]
dec ecx
movd xmm0, eax
and ecx, edi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x448c50]
mov eax, dword [edx + ecx*4]
mov edx, dword [edx + esi*4]
movsd qword [esp + 0x18], xmm0
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [edx + 4]
sbb edx, dword [eax + 4]
call fcn.00439db0
mov edx, dword [0x44da94]
mov ecx, dword [0x44da90]
movsd qword [esp + 0x30], xmm0
call fcn.00439e00
movsd xmm1, qword [esp + 0x30]
divsd xmm1, xmm0
movsd xmm0, qword [esp + 0x18]
divsd xmm0, xmm1
movsd qword [esp + 0x18], xmm0
xor esi, esi
cmp dword [ebx + 0x18], 2
cmovae esi, dword [ebx + 0x18]
cmp byte [0x44ed64], 0
je 0x405788
mov edx, dword [esp + 0xf4]
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, dh
xor ecx, eax
movzx eax, byte [esp + 0xf6]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esp + 0xf7]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00405fa0
mov edx, dword [0x44edb8]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x44edb8]
jne 0x40572d
mov eax, str._error_
jmp 0x405738
cmp dword [edx + 0x20], 8
lea eax, [edx + 0xc]
jb 0x405738
mov eax, dword [eax]
push dword [esp + 0xf4]
push eax
push str.____App____s__d_:
call fcn.00403250
movsd xmm0, qword [esp + 0xe4]
sub esp, 0xc
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [0x448c30]
divsd xmm0, xmm1
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
push str._________.2lf_ms_frame___.1lf_fps___.2lf_ms_CPU
call fcn.00403230
add esp, 0x1c
jmp 0x4057bf
push str.____App:
call fcn.00403250
movsd xmm1, qword [esp + 0x1c]
sub esp, 0xc
movsd xmm0, qword [0x448c30]
divsd xmm0, xmm1
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
push str._________.2lf_ms_frame___.1lf_fps
call fcn.00403230
add esp, 0x14
mov edi, dword [esp + 0xe8]
test esi, esi
jne 0x4057cf
xorps xmm1, xmm1
jmp 0x405807
mov eax, esi
movd xmm0, esi
sub eax, edi
cvtdq2pd xmm0, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
shr esi, 0x1f
addsd xmm0, qword [esi*8 + 0x448c50]
addsd xmm1, qword [eax*8 + 0x448c50]
divsd xmm1, xmm0
mulsd xmm1, qword [0x448c28]
sub esp, 8
movsd qword [esp], xmm1
push str.___.1lf___of_Compositor_frame_rate_
call fcn.00403250
movsd xmm0, qword [esp + 0x34]
add esp, 0xc
push dword [ebx + 4]
sub esp, 8
movsd qword [esp], xmm0
push edi
push str.________Missed_Present:__Iu_total_in_last__.1lf_seconds___Iu_total_observed_
call fcn.00403250
movsd xmm0, qword [esp + 0xe4]
add esp, 0xc
movsd qword [esp], xmm0
push str.________Post_Present_to_Compositor_CPU:__.2lf_ms
call fcn.00403250
mov eax, dword [ebx + 0x18]
add esp, 0xc
cmp eax, 2
jae 0x405863
xorps xmm0, xmm0
jmp 0x4058d8
mov edi, dword [ebx + 0x14]
mov esi, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
dec esi
lea ecx, [edi + eax]
dec eax
mov dword [esp + 0x24], ecx
dec ecx
and esi, ecx
mov ecx, dword [ebx + 0x10]
dec ecx
movd xmm0, eax
and ecx, edi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x448c50]
mov eax, dword [edx + ecx*4]
mov edx, dword [edx + esi*4]
movsd qword [esp + 0x18], xmm0
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [edx + 4]
sbb edx, dword [eax + 4]
call fcn.00439db0
mov edx, dword [0x44da94]
mov ecx, dword [0x44da90]
movsd qword [esp + 0x30], xmm0
call fcn.00439e00
movsd xmm1, qword [esp + 0x30]
divsd xmm1, xmm0
movsd xmm0, qword [esp + 0x18]
divsd xmm0, xmm1
mov edx, dword [esp + 0xf8]
movzx eax, dl
xor eax, 0x811c9dc5
movsd qword [esp + 0x18], xmm0
imul ecx, eax, 0x1000193
movzx eax, dh
xor ecx, eax
movzx eax, byte [esp + 0xfa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esp + 0xfb]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [esp + 0xfc]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00405fa0
mov ecx, dword [0x44edb8]
mov edx, ecx
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, ecx
jne 0x40594c
mov eax, str._error_
jmp 0x405957
cmp dword [edx + 0x20], 8
lea eax, [edx + 0xc]
jb 0x405957
mov eax, dword [eax]
push dword [esp + 0xf8]
push eax
push str.____Compositor____s__d_:
call fcn.00403250
mov eax, dword [ebx + 0x2c]
add esp, 0xc
cmp eax, 2
jae 0x405979
xorps xmm2, xmm2
jmp 0x4059ee
mov edi, dword [ebx + 0x28]
mov esi, dword [ebx + 0x24]
mov edx, dword [ebx + 0x20]
dec esi
lea ecx, [edi + eax]
dec eax
mov dword [esp + 0x24], ecx
dec ecx
and esi, ecx
mov ecx, dword [ebx + 0x24]
dec ecx
movd xmm0, eax
and ecx, edi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x448c50]
mov eax, dword [edx + ecx*4]
mov edx, dword [edx + esi*4]
movsd qword [esp + 0x20], xmm0
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [edx + 4]
sbb edx, dword [eax + 4]
call fcn.00439db0
mov edx, dword [0x44da94]
mov ecx, dword [0x44da90]
movsd qword [esp + 0x30], xmm0
call fcn.00439e00
movsd xmm1, qword [esp + 0x30]
divsd xmm1, xmm0
movsd xmm2, qword [esp + 0x20]
divsd xmm2, xmm1
movsd xmm0, qword [esp + 0xe0]
sub esp, 0x20
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [0x448c30]
divsd xmm0, xmm1
movsd qword [esp + 0x10], xmm2
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
push str._________.2lf_ms_frame___.1lf_fps___.1lf_displayed_fps___.2lf_ms_CPU_
call fcn.00403250
movsd xmm0, qword [esp + 0x4c]
add esp, 0x24
push dword [ebx]
sub esp, 8
movsd qword [esp], xmm0
push dword [esp + 0xf8]
push dword [esp + 0x100]
push str.________Missed_V_Sync:__Iu_consecutive___Iu_total_in_last__.1lf_seconds___Iu_total_observed_
call fcn.00403250
mov eax, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x70]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x68]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x448c50]
mov eax, dword [esp + 0x60]
divsd xmm0, xmm1
movd xmm1, eax
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x58]
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
movsd qword [esp], xmm0
sub esp, 8
addsd xmm1, qword [eax*8 + 0x448c50]
movsd xmm0, qword [esp + 0x58]
divsd xmm0, xmm1
movsd qword [esp], xmm0
push str.________Reprojection:__.2lf_ms_gpu_preemption___.2lf_ms_max____.2lf_ms_gpu_execution___.2lf_ms_max_
call fcn.00403250
mov eax, dword [esp + 0xb4]
add esp, 0x24
movsd xmm1, qword [esp + 0x80]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x448c50]
divsd xmm1, xmm0
comisd xmm1, xmmword [0x448c08]
jbe 0x405b61
movsd xmm0, qword [esp + 0x88]
sub esp, 0x20
mov eax, dword [esp + 0x98]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0x10], xmm1
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
movsd qword [esp + 8], xmm0
addsd xmm1, qword [eax*8 + 0x448c50]
movsd xmm0, qword [esp + 0x88]
divsd xmm0, xmm1
movsd qword [esp], xmm0
push str.________Hybrid_Copy:__.2lf_ms_gpu_preemption___.2lf_ms_max____.2lf_ms_gpu_execution___.2lf_ms_max_
call fcn.00403250
add esp, 0x24
movsd xmm0, qword [esp + 0xb0]
sub esp, 8
movsd qword [esp], xmm0
push str.________Gpu_End_to_V_Sync:__.2lf_ms
call fcn.00403250
add esp, 0xc
push str.____Pose_Latency:
call fcn.00403250
movsd xmm0, qword [esp + 0xcc]
push ecx
movsd qword [esp], xmm0
push str.________App_Motion_to_Mid_Photon:__.2lf_ms
call fcn.00403250
mov eax, dword [esp + 0xb4]
movsd xmm0, qword [esp + 0xa4]
push ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x448c50]
divsd xmm0, xmm1
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0xd0]
movsd qword [esp], xmm0
push str.________Compositor_Motion_to_Mid_Photon:__.2lf_ms___.2lf_ms_to_V_Sync_
call fcn.00403250
movsd xmm0, qword [esp + 0xcc]
add esp, 0xc
movsd qword [esp], xmm0
push str.________V_Sync_to_Mid_Photon:__.2lf_ms
call fcn.00403250
add esp, 0xc
push 0x4449c4
call fcn.00403250
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret