Function at 0x180005fac
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x1800062e9
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x138]
sub rsp, 0x220
mov r15, r8
mov r12, rdx
mov rsi, rcx
xor r14d, r14d
cmp qword [rsi + 0x100], 0x100
mov rdx, r14
mov r9, rsi
jbe 0x180006168
shl rdx, 7
lea r10, [rbp + 0x20]
add rdx, r12
lea r11, [rbp + 0xa0]
sub r9, rdx
sub r10, rdx
sub r11, rdx
mov r8d, 0x10
mov rcx, qword [rdx]
mov rax, qword [r9 + rdx]
xor rax, rcx
mov qword [r11 + rdx], rcx
mov qword [r10 + rdx], rax
lea rdx, [rdx + 8]
sub r8, 1
jne 0x18000601f
xor ebx, ebx
xor edx, edx
lea rcx, [rbp + 0x20]
lea r8d, [rdx + 0x10]
mov rax, rdx
inc rdx
shl rax, 4
xor rax, qword [rcx]
xor rax, rbx
mov qword [rcx], rax
lea rcx, [rcx + 8]
sub r8, 1
jne 0x180006047
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x20]
call fcn.18001e488
xor r8d, r8d
lea rdx, [rsp + 0x20]
lea r9d, [r8 + 0x10]
mov rcx, r8
lea rax, [rbx + 1]
shl rcx, 4
inc r8
xor rcx, rax
xor qword [rdx], rcx
lea rdx, [rdx + 8]
sub r9, 1
jne 0x18000607e
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x20]
call fcn.18001e488
xor ecx, ecx
movzx edi, bl
mov edx, 0xf0
movabs r8, 0xf0f0f0f0f0f0f3
movsxd rax, edx
sub edx, 0x10
xor rax, rdi
shl rax, 0x38
xor rax, r8
add qword [rbp + rcx*8 + 0xa0], rax
inc rcx
cmp rcx, 0x10
jl 0x1800060be
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0xa0]
call fcn.18001e488
xor ecx, ecx
mov edx, 0xf0
inc dil
movabs r9, 0xf0f0f0f0f0f0f3
movzx r8d, dil
movsxd rax, edx
sub edx, 0x10
xor rax, r8
shl rax, 0x38
xor rax, r9
add qword [rbp + rcx*8 - 0x60], rax
inc rcx
cmp rcx, 0x10
jl 0x180006107
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x60]
call fcn.18001e488
add rbx, 2
cmp rbx, 0xe
jb 0x18000603d
xor ecx, ecx
mov rax, qword [rbp + rcx + 0xa0]
xor rax, qword [rbp + rcx + 0x20]
xor qword [rcx + rsi], rax
add rcx, 8
cmp rcx, 0x80
jl 0x180006145
jmp 0x1800062bd
shl rdx, 6
lea r10, [rbp - 0x60]
add rdx, r12
lea r11, [rsp + 0x20]
sub r9, rdx
sub r10, rdx
sub r11, rdx
mov r8d, 8
mov rcx, qword [rdx]
mov rax, qword [rdx + r9]
xor rax, rcx
mov qword [rdx + r11], rcx
mov qword [rdx + r10], rax
lea rdx, [rdx + 8]
sub r8, 1
jne 0x180006187
xor ebx, ebx
xor edx, edx
lea rcx, [rbp - 0x60]
lea r8d, [rdx + 8]
mov rax, rdx
inc rdx
shl rax, 4
xor rax, rbx
xor qword [rcx], rax
lea rcx, [rcx + 8]
sub r8, 1
jne 0x1800061af
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x60]
call fcn.18001e5f0
xor r8d, r8d
lea rdx, [rbp + 0xa0]
lea r9d, [r8 + 8]
mov rcx, r8
lea rax, [rbx + 1]
shl rcx, 4
inc r8
xor rcx, rax
xor qword [rdx], rcx
lea rdx, [rdx + 8]
sub r9, 1
jne 0x1800061e7
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0xa0]
call fcn.18001e5f0
xor ecx, ecx
movzx edi, bl
movabs r8, 0xf0f0f0f0f0f0f3
lea edx, [rcx + 0x70]
movsxd rax, edx
sub edx, 0x10
xor rax, rdi
shl rax, 0x38
xor rax, r8
add qword [rsp + rcx*8 + 0x20], rax
inc rcx
cmp rcx, 8
jl 0x180006227
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x20]
call fcn.18001e5f0
xor ecx, ecx
movabs r9, 0xf0f0f0f0f0f0f3
inc dil
movzx r8d, dil
lea edx, [rcx + 0x70]
movsxd rax, edx
sub edx, 0x10
xor rax, r8
shl rax, 0x38
xor rax, r9
add qword [rbp + rcx*8 + 0x20], rax
inc rcx
cmp rcx, 8
jl 0x180006269
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x20]
call fcn.18001e5f0
add rbx, 2
cmp rbx, 0xa
jb 0x1800061a5
xor ecx, ecx
mov rax, qword [rsp + rcx + 0x20]
xor rax, qword [rbp + rcx - 0x60]
xor qword [rcx + rsi], rax
add rcx, 8
cmp rcx, 0x40
jl 0x1800062a5
inc r14
cmp r14, r15
jb 0x180005fe7
lea r11, [rsp + 0x220]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret