Function at 0x682090
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 r14, 0x5be0cd19137e2179
movabs r11, 0xa54ff53a5f1d36f1
movabs r9, 0x9b05688c2b3e6c1f
mov rax, qword [rdx]
mov qword [rsp + 0x50], rax
mov rax, qword [rdx + 8]
mov qword [rsp + 0x1a0], rcx
mov qword [rsp + 0x58], rax
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x60], rax
mov rax, qword [rdx + 0x18]
mov qword [rsp + 0x68], rax
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x70], rax
mov rax, qword [rdx + 0x28]
mov qword [rsp + 0x78], rax
mov rax, qword [rdx + 0x30]
mov qword [rsp + 0x80], rax
mov rax, qword [rdx + 0x38]
mov qword [rsp + 0x88], rax
mov rax, qword [rdx + 0x40]
mov qword [rsp + 0x90], rax
mov rax, qword [rdx + 0x48]
mov qword [rsp + 0x98], rax
mov rax, qword [rdx + 0x50]
mov qword [rsp + 0xa0], rax
mov rax, qword [rdx + 0x58]
mov qword [rsp + 0xa8], rax
mov rax, qword [rdx + 0x60]
mov qword [rsp + 0xb0], rax
mov rax, qword [rdx + 0x68]
mov qword [rsp + 0xb8], rax
mov rax, qword [rdx + 0x70]
mov qword [rsp + 0xc0], rax
mov rax, qword [rdx + 0x78]
mov qword [rsp + 0xc8], rax
mov r15, qword [rsp + 0x1a0]
mov rsi, qword [rcx + 0x38]
mov qword [rsp + 0x18], r11
movabs r11, 0x3c6ef372fe94f82b
mov rax, qword [rcx + 0x10]
mov qword [rsp], r11
movabs r11, 0x6a09e667f3bcc908
mov rdx, qword [rsp + 0x1a0]
mov rbp, qword [rcx]
mov r8, qword [rcx + 8]
mov qword [rsp + 0x108], rsi
mov r12, rsi
movabs rsi, 0xbb67ae8584caa73b
mov rbx, qword [rcx + 0x18]
mov qword [rsp + 0xe0], rax
mov rdi, qword [rcx + 0x20]
mov qword [rsp + 0x20], rax
mov r13, qword [rcx + 0x28]
mov qword [rsp + 0xd0], rbp
mov r10, qword [rcx + 0x30]
mov qword [rsp + 0xd8], r8
movabs rcx, 0x510e527fade682d1
xor r14, qword [r15 + 0x58]
mov qword [rsp + 0xe8], rbx
xor rcx, qword [rdx + 0x40]
mov qword [rsp + 0xf0], rdi
xor r9, qword [rdx + 0x48]
mov qword [rsp + 0xf8], r13
movabs rdx, 0x1f83d9abfb41bd6b
mov qword [rsp + 0x100], r10
xor rdx, qword [r15 + 0x50]
mov qword [rsp + 0x30], r14
lea r15, [0x00ae6320]
mov r14d, dword [r15]
mov rax, qword [rsp + r14*8 + 0x50]
mov r14d, dword [r15 + 4]
add rax, rdi
add rbp, rax
xor rcx, rbp
add rbp, qword [rsp + r14*8 + 0x50]
rol rcx, 0x20
add r11, rcx
xor rdi, r11
ror rdi, 0x18
add rbp, rdi
xor rcx, rbp
ror rcx, 0x10
lea rax, [r11 + rcx]
mov r11d, dword [r15 + 8]
xor rdi, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x20]
rol rdi, 1
mov qword [rsp + 0x48], rdi
mov r14, qword [rsp + r11*8 + 0x50]
mov r11d, dword [r15 + 0xc]
add r14, r13
add r8, r14
xor r9, r8
add r8, qword [rsp + r11*8 + 0x50]
rol r9, 0x20
mov r11d, dword [r15 + 0x10]
add rsi, r9
xor r13, rsi
ror r13, 0x18
add r8, r13
xor r9, r8
ror r9, 0x10
lea r14, [rsi + r9]
mov rsi, qword [rsp + r11*8 + 0x50]
mov r11d, dword [r15 + 0x14]
xor r13, r14
mov qword [rsp + 0x40], r14
rol r13, 1
mov r14d, dword [r15 + 0x1c]
add rsi, r10
add rax, rsi
mov rsi, qword [rsp]
xor rdx, rax
rol rdx, 0x20
add rsi, rdx
xor r10, rsi
ror r10, 0x18
add rax, qword [rsp + r11*8 + 0x50]
mov r11d, dword [r15 + 0x18]
add rax, r10
mov rdi, qword [rsp + r11*8 + 0x50]
xor rdx, rax
mov r11, qword [rsp + 0x30]
ror rdx, 0x10
add rsi, rdx
xor r10, rsi
add rdi, r12
rol r10, 1
add rbx, rdi
xor r11, rbx
add rbx, qword [rsp + r14*8 + 0x50]
mov rdi, r11
mov r11, qword [rsp + 0x18]
mov r14d, dword [r15 + 0x20]
rol rdi, 0x20
add r11, rdi
add rbp, qword [rsp + r14*8 + 0x50]
xor r12, r11
ror r12, 0x18
mov r14d, dword [r15 + 0x24]
add rbx, r12
xor rdi, rbx
add rbp, r13
ror rdi, 0x10
add r11, rdi
xor rdi, rbp
add rbp, qword [rsp + r14*8 + 0x50]
rol rdi, 0x20
xor r12, r11
add rsi, rdi
rol r12, 1
xor r13, rsi
ror r13, 0x18
add rbp, r13
xor rdi, rbp
mov r14, rdi
ror r14, 0x10
add rsi, r14
mov qword [rsp + 0x30], r14
xor r13, rsi
mov qword [rsp], rsi
mov esi, dword [r15 + 0x28]
rol r13, 1
add r8, qword [rsp + rsi*8 + 0x50]
mov esi, dword [r15 + 0x2c]
add r8, r10
xor rcx, r8
add r8, qword [rsp + rsi*8 + 0x50]
rol rcx, 0x20
mov rsi, qword [rsp + 0x38]
add r11, rcx
mov rdi, qword [rsp + 0x48]
xor r10, r11
mov r14, qword [rsp + 0x40]
ror r10, 0x18
add r8, r10
xor rcx, r8
ror rcx, 0x10
add r11, rcx
xor r10, r11
mov qword [rsp + 0x18], r11
mov r11d, dword [r15 + 0x30]
rol r10, 1
add rax, qword [rsp + r11*8 + 0x50]
add rax, r12
xor r9, rax
rol r9, 0x20
lea r11, [rsi + r9]
mov esi, dword [r15 + 0x34]
xor r12, r11
ror r12, 0x18
add rax, qword [rsp + rsi*8 + 0x50]
mov esi, dword [r15 + 0x38]
add rax, r12
xor r9, rax
add rbx, qword [rsp + rsi*8 + 0x50]
mov qword [rsp + 0x20], rax
ror r9, 0x10
lea rax, [0x00ae6620]
add r11, r9
xor r12, r11
rol r12, 1
add rbx, rdi
add r15, 0x40
xor rdx, rbx
rol rdx, 0x20
lea rsi, [r14 + rdx]
mov r14d, dword [r15 - 4]
xor rdi, rsi
ror rdi, 0x18
add rbx, qword [rsp + r14*8 + 0x50]
add rbx, rdi
xor rdx, rbx
ror rdx, 0x10
add rsi, rdx
xor rdi, rsi
rol rdi, 1
cmp r15, rax
jne 0x682244
mov rax, qword [rsp + 0x20]
movq xmm3, rsi
movq xmm4, r8
movq xmm0, r11
movq xmm1, rbp
punpcklqdq xmm0, xmm3
mov r14, qword [rsp + 0x30]
mov r15, qword [rsp + 0x1a0]
punpcklqdq xmm1, xmm4
pxor xmm0, xmm1
movq xmm4, r12
movq xmm1, qword [rsp]
movhps xmm1, qword [rsp + 0x18]
movdqu xmm2, xmmword [r15]
movdqu xmm3, xmmword [r15 + 0x10]
movdqu xmm5, xmmword [r15 + 0x20]
pxor xmm0, xmm2
movaps xmmword [rsp + 0x20], xmm2
movq xmm2, rbx
movups xmmword [r15], xmm0
movq xmm0, rax
punpcklqdq xmm0, xmm2
movq xmm2, r9
pxor xmm0, xmm1
movq xmm1, rdi
pxor xmm0, xmm3
movq xmm3, r13
movups xmmword [r15 + 0x10], xmm0
movq xmm0, rcx
punpcklqdq xmm1, xmm3
punpcklqdq xmm0, xmm2
pxor xmm0, xmm1
pxor xmm0, xmm5
movdqu xmm5, xmmword [r15 + 0x30]
movups xmmword [r15 + 0x20], xmm0
movq xmm2, r14
movq xmm0, rdx
movq xmm1, r10
punpcklqdq xmm0, xmm2
punpcklqdq xmm1, xmm4
movaps xmmword [rsp], xmm5
pxor xmm0, xmm1
pxor xmm0, xmm5
movups xmmword [r15 + 0x30], xmm0
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret