Function at 0x1400408e0
Capabilities:
Hash data using sha512

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0xb8]
sub rsp, 0x1b8
mov rax, qword [0x1400a1090]
xor rax, rsp
mov qword [rbp + 0x90], rax
movaps xmm0, xmmword [0x140091010]
xor esi, esi
movaps xmm1, xmmword [0x140091020]
mov rdi, rdx
mov r10, r9
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmmword [0x140091030]
mov r9, r8
movaps xmmword [rsp + 0x40], xmm1
cmp rdx, 0x40
movaps xmm1, xmmword [0x140091040]
mov rbx, rcx
movaps xmmword [rsp + 0x50], xmm0
mov r8, r10
movaps xmmword [rsp + 0x60], xmm1
mov rdx, r9
mov dword [rsp + 0x20], edi
mov dword [rbp - 0x80], edi
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rsi
ja 0x1400409a3
movabs rcx, 0x6a09e667f3bcc908
mov rax, rdi
or rax, 0x1010000
mov esi, 4
xor rax, rcx
mov qword [rbp], rsi
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rax
call fcn.1400406d0
mov r8, rdi
lea rcx, [rsp + 0x30]
mov rdx, rbx
call fcn.1400407d0
jmp 0x140040bd8
mov qword [rsp + 0x1b0], r12
lea rax, [rsi + 4]
movabs r12, 0x6a09e667f2bdc948
mov qword [rsp + 0x1a8], r14
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], r12
mov qword [rbp], rax
call fcn.1400406d0
mov r8d, 0x40
lea rdx, [rbp + 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400407d0
movaps xmm2, xmmword [rbp + 0x10]
lea r14d, [rdi - 0x20]
movaps xmm3, xmmword [rbp + 0x20]
movaps xmm4, xmmword [rbp + 0x40]
movaps xmm5, xmmword [rbp + 0x30]
movups xmmword [rbx], xmm2
movups xmmword [rbx + 0x10], xmm3
add rbx, 0x20
cmp r14d, 0x40
jbe 0x140040b25
mov qword [rsp + 0x1a0], r15
lea r15d, [r14 - 0x41]
shr r15d, 5
inc r15d
movaps xmm0, xmmword [0x140091010]
lea rax, [rsi + 0x40]
movaps xmm1, xmmword [0x140091020]
lea rcx, [rax + rsi]
cmp rcx, rax
mov qword [rsp + 0x70], rcx
movaps xmmword [rsp + 0x30], xmm0
lea rcx, [rbp - 0x80]
movaps xmm0, xmmword [0x140091030]
mov rdx, rsi
adc rdx, rdx
movaps xmmword [rsp + 0x40], xmm1
movaps xmm1, xmmword [0x140091040]
mov r8d, 0x80
mov qword [rsp + 0x78], rdx
sub r8, rax
xor edx, edx
movaps xmmword [rsp + 0x50], xmm0
add rcx, rax
movaps xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x30], r12
movaps xmmword [rbp - 0x80], xmm2
movaps xmmword [rbp - 0x70], xmm3
movaps xmmword [rbp - 0x60], xmm5
movaps xmmword [rbp - 0x50], xmm4
mov qword [rbp], rax
call fcn.140055ed0
mov r8, 0xffffffffffffffff
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x30]
call fcn.14003e5c0
cmp dword [0x140331700], esi
movups xmm2, xmmword [rsp + 0x30]
movups xmm3, xmmword [rsp + 0x40]
movups xmm5, xmmword [rsp + 0x50]
movups xmm4, xmmword [rsp + 0x60]
movaps xmmword [rbp + 0x10], xmm2
movaps xmmword [rbp + 0x20], xmm3
movaps xmmword [rbp + 0x30], xmm5
movaps xmmword [rbp + 0x40], xmm4
je 0x140040b04
xor eax, eax
lea rdi, [rbp + 0x50]
mov ecx, 0x40
rep stosb byte [rdi], al
lea rdi, [rbp - 0x80]
mov ecx, 0x80
rep stosb byte [rdi], al
lea rdi, [rsp + 0x30]
mov ecx, 0x40
rep stosb byte [rdi], al
movups xmmword [rbx], xmm2
add r14d, 0xffffffe0
movups xmmword [rbx + 0x10], xmm3
add rbx, 0x20
sub r15, 1
jne 0x140040a24
mov r15, qword [rsp + 0x1a0]
movaps xmm0, xmmword [0x140091010]
lea rdx, [rbp + 0x10]
movaps xmm1, xmmword [0x140091020]
movabs rcx, 0x6a09e667f3bcc908
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmmword [0x140091030]
movaps xmmword [rsp + 0x40], xmm1
movaps xmm1, xmmword [0x140091040]
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rsi
add rsi, 0x40
mov eax, r14d
or rax, 0x1010000
mov r8d, r14d
xor rax, rcx
movaps xmmword [rsp + 0x50], xmm0
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rax
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rbp - 0x80], xmm2
movaps xmmword [rbp - 0x70], xmm3
movaps xmmword [rbp - 0x60], xmm5
movaps xmmword [rbp - 0x50], xmm4
mov qword [rbp], rsi
call fcn.1400407d0
mov r8d, r14d
lea rdx, [rbp + 0x10]
mov rcx, rbx
call fcn.140055820
cmp dword [0x140331700], 0
mov r14, qword [rsp + 0x1a8]
mov r12, qword [rsp + 0x1b0]
je 0x140040bd8
lea rdi, [rbp + 0x10]
xor eax, eax
mov ecx, 0x40
rep stosb byte [rdi], al
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.1400535a0
add rsp, 0x1b8
pop rdi
pop rsi
pop rbx
pop rbp
ret