Function at 0x140020310
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 r13, [0x140172840]
movabs r11, 0x5be0cd19137e2179
movabs r12, 0xa54ff53a5f1d36f1
vmovdqu xmm3, xmmword [rdx]
vmovdqu xmm4, xmmword [rdx + 0x10]
vmovdqu xmm5, xmmword [rdx + 0x20]
vmovdqu xmm2, xmmword [rdx + 0x30]
mov rax, qword [rcx]
vmovdqu xmmword [rsp + 0x40], xmm3
mov rbp, rcx
vmovdqu xmm3, xmmword [rdx + 0x40]
vmovdqu xmmword [rsp + 0x50], xmm4
vmovdqu xmmword [rsp + 0x60], xmm5
vmovdqu xmm4, xmmword [rdx + 0x50]
vmovdqu xmm5, xmmword [rdx + 0x60]
vmovdqu xmmword [rsp + 0x70], xmm2
vmovdqu xmm2, xmmword [rdx + 0x70]
mov r9, rax
mov qword [rsp + 0xc0], rax
vmovdqu xmmword [rsp + 0x80], xmm3
mov rdx, qword [rcx + 8]
mov rsi, r9
vmovdqu xmmword [rsp + 0x90], xmm4
mov rax, qword [rcx + 0x10]
vmovdqu xmmword [rsp + 0xa0], xmm5
vmovdqu xmmword [rsp + 0xb0], xmm2
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 qword [rsp + 0xf0], rax
mov r10, rax
movabs rax, 0x1f83d9abfb41bd6b
mov qword [rsp + 0xf8], rdx
xor rcx, qword [rbp + 0x40]
movabs rdx, 0x9b05688c2b3e6c1f
mov r14, qword [rbp + 0x58]
mov qword [rsp + 0x20], r10
mov rbx, qword [rsp + 0xe8]
mov qword [rsp + 0x190], rbp
xor rax, qword [rbp + 0x50]
xor rdx, qword [rbp + 0x48]
xor r14, r11
mov r9, qword [rsp + 0xc8]
movabs r11, 0xbb67ae8584caa73b
mov qword [rsp + 0x18], r14
mov r10, qword [rsp + 0xd8]
mov r15, qword [rsp + 0xf8]
mov qword [rsp], rbx
movabs rbx, 0x3c6ef372fe94f82b
mov r14, qword [rsp + 0x20]
mov qword [rsp + 8], rbx
movabs rbx, 0x6a09e667f3bcc908
mov qword [rsp + 0x10], rax
nop word cs:[rax + rax]
mov ebp, dword [r13]
mov rax, qword [rsp + rbp*8 + 0x40]
add rax, rdi
mov rbp, rax
add rbp, rsi
mov esi, dword [r13 + 4]
xor rcx, rbp
rol rcx, 0x20
add rbx, rcx
mov rax, qword [rsp + rsi*8 + 0x40]
xor rdi, rbx
ror rdi, 0x18
add rax, rdi
mov rsi, rax
add rsi, rbp
mov rbp, qword [rsp]
xor rcx, rsi
ror rcx, 0x10
lea rax, [rbx + rcx]
mov ebx, dword [r13 + 8]
xor rdi, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x10]
rol rdi, 1
mov qword [rsp + 0x30], rdi
mov rdi, qword [rsp + rbx*8 + 0x40]
mov ebx, dword [r13 + 0xc]
add rdi, rbp
add rdi, r9
mov r9, rbp
mov rbp, qword [rsp + rbx*8 + 0x40]
xor rdx, rdi
rol rdx, 0x20
add r11, rdx
xor r9, r11
ror r9, 0x18
add rbp, r9
mov rbx, rbp
add rbx, rdi
mov edi, dword [r13 + 0x14]
xor rdx, rbx
ror rdx, 0x10
add r11, rdx
mov qword [rsp + 0x38], rdx
xor r9, r11
mov qword [rsp + 0x28], r11
mov r11d, dword [r13 + 0x10]
rol r9, 1
mov rbp, qword [rsp + r11*8 + 0x40]
add rbp, r14
mov r11, rbp
mov rbp, qword [rsp + 8]
add r11, r8
xor rax, r11
rol rax, 0x20
add rbp, rax
xor r14, rbp
mov r8, r14
mov r14, qword [rsp + rdi*8 + 0x40]
ror r8, 0x18
add r14, r8
mov rdi, r14
add rdi, r11
mov r11d, dword [r13 + 0x18]
xor rax, rdi
ror rax, 0x10
add rbp, rax
mov r14, qword [rsp + r11*8 + 0x40]
xor r8, rbp
rol r8, 1
add r14, r15
add r14, r10
mov r10, qword [rsp + 0x18]
xor r10, r14
mov r11, r10
mov r10d, dword [r13 + 0x1c]
rol r11, 0x20
add r12, r11
xor r15, r12
mov rdx, qword [rsp + r10*8 + 0x40]
ror r15, 0x18
add rdx, r15
mov r10, rdx
add r10, r14
mov r14d, dword [r13 + 0x20]
xor r11, r10
ror r11, 0x10
add r12, r11
add rsi, qword [rsp + r14*8 + 0x40]
xor r15, r12
mov r14d, dword [r13 + 0x24]
rol r15, 1
add rsi, r9
xor r11, rsi
add rsi, qword [rsp + r14*8 + 0x40]
rol r11, 0x20
add rbp, r11
xor r9, rbp
ror r9, 0x18
add rsi, r9
xor r11, rsi
ror r11, 0x10
lea rdx, [rbp + r11]
mov qword [rsp + 0x18], r11
xor r9, rdx
mov qword [rsp + 8], rdx
rol r9, 1
mov qword [rsp], r9
mov r9d, dword [r13 + 0x28]
add rbx, qword [rsp + r9*8 + 0x40]
mov r11d, dword [r13 + 0x2c]
mov rdx, qword [rsp + 0x38]
mov ebp, dword [r13 + 0x3c]
lea r9, [rbx + r8]
mov rbx, qword [rsp + 0x20]
xor rcx, r9
add r9, qword [rsp + r11*8 + 0x40]
rol rcx, 0x20
mov r11d, dword [r13 + 0x34]
add r12, rcx
xor r8, r12
ror r8, 0x18
add r9, r8
xor rcx, r9
ror rcx, 0x10
add r12, rcx
xor r8, r12
mov r14, r8
mov r8d, dword [r13 + 0x30]
rol r14, 1
add rdi, qword [rsp + r8*8 + 0x40]
lea r8, [rdi + r15]
mov rdi, qword [rsp + 0x30]
xor rdx, r8
add r8, qword [rsp + r11*8 + 0x40]
rol rdx, 0x20
mov r11d, dword [r13 + 0x38]
add rbx, rdx
xor r15, rbx
ror r15, 0x18
add r10, qword [rsp + r11*8 + 0x40]
add r8, r15
xor rdx, r8
mov r11, qword [rsp + 0x28]
ror rdx, 0x10
add rbx, rdx
add r10, rdi
xor r15, rbx
rol r15, 1
xor rax, r10
add r10, qword [rsp + rbp*8 + 0x40]
add r13, 0x40
rol rax, 0x20
add r11, rax
xor rdi, r11
ror rdi, 0x18
add r10, rdi
xor rax, r10
ror rax, 0x10
add r11, rax
mov qword [rsp + 0x10], rax
lea rax, [0x140172b40]
xor rdi, r11
rol rdi, 1
cmp rax, r13
jne 0x1400204b0
mov r13, qword [rsp + 8]
mov qword [rsp + 0x20], r14
vmovq xmm4, r8
vmovq xmm5, rsi
mov rbp, qword [rsp + 0x190]
mov qword [rsp + 0x120], rcx
vpinsrq xmm1, xmm4, r10, 1
vpinsrq xmm0, xmm5, r9, 1
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x118], r12
vinsertf128 ymm0, ymm0, xmm1, 1
mov r14, qword [rsp + 0x18]
mov qword [rsp + 0x128], rdx
mov qword [rsp + 0x110], r13
mov r13, qword [rsp]
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x100], rbx
vmovdqu xmm5, xmmword [rbp + 0x20]
mov qword [rsp + 0x108], r11
vmovdqu xmm4, xmmword [rsp + 0x120]
mov qword [rsp + 0xe0], rdi
vmovdqu xmm3, xmmword [rsp + 0x100]
mov qword [rsp + 0xe8], r13
vinsertf128 ymm2, ymm3, xmmword [rsp + 0x110], 1
vxorps ymm0, ymm0, ymm2
vmovdqu xmm2, xmmword [rbp]
mov qword [rsp + 0x138], r14
vinsertf128 ymm1, ymm2, xmmword [rbp + 0x10], 1
vxorps ymm0, ymm0, ymm1
vmovdqu xmm3, xmmword [rsp + 0xe0]
mov qword [rsp + 0xf0], rcx
vextractf128 xmmword [rbp + 0x10], ymm0, 1
mov qword [rsp + 0xf8], r15
vinsertf128 ymm1, ymm3, xmmword [rsp + 0xf0], 1
mov qword [rsp + 0x130], rax
vmovdqu xmmword [rbp], xmm0
vinsertf128 ymm0, ymm4, xmmword [rsp + 0x130], 1
vxorps ymm0, ymm0, ymm1
vinsertf128 ymm1, ymm5, xmmword [rbp + 0x30], 1
vxorps ymm0, ymm0, ymm1
vmovdqu xmmword [rbp + 0x20], xmm0
vextractf128 xmmword [rbp + 0x30], ymm0, 1
vzeroupper
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret