Function at 0x1400f573a
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
movaps xmmword [rsp + 0x30], xmm6
mov ebx, r9d
mov rdi, rdx
mov rsi, rcx
cmp qword [rcx + 0x3d8], 0
je 0x1400f5792
mov rcx, rsi
mov edx, r8d
call fcn.1400f5a09
test eax, eax
je 0x1400f57cb
lea rdx, [rsi + 0x450]
mov rcx, rsi
call qword [rsi + 0x3d8]
test eax, eax
js 0x1400f59f9
je 0x1400f57d0
xor ebp, ebp
jmp 0x1400f5847
test ebx, ebx
jne 0x1400f579c
mov ebx, dword [rsi + 0x3e0]
cmp ebx, 3
je 0x1400f57bc
cmp ebx, 2
jne 0x1400f57af
test byte [rsi + 0x23b], 0x20
jne 0x1400f57bc
mov rcx, rsi
mov edx, r8d
call fcn.1400f2e34
jmp 0x1400f57fe
mov rcx, rsi
mov edx, r8d
call fcn.1400f5a09
test eax, eax
jne 0x1400f57fe
mov bpl, 1
jmp 0x1400f5847
cmp ebx, 1
jg 0x1400f57fe
cmp dword [rsi + 0x3e0], 1
jg 0x1400f580b
lea rdx, str.Saving_unknown_chunk:
mov rcx, rsi
call fcn.1400f7b0d
lea rdx, str.forcing_save_of_an_unhandled_chunk__please_call_png_set_keep_unknown_chunks
mov rcx, rsi
call fcn.1400f7c2e
jmp 0x1400f580b
cmp ebx, 3
je 0x1400f5817
mov bpl, 1
cmp ebx, 2
jne 0x1400f5847
mov bpl, 1
test byte [rsi + 0x23b], 0x20
je 0x1400f5847
mov eax, dword [rsi + 0x444]
test eax, eax
je 0x1400f5893
mov bpl, 1
cmp eax, 1
je 0x1400f5847
cmp eax, 2
jne 0x1400f588b
mov dword [rsi + 0x444], 1
lea rdx, str.no_space_in_chunk_cache
mov rcx, rsi
call fcn.1400f7c66
mov rdx, qword [rsi + 0x458]
test rdx, rdx
je 0x1400f585b
mov rcx, rsi
call fcn.1400f8800
and qword [rsi + 0x458], 0
test bpl, bpl
je 0x1400f5875
test byte [rsi + 0x23b], 0x20
je 0x1400f59f0
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
dec eax
mov dword [rsi + 0x444], eax
mov r14, qword [rdi + 0x130]
mov ebx, dword [rdi + 0x138]
mov qword [rsp + 0x20], 0x20
mov rcx, rsi
mov rdx, r14
mov r8d, ebx
mov r9d, 1
call fcn.1400f88b6
test rax, rax
je 0x1400f59c7
mov r15, rax
movsxd r13, ebx
lea rbp, [rsi + 0x450]
mov rcx, rsi
mov rdx, r14
call fcn.1400f8800
mov qword [rdi + 0x130], r15
or byte [rdi + 0x12d], 2
shl r13, 5
add r13, r15
mov al, 1
lea r14, str.png_set_unknown_chunks_now_expects_a_valid_location
xorps xmm6, xmm6
lea r15, str.unknown_chunk:_out_of_memory
test al, 1
je 0x1400f578b
mov al, byte [rbp + 4]
mov byte [r13 + 4], al
mov eax, dword [rbp]
mov dword [r13], eax
mov byte [r13 + 4], 0
movzx eax, byte [rbp + 0x18]
and eax, 0xb
jne 0x1400f5951
test byte [rsi + 0x165], 0x80
jne 0x1400f59e1
mov rcx, rsi
mov rdx, r14
call fcn.1400f7c2e
mov eax, dword [rsi + 0x164]
and eax, 0xb
je 0x1400f59e1
mov ecx, eax
mov edx, eax
neg edx
and edx, eax
mov eax, edx
xor eax, ecx
cmp ecx, edx
jne 0x1400f5951
mov byte [r13 + 0x18], cl
mov rdx, qword [rbp + 0x10]
test rdx, rdx
je 0x1400f5998
mov rcx, rsi
call fcn.1400f887d
mov qword [r13 + 8], rax
test rax, rax
je 0x1400f59ab
mov rdx, qword [rbp + 8]
mov r12, qword [rbp + 0x10]
mov rcx, rax
mov r8, r12
call sub.msvcrt.dll_memcpy
mov qword [r13 + 0x10], r12
jmp 0x1400f599d
movups xmmword [r13 + 8], xmm6
add r13, 0x20
inc ebx
mov dword [rdi + 0x138], ebx
jmp 0x1400f59bc
mov rcx, rsi
mov rdx, r15
mov r8d, 1
call fcn.1400f7c82
add rbp, 0x20
xor eax, eax
jmp 0x1400f5906
lea rdx, str.too_many_unknown_chunks
mov rcx, rsi
mov r8d, 1
call fcn.1400f7c82
jmp 0x1400f578b
lea rdx, str.invalid_location_in_png_set_unknown_chunks
mov rcx, rsi
call fcn.1400f7913
lea rdx, str.unhandled_critical_chunk
jmp 0x1400f5a00
lea rdx, str.error_in_user_chunk
mov rcx, rsi
call fcn.1400f7b45
int3