Function at 0x42e530
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
movabs r14, 0x5be0cd19137e2179
movabs rbx, 0xa54ff53a5f1d36f1
movabs r8, 0x9b05688c2b3e6c1f
lea r15, [0x0073f5a0]
movabs r11, 0xbb67ae8584caa73b
mov rax, qword [rcx]
vmovdqu xmm4, xmmword [rdx]
vmovdqu xmm5, xmmword [rdx + 0x10]
vmovdqu xmm2, xmmword [rdx + 0x20]
vmovdqu xmm3, xmmword [rdx + 0x30]
mov qword [rsp + 0x190], rcx
mov qword [rsp + 0xc0], rax
vmovdqu xmmword [rsp + 0x40], xmm4
vmovdqu xmmword [rsp + 0x50], xmm5
vmovdqu xmm4, xmmword [rdx + 0x40]
vmovdqu xmm5, xmmword [rdx + 0x50]
vmovdqu xmmword [rsp + 0x60], xmm2
vmovdqu xmmword [rsp + 0x70], xmm3
vmovdqu xmm2, xmmword [rdx + 0x60]
vmovdqu xmm3, xmmword [rdx + 0x70]
mov rbp, rax
mov rdx, qword [rcx + 8]
mov rax, qword [rcx + 0x10]
mov rdi, qword [rsp + 0x190]
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0xd0], rax
mov rdx, qword [rcx + 0x18]
mov rcx, rax
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0xd8], rdx
mov rax, qword [rax + 0x20]
mov rdx, qword [rdi + 0x28]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rdx
vmovdqu xmmword [rsp + 0x80], xmm4
vmovdqu xmmword [rsp + 0x90], xmm5
vmovdqu xmmword [rsp + 0xa0], xmm2
vmovdqu xmmword [rsp + 0xb0], xmm3
mov rsi, rax
mov rax, qword [rdi + 0x30]
mov rdx, qword [rdi + 0x38]
mov r12, rax
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0xf0], rax
movabs rax, 0x510e527fade682d1
xor rax, qword [rdi + 0x40]
xor r14, qword [rdi + 0x58]
movabs rdx, 0x1f83d9abfb41bd6b
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x20], rbx
xor r8, qword [rdi + 0x48]
movabs rbx, 0x3c6ef372fe94f82b
xor rdx, qword [rdi + 0x50]
mov r9, qword [rsp + 0xc8]
mov r13, qword [rsp + 0xe8]
mov r10, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xf8]
mov qword [rsp + 0x18], rbx
movabs rbx, 0x6a09e667f3bcc908
nop dword [rax]
mov r14d, dword [r15]
mov rax, qword [rsp + r14*8 + 0x40]
mov r14d, dword [r15 + 4]
add rax, rsi
add rbp, rax
mov rax, qword [rsp + 0x28]
xor rax, rbp
rorx rax, rax, 0x20
add rbx, rax
add rbp, qword [rsp + r14*8 + 0x40]
xor rsi, rbx
rorx rsi, rsi, 0x18
add rbp, rsi
xor rax, rbp
rorx rax, rax, 0x10
add rbx, rax
xor rsi, rbx
mov qword [rsp + 8], rbx
mov ebx, dword [r15 + 8]
rorx rsi, rsi, 0x3f
mov r14, qword [rsp + rbx*8 + 0x40]
mov ebx, dword [r15 + 0xc]
add r14, r13
add r9, r14
xor r8, r9
rorx r8, r8, 0x20
add r11, r8
add r9, qword [rsp + rbx*8 + 0x40]
xor r13, r11
rorx r13, r13, 0x18
add r9, r13
xor r8, r9
rorx r8, r8, 0x10
lea r14, [r11 + r8]
mov r11d, dword [r15 + 0x10]
mov qword [rsp + 0x38], rsi
mov rsi, qword [rsp + r11*8 + 0x40]
mov r11, qword [rsp + 0x18]
add rsi, r12
add rcx, rsi
xor rdx, rcx
rorx rdx, rdx, 0x20
add r11, rdx
xor r12, r11
mov rbx, r11
mov r11d, dword [r15 + 0x14]
rorx r12, r12, 0x18
add rcx, qword [rsp + r11*8 + 0x40]
mov r11d, dword [r15 + 0x18]
add rcx, r12
mov rsi, qword [rsp + r11*8 + 0x40]
mov r11, qword [rsp + 0x30]
add rsi, rdi
add r10, rsi
xor r11, r10
xor r13, r14
xor rdx, rcx
rorx rsi, r11, 0x20
mov qword [rsp + 0x10], r14
mov r11, qword [rsp + 0x20]
mov r14d, dword [r15 + 0x1c]
rorx rdx, rdx, 0x10
add rbx, rdx
xor r12, rbx
add r11, rsi
add r10, qword [rsp + r14*8 + 0x40]
mov r14d, dword [r15 + 0x20]
xor rdi, r11
add rbp, qword [rsp + r14*8 + 0x40]
rorx rdi, rdi, 0x18
add r10, rdi
xor rsi, r10
rorx r13, r13, 0x3f
add rbp, r13
mov r14d, dword [r15 + 0x24]
rorx rsi, rsi, 0x10
add r11, rsi
xor rsi, rbp
rorx rsi, rsi, 0x20
add rbx, rsi
add rbp, qword [rsp + r14*8 + 0x40]
xor r13, rbx
rorx r13, r13, 0x18
add rbp, r13
xor rsi, rbp
rorx rsi, rsi, 0x10
add rbx, rsi
xor r13, rbx
mov qword [rsp + 0x18], rbx
mov ebx, dword [r15 + 0x28]
rorx r12, r12, 0x3f
add r9, qword [rsp + rbx*8 + 0x40]
add r9, r12
mov ebx, dword [r15 + 0x2c]
xor rax, r9
xor rdi, r11
rorx rax, rax, 0x20
add r11, rax
xor r12, r11
mov qword [rsp + 0x30], rsi
add r9, qword [rsp + rbx*8 + 0x40]
rorx r12, r12, 0x18
add r9, r12
xor rax, r9
rorx rax, rax, 0x10
mov qword [rsp + 0x28], rax
add rax, r11
mov r11d, dword [r15 + 0x30]
rorx rdi, rdi, 0x3f
add rcx, qword [rsp + r11*8 + 0x40]
add rcx, rdi
mov rbx, qword [rsp + 8]
mov r11d, dword [r15 + 0x34]
xor r8, rcx
rorx r8, r8, 0x20
add rbx, r8
xor r12, rax
xor rdi, rbx
add rcx, qword [rsp + r11*8 + 0x40]
mov r11d, dword [r15 + 0x38]
mov rsi, qword [rsp + 0x38]
add r10, qword [rsp + r11*8 + 0x40]
add r10, rsi
mov r14, qword [rsp + 0x10]
xor rdx, r10
rorx rdx, rdx, 0x20
lea r11, [r14 + rdx]
mov r14d, dword [r15 + 0x3c]
xor rsi, r11
add r10, qword [rsp + r14*8 + 0x40]
rorx rdi, rdi, 0x18
rorx rsi, rsi, 0x18
add rcx, rdi
add r10, rsi
xor r8, rcx
xor rdx, r10
rorx r8, r8, 0x10
rorx rdx, rdx, 0x10
add rbx, r8
add r11, rdx
mov qword [rsp + 0x20], rax
xor rdi, rbx
xor rsi, r11
add r15, 0x40
lea rax, [0x0073f8a0]
rorx r13, r13, 0x3f
rorx r12, r12, 0x3f
rorx rdi, rdi, 0x3f
rorx rsi, rsi, 0x3f
cmp r15, rax
jne 0x42e6c8
vmovq xmm5, qword [rsp + 0x18]
vmovq xmm3, rcx
vmovq xmm4, rbp
vpinsrq xmm2, xmm5, qword [rsp + 0x20], 1
vpinsrq xmm1, xmm3, r10, 1
vpinsrq xmm0, xmm4, r9, 1
vmovq xmm3, rbx
vinserti128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm3, r11, 1
mov rcx, qword [rsp + 0x190]
vinserti128 ymm1, ymm1, xmm2, 1
mov rax, qword [rsp + 0x28]
vpxor ymm0, ymm0, ymm1
vpxor ymm0, ymm0, ymmword [rcx]
mov r14, qword [rsp + 0x30]
vmovq xmm4, rdx
vmovq xmm5, rax
vpinsrq xmm1, xmm4, r14, 1
vmovdqu ymmword [rcx], ymm0
vmovq xmm2, r12
vpinsrq xmm0, xmm5, r8, 1
vmovq xmm3, rsi
vinserti128 ymm0, ymm0, xmm1, 1
vpinsrq xmm2, xmm2, rdi, 1
vpinsrq xmm1, xmm3, r13, 1
vinserti128 ymm1, ymm1, xmm2, 1
vpxor ymm0, ymm0, ymm1
vpxor ymm0, ymm0, ymmword [rcx + 0x20]
vmovdqu ymmword [rcx + 0x20], ymm0
vzeroupper
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret