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