Function at 0x180020860
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2c0
mov rax, qword [0x1800ff400]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
mov r15, rcx
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x30]
xor edx, edx
mov r8d, 0x280
call fcn.18009fbb0
mov r13d, 2
lea ecx, [r13 - 2]
mov r14d, 7
mov edx, ecx
lea r8, [rsp + 0x30]
mov eax, ecx
mov ebp, 7
shr rax, 3
and ecx, 7
lea r8, [r8 + rax*8]
sub r14d, ecx
movzx eax, byte [rdx + r15 + 0x40]
mov esi, 7
shl r14d, 3
mov edi, 7
mov ecx, r14d
mov ebx, 7
shl rax, cl
mov r11d, 7
or qword [r8], rax
lea ecx, [r13 - 1]
mov edx, ecx
lea r8, [rsp + 0x30]
mov eax, ecx
and ecx, 7
shr rax, 3
sub ebp, ecx
lea r8, [r8 + rax*8]
shl ebp, 3
movzx eax, byte [rdx + r15 + 0x40]
mov ecx, ebp
shl rax, cl
lea rdx, [rsp + 0x30]
or qword [r8], rax
lea r8, [rsp + 0x30]
mov ecx, r13d
mov eax, r13d
shr rax, 3
lea rdx, [rdx + rax*8]
mov eax, r13d
and eax, 7
sub esi, eax
movzx eax, byte [r15 + rcx + 0x40]
shl esi, 3
mov ecx, esi
shl rax, cl
lea ecx, [r13 + 1]
or qword [rdx], rax
mov edx, ecx
mov eax, ecx
and ecx, 7
shr rax, 3
sub edi, ecx
lea r8, [r8 + rax*8]
shl edi, 3
movzx eax, byte [rdx + r15 + 0x40]
mov ecx, edi
shl rax, cl
lea rdx, [rsp + 0x30]
or qword [r8], rax
lea eax, [r13 + 2]
mov ecx, eax
shr rax, 3
lea rdx, [rdx + rax*8]
lea eax, [r13 + 2]
and eax, 7
sub ebx, eax
movzx eax, byte [rcx + r15 + 0x40]
shl ebx, 3
mov ecx, ebx
shl rax, cl
or qword [rdx], rax
lea eax, [r13 + 3]
mov ecx, eax
lea rdx, [rsp + 0x30]
shr rax, 3
lea rdx, [rdx + rax*8]
lea eax, [r13 + 3]
and eax, 7
sub r11d, eax
movzx eax, byte [rcx + r15 + 0x40]
shl r11d, 3
mov ecx, r11d
lea r8, [rsp + 0x30]
shl rax, cl
mov r10d, 7
or qword [rdx], rax
mov r9d, 7
lea eax, [r13 + 4]
mov ecx, eax
lea rdx, [rsp + 0x30]
shr rax, 3
lea rdx, [rdx + rax*8]
lea eax, [r13 - 4]
and eax, 7
sub r10d, eax
movzx eax, byte [rcx + r15 + 0x40]
shl r10d, 3
mov ecx, r10d
shl rax, cl
or qword [rdx], rax
lea eax, [r13 + 5]
mov edx, eax
shr rax, 3
lea r8, [r8 + rax*8]
lea eax, [r13 - 3]
and eax, 7
sub r9d, eax
movzx eax, byte [rdx + r15 + 0x40]
shl r9d, 3
mov ecx, r9d
shl rax, cl
mov ecx, r14d
or qword [r8], rax
lea eax, [r13 + 6]
mov edx, eax
lea r8, [rsp + 0x30]
shr rax, 3
lea r8, [r8 + rax*8]
movzx eax, byte [rdx + r15 + 0x40]
shl rax, cl
mov ecx, ebp
or qword [r8], rax
lea eax, [r13 + 7]
mov edx, eax
lea r8, [rsp + 0x30]
shr rax, 3
lea r8, [r8 + rax*8]
movzx eax, byte [rdx + r15 + 0x40]
shl rax, cl
mov ecx, esi
or qword [r8], rax
lea eax, [r13 + 8]
mov edx, eax
lea r8, [rsp + 0x30]
shr rax, 3
lea r8, [r8 + rax*8]
movzx eax, byte [r15 + rdx + 0x40]
shl rax, cl
mov ecx, edi
or qword [r8], rax
lea eax, [r13 + 9]
mov edx, eax
lea r8, [rsp + 0x30]
shr rax, 3
lea r8, [r8 + rax*8]
movzx eax, byte [r15 + rdx + 0x40]
shl rax, cl
mov ecx, ebx
or qword [r8], rax
lea eax, [r13 + 0xa]
mov edx, eax
lea r8, [rsp + 0x30]
shr rax, 3
lea r8, [r8 + rax*8]
movzx eax, byte [r15 + rdx + 0x40]
shl rax, cl
or qword [r8], rax
lea eax, [r13 + 0xb]
mov edx, eax
lea r8, [rsp + 0x30]
shr rax, 3
lea r8, [r8 + rax*8]
movzx eax, byte [r15 + rdx + 0x40]
mov ecx, r11d
shl rax, cl
mov ecx, r10d
or qword [r8], rax
lea eax, [r13 + 0xc]
mov edx, eax
lea r8, [rsp + 0x30]
shr rax, 3
lea r8, [r8 + rax*8]
movzx eax, byte [r15 + rdx + 0x40]
shl rax, cl
mov ecx, r9d
or qword [r8], rax
lea eax, [r13 + 0xd]
mov edx, eax
lea r8, [rsp + 0x30]
shr rax, 3
add r13d, 0x10
lea r8, [r8 + rax*8]
movzx eax, byte [r15 + rdx + 0x40]
shl rax, cl
or qword [r8], rax
lea eax, [r13 - 2]
cmp eax, 0x80
jb 0x1800208b1
lea rbx, [rsp + 0xb0]
mov edi, 0x40
lea rax, [rsp + 0x38]
nop dword [rax + rax]
mov r11, qword [rax]
lea rbx, [rbx + 8]
mov r10, qword [rax + 0x68]
lea rax, [rax + 8]
mov rcx, r10
mov rdx, r10
shr r10, 6
mov r8, r11
mov r9, r11
ror r8, 8
shr r11, 7
ror rcx, 0x13
xor r11, r8
xor r10, rcx
ror r9, 1
ror rdx, 0x3d
xor r11, r9
xor r10, rdx
add r10, r11
add r10, qword [rax - 0x10]
add r10, qword [rax + 0x38]
mov qword [rbx - 8], r10
sub rdi, 1
jne 0x180020b80
mov rax, qword [r15]
lea r9, [0x1800ab990]
mov rdi, qword [r15 + 8]
mov r11, rax
mov rsi, qword [r15 + 0x10]
xor r14d, r14d
mov r13, qword [r15 + 0x18]
mov rbx, qword [r15 + 0x20]
mov r12, qword [r15 + 0x28]
mov rbp, qword [r15 + 0x30]
mov r8, qword [r15 + 0x38]
mov r15d, 0x50
mov qword [rsp + 0x20], rax
nop word [rax + rax]
mov rax, rbx
lea r14, [r14 + 8]
ror rax, 0x29
mov rcx, rbx
ror rcx, 0xe
mov r10, rbp
xor r10, r12
xor rcx, rax
and r10, rbx
mov rdx, rbx
ror rdx, 0x12
xor r10, rbp
xor rcx, rdx
mov rax, rsi
add r10, rcx
and rax, rdi
add r10, qword [r14 + r9 - 8]
mov rcx, r11
add r10, qword [rsp + r14 + 0x28]
mov rdx, r11
add r10, r8
ror rdx, 0x27
mov r9, rsi
ror rcx, 0x1c
or r9, rdi
mov r8, r11
and r9, r11
ror r8, 0x22
or r9, rax
xor rdx, rcx
xor rdx, r8
mov r8, rbp
add r9, rdx
mov rbp, r12
mov r12, rbx
lea rbx, [r10 + r13]
mov r13, rsi
mov rsi, rdi
mov rdi, r11
lea r11, [r9 + r10]
lea r9, [0x1800ab990]
sub r15, 1
jne 0x180020c10
mov r15, qword [rsp + 0x28]
mov rax, qword [rsp + 0x20]
add rax, r11
add qword [r15 + 8], rdi
add qword [r15 + 0x10], rsi
add qword [r15 + 0x18], r13
add qword [r15 + 0x20], rbx
add qword [r15 + 0x28], r12
add qword [r15 + 0x30], rbp
add qword [r15 + 0x38], r8
mov qword [r15], rax
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.1800737c0
lea r11, [rsp + 0x2c0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret