Function at 0x1400d6840
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov r13, r8
mov rsi, rdx
mov r12, rcx
movzx eax, byte [rsp + 0x120]
mov rcx, qword [0x140325878]
xor rcx, rsp
mov qword [rsp + 0xb0], rcx
test r12, r12
cmove rsi, r12
test r8, r8
je 0x1400d6893
movzx ecx, r9b
cmp cl, 0x40
mov edx, 0x40
cmovb edx, ecx
jmp 0x1400d6895
xor edx, edx
movzx eax, al
cmp al, 0x40
mov edi, 0x40
cmovb edi, eax
xor r15d, r15d
mov dword [rsp + 0x28], edx
test dl, dl
setne r15b
mov rbp, rsi
shr rbp, 7
mov eax, esi
and eax, 0x7f
cmp rax, 1
sbb rbp, 0xffffffffffffffff
add rbp, r15
cmp rbp, 2
mov ecx, 1
cmovae rcx, rbp
mov edx, 0x80
mov qword [rsp + 0x38], rcx
call fcn.140253030
test rax, rax
je 0x1400d691f
mov rbx, rax
mov dword [rsp + 0x2c], edi
movzx ecx, dil
mov qword [rsp + 0x30], rcx
call fcn.140254d88
test rax, rax
je 0x1400d6926
mov rdi, rax
mov eax, dword [rsp + 0x28]
movzx r14d, al
test al, al
je 0x1400d69af
cmp byte [rsp + 0x28], 1
jne 0x1400d6935
xor edx, edx
jmp 0x1400d6992
xor edi, edi
jmp 0x1400d6b4a
mov rcx, rbx
call fcn.140253cb0
xor edi, edi
jmp 0x1400d6b4a
mov r8d, r14d
and r8d, 0x7e
mov r9d, 8
xor edx, edx
nop word cs:[rax + rax]
movzx r10d, byte [r13 + rdx]
lea ecx, [r9 - 8]
and cl, 0x30
shl r10, cl
mov r11d, edx
and r11d, 0x78
or r10, qword [rbx + r11]
mov qword [rbx + r11], r10
movzx eax, byte [r13 + rdx + 1]
mov ecx, r9d
and cl, 0x38
shl rax, cl
or rax, r10
mov qword [rbx + r11], rax
add rdx, 2
add r9, 0x10
cmp r8, rdx
jne 0x1400d6950
test r14b, 1
je 0x1400d69af
movzx r8d, byte [r13 + rdx]
lea ecx, [rdx*8]
shl r8, cl
and edx, 0x78
or qword [rbx + rdx], r8
test rsi, rsi
je 0x1400d69f5
xor edx, edx
xor r8d, r8d
nop dword [rax]
movzx eax, byte [r12 + r8]
mov ecx, edx
and cl, 0x38
shl rax, cl
mov rcx, r8
shr rcx, 7
add rcx, r15
shl rcx, 7
add rcx, rbx
mov r9d, r8d
and r9d, 0x78
or qword [r9 + rcx], rax
inc r8
add rdx, 8
cmp rsi, r8
jne 0x1400d69c0
shl r14, 8
add r14, qword [rsp + 0x30]
movabs rax, 0x6a09e667f2bdc908
xor rax, r14
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmm0, xmmword [0x14026a010]
movaps xmmword [rsp + 0x60], xmm0
movaps xmm0, xmmword [0x14026a020]
movaps xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [0x14026a030]
movaps xmmword [rsp + 0x80], xmm0
movaps xmm0, xmmword [0x14026a040]
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x60], rax
cmp rbp, 2
jb 0x1400d6ab8
mov rax, qword [rsp + 0x38]
lea r15, [rax - 1]
xor ebp, ebp
lea r12, [rsp + 0x60]
lea r13, [rsp + 0x50]
xor edx, edx
jmp 0x1400d6aa5
lea r14, [rdx + 0x80]
mov qword [rsp + 0x50], r14
add rdx, rbx
mov rcx, r12
mov r8, r13
xor r9d, r9d
call fcn.1400d7020
mov rdx, r14
dec r15
je 0x1400d6ab8
cmp rdx, 0xffffffffffffff7f
jb 0x1400d6a80
inc rbp
mov qword [rsp + 0x58], rbp
jmp 0x1400d6a80
cmp byte [rsp + 0x28], 0
je 0x1400d6ada
cmp rsi, 0xffffffffffffff7f
jb 0x1400d6ad1
mov qword [rsp + 0x48], 1
sub rsi, 0xffffffffffffff80
mov qword [rsp + 0x40], rsi
mov rax, qword [rsp + 0x38]
shl rax, 7
lea rdx, [rax + rbx]
add rdx, 0xffffffffffffff80
lea rcx, [rsp + 0x60]
lea r8, [rsp + 0x40]
mov r9d, 1
call fcn.1400d7020
cmp byte [rsp + 0x2c], 0
mov r8, qword [rsp + 0x30]
je 0x1400d6b42
xor eax, eax
jmp 0x1400d6b23
movzx ecx, byte [rsp + rcx + 0xa8]
mov byte [rdi + rax], cl
inc rax
cmp r8, rax
je 0x1400d6b42
mov rcx, rax
and rcx, 7
jne 0x1400d6b10
mov rdx, rax
and rdx, 0xfffffffffffffff8
mov rdx, qword [rsp + rdx + 0x60]
mov qword [rsp + 0xa8], rdx
jmp 0x1400d6b10
mov rcx, rbx
call fcn.140253cb0
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140107870
mov rax, rdi
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret