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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
mov eax, dword [rsp + 0x1e0]
mov rbp, qword [0x1400d80e0]
xor rbp, rsp
mov qword [rsp + 0x170], rbp
xor ebx, ebx
mov rbp, qword [rdx + rbx*8]
mov qword [rsp + rbx*8 + 0x70], rbp
inc rbx
cmp rbx, 0x10
jne 0x14003d6dc
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
mov qword [rsp + 0x68], rcx
movups xmm3, xmmword [rcx + 0x30]
movaps xmmword [rsp + 0x110], xmm2
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0x120], xmm3
movaps xmmword [rsp + 0x100], xmm1
movabs rcx, 0x510e527fade682d1
xor r9, rcx
movabs rcx, 0x9b05688c2b3e6c1f
xor r8, rcx
mov eax, eax
neg rax
movabs rbx, 0x1f83d9abfb41bd6b
xor rbx, rax
mov r11, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x118]
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x50], rax
mov r12, qword [rsp + 0x120]
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x48], rax
mov r15, qword [rsp + 0x100]
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x58], rax
movabs r10, 0x6a09e667f3bcc908
movabs rcx, 0xbb67ae8584caa73b
mov qword [rsp + 0x30], rcx
movabs rcx, 0x3c6ef372fe94f82b
mov qword [rsp + 0x38], rcx
movabs rdx, 0x5be0cd19137e2179
movabs rcx, 0xa54ff53a5f1d36f1
mov qword [rsp + 0x40], rcx
mov r14d, 0xf
lea rcx, [0x1400ac9e0]
movzx eax, byte [r14 + rcx - 0xf]
mov rbp, rcx
mov rcx, qword [rsp + 0x28]
add rcx, r11
add rcx, qword [rsp + rax*8 + 0x70]
mov rdi, rcx
movzx eax, byte [r14 + rbp - 0xd]
mov rcx, qword [rsp + 0x50]
add rcx, rsi
add rcx, qword [rsp + rax*8 + 0x70]
movzx eax, byte [r14 + rbp - 0xe]
xor r9, rdi
add rdi, qword [rsp + rax*8 + 0x70]
movzx eax, byte [r14 + rbp - 0xc]
mov r13, rbp
rol r9, 0x20
xor r8, rcx
rol r8, 0x20
add r10, r9
add rcx, qword [rsp + rax*8 + 0x70]
movzx eax, byte [r14 + rbp - 0xb]
mov rbp, qword [rsp + 0x30]
add rbp, r8
mov qword [rsp + 0x30], rbp
add r15, r12
add r15, qword [rsp + rax*8 + 0x70]
xor r11, r10
xor rsi, rbp
xor rbx, r15
rol r11, 0x28
rol rbx, 0x20
rol rsi, 0x28
mov rbp, qword [rsp + 0x38]
add rbp, rbx
mov qword [rsp + 0x38], rbp
xor r12, rbp
rol r12, 0x28
mov rbp, r14
movzx r14d, byte [r14 + r13 - 0xa]
add r15, qword [rsp + r14*8 + 0x70]
add rdi, r11
mov qword [rsp + 0x28], rdi
add rcx, rsi
mov rax, rcx
add r15, r12
lea rcx, [0x1400ac9e0]
movzx r13d, byte [rbp + rcx - 9]
xor r9, rdi
mov rcx, qword [rsp + 0x48]
mov r14, qword [rsp + 0x58]
add r14, rcx
add r14, qword [rsp + r13*8 + 0x70]
xor r8, rax
xor rbx, r15
xor rdx, r14
rol r9, 0x30
rol rdx, 0x20
rol r8, 0x30
lea rdi, [0x1400ac9e0]
movzx edi, byte [rbp + rdi - 8]
mov r13, rbp
mov qword [rsp + 0x60], rbp
mov rbp, qword [rsp + 0x40]
add rbp, rdx
mov qword [rsp + 0x40], rbp
rol rbx, 0x30
xor rcx, rbp
rol rcx, 0x28
add r10, r9
mov qword [rsp + 0x48], r10
add r14, qword [rsp + rdi*8 + 0x70]
add r14, rcx
mov rdi, qword [rsp + 0x30]
add rdi, r8
mov qword [rsp + 0x30], rdi
xor rdx, r14
rol rdx, 0x30
mov r10, qword [rsp + 0x38]
add r10, rbx
mov qword [rsp + 0x38], r10
lea rbp, [0x1400ac9e0]
movzx ebp, byte [r13 + rbp - 7]
mov r13, qword [rsp + 0x28]
add r13, qword [rsp + rbp*8 + 0x70]
mov qword [rsp + 0x28], r13
xor r11, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x60]
lea r13, [0x1400ac9e0]
movzx ebp, byte [rbp + r13 - 5]
add rax, qword [rsp + rbp*8 + 0x70]
mov qword [rsp + 0x50], rax
xor rsi, rdi
xor r12, r10
mov rbp, r13
mov r10, qword [rsp + 0x60]
movzx r13d, byte [r10 + r13 - 3]
rol r11, 1
add r15, qword [rsp + r13*8 + 0x70]
rol rsi, 1
mov rax, qword [rsp + 0x40]
add rax, rdx
mov qword [rsp + 0x40], rax
movzx r13d, byte [r10 + rbp - 6]
rol r12, 1
mov rdi, qword [rsp + 0x28]
add rdi, rsi
xor rdx, rdi
add rdi, qword [rsp + r13*8 + 0x70]
mov qword [rsp + 0x28], rdi
xor rcx, rax
movzx r13d, byte [r10 + rbp - 4]
rol rcx, 1
mov rax, rcx
mov rcx, qword [rsp + 0x50]
add rcx, r12
xor r9, rcx
add rcx, qword [rsp + r13*8 + 0x70]
movzx r13d, byte [r10 + rbp - 2]
mov rdi, rbp
add r15, rax
xor r8, r15
add r15, qword [rsp + r13*8 + 0x70]
movzx ebp, byte [r10 + rbp - 1]
add r14, r11
add r14, qword [rsp + rbp*8 + 0x70]
movzx ebp, byte [r10 + rdi]
xor rbx, r14
add r14, qword [rsp + rbp*8 + 0x70]
mov r10, qword [rsp + 0x48]
rol rdx, 0x20
mov rbp, qword [rsp + 0x38]
add rbp, rdx
xor rsi, rbp
rol rsi, 0x28
rol r9, 0x20
mov rdi, qword [rsp + 0x40]
add rdi, r9
mov r13, rbx
mov rbx, qword [rsp + 0x28]
add rbx, rsi
xor r12, rdi
rol r12, 0x28
mov qword [rsp + 0x28], rbx
xor rdx, rbx
mov rbx, r13
add rcx, r12
rol r8, 0x20
mov qword [rsp + 0x50], rcx
xor r9, rcx
add r10, r8
xor rax, r10
rol rdx, 0x30
rol rax, 0x28
rol r9, 0x30
add rbp, rdx
add r15, rax
xor r8, r15
add rdi, r9
rol r8, 0x30
add r10, r8
mov qword [rsp + 0x38], rbp
xor rsi, rbp
rol rbx, 0x20
mov rcx, qword [rsp + 0x30]
add rcx, rbx
mov qword [rsp + 0x40], rdi
xor r12, rdi
xor r11, rcx
rol r11, 0x28
xor rax, r10
add r14, r11
mov qword [rsp + 0x58], r14
xor rbx, r14
rol rsi, 1
rol rbx, 0x30
rol r12, 1
add rcx, rbx
mov qword [rsp + 0x30], rcx
xor r11, rcx
rol rax, 1
mov qword [rsp + 0x48], rax
rol r11, 1
mov rdi, qword [rsp + 0x60]
add rdi, 0x10
mov r14, rdi
cmp rdi, 0xcf
jne 0x14003d7e9
mov qword [rsp + 0x110], r11
mov rdi, qword [rsp + 0x28]
mov qword [rsp + 0xf0], rdi
mov qword [rsp + 0x150], r9
mov qword [rsp + 0x130], r10
mov qword [rsp + 0x118], rsi
mov rbp, qword [rsp + 0x50]
mov qword [rsp + 0xf8], rbp
mov qword [rsp + 0x158], r8
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x120], r12
mov qword [rsp + 0x100], r15
mov qword [rsp + 0x160], rbx
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x128], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x168], rdx
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x148], rax
xor r10, rdi
mov rcx, qword [rsp + 0x68]
xor qword [rcx], r10
xor rbp, qword [rsp + 0x138]
xor qword [rcx + 8], rbp
xor eax, eax
movaps xmm0, xmmword [rsp + rax*8 + 0x140]
xorps xmm0, xmmword [rsp + rax*8 + 0x100]
movups xmm1, xmmword [rcx + rax*8 + 0x10]
xorps xmm1, xmm0
movups xmmword [rcx + rax*8 + 0x10], xmm1
add rax, 2
cmp rax, 6
jne 0x14003dbad
lea rcx, [rsp + 0xf0]
mov edx, 0x80
call fcn.14007a7d4
lea rcx, [rsp + 0x70]
mov edx, 0x80
call fcn.14007a7d4
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.1400841b0
nop
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret