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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
lea r15, [0x1402ba340]
movabs r11, 0x5be0cd19137e2179
movabs r12, 0xa54ff53a5f1d36f1
vmovdqu xmm1, xmmword [rdx]
vmovdqu xmm2, xmmword [rdx + 0x10]
vmovdqu xmm3, xmmword [rdx + 0x20]
mov rax, qword [rcx]
vmovdqu xmm4, xmmword [rdx + 0x30]
vmovdqu xmm5, xmmword [rdx + 0x40]
mov r9, rax
vmovdqu xmmword [rsp + 0x40], xmm1
vmovdqu xmm1, xmmword [rdx + 0x50]
mov rbp, rcx
mov rsi, r9
vmovdqu xmmword [rsp + 0x50], xmm2
vmovdqu xmm2, xmmword [rdx + 0x60]
vmovdqu xmmword [rsp + 0x60], xmm3
vmovdqu xmm3, xmmword [rdx + 0x70]
mov rdx, qword [rcx + 8]
mov qword [rsp + 0xc0], rax
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0xc8], rdx
mov rdx, qword [rcx + 0x18]
mov qword [rsp + 0xd0], rax
mov r8, rax
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0xd8], rdx
mov rdx, qword [rcx + 0x28]
mov qword [rsp + 0xe0], rax
mov rdi, rax
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0xe8], rdx
mov rdx, qword [rcx + 0x38]
movabs rcx, 0x510e527fade682d1
mov r10, rax
vmovdqu xmmword [rsp + 0x70], xmm4
mov qword [rsp + 0xf0], rax
movabs rax, 0x1f83d9abfb41bd6b
mov qword [rsp + 0xf8], rdx
movabs rdx, 0x9b05688c2b3e6c1f
vmovdqu xmmword [rsp + 0x80], xmm5
vmovdqu xmmword [rsp + 0x90], xmm1
vmovdqu xmmword [rsp + 0xa0], xmm2
vmovdqu xmmword [rsp + 0xb0], xmm3
xor rcx, qword [rbp + 0x40]
xor rax, qword [rbp + 0x50]
mov r14, qword [rsp + 0xf8]
xor r11, qword [rbp + 0x58]
mov qword [rsp + 0x18], rax
mov r9, qword [rsp + 0xc8]
mov r13, qword [rsp + 0xe8]
mov qword [rsp + 8], r11
movabs r11, 0x6a09e667f3bcc908
mov rbx, qword [rsp + 0xd8]
xor rdx, qword [rbp + 0x48]
mov qword [rsp], r10
movabs r10, 0xbb67ae8584caa73b
mov qword [rsp + 0x10], r14
movabs r14, 0x3c6ef372fe94f82b
mov qword [rsp + 0x190], rbp
mov rbp, r8
nop dword [rax]
mov r8d, dword [r15]
mov rax, qword [rsp + r8*8 + 0x40]
add rax, rdi
mov r8, rax
add r8, rsi
mov esi, dword [r15 + 4]
xor rcx, r8
rol rcx, 0x20
mov rax, qword [rsp + rsi*8 + 0x40]
add r11, rcx
xor rdi, r11
ror rdi, 0x18
add rax, rdi
mov rsi, rax
add rsi, r8
mov r8d, dword [r15 + 8]
xor rcx, rsi
ror rcx, 0x10
lea rax, [r11 + rcx]
mov r11, qword [rsp + r8*8 + 0x40]
xor rdi, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x18]
add r11, r13
rol rdi, 1
mov r8, r11
mov qword [rsp + 0x30], rdi
add r8, r9
mov r9d, dword [r15 + 0xc]
xor rdx, r8
rol rdx, 0x20
mov r11, qword [rsp + r9*8 + 0x40]
add r10, rdx
xor r13, r10
ror r13, 0x18
add r11, r13
mov r9, r11
add r9, r8
mov r8d, dword [r15 + 0x10]
xor rdx, r9
ror rdx, 0x10
mov r11, qword [rsp + r8*8 + 0x40]
add r10, rdx
mov qword [rsp + 0x38], rdx
xor r13, r10
mov qword [rsp + 0x28], r10
mov r10, qword [rsp]
rol r13, 1
add r11, r10
mov r8, r11
add r8, rbp
xor rax, r8
rol rax, 0x20
lea rdi, [r14 + rax]
xor r10, rdi
mov r11, r10
mov r10d, dword [r15 + 0x14]
ror r11, 0x18
mov rbp, qword [rsp + r10*8 + 0x40]
mov r10, qword [rsp + 0x10]
add rbp, r11
add rbp, r8
mov r8d, dword [r15 + 0x18]
xor rax, rbp
mov r14, qword [rsp + r8*8 + 0x40]
ror rax, 0x10
add rdi, rax
add r14, r10
xor r11, rdi
add r14, rbx
mov rbx, qword [rsp + 8]
rol r11, 1
xor rbx, r14
rol rbx, 0x20
add r12, rbx
xor r10, r12
mov r8, r10
mov r10d, dword [r15 + 0x1c]
ror r8, 0x18
mov rdx, qword [rsp + r10*8 + 0x40]
add rdx, r8
mov r10, rdx
add r10, r14
mov r14d, dword [r15 + 0x20]
xor rbx, r10
add rsi, qword [rsp + r14*8 + 0x40]
ror rbx, 0x10
mov r14d, dword [r15 + 0x24]
add rsi, r13
add r12, rbx
xor rbx, rsi
add rsi, qword [rsp + r14*8 + 0x40]
xor r8, r12
rol rbx, 0x20
rol r8, 1
add rdi, rbx
xor r13, rdi
ror r13, 0x18
add rsi, r13
xor rbx, rsi
ror rbx, 0x10
lea r14, [rdi + rbx]
mov qword [rsp + 8], rbx
mov ebx, dword [r15 + 0x28]
xor r13, r14
add r9, qword [rsp + rbx*8 + 0x40]
mov ebx, dword [r15 + 0x2c]
rol r13, 1
add r9, r11
xor rcx, r9
add r9, qword [rsp + rbx*8 + 0x40]
mov rdx, qword [rsp + 0x38]
rol rcx, 0x20
mov rbx, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x30]
add r12, rcx
xor r11, r12
ror r11, 0x18
add r9, r11
xor rcx, r9
ror rcx, 0x10
add r12, rcx
xor r11, r12
rol r11, 1
mov qword [rsp], r11
mov r11d, dword [r15 + 0x30]
add rbp, qword [rsp + r11*8 + 0x40]
add rbp, r8
xor rdx, rbp
rol rdx, 0x20
lea r11, [rbx + rdx]
mov ebx, dword [r15 + 0x34]
xor r8, r11
ror r8, 0x18
add rbp, qword [rsp + rbx*8 + 0x40]
add rbp, r8
xor rdx, rbp
ror rdx, 0x10
add r11, rdx
xor r8, r11
rol r8, 1
mov qword [rsp + 0x10], r8
mov r8d, dword [r15 + 0x38]
add r10, qword [rsp + r8*8 + 0x40]
lea rbx, [r10 + rdi]
mov r10, qword [rsp + 0x28]
xor rax, rbx
rol rax, 0x20
add r15, 0x40
lea r8, [r10 + rax]
mov r10d, dword [r15 - 4]
xor rdi, r8
ror rdi, 0x18
add rbx, qword [rsp + r10*8 + 0x40]
add rbx, rdi
xor rax, rbx
ror rax, 0x10
lea r10, [r8 + rax]
mov qword [rsp + 0x18], rax
lea rax, [0x1402ba640]
xor rdi, r10
rol rdi, 1
cmp r15, rax
jne 0x140015810
mov qword [rsp + 0xc0], rsi
mov rsi, qword [rsp + 8]
mov r8, rbp
mov rbp, qword [rsp + 0x190]
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x138], rsi
mov rsi, qword [rsp]
mov qword [rsp + 0xc8], r9
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0xf0], rsi
mov rsi, qword [rsp + 0x10]
mov qword [rsp + 0x118], r12
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0x100], r11
mov qword [rsp + 0xd8], rbx
vmovdqu ymm4, ymmword [rsp + 0xc0]
mov qword [rsp + 0x108], r10
vpxor ymm0, ymm4, ymmword [rsp + 0x100]
vpxor ymm0, ymm0, ymmword [rbp]
mov qword [rsp + 0xe8], r13
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], rdx
mov qword [rsp + 0xf8], rsi
mov qword [rsp + 0x130], rax
vmovdqu ymm5, ymmword [rsp + 0x120]
mov qword [rsp + 0xe0], rdi
vmovdqu ymmword [rbp], ymm0
vpxor ymm0, ymm5, ymmword [rsp + 0xe0]
vpxor ymm0, ymm0, ymmword [rbp + 0x20]
vmovdqu ymmword [rbp + 0x20], ymm0
vzeroupper
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret