Function at 0x415a90
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, 0x158
movabs rbp, 0x5be0cd19137e2179
movabs r11, 0xa54ff53a5f1d36f1
movabs r8, 0x9b05688c2b3e6c1f
vmovdqu xmm4, xmmword [rdx]
vmovdqu xmm5, xmmword [rdx + 0x10]
mov rax, qword [rcx]
vmovdqu xmm2, xmmword [rdx + 0x40]
vmovdqu xmm3, xmmword [rdx + 0x50]
mov r14, rax
vmovups xmmword [rsp + 0x50], xmm4
vmovdqu xmm4, xmmword [rdx + 0x20]
mov rbx, rcx
vmovups xmmword [rsp + 0x60], xmm5
vmovdqu xmm5, xmmword [rdx + 0x30]
vmovups xmmword [rsp + 0x70], xmm4
vmovdqu xmm4, xmmword [rdx + 0x60]
vmovups xmmword [rsp + 0x80], xmm5
vmovdqu xmm5, xmmword [rdx + 0x70]
mov rdx, qword [rcx + 8]
mov qword [rsp + 0xd0], rax
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0xd8], rdx
mov rdx, qword [rcx + 0x18]
mov qword [rsp + 0x1a0], rcx
mov rcx, rax
mov qword [rsp + 0xe0], rax
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0xe8], rdx
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 0xf0], rax
mov rsi, rax
mov rax, qword [rbx + 0x30]
mov qword [rsp + 0xf8], rdx
mov rdx, qword [rbx + 0x38]
mov qword [rsp + 0x100], rax
mov r12, rax
movabs rax, 0x510e527fade682d1
vmovups xmmword [rsp + 0x90], xmm2
vmovups xmmword [rsp + 0xa0], xmm3
vmovups xmmword [rsp + 0xb0], xmm4
vmovups xmmword [rsp + 0xc0], xmm5
mov qword [rsp + 0x108], rdx
mov r15, qword [rbx + 0x58]
movabs rdx, 0x1f83d9abfb41bd6b
xor rax, qword [rbx + 0x40]
mov qword [rsp + 0x18], r11
movabs r11, 0x3c6ef372fe94f82b
xor r15, rbp
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0xd8]
movabs rbp, 0x6a09e667f3bcc908
mov qword [rsp + 0x30], r15
mov r13, qword [rsp + 0xf8]
mov r10, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0x108]
mov qword [rsp], r11
movabs r11, 0xbb67ae8584caa73b
xor r8, qword [rbx + 0x48]
xor rdx, qword [rbx + 0x50]
lea rbx, [0x00689380]
nop dword [rax]
mov r15d, dword [rbx]
mov rax, qword [rsp + r15*8 + 0x50]
mov r15d, dword [rbx + 4]
add rax, rsi
add r14, rax
mov rax, qword [rsp + 0x20]
xor rax, r14
add r14, qword [rsp + r15*8 + 0x50]
rol rax, 0x20
add rbp, rax
xor rsi, rbp
ror rsi, 0x18
add r14, rsi
xor rax, r14
ror rax, 0x10
lea r15, [rbp + rax]
xor rsi, r15
mov qword [rsp + 0x38], r15
mov r15d, dword [rbx + 0x1c]
rol rsi, 1
mov qword [rsp + 0x48], rsi
mov esi, dword [rbx + 8]
mov rbp, qword [rsp + rsi*8 + 0x50]
mov esi, dword [rbx + 0xc]
add rbp, r13
add r9, rbp
xor r8, r9
add r9, qword [rsp + rsi*8 + 0x50]
rol r8, 0x20
add r11, r8
xor r13, r11
ror r13, 0x18
add r9, r13
xor r8, r9
ror r8, 0x10
add r11, r8
xor r13, r11
mov qword [rsp + 0x40], r11
mov r11d, dword [rbx + 0x10]
rol r13, 1
mov rbp, qword [rsp + r11*8 + 0x50]
mov r11d, dword [rbx + 0x14]
add rbp, r12
add rcx, rbp
mov rbp, qword [rsp]
xor rdx, rcx
rol rdx, 0x20
add rbp, rdx
xor r12, rbp
add rcx, qword [rsp + r11*8 + 0x50]
mov r11d, dword [rbx + 0x18]
mov rsi, rbp
ror r12, 0x18
mov rbp, qword [rsp + r11*8 + 0x50]
mov r11, qword [rsp + 0x18]
add rcx, r12
xor rdx, rcx
add rbp, rdi
ror rdx, 0x10
add r10, rbp
mov rbp, qword [rsp + 0x30]
add rsi, rdx
xor r12, rsi
xor rbp, r10
add r10, qword [rsp + r15*8 + 0x50]
mov r15d, dword [rbx + 0x20]
rol r12, 1
rol rbp, 0x20
add r11, rbp
add r14, qword [rsp + r15*8 + 0x50]
mov r15d, dword [rbx + 0x24]
xor rdi, r11
add r14, r13
ror rdi, 0x18
add r10, rdi
xor rbp, r10
ror rbp, 0x10
add r11, rbp
xor rbp, r14
add r14, qword [rsp + r15*8 + 0x50]
rol rbp, 0x20
xor rdi, r11
add rsi, rbp
rol rdi, 1
xor r13, rsi
ror r13, 0x18
add r14, r13
xor rbp, r14
mov r15, rbp
mov rbp, rsi
mov esi, dword [rbx + 0x28]
ror r15, 0x10
add r9, qword [rsp + rsi*8 + 0x50]
mov esi, dword [rbx + 0x2c]
add rbp, r15
mov qword [rsp + 0x30], r15
add r9, r12
mov qword [rsp], rbp
xor r13, rbp
xor rax, r9
add r9, qword [rsp + rsi*8 + 0x50]
mov r15, qword [rsp + 0x38]
rol r13, 1
rol rax, 0x20
mov rsi, qword [rsp + 0x48]
add r11, rax
xor r12, r11
ror r12, 0x18
add r9, r12
xor rax, r9
ror rax, 0x10
mov qword [rsp + 0x20], rax
add rax, r11
mov r11d, dword [rbx + 0x30]
xor r12, rax
mov qword [rsp + 0x18], rax
lea rax, [0x00689680]
add rcx, qword [rsp + r11*8 + 0x50]
mov r11d, dword [rbx + 0x34]
rol r12, 1
add rcx, rdi
xor r8, rcx
add rcx, qword [rsp + r11*8 + 0x50]
mov r11d, dword [rbx + 0x38]
rol r8, 0x20
lea rbp, [r15 + r8]
mov r15d, dword [rbx + 0x3c]
xor rdi, rbp
ror rdi, 0x18
add rcx, rdi
xor r8, rcx
ror r8, 0x10
add rbp, r8
xor rdi, rbp
rol rdi, 1
add r10, qword [rsp + r11*8 + 0x50]
mov r11, qword [rsp + 0x40]
add rbx, 0x40
add r10, rsi
xor rdx, r10
add r10, qword [rsp + r15*8 + 0x50]
rol rdx, 0x20
add r11, rdx
xor rsi, r11
ror rsi, 0x18
add r10, rsi
xor rdx, r10
ror rdx, 0x10
add r11, rdx
xor rsi, r11
rol rsi, 1
cmp rbx, rax
jne 0x415c20
vmovq xmm4, rcx
vmovq xmm5, r14
mov rax, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x1a0]
vpinsrq xmm1, xmm4, r10, 1
vpinsrq xmm0, xmm5, r9, 1
vmovq xmm4, rbp
mov r15, qword [rsp + 0x30]
vmovdqu xmm2, xmmword [rbx]
vinserti128 ymm3, ymm2, xmmword [rbx + 0x10], 1
vinserti128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm4, r11, 1
vmovq xmm4, rax
vmovq xmm5, r12
vmovups xmmword [rsp + 0x20], xmm2
vmovq xmm2, qword [rsp]
vpinsrq xmm2, xmm2, qword [rsp + 0x18], 1
vinserti128 ymm1, ymm1, xmm2, 1
vmovq xmm2, rdx
vpxor ymm0, ymm0, ymm1
vpinsrq xmm1, xmm2, r15, 1
vpinsrq xmm2, xmm5, rdi, 1
vpxor ymm0, ymm0, ymm3
vmovdqu xmm3, xmmword [rbx + 0x20]
vmovups xmmword [rbx], xmm0
vextracti128 xmmword [rbx + 0x10], ymm0, 1
vpinsrq xmm0, xmm4, r8, 1
vinserti128 ymm0, ymm0, xmm1, 1
vmovq xmm1, rsi
vmovups xmmword [rsp], xmm3
vinserti128 ymm3, ymm3, xmmword [rbx + 0x30], 1
vpinsrq xmm1, xmm1, r13, 1
vinserti128 ymm1, ymm1, xmm2, 1
vpxor ymm0, ymm0, ymm1
vpxor ymm0, ymm0, ymm3
vmovups xmmword [rbx + 0x20], xmm0
vextracti128 xmmword [rbx + 0x30], ymm0, 1
vzeroupper
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret