Function at 0x140035fe0
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.14002a680
mov rcx, rdi
mov ebx, eax
call fcn.14002a680
shl ebx, 0x10
add eax, ebx
cmp eax, 0x38425053
je 0x140036038
mov rax, qword gs:[0x58]
mov edx, 0x18
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.14002a680
cmp eax, 1
je 0x14003606a
mov rax, qword gs:[0x58]
mov edx, 0x18
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 + 0x48], r14
je 0x1400360a9
mov ecx, dword [rdi + 0xc0]
sub ecx, dword [rsi]
cmp ecx, 6
jge 0x1400360a9
mov rax, qword [rdi + 0xc0]
mov edx, 6
sub edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + 0x18]
jmp 0x1400360ad
add qword [rsi], 6
mov rcx, rdi
call fcn.14002a680
mov dword [rsp + 0xa0], eax
mov r14d, eax
cmp eax, 0x10
ja 0x140036b80
mov qword [rsp + 0x50], r13
mov rcx, rdi
mov qword [rsp + 0x40], r15
call fcn.14002a680
mov rcx, rdi
mov r13d, eax
call fcn.14002a680
shl r13d, 0x10
mov rcx, rdi
add r13d, eax
mov dword [rsp + 0x20], r13d
call fcn.14002a680
mov rcx, rdi
mov r15d, eax
call fcn.14002a680
shl r15d, 0x10
mov rcx, rdi
add r15d, eax
mov dword [rsp + 0x98], r15d
call fcn.14002a680
mov dword [rsp + 0xb0], eax
lea ecx, [rax - 8]
test ecx, 0xfffffff7
je 0x140036150
mov rax, qword gs:[0x58]
mov edx, 0x18
mov rcx, qword [rax]
lea rax, str.unsupported_bit_depth
mov qword [rdx + rcx], rax
xor eax, eax
jmp 0x140036366
mov rcx, rdi
call fcn.14002a680
cmp eax, 3
je 0x140036180
mov rax, qword gs:[0x58]
mov edx, 0x18
mov rcx, qword [rax]
lea rax, str.wrong_color_format
mov qword [rdx + rcx], rax
xor eax, eax
jmp 0x140036366
mov rcx, rdi
call fcn.14002a680
mov rcx, rdi
mov ebx, eax
call fcn.14002a680
mov ecx, eax
shl ebx, 0x10
add ecx, ebx
jns 0x1400361a7
mov rax, qword [rdi + 0xc0]
mov qword [rsi], rax
jmp 0x1400361d7
cmp qword [rdi + 0x10], 0
je 0x1400361d1
mov edx, dword [rdi + 0xc0]
sub edx, dword [rsi]
cmp edx, ecx
jge 0x1400361d1
mov rax, qword [rdi + 0xc0]
sub ecx, edx
mov edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + 0x18]
jmp 0x1400361d7
movsxd rax, ecx
add qword [rsi], rax
mov rcx, rdi
call fcn.14002a680
mov rcx, rdi
mov ebx, eax
call fcn.14002a680
mov ecx, eax
shl ebx, 0x10
add ecx, ebx
jns 0x1400361fe
mov rax, qword [rdi + 0xc0]
mov qword [rsi], rax
jmp 0x14003622e
cmp qword [rdi + 0x10], 0
je 0x140036228
mov edx, dword [rdi + 0xc0]
sub edx, dword [rsi]
cmp edx, ecx
jge 0x140036228
mov rax, qword [rdi + 0xc0]
sub ecx, edx
mov edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + 0x18]
jmp 0x14003622e
movsxd rax, ecx
add qword [rsi], rax
mov rcx, rdi
call fcn.14002a680
mov rcx, rdi
mov ebx, eax
call fcn.14002a680
mov ecx, eax
shl ebx, 0x10
add ecx, ebx
jns 0x140036255
mov rax, qword [rdi + 0xc0]
mov qword [rsi], rax
jmp 0x140036285
cmp qword [rdi + 0x10], 0
je 0x14003627f
mov edx, dword [rdi + 0xc0]
sub edx, dword [rsi]
cmp edx, ecx
jge 0x14003627f
mov rax, qword [rdi + 0xc0]
sub ecx, edx
mov edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + 0x18]
jmp 0x140036285
movsxd rax, ecx
add qword [rsi], rax
mov rcx, rdi
call fcn.14002a680
mov ebx, eax
cmp eax, 1
jle 0x1400362b7
mov rax, qword gs:[0x58]
mov edx, 0x18
mov rcx, qword [rax]
lea rax, str.bad_compression
mov qword [rdx + rcx], rax
xor eax, eax
jmp 0x140036366
test r15d, r15d
js 0x140036b5d
jne 0x1400362cc
lea ecx, [r15*4]
jmp 0x1400362ee
mov eax, 0x7fffffff
cdq
idiv r15d
cmp eax, 4
jl 0x140036b5d
lea ecx, [r15*4]
test ecx, ecx
js 0x140036b5d
test r13d, r13d
js 0x140036b5d
je 0x14003630a
mov eax, 0x7fffffff
cdq
idiv r13d
cmp ecx, eax
jg 0x140036b5d
mov qword [rsp + 0x80], rbp
mov ebp, r13d
imul ebp, r15d
mov qword [rsp + 0x58], r12
lea eax, [rbp*4]
movsxd rcx, eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x30], rax
mov r12, rax
test rax, rax
jne 0x140036381
mov rax, qword gs:[0x58]
mov edx, 0x18
mov rcx, qword [rax]
lea rax, str.outofmem
mov qword [rdx + rcx], rax
xor eax, eax
mov rbp, qword [rsp + 0x80]
mov r12, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
mov r15, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x48]
add rsp, 0x68
pop rdi
pop rbx
ret
test ebx, ebx
je 0x140036454
mov ecx, r13d
imul ecx, r14d
add ecx, ecx
jns 0x1400363a0
mov rax, qword [rdi + 0xc0]
mov qword [rsi], rax
jmp 0x1400363d0
cmp qword [rdi + 0x10], 0
je 0x1400363ca
mov edx, dword [rdi + 0xc0]
sub edx, dword [rsi]
cmp edx, ecx
jge 0x1400363ca
mov rax, qword [rdi + 0xc0]
sub ecx, edx
mov edx, ecx
mov qword [rsi], rax
mov rcx, qword [rdi + 0x28]
call qword [rdi + 0x18]
jmp 0x1400363d0
movsxd rax, ecx
add qword [rsi], rax
xor r13d, r13d
mov eax, 0xff
mov ebx, r13d
nop dword [rax + rax]
movsxd rdx, ebx
add rdx, r12
cmp ebx, r14d
jl 0x14003640e
test ebp, ebp
jle 0x140036422
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 0x140036400
jmp 0x14003641d
mov r8d, ebp
mov rcx, rdi
call fcn.140035e30
test eax, eax
je 0x14003642e
mov eax, 0xff
inc ebx
cmp ebx, 4
jl 0x1400363e0
jmp 0x140036579
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword gs:[0x58]
mov edx, 0x18
mov rcx, qword [rax]
lea rax, str.corrupt
jmp 0x140036353
xor r13d, r13d
mov qword [rsp + 0x28], rax
mov r15d, r13d
mov r8, rax
mov ecx, 0xff
cmp r15d, r14d
jl 0x140036494
cmp r15d, 3
mov edx, r13d
mov rax, r12
cmove edx, ecx
test ebp, ebp
jle 0x140036553
mov ecx, ebp
mov byte [rax], dl
lea rax, [rax + 4]
sub rcx, 1
jne 0x140036483
jmp 0x14003654e
mov rax, qword [rsp + 0xa8]
cmp dword [rax], 0x10
jne 0x1400364c7
mov rbx, r8
test ebp, ebp
jle 0x140036553
mov r14d, ebp
nop
mov rcx, rdi
call fcn.14002a680
mov word [rbx], ax
lea rbx, [rbx + 8]
sub r14, 1
jne 0x1400364b0
jmp 0x140036541
cmp dword [rsp + 0xb0], 0x10
mov rbx, r12
jne 0x1400364f9
test ebp, ebp
jle 0x140036553
mov r14d, ebp
nop dword [rax + rax]
mov rcx, rdi
call fcn.14002a680
sar eax, 8
mov byte [rbx], al
lea rbx, [rbx + 4]
sub r14, 1
jne 0x1400364e0
jmp 0x140036541
test ebp, ebp
jle 0x140036553
mov r14d, ebp
mov rax, qword [rsi]
cmp rax, qword [rdi + 0xc0]
jae 0x140036517
movzx ecx, byte [rax]
inc rax
mov qword [rsi], rax
jmp 0x140036535
cmp dword [rdi + 0x30], r13d
je 0x140036533
mov rcx, rdi
call fcn.14002a540
mov rax, qword [rsi]
movzx ecx, byte [rax]
inc rax
mov qword [rsi], rax
jmp 0x140036535
xor cl, cl
mov byte [rbx], cl
add rbx, 4
sub r14, 1
jne 0x140036500
mov r8, qword [rsp + 0x28]
mov r14d, dword [rsp + 0xa0]
mov ecx, 0xff
add r8, 2
inc r15d
inc r12
mov qword [rsp + 0x28], r8
cmp r15d, 4
jl 0x140036467
mov r12, qword [rsp + 0x30]
mov r15d, dword [rsp + 0x98]
cmp r14d, 4
jl 0x140036b3c
mov rax, qword [rsp + 0xa8]
movsxd rdx, ebp
cmp dword [rax], 0x10
jne 0x14003687a
movss xmm3, dword [0x1401efda0]
mov r10d, 0xfffd
movss xmm4, dword [0x1401efc28]
cmp rdx, 4
jl 0x1400367d4
lea r8, [rdx - 4]
shr r8, 2
lea rcx, [r12 + 0xa]
inc r8
lea r13, [r8*4]
nop
movzx r9d, word [rcx - 4]
lea eax, [r9 - 1]
cmp ax, r10w
ja 0x14003664e
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 0x1400366ca
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 0x140036748
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 0x1400367c6
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 0x1400365d0
cmp r13, rdx
jge 0x140036b3c
lea rcx, [r13*8 + 2]
add rcx, r12
sub rdx, r13
movzx r8d, word [rcx + 4]
lea eax, [r8 - 1]
cmp ax, r10w
ja 0x140036867
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 0x1400367eb
jmp 0x140036b3c
movss xmm3, dword [0x1401efc28]
movss xmm4, dword [0x1401efd74]
cmp rdx, 4
jl 0x140036aa0
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 0x140036929
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 0x1400369a0
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 0x140036a19
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 0x140036a92
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 0x1400368b0
cmp r13, rdx
jge 0x140036b3c
lea rcx, [r13*4 + 1]
add rcx, r12
sub rdx, r13
movzx r8d, byte [rcx + 2]
lea eax, [r8 - 1]
cmp al, 0xfd
ja 0x140036b2e
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 0x140036ab7
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x90]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
mov dword [rax], r15d
mov rax, r12
jmp 0x140036359
mov rax, qword gs:[0x58]
mov edx, 0x18
mov rcx, qword [rax]
lea rax, str.too_large
mov qword [rdx + rcx], rax
xor eax, eax
jmp 0x140036366
mov rax, qword gs:[0x58]
mov rsi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x48]
mov edx, 0x18
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