Function at 0x140163160
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r14
push r15
sub rsp, 0x80
lea rbp, [rsp + 0x20]
mov qword [rbp + 0x80], rbx
mov qword [rbp + 0x88], rsi
mov qword [rbp + 0x90], rdi
mov rax, qword [0x1403486d0]
xor rax, rbp
mov qword [rbp + 0x50], rax
mov edi, edx
mov rbx, rcx
test rcx, rcx
jne 0x1401631a6
xor eax, eax
jmp 0x14016336d
call qword [sym.imp.CoreFoundation.dll_CFDataGetLength]
mov rcx, rbx
mov r14, rax
call qword [sym.imp.CoreFoundation.dll_CFDataGetBytePtr]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov rdx, r14
call fcn.1400f5090
mov r15, rax
lea r8, [rax + 1]
lea rax, [r8 + 0xf]
cmp rax, r8
ja 0x1401631e3
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1400e6f00
sub rsp, rax
xor edx, edx
lea rsi, [rsp + 0x20]
mov rcx, rsi
call sub.VCRUNTIME140.dll_memset
mov rcx, rbx
call qword [sym.imp.CoreFoundation.dll_CFDataGetBytePtr]
mov r9, r15
mov r8, rsi
mov rcx, rax
mov rdx, r14
call fcn.1400f5090
xor ebx, ebx
mov r14, rax
mov edx, ebx
test rax, rax
jle 0x14016324a
nop dword [rax]
nop dword [rax + rax]
mov ecx, edx
mov r8d, edi
and ecx, 3
shl ecx, 3
shr r8d, cl
xor byte [rdx + rsi], r8b
inc rdx
cmp rdx, r14
jl 0x140163230
test rsi, rsi
je 0x14016336a
mov ecx, 0x68
call fcn.1400e69ec
mov rdi, rax
test rax, rax
je 0x14016328f
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi + 0x18], xmm0
movups xmmword [rdi + 0x28], xmm0
movups xmmword [rdi + 0x38], xmm0
movups xmmword [rdi + 0x48], xmm0
mov qword [rdi + 0x58], rax
mov qword [rdi], rbx
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x60], rbx
jmp 0x140163292
mov rdi, rbx
mov rcx, qword [sym.imp.CoreFoundation.dll_kCFAllocatorDefault]
lea rdx, [rbp]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp], xmm0
mov qword [rbp + 0x40], rax
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
mov rcx, qword [rcx]
call qword [sym.imp.CoreFoundation.dll_CFAllocatorGetContext]
movaps xmm0, xmmword [rbp]
lea rax, [0x140162700]
movups xmmword [rdi + 0x18], xmm0
lea rdx, [rbp]
movaps xmm1, xmmword [rbp + 0x10]
movups xmmword [rdi + 0x28], xmm1
movaps xmm0, xmmword [rbp + 0x20]
movups xmmword [rdi + 0x38], xmm0
movaps xmm1, xmmword [rbp + 0x30]
movups xmmword [rdi + 0x48], xmm1
movsd xmm0, qword [rbp + 0x40]
movsd qword [rdi + 0x58], xmm0
mov rcx, qword [sym.imp.CoreFoundation.dll_kCFAllocatorDefault]
mov qword [rbp + 0x28], rax
lea rax, [0x140162710]
mov qword [rbp + 8], rdi
mov qword [rbp + 0x38], rax
mov rcx, qword [rcx]
call qword [sym.imp.CoreFoundation.dll_CFAllocatorCreate]
lea rcx, [r14 + 1]
mov qword [rdi + 0x60], rax
call fcn.1400e6a30
lea r8, [r14 + 1]
mov qword [rdi + 8], rax
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rdi + 8]
mov r8, r14
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov r9, qword [sym.imp.CoreFoundation.dll_kCFAllocatorNull]
mov r8, r14
mov rdx, qword [rdi + 8]
mov rcx, qword [rdi + 0x60]
mov r9, qword [r9]
call qword [sym.imp.CoreFoundation.dll_CFDataCreateWithBytesNoCopy]
mov rbx, rax
mov qword [rdi], rax
mov qword [rdi + 0x10], r14
mov rax, rbx
mov rcx, qword [rbp + 0x50]
xor rcx, rbp
call fcn.1400e6b50
mov rbx, qword [rbp + 0x80]
mov rsi, qword [rbp + 0x88]
mov rdi, qword [rbp + 0x90]
lea rsp, [rbp + 0x60]
pop r15
pop r14
pop rbp
ret