Function at 0x14004aeb0
Capabilities:
Hash data using sha512

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
vmovups xmmword [rsp + 0x20], xmm6
movabs rax, 0x6a09e667f3bcc908
vmovq xmm0, rax
movabs rax, 0xbb67ae8584caa73b
vpbroadcastq ymm0, xmm0
vmovdqu ymmword [rcx + 0x200], ymm0
vmovq xmm0, rax
mov rbx, rcx
mov rsi, rdx
movabs rax, 0x3c6ef372fe94f82b
vpbroadcastq ymm0, xmm0
mov qword [rcx + 0x390], 0
vmovdqu ymmword [rcx + 0x220], ymm0
vmovq xmm0, rax
movabs rax, 0xa54ff53a5f1d36f1
vpbroadcastq ymm0, xmm0
vmovdqu ymmword [rcx + 0x240], ymm0
vmovq xmm0, rax
movabs rax, 0x510e527fade682d1
vpbroadcastq ymm0, xmm0
vmovdqu ymmword [rcx + 0x260], ymm0
vmovq xmm0, rax
movabs rax, 0x9b05688c2b3e6c1f
vpbroadcastq ymm0, xmm0
vmovdqu ymmword [rcx + 0x280], ymm0
vmovq xmm0, rax
movabs rax, 0x1f83d9abfb41bd6b
vpbroadcastq ymm0, xmm0
vmovdqu ymmword [rcx + 0x2a0], ymm0
vmovq xmm0, rax
movabs rax, 0x5be0cd19137e2179
vpbroadcastq ymm0, xmm0
vmovdqu ymmword [rcx + 0x2c0], ymm0
vmovq xmm0, rax
mov rax, r9
vpbroadcastq ymm0, xmm0
shr rax, 3
vmovdqu ymmword [rcx + 0x2e0], ymm0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rcx + 0x380], xmm0
test eax, eax
jle 0x14004b248
lea edx, [rax - 1]
xor eax, eax
add rdx, 1
shl rdx, 5
nop word cs:[rax + rax]
vmovdqu ymm2, ymmword [r8 + rax]
vmovdqu ymmword [rbx + rax], ymm2
add rax, 0x20
cmp rdx, rax
jne 0x14004afe0
mov rdx, qword [rbx + 0x380]
mov rax, qword [rbx + 0x388]
add rdx, r9
mov qword [rbx + 0x380], rdx
cmp r9, 0x80
je 0x14004b1d0
mov rcx, rdx
mov r9, qword [rbx + 0x390]
vpbroadcastq ymm0, qword [0x1402badb0]
shr rcx, 3
mov r8, rcx
mov rdi, r9
shl r8, 5
bswap rdi
vmovq xmm6, rdi
lea edi, [rdx*8]
vmovdqu ymmword [rbx + r8], ymm0
mov r8d, 0xd
mov r10, rdi
add rdi, rax
sub r8d, ecx
add rcx, 1
test rdx, rdx
je 0x14004b2a8
test rax, rax
je 0x14004b285
mov edx, 0x400
sub edx, r10d
sub rax, rdx
mov qword [rbx + 0x388], rax
test r8d, r8d
jle 0x14004b0a7
shl rcx, 5
shl r8, 5
xor edx, edx
add rcx, rbx
vzeroupper
call sym.memset
mov rax, qword [rbx + 0x388]
movabs rcx, 0x100000000000000
bswap rdi
add rax, 0x400
vmovq xmm0, rcx
mov qword [rbx + 0x388], rax
vpbroadcastq ymm0, xmm0
vmovdqu ymmword [rbx + 0x1a0], ymm0
vpbroadcastq ymm0, xmm6
vmovdqu ymmword [rbx + 0x1c0], ymm0
vmovq xmm0, rdi
vpbroadcastq ymm0, xmm0
vmovdqu ymmword [rbx + 0x1e0], ymm0
cmp rax, 0x3ff
ja 0x14004b102
add qword [rbx + 0x390], 1
mov rcx, rbx
vzeroupper
call sym.blake512_4way_compress
vmovdqu xmm0, xmmword [0x1402bade0]
vmovdqu ymm3, ymmword [rbx + 0x200]
vpermq ymm0, ymm0, 0x44
vpshufb ymm1, ymm3, ymm0
vmovdqu ymmword [rsi], ymm1
vmovdqu ymm4, ymmword [rbx + 0x220]
vpshufb ymm1, ymm4, ymm0
vmovdqu ymmword [rsi + 0x20], ymm1
vmovdqu ymm5, ymmword [rbx + 0x240]
vpshufb ymm1, ymm5, ymm0
vmovdqu ymmword [rsi + 0x40], ymm1
vmovdqu ymm6, ymmword [rbx + 0x260]
vpshufb ymm1, ymm6, ymm0
vmovdqu ymmword [rsi + 0x60], ymm1
vmovdqu ymm3, ymmword [rbx + 0x280]
vpshufb ymm1, ymm3, ymm0
vmovdqu ymmword [rsi + 0x80], ymm1
vmovdqu ymm4, ymmword [rbx + 0x2a0]
vpshufb ymm1, ymm4, ymm0
vmovdqu ymmword [rsi + 0xa0], ymm1
vmovdqu ymm5, ymmword [rbx + 0x2c0]
vpshufb ymm1, ymm5, ymm0
vmovdqu ymmword [rsi + 0xc0], ymm1
vmovdqu ymm1, ymmword [rbx + 0x2e0]
vpshufb ymm0, ymm1, ymm0
vmovdqu ymmword [rsi + 0xe0], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
lea rdi, [rax + 0x400]
mov qword [rbx + 0x388], rdi
cmp rdi, 0x3ff
ja 0x14004b1ef
add qword [rbx + 0x390], 1
mov rcx, rbx
vzeroupper
call sym.blake512_4way_compress
mov ecx, 1
vpbroadcastq ymm0, qword [0x1402badb0]
mov rax, qword [rbx + 0x390]
mov qword [rbx + 0x380], 0
mov r8d, 0xd
vmovdqu ymmword [rbx], ymm0
vmovdqu xmm0, xmmword [0x1402bada0]
bswap rax
vmovq xmm6, rax
vmovdqu xmmword [rbx + 0x388], xmm0
jmp 0x14004b08b
vpbroadcastq ymm0, qword [0x1402badb0]
mov rdx, rax
mov r8d, 0xd
mov qword [rcx + 0x380], r9
shl rdx, 5
lea edi, [r9*8]
vpxor xmm6, xmm6, xmm6
sub r8d, eax
vmovdqu ymmword [rcx + rdx], ymm0
lea rcx, [rax + 1]
test r9, r9
je 0x14004b2a8
xor r9d, r9d
lea rax, [rdi - 0x400]
sub r9, 1
mov qword [rbx + 0x388], rax
mov qword [rbx + 0x390], r9
jmp 0x14004b086
vmovdqu xmm0, xmmword [0x1402bada0]
mov rax, 0xfffffffffffffc00
vmovdqu xmmword [rbx + 0x388], xmm0
jmp 0x14004b086