Function at 0x180015810
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x220]
sub rsp, 0x320
mov rax, qword [0x18011c010]
xor rax, rsp
mov qword [rbp + 0x210], rax
lea r9, [rsp + 0x16]
mov qword [rsp], rcx
sub r9, rdx
lea r11, [rsp + 0x1e]
sub r11, rdx
lea rdi, [rsp + 0x26]
sub rdi, rdx
lea rsi, [rsp + 0x2e]
sub rsi, rdx
lea r14, [rsp + 0x36]
sub r14, rdx
lea r15, [rsp + 0x3e]
sub r15, rdx
lea r12, [rsp + 0x46]
sub r12, rdx
lea r13, [rsp + 0x10]
mov r10d, 2
lea r8, [rdx + 2]
sub r13, rdx
mov rbx, rcx
mov edx, r10d
nop dword [rax]
movzx eax, byte [r8 - 1]
movzx ecx, byte [r8 - 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 7]
mov qword [r8 + r13 - 2], rcx
movzx ecx, byte [r8 + 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 9]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0xa]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0xb]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0xc]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0xd]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0xf]
mov qword [r8 + r9], rcx
movzx ecx, byte [r8 + 0xe]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x10]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x11]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x12]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x13]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x14]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x15]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x17]
mov qword [r8 + r11], rcx
movzx ecx, byte [r8 + 0x16]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x18]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x19]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x1a]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x1b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x1c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x1d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x1f]
mov qword [r8 + rdi], rcx
movzx ecx, byte [r8 + 0x1e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x20]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x21]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x22]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x23]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x24]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x25]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x27]
mov qword [r8 + rsi], rcx
movzx ecx, byte [r8 + 0x26]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x28]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x29]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x2a]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x2b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x2c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x2d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x2f]
mov qword [r8 + r14], rcx
movzx ecx, byte [r8 + 0x2e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x30]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x31]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x32]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x33]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x34]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x35]
shl rcx, 8
or rcx, rax
mov qword [r15 + r8], rcx
movzx ecx, byte [r8 + 0x36]
movzx eax, byte [r8 + 0x37]
lea r8, [r8 + 0x40]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 - 3]
shl rcx, 8
or rcx, rax
mov qword [r12 + r8 - 0x40], rcx
sub rdx, 1
jne 0x1800158a0
lea rax, [rdx - 0x80]
nop dword [rax + rax]
lea ecx, [r10 - 2]
cmp ecx, 0x10
jge 0x180015bb0
mov r9, qword [rbp + rax - 0x70]
jmp 0x180015bf6
mov rdx, qword [rbp + rax]
mov r8, qword [rbp + rax - 0x68]
mov r9, rdx
mov rcx, rdx
ror r9, 0x13
shr rdx, 6
rol rcx, 3
xor r9, rcx
mov rcx, r8
xor r9, rdx
ror rcx, 1
mov rdx, r8
shr r8, 7
ror rdx, 8
xor rdx, rcx
xor rdx, r8
add r9, rdx
add r9, qword [rbp + rax - 0x28]
add r9, qword [rbp + rax - 0x70]
lea ecx, [r10 - 1]
mov qword [rbp + rax + 0x10], r9
cmp ecx, 0x10
jge 0x180015c0b
mov r9, qword [rbp + rax - 0x68]
jmp 0x180015c51
mov rdx, qword [rbp + rax + 8]
mov r8, qword [rbp + rax - 0x60]
mov r9, rdx
mov rcx, rdx
ror r9, 0x13
shr rdx, 6
rol rcx, 3
xor r9, rcx
mov rcx, r8
xor r9, rdx
ror rcx, 1
mov rdx, r8
shr r8, 7
ror rdx, 8
xor rdx, rcx
xor rdx, r8
add r9, rdx
add r9, qword [rbp + rax - 0x20]
add r9, qword [rbp + rax - 0x68]
mov qword [rbp + rax + 0x18], r9
cmp r10d, 0x10
jge 0x180015c63
mov r9, qword [rbp + rax - 0x60]
jmp 0x180015ca9
mov rdx, qword [rbp + rax - 0x58]
mov r8, qword [rbp + rax + 0x10]
mov r9, rdx
mov rcx, rdx
ror r9, 8
shr rdx, 7
ror rcx, 1
xor r9, rcx
mov rcx, r8
xor r9, rdx
rol rcx, 3
mov rdx, r8
shr r8, 6
ror rdx, 0x13
xor rdx, rcx
xor rdx, r8
add r9, rdx
add r9, qword [rbp + rax - 0x18]
add r9, qword [rbp + rax - 0x60]
lea ecx, [r10 + 1]
mov qword [rbp + rax + 0x20], r9
cmp ecx, 0x10
jge 0x180015cbe
mov r9, qword [rbp + rax - 0x58]
jmp 0x180015d04
mov rdx, qword [rbp + rax - 0x50]
mov r8, qword [rbp + rax + 0x18]
mov r9, rdx
mov rcx, rdx
ror r9, 8
shr rdx, 7
ror rcx, 1
xor r9, rcx
mov rcx, r8
xor r9, rdx
rol rcx, 3
mov rdx, r8
shr r8, 6
ror rdx, 0x13
xor rdx, rcx
xor rdx, r8
add r9, rdx
add r9, qword [rbp + rax - 0x10]
add r9, qword [rbp + rax - 0x58]
lea ecx, [r10 + 2]
mov qword [rbp + rax + 0x28], r9
cmp ecx, 0x10
jge 0x180015d19
mov r9, qword [rbp + rax - 0x50]
jmp 0x180015d5f
mov rdx, qword [rbp + rax - 0x48]
mov r8, qword [rbp + rax + 0x20]
mov r9, rdx
mov rcx, rdx
ror r9, 8
shr rdx, 7
ror rcx, 1
xor r9, rcx
mov rcx, r8
xor r9, rdx
rol rcx, 3
mov rdx, r8
shr r8, 6
ror rdx, 0x13
xor rdx, rcx
xor rdx, r8
add r9, rdx
add r9, qword [rbp + rax - 8]
add r9, qword [rbp + rax - 0x50]
add r10d, 5
mov qword [rbp + rax + 0x30], r9
add rax, 0x28
lea ecx, [r10 - 2]
cmp ecx, 0x50
jl 0x180015ba0
mov r9, qword [rbx]
xor r11d, r11d
mov rdi, qword [rbx + 8]
mov rsi, qword [rbx + 0x10]
mov r12, qword [rbx + 0x18]
mov r10, qword [rbx + 0x20]
mov r14, qword [rbx + 0x28]
mov r15, qword [rbx + 0x30]
mov r13, qword [rbx + 0x38]
lea rbx, [0x18009d3c0]
mov r8, r10
mov rax, r10
ror rax, 0x12
mov rcx, r10
rol r8, 0x17
not rcx
xor r8, rax
and rcx, r15
mov rax, r10
mov rdx, r9
ror rax, 0xe
xor r8, rax
rol rdx, 0x1e
mov rax, r14
and rax, r10
xor rcx, rax
mov rax, r9
add r8, rcx
ror rax, 0x1c
add r8, qword [r11 + rbx]
xor rdx, rax
add r8, qword [rbp + r11 - 0x70]
mov rax, r9
rol rax, 0x19
add r8, r13
xor rdx, rax
mov rcx, rdi
xor rcx, r9
mov rax, rdi
and rax, r9
and rcx, rsi
xor rcx, rax
mov r13, r15
add rdx, rcx
mov r15, r14
mov r14, r10
add r11, 8
lea r10, [r8 + r12]
mov r12, rsi
mov rsi, rdi
mov rdi, r9
lea r9, [rdx + r8]
cmp r11, 0x280
jl 0x180015da2
mov rbx, qword [rsp]
add qword [rbx], r9
add qword [rbx + 8], rdi
add qword [rbx + 0x10], rsi
add qword [rbx + 0x18], r12
add qword [rbx + 0x20], r10
add qword [rbx + 0x28], r14
add qword [rbx + 0x30], r15
add qword [rbx + 0x38], r13
mov rcx, qword [rbp + 0x210]
xor rcx, rsp
call fcn.1800989b0
lea r11, [rsp + 0x320]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret