Function at 0x18006f1a0
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor ebp, ebp
mov r15d, 2
mov ebx, 1
mov qword [rsp + 0x88], rbp
mov ecx, 0x600
mov qword [rsp + 0x98], rbx
mov r12d, ebp
mov r13d, r15d
call fcn.18008827c
mov qword [rsp + 0xa8], rax
mov rdi, rax
test rax, rax
jne 0x18006f213
or eax, 0xffffffff
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret
xor edx, edx
mov qword [rsp + 0x38], rsi
mov r8d, 0x600
mov rcx, rdi
call fcn.180082af0
mov ecx, 0x20
call fcn.18008827c
mov rsi, rax
test rax, rax
je 0x18006f2e2
mov qword [rax], rdi
xor edx, edx
lea rax, [rdi + 0x180]
mov r8d, 0x80
mov qword [rsi + 8], rax
mov rcx, rdi
add rax, 0x180
mov qword [rsi + 0x10], rax
add rax, 0x180
mov qword [rsi + 0x18], rax
call fcn.180082af0
mov rax, qword [rsp + 0x90]
mov ecx, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rax + 0x10]
mov rax, qword [rsp + 0xa0]
movups xmmword [rdi + 0x10], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rdi + 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdi + 0x30], xmm1
mov qword [rdi + 0x40], 0x20
mov qword [rdi + 0x48], 0x20
mov qword [rdi + 0x50], 0x20
mov qword [rdi + 0x58], rbx
mov qword [rdi + 0x60], 4
mov qword [rdi + 0x68], 4
mov byte [rdi + 0x70], 0x80
xor byte [rdi + 0x7f], bl
call fcn.18008827c
mov rbx, rax
test rax, rax
jne 0x18006f2ea
or eax, 0xffffffff
jmp 0x18006f4f7
xor eax, eax
mov r14, r15
mov qword [rbx], rax
add rdi, 0x10
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
movabs rax, 0x6a09e667f3bcc908
mov qword [rbx + 0x40], rax
movabs rax, 0xbb67ae8584caa73b
mov qword [rbx + 0x48], rax
movabs rax, 0x3c6ef372fe94f82b
mov qword [rbx + 0x50], rax
movabs rax, 0xa54ff53a5f1d36f1
mov qword [rbx + 0x58], rax
movabs rax, 0x510e527fade682d1
mov qword [rbx + 0x60], rax
movabs rax, 0x9b05688c2b3e6c1f
mov qword [rbx + 0x68], rax
movabs rax, 0x1f83d9abfb41bd6b
mov qword [rbx + 0x70], rax
movabs rax, 0x5be0cd19137e2179
mov qword [rbx + 0x78], rax
mov rax, qword [rdi - 0x10]
mov rcx, rbx
xor qword [rbx], rax
mov rax, qword [rdi - 8]
xor qword [rbx + 8], rax
mov rax, qword [rdi]
xor qword [rbx + 0x10], rax
mov rax, qword [rdi + 8]
xor qword [rbx + 0x18], rax
mov rax, qword [rdi + 0x10]
xor qword [rbx + 0x20], rax
mov rax, qword [rdi + 0x18]
xor qword [rbx + 0x28], rax
mov rax, qword [rdi + 0x20]
xor qword [rbx + 0x30], rax
mov rax, qword [rdi + 0x28]
xor qword [rbx + 0x38], rax
call fcn.18006f510
lea rdi, [rdi + 0x40]
sub r14, 1
jne 0x18006f382
mov rdx, qword [rsi]
lea r8d, [r14 + 4]
mov rcx, rbx
call fcn.180070bd0
mov r8, qword [rsi + 8]
lea r9d, [r14 + 4]
mov rdx, qword [rsi]
mov rcx, rbx
call fcn.180070e30
lea eax, [r14 + 8]
mov r14, qword [rsp + 0x98]
mov rbp, r14
nop dword [rax]
nop word [rax + rax]
mov r8, qword [rsi + r12*8]
lea rdi, [r15*8]
mov r9, qword [rdi + rsi]
mov rcx, rbx
mov rdx, qword [rax + rsi]
mov qword [rsp + 0x20], 4
call fcn.180071000
lea rax, [r13 - 1]
add r12, rbp
and r12, rax
mov rdx, r15
inc r15
lea rax, [rdi]
test r12, r12
jne 0x18006f457
lea rbp, [r14 + r13]
add r13, r13
neg r14
cmp r15, 4
jb 0x18006f410
mov rbp, qword [rsp + 0x88]
mov r14, rbx
nop dword [rax + rax]
mov rax, qword [r14]
mov rcx, rbx
mov r9, qword [rsi + rbp*8]
and eax, 0xf
mov edi, dword [rbx + rax*8]
lea r14, [rbx + rax*8]
mov rdx, qword [rsi + rdx*8]
and edi, 3
mov qword [rsp + 0x20], 4
mov r8, qword [rsi + rdi*8]
call fcn.1800712f0
mov rdx, rbp
inc rbp
and ebp, 3
jne 0x18006f470
mov rdx, qword [rsi + rdi*8]
mov rcx, rbx
call fcn.180070b30
mov rdx, qword [rsp + 0x80]
lea r8d, [rbp + 0x20]
mov rcx, rbx
call fcn.180070a70
mov rcx, rsi
call fcn.18008800c
mov rcx, qword [rsp + 0xa8]
call fcn.18008800c
xor edx, edx
mov r8d, 0x80
mov rcx, rbx
call fcn.180082af0
mov rcx, rbx
call fcn.18008800c
xor eax, eax
mov rsi, qword [rsp + 0x38]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret