Function at 0x1800d6cb0
Capabilities:
Hash data using sha512

Disassembly:
test r8, r8
je 0x1800d6fbd
push rbp
push rsi
push rdi
push r14
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rax, qword [0x1802609a8]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov rdi, rcx
mov qword [rsp + 0x130], rbx
mov rcx, qword [rcx + 0x28]
mov rsi, r8
mov r14, rdx
test rcx, rcx
je 0x1800d6f52
cmp rcx, 0x80
jae 0x1800d6d29
mov ebx, 0x80
sub rbx, rcx
cmp r8, rbx
cmovb rbx, r8
test rbx, rbx
je 0x1800d6d1f
add rcx, qword [rdi + 0x10]
mov r8, rbx
call fcn.18017c7f0
add qword [rdi + 0x28], rbx
sub rsi, rbx
add r14, rbx
mov rax, qword [rdi + 0x18]
sub rax, qword [rdi + 0x10]
cmp qword [rdi + 0x28], rax
jne 0x1800d6f52
test rsi, rsi
je 0x1800d6f52
mov rax, qword [rdi + 0x10]
sub qword [rdi + 0x48], 0xffffffffffffff80
mov rcx, qword [rdi + 0x48]
cmp rcx, 0x80
jae 0x1800d6d5e
inc qword [rdi + 0x50]
movups xmm0, xmmword [rax]
lea rdx, [rsp + 0x20]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x20], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rsp + 0x30], xmm1
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rsp + 0x40], xmm0
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rsp + 0x50], xmm1
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rsp + 0x70], xmm1
movups xmm1, xmmword [rax + 0x70]
mov rax, qword [rdi + 0x30]
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm1
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x60], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rbp - 0x50], xmm1
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rbp - 0x40], xmm0
movaps xmm0, xmmword [0x1801dafd0]
movups xmmword [rbp - 0x30], xmm1
movaps xmm1, xmmword [0x1801dafe0]
movups xmmword [rbp - 0x20], xmm0
movaps xmm0, xmmword [0x1801daff0]
movaps xmmword [rbp], xmm0
movq rax, xmm0
xor rax, rcx
lea rcx, [rbp - 0x60]
mov qword [rbp], rax
mov rax, qword [rdi + 0x50]
xor qword [rbp + 8], rax
movups xmmword [rbp - 0x10], xmm1
movaps xmm1, xmmword [0x1801db000]
movaps xmmword [rbp + 0x10], xmm1
movq rax, xmm1
xor rax, qword [rdi + 0x58]
mov qword [rbp + 0x10], rax
mov rax, qword [rdi + 0x60]
xor qword [rbp + 0x18], rax
call fcn.1800d5bc0
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d6780
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d5eb0
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d52f0
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d55e0
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d4d10
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d61a0
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d6490
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d5000
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d58d0
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d5bc0
lea rcx, [rbp - 0x60]
lea rdx, [rsp + 0x20]
call fcn.1800d6780
mov rax, qword [rbp - 0x60]
mov rdx, qword [rdi + 0x30]
xor rax, qword [rbp - 0x20]
xor qword [rdx], rax
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx + 8]
xor rax, qword [rbp - 0x18]
xor rax, qword [rbp - 0x58]
mov qword [rcx + 8], rax
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx + 0x10]
xor rax, qword [rbp - 0x10]
xor rax, qword [rbp - 0x50]
mov qword [rcx + 0x10], rax
mov rcx, qword [rdi + 0x30]
mov rax, qword [rbp - 8]
xor rax, qword [rbp - 0x48]
xor qword [rcx + 0x18], rax
mov rcx, qword [rdi + 0x30]
mov rax, qword [rbp - 0x40]
xor rax, qword [rbp]
xor qword [rcx + 0x20], rax
mov rcx, qword [rdi + 0x30]
mov rax, qword [rbp - 0x38]
xor rax, qword [rbp + 8]
xor qword [rcx + 0x28], rax
mov rcx, qword [rdi + 0x30]
mov rax, qword [rbp - 0x30]
xor rax, qword [rbp + 0x10]
xor qword [rcx + 0x30], rax
mov rcx, qword [rdi + 0x30]
mov rax, qword [rbp - 0x28]
xor rax, qword [rbp + 0x18]
xor qword [rcx + 0x38], rax
mov qword [rdi + 0x28], 0
cmp rsi, 0x80
jbe 0x1800d6f81
lea rbx, [rsi - 1]
mov r9d, 0x80
shr rbx, 7
mov rdx, r14
mov r8, rbx
mov rcx, rdi
call fcn.1800d7090
shl rbx, 7
add r14, rbx
sub rsi, rbx
mov rbx, qword [rsp + 0x130]
test rsi, rsi
je 0x1800d6fa5
mov rcx, qword [rdi + 0x10]
mov r8, rsi
add rcx, qword [rdi + 0x28]
mov rdx, r14
call fcn.18017c7f0
add qword [rdi + 0x28], rsi
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.18015e5e0
add rsp, 0x138
pop r14
pop rdi
pop rsi
pop rbp
ret