Function at 0x14009e5f0
Capabilities:
Get number of processors

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rdi
sub rsp, 0x68
mov rdi, rcx
call fcn.140093090
mov rcx, rdi
mov ebx, eax
call fcn.140093090
shl ebx, 0x10
add eax, ebx
cmp eax, 0x38425053
je 0x14009e648
mov rax, qword gs:[0x58]
mov edx, Ordinal_27
mov rcx, qword [rax]
lea rax, str.not_PSD
mov qword [rdx + rcx], rax
xor eax, eax
add rsp, 0x68
pop rdi
pop rbx
ret
mov rcx, rdi
call fcn.140093090
cmp eax, 1
je 0x14009e67a
mov rax, qword gs:[0x58]
mov edx, Ordinal_27
mov rcx, qword [rax]
lea rax, str.wrong_version
mov qword [rdx + rcx], rax
xor eax, eax
add rsp, 0x68
pop rdi
pop rbx
ret
cmp qword [rdi + 0x10], 0
mov qword [rsp + 0x60], rsi
lea rsi, [rdi + 0xb8]
mov qword [rsp + 0x40], r15
je 0x14009e6b9
mov ecx, dword [rdi + 0xc0]
sub ecx, dword [rsi]
cmp ecx, 6
jge 0x14009e6b9
mov rax, qword [rdi + 0xc0]
mov edx, 6
sub edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + Ordinal_26]
jmp 0x14009e6bd
add qword [rsi], 6
mov rcx, rdi
call fcn.140093090
mov dword [rsp + 0xa0], eax
mov r15d, eax
cmp eax, 0x10
ja 0x14009f1b9
mov qword [rsp + 0x58], r12
mov rcx, rdi
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r14
call fcn.140093090
mov rcx, rdi
mov r13d, eax
call fcn.140093090
shl r13d, 0x10
mov rcx, rdi
add r13d, eax
mov dword [rsp + 0xb0], r13d
call fcn.140093090
mov rcx, rdi
mov r12d, eax
call fcn.140093090
shl r12d, 0x10
mov rcx, rdi
add r12d, eax
mov dword [rsp + 0x98], r12d
call fcn.140093090
movsxd r14, eax
lea ecx, [r14 - 8]
test ecx, 0xfffffff7
je 0x14009e765
mov rax, qword gs:[0x58]
mov edx, Ordinal_27
mov rcx, qword [rax]
lea rax, str.unsupported_bit_depth
mov qword [rdx + rcx], rax
xor eax, eax
jmp 0x14009e970
mov rcx, rdi
call fcn.140093090
cmp eax, 3
je 0x14009e795
mov rax, qword gs:[0x58]
mov edx, Ordinal_27
mov rcx, qword [rax]
lea rax, str.wrong_color_format
mov qword [rdx + rcx], rax
xor eax, eax
jmp 0x14009e970
mov rcx, rdi
call fcn.140093090
mov rcx, rdi
mov ebx, eax
call fcn.140093090
mov ecx, eax
shl ebx, 0x10
add ecx, ebx
jns 0x14009e7bc
mov rax, qword [rdi + 0xc0]
mov qword [rsi], rax
jmp 0x14009e7ec
cmp qword [rdi + 0x10], 0
je 0x14009e7e6
mov edx, dword [rdi + 0xc0]
sub edx, dword [rsi]
cmp edx, ecx
jge 0x14009e7e6
mov rax, qword [rdi + 0xc0]
sub ecx, edx
mov edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + Ordinal_26]
jmp 0x14009e7ec
movsxd rax, ecx
add qword [rsi], rax
mov rcx, rdi
call fcn.140093090
mov rcx, rdi
mov ebx, eax
call fcn.140093090
mov ecx, eax
shl ebx, 0x10
add ecx, ebx
jns 0x14009e813
mov rax, qword [rdi + 0xc0]
mov qword [rsi], rax
jmp 0x14009e843
cmp qword [rdi + 0x10], 0
je 0x14009e83d
mov edx, dword [rdi + 0xc0]
sub edx, dword [rsi]
cmp edx, ecx
jge 0x14009e83d
mov rax, qword [rdi + 0xc0]
sub ecx, edx
mov edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + Ordinal_26]
jmp 0x14009e843
movsxd rax, ecx
add qword [rsi], rax
mov rcx, rdi
call fcn.140093090
mov rcx, rdi
mov ebx, eax
call fcn.140093090
mov ecx, eax
shl ebx, 0x10
add ecx, ebx
jns 0x14009e86a
mov rax, qword [rdi + 0xc0]
mov qword [rsi], rax
jmp 0x14009e89a
cmp qword [rdi + 0x10], 0
je 0x14009e894
mov edx, dword [rdi + 0xc0]
sub edx, dword [rsi]
cmp edx, ecx
jge 0x14009e894
mov rax, qword [rdi + 0xc0]
sub ecx, edx
mov edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + Ordinal_26]
jmp 0x14009e89a
movsxd rax, ecx
add qword [rsi], rax
mov rcx, rdi
call fcn.140093090
mov ebx, eax
cmp eax, 1
jle 0x14009e8cc
mov rax, qword gs:[0x58]
mov edx, Ordinal_27
mov rcx, qword [rax]
lea rax, str.bad_compression
mov qword [rdx + rcx], rax
xor eax, eax
jmp 0x14009e970
test r12d, r12d
js 0x14009f196
jne 0x14009e8e1
lea ecx, [r12*4]
jmp 0x14009e903
mov eax, 0x7fffffff
cdq
idiv r12d
cmp eax, 4
jl 0x14009f196
lea ecx, [r12*4]
test ecx, ecx
js 0x14009f196
test r13d, r13d
js 0x14009f196
je 0x14009e91f
mov eax, 0x7fffffff
cdq
idiv r13d
cmp ecx, eax
jg 0x14009f196
mov qword [rsp + 0x80], rbp
mov ebp, r13d
imul ebp, r12d
lea eax, [rbp*4]
movsxd rcx, eax
call fcn.140182c38
mov qword [rsp + 0x30], rax
mov r12, rax
test rax, rax
jne 0x14009e990
mov rax, qword gs:[0x58]
mov edx, Ordinal_27
mov rcx, qword [rax]
lea rax, str.outofmem
mov qword [rdx + rcx], rax
xor eax, eax
mov rbp, qword [rsp + 0x80]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov r14, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x40]
add rsp, 0x68
pop rdi
pop rbx
ret
test ebx, ebx
je 0x14009ea63
mov ecx, r13d
imul ecx, r15d
add ecx, ecx
jns 0x14009e9af
mov rax, qword [rdi + 0xc0]
mov qword [rsi], rax
jmp 0x14009e9df
cmp qword [rdi + 0x10], 0
je 0x14009e9d9
mov edx, dword [rdi + 0xc0]
sub edx, dword [rsi]
cmp edx, ecx
jge 0x14009e9d9
mov rax, qword [rdi + 0xc0]
sub ecx, edx
mov edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + Ordinal_26]
jmp 0x14009e9df
movsxd rax, ecx
add qword [rsi], rax
xor r13d, r13d
mov eax, 0xff
mov ebx, r13d
nop word [rax + rax]
movsxd rdx, ebx
add rdx, r12
cmp ebx, r15d
jl 0x14009ea1e
test ebp, ebp
jle 0x14009ea32
cmp ebx, 3
mov ecx, r13d
cmove ecx, eax
mov eax, ebp
nop word [rax + rax]
mov byte [rdx], cl
lea rdx, [rdx + 4]
sub rax, 1
jne 0x14009ea10
jmp 0x14009ea2d
mov r8d, ebp
mov rcx, rdi
call fcn.14009e450
test eax, eax
je 0x14009ea3e
mov eax, 0xff
inc ebx
cmp ebx, 4
jl 0x14009e9f0
jmp 0x14009eb9d
mov rcx, r12
call fcn.14017d748
mov rax, qword gs:[0x58]
mov edx, Ordinal_27
mov rcx, qword [rax]
lea rax, str.corrupt
jmp 0x14009e962
xor r13d, r13d
mov qword [rsp + 0x28], rax
mov rdx, r14
mov r8, rax
mov eax, dword [rsp + 0xa0]
mov r15d, r13d
mov qword [rsp + 0x20], rdx
mov ecx, 0xff
cmp r15d, eax
jl 0x14009eab2
cmp r15d, 3
mov edx, r13d
mov rax, r12
cmove edx, ecx
test ebp, ebp
jle 0x14009eb6b
mov ecx, ebp
mov byte [rax], dl
lea rax, [rax + 4]
sub rcx, 1
jne 0x14009eaa1
jmp 0x14009eb66
mov r9, qword [rsp + 0xa8]
cmp dword [r9], 0x10
jne 0x14009eae7
mov rbx, r8
test ebp, ebp
jle 0x14009eb77
mov r14d, ebp
nop
mov rcx, rdi
call fcn.140093090
mov word [rbx], ax
lea rbx, [rbx + 8]
sub r14, 1
jne 0x14009ead0
jmp 0x14009eb61
mov rbx, r12
cmp rdx, 0x10
jne 0x14009eb19
test ebp, ebp
jle 0x14009eb77
mov r14d, ebp
nop dword [rax + rax]
mov rcx, rdi
call fcn.140093090
sar eax, 8
mov byte [rbx], al
lea rbx, [rbx + 4]
sub r14, 1
jne 0x14009eb00
jmp 0x14009eb61
test ebp, ebp
jle 0x14009eb77
mov r14d, ebp
mov rax, qword [rsi]
cmp rax, qword [rdi + 0xc0]
jae 0x14009eb37
movzx ecx, byte [rax]
inc rax
mov qword [rsi], rax
jmp 0x14009eb55
cmp dword [rdi + 0x30], r13d
je 0x14009eb53
mov rcx, rdi
call fcn.140092f50
mov rax, qword [rsi]
movzx ecx, byte [rax]
inc rax
mov qword [rsi], rax
jmp 0x14009eb55
xor cl, cl
mov byte [rbx], cl
add rbx, 4
sub r14, 1
jne 0x14009eb20
mov r8, qword [rsp + 0x28]
mov ecx, 0xff
mov eax, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0x20]
add r8, 2
inc r15d
inc r12
mov qword [rsp + 0x28], r8
cmp r15d, 4
jl 0x14009ea85
mov r15d, dword [rsp + 0xa0]
mov r12, qword [rsp + 0x30]
cmp r15d, 4
jl 0x14009f16c
mov rax, qword [rsp + 0xa8]
movsxd rdx, ebp
cmp dword [rax], 0x10
jne 0x14009eeaa
movss xmm3, dword [0x14099d8a0]
mov r10d, 0xfffd
movss xmm4, dword [0x14099d714]
cmp rdx, 4
jl 0x14009ee04
lea r8, [rdx - 4]
shr r8, 2
lea rcx, [r12 + 0xa]
inc r8
lea r13, [r8*4]
nop dword [rax]
nop word [rax + rax]
movzx r9d, word [rcx - 4]
lea eax, [r9 - 1]
cmp ax, r10w
ja 0x14009ec7e
movzx eax, word [rcx - 0xa]
xorps xmm0, xmm0
cvtsi2ss xmm0, r9d
movaps xmm2, xmm4
movaps xmm1, xmm4
divss xmm0, xmm3
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm3
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx - 0xa], ax
movzx eax, word [rcx - 8]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx - 8], ax
movzx eax, word [rcx - 6]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [rcx - 6], ax
movzx r9d, word [rcx + 4]
lea eax, [r9 - 1]
cmp ax, r10w
ja 0x14009ecfa
movzx eax, word [rcx - 2]
xorps xmm0, xmm0
cvtsi2ss xmm0, r9d
movaps xmm2, xmm4
movaps xmm1, xmm4
divss xmm0, xmm3
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm3
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx - 2], ax
movzx eax, word [rcx]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx], ax
movzx eax, word [rcx + 2]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [rcx + 2], ax
movzx r9d, word [rcx + 0xc]
lea eax, [r9 - 1]
cmp ax, r10w
ja 0x14009ed78
movzx eax, word [rcx + 6]
xorps xmm0, xmm0
cvtsi2ss xmm0, r9d
movaps xmm2, xmm4
movaps xmm1, xmm4
divss xmm0, xmm3
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm3
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx + 6], ax
movzx eax, word [rcx + 8]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx + 8], ax
movzx eax, word [rcx + 0xa]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [rcx + 0xa], ax
movzx r9d, word [rcx + 0x14]
lea eax, [r9 - 1]
cmp ax, r10w
ja 0x14009edf6
movzx eax, word [rcx + 0xe]
xorps xmm0, xmm0
cvtsi2ss xmm0, r9d
movaps xmm2, xmm4
movaps xmm1, xmm4
divss xmm0, xmm3
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm3
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx + 0xe], ax
movzx eax, word [rcx + 0x10]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx + 0x10], ax
movzx eax, word [rcx + 0x12]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [rcx + 0x12], ax
add rcx, 0x20
sub r8, 1
jne 0x14009ec00
cmp r13, rdx
jge 0x14009f16c
lea rcx, [r13*8 + 2]
add rcx, r12
sub rdx, r13
movzx r8d, word [rcx + 4]
lea eax, [r8 - 1]
cmp ax, r10w
ja 0x14009ee97
movzx eax, word [rcx - 2]
xorps xmm0, xmm0
cvtsi2ss xmm0, r8d
movaps xmm2, xmm4
movaps xmm1, xmm4
divss xmm0, xmm3
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm3
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx - 2], ax
movzx eax, word [rcx]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov word [rcx], ax
movzx eax, word [rcx + 2]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [rcx + 2], ax
add rcx, 8
sub rdx, 1
jne 0x14009ee1b
jmp 0x14009f16c
movss xmm3, dword [0x14099d714]
movss xmm4, dword [0x14099d858]
cmp rdx, 4
jl 0x14009f0d0
lea r8, [rdx - 4]
shr r8, 2
lea rcx, [r12 + 5]
inc r8
lea r13, [r8*4]
nop dword [rax]
movzx r9d, byte [rcx - 2]
lea eax, [r9 - 1]
cmp al, 0xfd
ja 0x14009ef59
movzx eax, byte [rcx - 5]
xorps xmm0, xmm0
cvtsi2ss xmm0, r9d
movaps xmm2, xmm3
movaps xmm1, xmm3
divss xmm0, xmm4
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm4
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx - 5], al
movzx eax, byte [rcx - 4]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx - 4], al
movzx eax, byte [rcx - 3]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov byte [rcx - 3], al
movzx r9d, byte [rcx + 2]
lea eax, [r9 - 1]
cmp al, 0xfd
ja 0x14009efd0
movzx eax, byte [rcx - 1]
xorps xmm0, xmm0
cvtsi2ss xmm0, r9d
movaps xmm2, xmm3
movaps xmm1, xmm3
divss xmm0, xmm4
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm4
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx - 1], al
movzx eax, byte [rcx]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx], al
movzx eax, byte [rcx + 1]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov byte [rcx + 1], al
movzx r9d, byte [rcx + 6]
lea eax, [r9 - 1]
cmp al, 0xfd
ja 0x14009f049
movzx eax, byte [rcx + 3]
xorps xmm0, xmm0
cvtsi2ss xmm0, r9d
movaps xmm2, xmm3
movaps xmm1, xmm3
divss xmm0, xmm4
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm4
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx + 3], al
movzx eax, byte [rcx + 4]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx + 4], al
movzx eax, byte [rcx + 5]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov byte [rcx + 5], al
movzx r9d, byte [rcx + 0xa]
lea eax, [r9 - 1]
cmp al, 0xfd
ja 0x14009f0c2
movzx eax, byte [rcx + 7]
xorps xmm0, xmm0
cvtsi2ss xmm0, r9d
movaps xmm2, xmm3
movaps xmm1, xmm3
divss xmm0, xmm4
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm4
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx + 7], al
movzx eax, byte [rcx + 8]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx + 8], al
movzx eax, byte [rcx + 9]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov byte [rcx + 9], al
add rcx, 0x10
sub r8, 1
jne 0x14009eee0
cmp r13, rdx
jge 0x14009f16c
lea rcx, [r13*4 + 1]
add rcx, r12
sub rdx, r13
movzx r8d, byte [rcx + 2]
lea eax, [r8 - 1]
cmp al, 0xfd
ja 0x14009f15e
movzx eax, byte [rcx - 1]
xorps xmm0, xmm0
cvtsi2ss xmm0, r8d
movaps xmm2, xmm3
movaps xmm1, xmm3
divss xmm0, xmm4
divss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm4
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx - 1], al
movzx eax, byte [rcx]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
xorps xmm0, xmm0
mov byte [rcx], al
movzx eax, byte [rcx + 1]
cvtsi2ss xmm0, eax
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
mov byte [rcx + 1], al
add rcx, 4
sub rdx, 1
jne 0x14009f0e7
mov eax, dword [rsp + 0xb0]
mov rcx, qword [rsp + 0x90]
mov dword [rcx], eax
mov eax, dword [rsp + 0x98]
mov rcx, qword [rsp + 0x88]
mov dword [rcx], eax
mov rax, r12
jmp 0x14009e968
mov rax, qword gs:[0x58]
mov edx, Ordinal_27
mov rcx, qword [rax]
lea rax, str.too_large
mov qword [rdx + rcx], rax
xor eax, eax
jmp 0x14009e970
mov rax, qword gs:[0x58]
mov rsi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x40]
mov edx, Ordinal_27
mov rcx, qword [rax]
lea rax, str.wrong_channel_count
mov qword [rdx + rcx], rax
xor eax, eax
add rsp, 0x68
pop rdi
pop rbx
ret