Function at 0x14005d640
Capabilities:
Hash data using sha512

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
movabs rax, 0x6a09e667f3bcc908
vpbroadcastq zmm0, rax
movabs rax, 0xbb67ae8584caa73b
vmovdqu64 zmmword [rcx + 0x400], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x3c6ef372fe94f82b
mov rbx, rcx
vmovdqu64 zmmword [rcx + 0x440], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0xa54ff53a5f1d36f1
mov qword [rcx + 0x710], 0
vmovdqu64 zmmword [rcx + 0x480], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x510e527fade682d1
mov rsi, rdx
vmovdqu64 zmmword [rcx + 0x4c0], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x9b05688c2b3e6c1f
vmovdqu64 zmmword [rcx + 0x500], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x1f83d9abfb41bd6b
vmovdqu64 zmmword [rcx + 0x540], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x5be0cd19137e2179
vmovdqu64 zmmword [rcx + 0x580], zmm0
vpbroadcastq zmm0, rax
vmovdqu64 zmmword [rcx + 0x5c0], zmm0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rcx + 0x700], xmm0
mov rcx, r9
shr rcx, 3
test ecx, ecx
jle 0x14005d910
lea edx, [rcx - 1]
xor eax, eax
inc rdx
shl rdx, 6
nop dword [rax + rax]
vmovdqu64 zmm2, zmmword [r8 + rax]
vmovdqu64 zmmword [rbx + rax], zmm2
add rax, 0x40
cmp rdx, rax
jne 0x14005d740
mov rax, qword [rbx + 0x708]
mov qword [rbx + 0x700], r9
cmp r9, 0x80
je 0x14005d970
mov rbp, qword [rbx + 0x710]
movabs rdx, 0x8000000000000000
shl r9d, 3
mov r10, rcx
vpbroadcastq zmm0, rdx
shl r10, 6
mov edx, r9d
vmovdqu64 zmmword [rbx + r10], zmm0
lea rdi, [rdx + rax]
mov r8, rbp
test rax, rax
je 0x14005d94a
mov edx, 0x400
sub edx, r9d
sub rax, rdx
mov qword [rbx + 0x708], rax
mov edx, 0xd
sub edx, ecx
test edx, edx
jle 0x14005d7f8
inc rcx
mov r8d, edx
mov eax, 0x40
shl r8, 6
test edx, edx
cmovle r8, rax
shl rcx, 6
xor edx, edx
add rcx, rbx
vzeroupper
call sym.memset
mov rax, qword [rbx + 0x708]
mov edx, 1
add rax, 0x400
vpbroadcastq zmm0, rdx
mov qword [rbx + 0x708], rax
vmovdqu64 zmmword [rbx + 0x340], zmm0
vpbroadcastq zmm0, rbp
vmovdqu64 zmmword [rbx + 0x380], zmm0
vpbroadcastq zmm0, rdi
vmovdqu64 zmmword [rbx + 0x3c0], zmm0
cmp rax, 0x3ff
ja 0x14005d840
inc qword [rbx + 0x710]
mov rcx, rbx
vzeroupper
call sym.blake512_8way_compress_le
vmovdqu xmm0, xmmword [0x14032b4c0]
vmovdqu8 zmm3, zmmword [rbx + 0x400]
vshufi64x2 zmm0, zmm0, zmm0, 0
vpshufb zmm1, zmm3, zmm0
vmovdqu8 zmmword [rsi], zmm1
vmovdqu8 zmm4, zmmword [rbx + 0x440]
vpshufb zmm1, zmm4, zmm0
vmovdqu8 zmmword [rsi + 0x40], zmm1
vmovdqu8 zmm5, zmmword [rbx + 0x480]
vpshufb zmm1, zmm5, zmm0
vmovdqu8 zmmword [rsi + 0x80], zmm1
vmovdqu8 zmm3, zmmword [rbx + 0x4c0]
vpshufb zmm1, zmm3, zmm0
vmovdqu8 zmmword [rsi + 0xc0], zmm1
vmovdqu8 zmm4, zmmword [rbx + 0x500]
vpshufb zmm1, zmm4, zmm0
vmovdqu8 zmmword [rsi + 0x100], zmm1
vmovdqu8 zmm5, zmmword [rbx + 0x540]
vpshufb zmm1, zmm5, zmm0
vmovdqu8 zmmword [rsi + 0x140], zmm1
vmovdqu8 zmm3, zmmword [rbx + 0x580]
vpshufb zmm1, zmm3, zmm0
vmovdqu8 zmmword [rsi + 0x180], zmm1
vmovdqu8 zmm1, zmmword [rbx + 0x5c0]
vpshufb zmm0, zmm1, zmm0
vmovdqu8 zmmword [rsi + 0x1c0], zmm0
vzeroupper
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rdx, rcx
movabs rax, 0x8000000000000000
mov qword [rbx + 0x700], r9
xor ebp, ebp
shl rdx, 6
vpbroadcastq zmm0, rax
xor r8d, r8d
vmovdqu64 zmmword [rbx + rdx], zmm0
lea edx, [r9*8]
mov rdi, rdx
test rcx, rcx
je 0x14005d9ba
lea rax, [rdx - 0x400]
dec r8
mov qword [rbx + 0x708], rax
mov qword [rbx + 0x710], r8
jmp 0x14005d7c0
lea rdi, [rax + 0x400]
mov qword [rbx + 0x708], rdi
cmp rdi, 0x3ff
jbe 0x14005d9e0
mov rcx, rbx
vzeroupper
call sym.blake512_8way_compress_le
mov rbp, qword [rbx + 0x710]
movabs rax, 0x8000000000000000
mov qword [rbx + 0x700], 0
vpbroadcastq zmm0, rax
vmovdqu64 zmmword [rbx], zmm0
vmovdqu xmm0, xmmword [0x14032b3c0]
mov ecx, 1
mov edx, 0xd
vmovdqu xmmword [rbx + 0x708], xmm0
jmp 0x14005d7ce
inc qword [rbx + 0x710]
jmp 0x14005d987