Function at 0x14015d4d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rsi
push r12
push r13
push r15
sub rsp, 0x28
mov rbp, qword [rcx + 0x10]
mov r13d, r8d
lea rbx, [rcx + 0x10]
mov r8d, edx
mov r11, r9
mov rsi, rdx
sub r8d, r9d
mov r15, rcx
add r8d, r13d
cmp qword [rbp], 0
mov dword [rsp + 0x70], r8d
je 0x14015d51b
nop
nop
add rbp, 0x18
cmp qword [rbp], 0
jne 0x14015d510
cmp r13d, 0x10
mov r12, rdx
mov r9d, 0xfffffffc
mov edx, r13d
jb 0x14015d569
nop
cmp dword [r12], 0
je 0x14015d569
movzx ecx, byte [r12]
add edx, 0xfffffff0
add ecx, 3
mov eax, ecx
and eax, r9d
cmp eax, edx
ja 0x14015d7a5
sub edx, eax
add rcx, 0x10
and rcx, r9
lea rax, [rcx + rcx*2]
prefetcht1 byte [r12 + rax*2]
add r12, rcx
cmp edx, 0x10
jae 0x14015d530
cmp r13d, 0x10
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x20], r14
jb 0x14015d7f6
nop
cmp dword [rsi], 0
je 0x14015d7f6
movzx edi, byte [rsi]
mov eax, 0xfffffff0
lea ecx, [rdi + 3]
and ecx, r9d
mov r9d, dword [rsi + 8]
sub eax, ecx
add r13d, eax
cmp r9d, r13d
ja 0x14015d7ef
movzx r10d, word [rsi + 2]
lea eax, [r9 + r10]
cmp eax, r8d
ja 0x14015d7e8
test r9d, r9d
je 0x14015d5d2
lea rcx, [r11 + r10]
lea rax, [r12 + 4]
cmp rcx, rax
jb 0x14015d7e8
cmp dword [rsi + 4], 0
jne 0x14015d7e3
xor edx, edx
test edi, edi
lea r8, [rsi + 0x10]
jle 0x14015d60f
nop
nop
nop
mov ecx, edx
mov eax, edx
add r8, 1
shl eax, 5
shr ecx, 0x1b
mov edx, ecx
xor edx, eax
movsx eax, byte [r8 - 1]
xor edx, eax
sub rdi, 1
jne 0x14015d5f0
test r9d, r9d
je 0x14015d63d
lea r8d, [r9 + 3]
lea rdi, [r11 + r10]
shr r8d, 2
je 0x14015d63d
mov ecx, edx
mov eax, edx
add rdi, 4
shr ecx, 0x10
shl eax, 0x10
mov edx, ecx
xor edx, eax
xor edx, dword [rdi - 4]
sub r8d, 1
jne 0x14015d622
mov eax, dword [rsi + 0xc]
test eax, eax
je 0x14015d64c
cmp eax, edx
jne 0x14015d7dc
mov rax, qword [r15 + 0x18]
sub r13d, r9d
lea rcx, [rax + rax*2]
mov rax, qword [rbx]
lea rcx, [rax + rcx*8]
cmp rbp, rcx
jne 0x14015d6bc
mov ecx, dword [r15 + 0x18]
lea r8, [rsp + 0x60]
mov edx, 0x18
add ecx, 4
call fcn.14014a030
test eax, eax
jne 0x14015d7f8
mov rax, qword [r15 + 0x18]
mov rdx, qword [rbx]
mov rcx, qword [rsp + 0x60]
lea r8, [rax + rax*2]
shl r8, 3
call sub.ntdll.dll_memcpy
mov rcx, rbx
call fcn.14014a000
mov rcx, qword [rsp + 0x60]
add qword [r15 + 0x18], 4
mov rax, qword [r15 + 0x18]
mov qword [rbx], rcx
lea rax, [rax + rax*2 - 0xc]
lea rbp, [rcx + rax*8]
cmp qword [str.system.posix_acl_default], 0
lea rax, [0x14042d4e0]
je 0x14015d6e4
movzx ecx, byte [rsi + 1]
cmp dword [rax], ecx
je 0x14015d7b8
add rax, 0x10
cmp qword [rax + 8], 0
jne 0x14015d6d1
xor ebx, ebx
xor edi, edi
movzx eax, byte [rsi]
mov rdx, rbp
lea ecx, [rax + rdi + 1]
call fcn.14014a080
test eax, eax
jne 0x14015d7f8
test rbx, rbx
je 0x14015d713
mov rcx, qword [rbp]
mov r8d, edi
mov rdx, rbx
call sub.ntdll.dll_memcpy
movzx eax, byte [rsi]
test al, al
je 0x14015d72d
mov ecx, edi
lea rdx, [rsi + 0x10]
movzx r8d, al
add rcx, qword [rbp]
call sub.ntdll.dll_memcpy
mov ecx, dword [rsi + 8]
lea rdx, [rbp + 8]
call fcn.140149fd0
test eax, eax
jne 0x14015d7f8
mov eax, dword [rsi + 8]
mov rcx, qword [rbp + 8]
mov qword [rbp + 0x10], rax
movzx edx, word [rsi + 2]
mov r8d, dword [rsi + 8]
add rdx, qword [rsp + 0x78]
call sub.ntdll.dll_memcpy
mov rax, qword [rsp + 0x80]
mov r9d, 0xfffffffc
add qword [rax], 1
movzx ecx, byte [rsi]
add rbp, 0x18
add ecx, 3
add rcx, 0x10
and rcx, r9
lea rax, [rcx + rcx*2]
prefetcht1 byte [rsi + rax*2]
add rsi, rcx
cmp r13d, 0x10
jb 0x14015d7f6
mov r8d, dword [rsp + 0x70]
mov r11, qword [rsp + 0x78]
lea rbx, [r15 + 0x10]
jmp 0x14015d580
mov eax, 0xfffffffc
add rsp, 0x28
pop r15
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret
mov rbx, qword [rax + 8]
test rbx, rbx
je 0x14015d6e6
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
lea rdi, [rcx - 1]
jmp 0x14015d6e8
mov eax, 0xfffffffe
jmp 0x14015d7f8
or eax, 0xffffffff
jmp 0x14015d7f8
mov eax, 0xfffffff2
jmp 0x14015d7f8
mov eax, 0xfffffffb
jmp 0x14015d7f8
xor eax, eax
mov rdi, qword [rsp + 0x68]
mov r14, qword [rsp + 0x20]
add rsp, 0x28
pop r15
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret