Function at 0x160040068
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x228]
sub rsp, 0x300
mov rax, qword [0x1600ef078]
xor rax, rsp
mov qword [rbp + 0x1f0], rax
lea r15, [rcx + 8]
mov qword [rsp + 0x20], rcx
mov rbx, rdx
mov qword [rsp + 0x28], r15
mov edi, 0x40
lea rcx, [rsp + 0x30]
mov r8d, edi
mov rdx, r15
call fcn.1600588f0
lea r8, [rsp + 0x70]
sub r8, rbx
lea rdx, [rbx + 2]
lea r9d, [rdi - 0x30]
movzx eax, byte [rdx - 1]
movzx ecx, byte [rdx - 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx]
shl rcx, 8
lea rdx, [rdx + 8]
or rcx, rax
movzx eax, byte [rdx - 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx - 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx - 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx - 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx - 3]
shl rcx, 8
or rcx, rax
mov qword [r8 + rdx - 0xa], rcx
sub r9, 1
jne 0x1600400d5
lea r9, [rbp - 0x20]
mov r10, rdi
mov rcx, qword [r9 - 0x68]
mov rdx, qword [r9]
mov r8, rcx
mov rax, rcx
ror r8, 8
shr rcx, 7
lea r9, [r9 + 8]
ror rax, 1
xor r8, rax
mov rax, rdx
xor r8, rcx
ror rax, 0x13
mov rcx, rdx
shr rdx, 6
ror rcx, 0x3d
xor rcx, rax
xor rcx, rdx
add r8, rcx
add r8, qword [r9 - 0x78]
add r8, qword [r9 - 0x30]
mov qword [r9 + 8], r8
sub r10, 1
jne 0x16004013b
mov r10, qword [rsp + 0x68]
lea r13, [0x1600ce170]
mov rsi, qword [rsp + 0x58]
xor r12d, r12d
mov r14, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
mov r11, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov r15, qword [rsp + 0x60]
mov r8, r14
mov rax, r14
ror rax, 0x12
mov rdx, rbx
ror r8, 0x29
mov rcx, rbx
xor r8, rax
ror rdx, 0x27
mov rax, r14
ror rax, 0xe
xor r8, rax
mov rax, rsi
xor rax, r15
and rax, r14
xor rax, r15
add r8, rax
mov rax, rbx
add r8, qword [r12 + r13]
add r8, qword [rsp + r12 + 0x70]
ror rax, 0x22
add r8, r10
xor rdx, rax
mov rax, rbx
ror rax, 0x1c
xor rdx, rax
mov rax, r11
and rax, rbx
lea r10, [r9 + r8]
mov r9, r11
or r9, rbx
and r9, rdi
or r9, rax
lea rax, [r8 + rdx]
add r9, rax
mov r8, r10
ror r8, 0x29
or rcx, r9
and rcx, r11
mov rax, r10
ror rax, 0x12
mov rdx, r9
xor r8, rax
ror rdx, 0x27
mov rax, r10
ror rax, 0xe
xor r8, rax
mov rax, rsi
xor rax, r14
and rax, r10
xor rax, rsi
add r8, rax
mov rax, r9
add r8, qword [r12 + r13 + 8]
add r8, qword [rsp + r12 + 0x78]
ror rax, 0x22
add r8, r15
xor rdx, rax
add rdi, r8
mov rax, r9
ror rax, 0x1c
xor rdx, rax
mov rax, rbx
and rax, r9
add r8, rdx
or rcx, rax
mov rdx, rdi
ror rdx, 0x29
mov rax, rdi
ror rax, 0x12
add r8, rcx
xor rdx, rax
mov rax, rdi
ror rax, 0xe
xor rdx, rax
mov rax, r10
xor rax, r14
and rax, rdi
xor rax, r14
add rdx, rax
add rdx, qword [rbp + r12 - 0x80]
add rdx, qword [r12 + r13 + 0x10]
add rdx, rsi
mov rcx, r8
ror rcx, 0x27
mov rax, r8
ror rax, 0x22
xor rcx, rax
mov rax, r8
ror rax, 0x1c
lea rsi, [r11 + rdx]
xor rcx, rax
mov r11, r8
or r11, r9
mov rax, r8
and rax, r9
and r11, rbx
or r11, rax
lea rax, [rdx + rcx]
mov rdx, rsi
add r11, rax
ror rdx, 0x29
mov rax, rsi
mov rcx, r11
ror rax, 0x12
xor rdx, rax
ror rcx, 0x22
mov rax, rsi
ror rax, 0xe
xor rdx, rax
mov rax, r10
xor rax, rdi
and rax, rsi
xor rax, r10
add rdx, rax
mov rax, r11
add rdx, qword [rbp + r12 - 0x78]
add rdx, qword [r12 + r13 + 0x18]
ror rax, 0x1c
add rdx, r14
xor rcx, rax
mov rax, r11
ror rax, 0x27
xor rcx, rax
mov rax, r11
lea r14, [rbx + rdx]
and rax, r8
mov rbx, r11
or rbx, r8
and rbx, r9
or rbx, rax
lea rax, [rdx + rcx]
add rbx, rax
mov rdx, r14
ror rdx, 0x29
mov rax, r14
ror rax, 0x12
mov rcx, rbx
xor rdx, rax
ror rcx, 0x22
mov rax, r14
ror rax, 0xe
xor rdx, rax
mov rax, rdi
xor rax, rsi
and rax, r14
xor rax, rdi
add rdx, rax
mov rax, rbx
add rdx, qword [rbp + r12 - 0x70]
add rdx, qword [r12 + r13 + 0x20]
ror rax, 0x1c
add rdx, r10
xor rcx, rax
mov rax, rbx
ror rax, 0x27
xor rcx, rax
mov rax, r11
lea r10, [r9 + rdx]
mov r9, r11
or r9, rbx
and r9, r8
and rax, rbx
or r9, rax
lea rax, [rdx + rcx]
add r9, rax
mov rdx, r10
ror rdx, 0x29
mov rax, r10
ror rax, 0x12
mov rcx, r9
xor rdx, rax
ror rcx, 0x27
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, rsi
xor rax, r14
and rax, r10
xor rax, rsi
add rdx, rax
mov rax, r9
add rdx, qword [r12 + r13 + 0x28]
add rdx, qword [rbp + r12 - 0x68]
ror rax, 0x22
add rdx, rdi
xor rcx, rax
mov rdi, rbx
or rdi, r9
mov rax, r9
ror rax, 0x1c
and rdi, r11
xor rcx, rax
lea r15, [r8 + rdx]
mov rax, rbx
and rax, r9
or rdi, rax
lea rax, [rdx + rcx]
mov rdx, r15
add rdi, rax
ror rdx, 0x29
mov rax, r15
mov rcx, rdi
ror rax, 0x12
xor rdx, rax
ror rcx, 0x27
mov rax, r15
ror rax, 0xe
xor rdx, rax
mov rax, r10
xor rax, r14
and rax, r15
xor rax, r14
add rdx, rax
mov rax, rdi
add rdx, qword [r12 + r13 + 0x30]
add rdx, qword [rbp + r12 - 0x60]
ror rax, 0x22
add rdx, rsi
xor rcx, rax
mov rax, rdi
ror rax, 0x1c
xor rcx, rax
mov rax, r9
lea rsi, [r11 + rdx]
and rax, rdi
mov r11, r9
or r11, rdi
and r11, rbx
or r11, rax
lea rax, [rdx + rcx]
add r11, rax
mov rdx, rsi
ror rdx, 0x29
mov rax, rsi
ror rax, 0x12
xor rdx, rax
mov rax, rsi
ror rax, 0xe
xor rdx, rax
mov rax, r10
xor rax, r15
and rax, rsi
xor rax, r10
add rdx, rax
mov rcx, r11
add rdx, qword [r12 + r13 + 0x38]
mov rax, r11
add rdx, qword [rbp + r12 - 0x58]
add r12, 0x40
ror rax, 0x22
add rdx, r14
ror rcx, 0x27
xor rcx, rax
mov rax, r11
ror rax, 0x1c
lea r14, [rbx + rdx]
xor rcx, rax
mov rbx, rdi
mov rax, rdi
or rbx, r11
and rax, r11
and rbx, r9
or rbx, rax
lea rax, [rdx + rcx]
add rbx, rax
cmp r12, 0x280
jl 0x1600401bc
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x60], r15
sub rcx, qword [rsp + 0x20]
mov edx, 8
mov r15, qword [rsp + 0x28]
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], r14
mov rax, qword [rcx + r15 - 8]
add qword [r15], rax
lea r15, [r15 + 8]
sub rdx, 1
jne 0x16004057e
xor eax, eax
mov rcx, qword [rbp + 0x1f0]
xor rcx, rsp
call fcn.160056220
lea r11, [rsp + 0x300]
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