Function at 0x180023f20
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x18005d0e0]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rax, qword [rbp + 0x60]
xor r15d, r15d
lea esi, [rdx + 0xa]
and esi, 0x80000007
mov r14d, 1
mov rdi, r9
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x38], r8
mov dword [rbp - 0x3c], edx
mov qword [rbp - 0x30], rcx
mov r12d, r14d
mov dword [rbp - 0x40], r15d
jge 0x180023f7d
dec esi
or esi, 0xfffffff8
inc esi
test esi, esi
je 0x180023f8a
mov eax, 8
sub eax, esi
mov esi, eax
call fcn.180030b60
movsxd rbx, esi
and al, 0xf8
or al, sil
inc esi
mov byte [rbp - 0x20], al
call fcn.180030b60
lea rcx, [rbp - 0x1f]
movzx edx, al
mov r8, rbx
call fcn.1800334b0
mov r15d, r14d
xor r11d, r11d
mov r14, rdi
mov r13, rdi
mov qword [rbp - 0x18], r11
neg r14
mov rbx, r14
cmp esi, 8
jge 0x180023fdf
call fcn.180030b60
movsxd rcx, esi
inc esi
inc r15d
mov byte [rbp + rcx - 0x20], al
cmp esi, 8
jne 0x180024074
lea rax, [rbp - 0x20]
lea rdx, [rbp - 0x20]
lea r10, [rbp + rbx - 0x18]
sub rdi, rax
mov r8d, 8
nop dword [rax + rax]
test r12d, r12d
je 0x180024011
lea rax, [r10 + rdi]
movzx ecx, byte [rax + rdx]
xor byte [rdx], cl
jmp 0x180024017
movzx eax, byte [rdi + rdx]
xor byte [rdx], al
inc rdx
dec r8
jne 0x180024000
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x20]
mov r8, r13
call fcn.180023d20
mov r11, r13
lea rdx, [rbp + r14 - 0x18]
mov ecx, 8
nop dword [rax]
movzx eax, byte [rdx + r11]
inc r11
xor byte [r11 - 1], al
dec rcx
jne 0x180024040
mov rax, qword [rbp - 0x20]
mov rbx, r14
mov rdi, r13
mov qword [rbp - 0x18], rax
mov eax, dword [rbp - 0x40]
sub r14, 8
add eax, 8
xor esi, esi
mov r13, r11
mov dword [rbp - 0x40], eax
xor r12d, r12d
cmp r15d, 2
jle 0x180023fc6
mov r14d, dword [rbp - 0x3c]
test r14d, r14d
jle 0x18002415c
mov r15d, dword [rbp - 0x40]
mov rbx, r13
mov r8, rdi
neg rbx
neg r8
nop dword [rax + rax]
cmp esi, 8
jge 0x1800240c2
mov rdx, qword [rbp - 0x30]
movsxd rcx, esi
inc esi
movzx eax, byte [rdx]
inc rdx
dec r14d
mov byte [rbp + rcx - 0x20], al
mov qword [rbp - 0x30], rdx
cmp esi, 8
jne 0x18002414f
lea rax, [rbp - 0x20]
lea r10, [rbp + r8 - 0x18]
lea rdx, [rbp - 0x20]
sub rdi, rax
mov r8d, 8
nop
test r12d, r12d
je 0x1800240f1
lea rax, [r10 + rdx]
movzx ecx, byte [rax + rdi]
xor byte [rdx], cl
jmp 0x1800240f7
movzx eax, byte [rdx + rdi]
xor byte [rdx], al
inc rdx
dec r8
jne 0x1800240e0
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x20]
mov r8, r13
call fcn.180023d20
mov r11, r13
lea rdx, [rbp + rbx - 0x18]
mov ecx, 8
nop dword [rax]
movzx eax, byte [rdx + r11]
inc r11
xor byte [r11 - 1], al
dec rcx
jne 0x180024120
mov rax, qword [rbp - 0x20]
mov r8, rbx
mov rdi, r13
sub rbx, 8
add r15d, 8
xor esi, esi
mov qword [rbp - 0x18], rax
mov r13, r11
xor r12d, r12d
test r14d, r14d
jg 0x1800240a0
mov dword [rbp - 0x40], r15d
mov rbx, r13
mov rcx, rdi
mov r14d, 1
neg rbx
neg rcx
nop
cmp esi, 8
jge 0x180024185
movsxd rax, esi
inc esi
inc r14d
mov byte [rbp + rax - 0x20], 0
cmp esi, 8
jne 0x180024216
lea rax, [rbp - 0x20]
lea rdx, [rbp - 0x20]
lea r10, [rbp + rcx - 0x18]
sub rdi, rax
mov r8d, 8
test r12d, r12d
je 0x1800241b2
lea rax, [r10 + rdx]
movzx ecx, byte [rax + rdi]
xor byte [rdx], cl
jmp 0x1800241b8
movzx eax, byte [rdx + rdi]
xor byte [rdx], al
inc rdx
dec r8
jne 0x1800241a1
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x20]
mov r8, r13
call fcn.180023d20
mov r11, r13
lea rdx, [rbp + rbx - 0x18]
mov ecx, 8
nop dword [rax]
movzx eax, byte [rdx + r11]
inc r11
xor byte [r11 - 1], al
dec rcx
jne 0x1800241e0
mov rax, qword [rbp - 0x20]
mov rcx, rbx
mov rdi, r13
mov qword [rbp - 0x18], rax
mov eax, dword [rbp - 0x40]
sub rbx, 8
add eax, 8
xor esi, esi
mov r13, r11
mov dword [rbp - 0x40], eax
xor r12d, r12d
jmp 0x180024219
mov eax, dword [rbp - 0x40]
cmp r14d, 7
jle 0x180024170
mov rcx, qword [rbp - 0x28]
mov dword [rcx], eax
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.18002f950
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret