Function at 0x1400028a0
Capabilities:
Hash data using sha512

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
vmovdqa xmmword [rsp + 0x20], xmm6
mov r14, r9
mov rdi, rdx
mov rsi, rcx
mov rbx, qword [rsp + 0x80]
cmp r8, 0x40
jne 0x140002a54
vmovups ymm0, ymmword [0x14008de68]
vmovups ymmword [rsi + 0xd8], ymm0
vmovups ymm0, ymmword [0x14008de50]
vmovups ymmword [rsi + 0xc0], ymm0
vmovups ymm0, ymmword [0x14008de30]
vmovups ymmword [rsi + 0xa0], ymm0
vmovups ymm0, ymmword [0x14008de10]
vmovups ymmword [rsi + 0x80], ymm0
vmovups ymm0, ymmword [0x14008ddf0]
vmovups ymmword [rsi + 0x60], ymm0
vmovups ymm0, ymmword [0x14008ddd0]
vmovups ymmword [rsi + 0x40], ymm0
vmovups ymm0, ymmword [0x14008ddb0]
vmovups ymmword [rsi + 0x20], ymm0
vmovdqu ymm0, ymmword [0x14008dd90]
vmovdqu ymmword [rsi], ymm0
test rbx, rbx
je 0x140002b22
cmp rbx, 0x81
jb 0x140002a06
mov qword [rsi + 0xe0], 0
lea rdx, [rsi + 0x60]
vmovdqu ymm0, ymmword [r14]
vmovups ymm1, ymmword [r14 + 0x20]
vmovups ymm2, ymmword [r14 + 0x40]
vmovups ymm3, ymmword [r14 + 0x60]
vmovdqu ymmword [rsi + 0x60], ymm0
vmovups ymmword [rsi + 0x80], ymm1
vmovups ymmword [rsi + 0xa0], ymm2
vmovups ymmword [rsi + 0xc0], ymm3
mov qword [rsi + 0x40], 0x80
mov qword [rsi + 0x48], 0
mov rcx, rsi
vzeroupper
call fcn.140002b90
sub r14, 0xffffffffffffff80
add rbx, 0xffffffffffffff80
cmp rbx, 0x81
jb 0x140002a06
vpbroadcastq xmm6, qword [0x14008dfc0]
nop dword [rax + rax]
xor eax, eax
cmp qword [rsi + 0x40], 0xffffffffffffff80
setae al
vpinsrq xmm0, xmm6, rax, 1
vpaddq xmm0, xmm0, xmmword [rsi + 0x40]
vmovdqu xmmword [rsi + 0x40], xmm0
mov rcx, rsi
mov rdx, r14
call fcn.140002b90
sub r14, 0xffffffffffffff80
add rbx, 0xffffffffffffff80
cmp rbx, 0x80
ja 0x1400029d0
mov rax, qword [rsi + 0xe0]
lea rcx, [rsi + rax]
add rcx, 0x60
mov rdx, r14
mov r8, rbx
vzeroupper
call fcn.14008af60
add rbx, qword [rsi + 0xe0]
mov qword [rsi + 0xe0], rbx
add qword [rsi + 0x40], rbx
adc qword [rsi + 0x48], 0
cmp byte [rsi + 0xf0], 0
je 0x140002b2d
mov qword [rsi + 0x58], 0xffffffffffffffff
jmp 0x140002b2d
vmovups ymm0, ymmword [0x14008de90]
vmovups ymmword [rsi], ymm0
vmovups ymm0, ymmword [0x14008deb0]
vmovups ymmword [rsi + 0x20], ymm0
vmovups ymm0, ymmword [0x14008df68]
vmovups ymmword [rsi + 0xd8], ymm0
vmovups ymm0, ymmword [0x14008df50]
vmovups ymmword [rsi + 0xc0], ymm0
vmovups ymm0, ymmword [0x14008df30]
vmovups ymmword [rsi + 0xa0], ymm0
vmovups ymm0, ymmword [0x14008df10]
vmovups ymmword [rsi + 0x80], ymm0
vmovups ymm0, ymmword [0x14008def0]
vmovups ymmword [rsi + 0x60], ymm0
vmovups ymm0, ymmword [0x14008ded0]
vmovups ymmword [rsi + 0x40], ymm0
movzx eax, r8b
movabs rcx, 0x6a09e667f2bdc908
xor rcx, rax
mov qword [rsi], rcx
vmovdqa ymm0, ymmword [0x14008dfa0]
vmovdqu ymmword [rsi + 8], ymm0
movabs rcx, 0x9b05688c2b3e6c1f
mov qword [rsi + 0x28], rcx
movabs rcx, 0x1f83d9abfb41bd6b
mov qword [rsi + 0x30], rcx
movabs rcx, 0x5be0cd19137e2179
mov qword [rsi + 0x38], rcx
mov qword [rsi + 0xe8], rax
test rbx, rbx
jne 0x140002946
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rsi + 0x40], xmm0
xor ebx, ebx
mov qword [rsi + 0x50], 0xffffffffffffffff
lea r14, [rsi + 0x60]
lea rcx, [rsi + rbx]
add rcx, 0x60
mov r8d, 0x80
sub r8, rbx
xor edx, edx
vzeroupper
call fcn.14008b600
mov rcx, rsi
mov rdx, r14
call fcn.140002b90
mov r8, qword [rsi + 0xe8]
mov rcx, rdi
mov rdx, rsi
call fcn.14008af60
mov rax, rsi
vmovaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
ret