Function at 0x1401d2d30
Capabilities:
Hash data using sha512

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov rbx, rdx
mov rdi, rcx
add rcx, 0x40
xor edx, edx
mov r8d, 0xb8
call sub.VCRUNTIME140.dll_memset
movabs rdx, 0x6a09e667f3bcc908
movabs r8, 0xbb67ae8584caa73b
mov qword [rdi], rdx
movabs r9, 0x3c6ef372fe94f82b
mov qword [rdi + 8], r8
movabs r10, 0xa54ff53a5f1d36f1
mov qword [rdi + 0x10], r9
movabs r11, 0x510e527fade682d1
mov qword [rdi + 0x18], r10
movabs rsi, 0x9b05688c2b3e6c1f
mov qword [rdi + 0x20], r11
movabs rbp, 0x1f83d9abfb41bd6b
mov qword [rdi + 0x28], rsi
movabs r14, 0x5be0cd19137e2179
mov qword [rdi + 0x30], rbp
mov qword [rdi + 0x38], r14
movzx eax, byte [rbx + 6]
movzx ecx, byte [rbx + 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx]
shl rcx, 8
or rcx, rax
xor rcx, rdx
mov qword [rdi], rcx
movzx eax, byte [rbx + 0xe]
movzx ecx, byte [rbx + 0xf]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0xd]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0xc]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0xb]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0xa]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 9]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 8]
shl rcx, 8
or rcx, rax
xor rcx, r8
mov qword [rdi + 8], rcx
movzx eax, byte [rbx + 0x16]
movzx ecx, byte [rbx + 0x17]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x15]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x14]
shl rcx, 8
or rcx, rax
shl rcx, 8
movzx eax, byte [rbx + 0x13]
or rcx, rax
movzx eax, byte [rbx + 0x12]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x11]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x10]
shl rcx, 8
or rcx, rax
xor rcx, r9
mov qword [rdi + 0x10], rcx
movzx eax, byte [rbx + 0x1e]
movzx ecx, byte [rbx + 0x1f]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x1d]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x1c]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x1b]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x1a]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x19]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x18]
shl rcx, 8
or rcx, rax
xor rcx, r10
mov qword [rdi + 0x18], rcx
movzx eax, byte [rbx + 0x26]
movzx ecx, byte [rbx + 0x27]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x25]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x24]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x23]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x22]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x21]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x20]
shl rcx, 8
or rcx, rax
xor rcx, r11
mov qword [rdi + 0x20], rcx
movzx eax, byte [rbx + 0x2e]
movzx ecx, byte [rbx + 0x2f]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x2d]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x2c]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x2b]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x2a]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x29]
shl rcx, 8
or rcx, rax
shl rcx, 8
movzx eax, byte [rbx + 0x28]
or rcx, rax
xor rcx, rsi
mov rsi, qword [rsp + 0x40]
mov qword [rdi + 0x28], rcx
movzx eax, byte [rbx + 0x36]
movzx ecx, byte [rbx + 0x37]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x35]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x34]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x33]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x32]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x31]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x30]
shl rcx, 8
or rcx, rax
xor rcx, rbp
mov rbp, qword [rsp + 0x38]
mov qword [rdi + 0x30], rcx
movzx eax, byte [rbx + 0x3e]
movzx ecx, byte [rbx + 0x3f]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x3d]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x3c]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x3b]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x3a]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x39]
shl rcx, 8
or rcx, rax
movzx eax, byte [rbx + 0x38]
shl rcx, 8
or rcx, rax
xor rcx, r14
mov qword [rdi + 0x38], rcx
movzx eax, byte [rbx]
mov rbx, qword [rsp + 0x30]
mov qword [rdi + 0xe8], rax
xor eax, eax
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret