Function at 0x140162ef0
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 qword [rbp + 0x98], r12
mov rax, qword [0x1403486d0]
xor rax, rbp
mov qword [rbp + 0x50], rax
mov r14d, edx
mov rsi, rcx
test rcx, rcx
jne 0x140162f3e
xor eax, eax
jmp 0x14016312e
call qword [sym.imp.CoreFoundation.dll_CFDataGetLength]
mov rbx, rax
movabs r12, 0xffffffffffffff0
lea r8, [rax + 1]
lea rax, [r8 + 0xf]
cmp rax, r8
ja 0x140162f61
mov rax, r12
and rax, 0xfffffffffffffff0
call fcn.1400e6f00
sub rsp, rax
xor edx, edx
lea rdi, [rsp + 0x20]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memset
mov rcx, rsi
call qword [sym.imp.CoreFoundation.dll_CFDataGetBytePtr]
mov r8, rbx
mov rcx, rdi
mov rdx, rax
call sub.VCRUNTIME140.dll_memcpy
xor esi, esi
mov eax, esi
test rbx, rbx
jle 0x140162fb8
nop dword [rax]
mov ecx, eax
mov edx, r14d
and ecx, 3
shl ecx, 3
shr edx, cl
xor byte [rax + rdi], dl
inc rax
cmp rax, rbx
jl 0x140162fa0
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
call fcn.1400f4f10
mov r15, rax
lea r8, [rax + 1]
lea rax, [r8 + 0xf]
cmp rax, r8
ja 0x140162fdc
mov rax, r12
and rax, 0xfffffffffffffff0
call fcn.1400e6f00
sub rsp, rax
xor edx, edx
lea r14, [rsp + 0x20]
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
mov r9, r15
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.1400f4f10
mov r15, rax
test r14, r14
je 0x14016312b
mov ecx, 0x68
call fcn.1400e69ec
mov rdi, rax
test rax, rax
je 0x140163050
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], rsi
mov qword [rdi + 8], rsi
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x60], rsi
jmp 0x140163053
mov rdi, rsi
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, [r15 + 1]
mov qword [rdi + 0x60], rax
call fcn.1400e6a30
lea r8, [r15 + 1]
mov qword [rdi + 8], rax
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rdi + 8]
mov r8, r15
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
mov r9, qword [sym.imp.CoreFoundation.dll_kCFAllocatorNull]
mov r8, r15
mov rdx, qword [rdi + 8]
mov rcx, qword [rdi + 0x60]
mov r9, qword [r9]
call qword [sym.imp.CoreFoundation.dll_CFDataCreateWithBytesNoCopy]
mov rsi, rax
mov qword [rdi], rax
mov qword [rdi + 0x10], r15
mov rax, rsi
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]
mov r12, qword [rbp + 0x98]
lea rsp, [rbp + 0x60]
pop r15
pop r14
pop rbp
ret