Function at 0x5ce320
Capabilities:
Hash data using sha512

Disassembly:
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x100
movdqa xmm0, xmmword [0x0091a720]
lea rax, [0x009f7040]
movaps xmmword [rsp + 0x20], xmm0
mov r12, r8
test r8, r8
mov rsi, rcx
movdqa xmm0, xmmword [0x0091a730]
cmove r12, rax
mov rbx, rdx
mov rax, qword [0x0091a760]
movaps xmmword [rsp + 0x30], xmm0
movdqa xmm0, xmmword [0x0091a740]
mov qword [rsp + 0xf0], rax
movaps xmmword [rsp + 0x40], xmm0
movdqa xmm0, xmmword [0x0091a750]
movaps xmmword [rsp + 0x50], xmm0
pxor xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
test rdx, rdx
je 0x5ce5c0
mov rax, rdx
lea r13, [rsp + 0x20]
shr rax, 0x3d
mov qword [rsp + 0x68], rax
lea rax, [rdx*8]
mov qword [rsp + 0x60], rax
cmp rdx, 0x7f
ja 0x5ce400
lea rdx, [rsp + 0x70]
mov r8d, ebx
mov rdi, rdx
cmp ebx, 8
jae 0x5ce778
xor eax, eax
test r8b, 4
jne 0x5ce760
test r8b, 2
jne 0x5ce748
and r8d, 1
jne 0x5ce730
mov dword [rsp + 0xf0], ebx
jmp 0x5ce42a
mov r8, rdx
mov rdx, rcx
mov rcx, r13
shr r8, 7
call fcn.0069c700
mov rax, rbx
and eax, 0x7f
jne 0x5ce7d3
mov ebx, dword [rsp + 0xf0]
lea rdx, [rsp + 0x70]
mov byte [rsp + rbx + 0x70], pe_nt_image_headers64
add rbx, 1
lea r8, [rdx + rbx]
cmp rbx, 0x70
ja 0x5ce5e0
mov eax, 0x70
sub rax, rbx
cmp eax, 8
jae 0x5ce588
test al, 4
jne 0x5ce788
test eax, eax
je 0x5ce46a
mov byte [r8], 0
test al, 2
jne 0x5ce7a0
mov rax, qword [rsp + 0x60]
mov r8d, 1
mov rcx, r13
bswap rax
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x68]
bswap rax
mov qword [rsp + 0xe0], rax
call fcn.0069c700
mov eax, dword [rsp + 0xf4]
cmp eax, 0x30
je 0x5ce690
ja 0x5ce510
cmp eax, 0x1c
je 0x5ce630
cmp eax, 0x20
jne 0x5ce4eb
mov rax, qword [rsp + 0x20]
bswap rax
mov qword [r12], rax
mov rax, qword [rsp + 0x28]
bswap rax
mov qword [r12 + 8], rax
mov rax, qword [rsp + 0x30]
bswap rax
mov qword [r12 + 0x10], rax
mov rax, qword [rsp + 0x38]
bswap rax
mov qword [r12 + 0x18], rax
mov edx, 0xd8
mov rcx, r13
call fcn.005fddf0
mov rax, r12
add rsp, 0x100
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
cmp eax, 0x40
jne 0x5ce4eb
mov rax, qword [rsp + 0x20]
bswap rax
mov qword [r12], rax
mov rax, qword [rsp + 0x28]
bswap rax
mov qword [r12 + 8], rax
mov rax, qword [rsp + 0x30]
bswap rax
mov qword [r12 + 0x10], rax
mov rax, qword [rsp + 0x38]
bswap rax
mov qword [r12 + 0x18], rax
mov rax, qword [rsp + 0x40]
bswap rax
mov qword [r12 + 0x20], rax
mov rax, qword [rsp + 0x48]
bswap rax
mov qword [r12 + 0x28], rax
mov rax, qword [rsp + 0x50]
bswap rax
mov qword [r12 + 0x30], rax
mov rax, qword [rsp + 0x58]
bswap rax
mov qword [r12 + 0x38], rax
jmp 0x5ce4eb
mov ecx, eax
lea rdi, [r8 + 8]
mov qword [r8], 0
mov qword [r8 + rcx - 8], 0
and rdi, 0xfffffffffffffff8
mov rcx, r8
sub rcx, rdi
add ecx, eax
xor eax, eax
shr ecx, 3
rep stosq qword [rdi], rax
jmp 0x5ce46a
mov byte [rsp + 0x70], pe_nt_image_headers64
lea r8, [rsp + 0x71]
mov eax, 0x6f
lea r13, [rsp + 0x20]
lea rdx, [rsp + 0x70]
jmp 0x5ce449
mov eax, pe_nt_image_headers64
xor r10d, r10d
sub rax, rbx
cmp rax, 8
jae 0x5ce6e8
test al, 4
jne 0x5ce7b0
test rax, rax
je 0x5ce60e
mov byte [r8], 0
test al, 2
jne 0x5ce7c5
mov r8d, 1
mov rcx, r13
call fcn.0069c700
lea rdx, [rsp + 0x70]
mov eax, 0x70
mov r8, rdx
jmp 0x5ce449
mov rax, qword [rsp + 0x20]
bswap rax
mov qword [r12], rax
mov rax, qword [rsp + 0x28]
bswap rax
mov qword [r12 + 8], rax
mov rax, qword [rsp + 0x30]
bswap rax
mov qword [r12 + 0x10], rax
mov rax, qword [rsp + 0x38]
mov rdx, rax
shr rdx, 0x38
mov byte [r12 + 0x18], dl
mov rdx, rax
shr rdx, 0x30
mov byte [r12 + 0x19], dl
mov rdx, rax
shr rax, 0x20
shr rdx, 0x28
mov byte [r12 + 0x1b], al
mov byte [r12 + 0x1a], dl
jmp 0x5ce4eb
mov rax, qword [rsp + 0x20]
bswap rax
mov qword [r12], rax
mov rax, qword [rsp + 0x28]
bswap rax
mov qword [r12 + 8], rax
mov rax, qword [rsp + 0x30]
bswap rax
mov qword [r12 + 0x10], rax
mov rax, qword [rsp + 0x38]
bswap rax
mov qword [r12 + 0x18], rax
mov rax, qword [rsp + 0x40]
bswap rax
mov qword [r12 + 0x20], rax
mov rax, qword [rsp + 0x48]
bswap rax
mov qword [r12 + 0x28], rax
jmp 0x5ce4eb
lea r9, [r8 + 8]
mov rcx, r8
mov qword [r8], 0
mov qword [r8 + rax - 8], 0
and r9, 0xfffffffffffffff8
sub rcx, r9
add rax, rcx
and rax, 0xfffffffffffffff8
cmp rax, 8
jb 0x5ce60e
and rax, 0xfffffffffffffff8
xor ecx, ecx
mov qword [r9 + rcx], r10
add rcx, 8
cmp rcx, rax
jb 0x5ce71d
jmp 0x5ce60e
movzx ecx, byte [rsi + rax]
mov byte [rdi + rax], cl
mov dword [rsp + 0xf0], ebx
jmp 0x5ce42a
movzx ecx, word [rsi + rax]
mov word [rdi + rax], cx
add rax, 2
and r8d, 1
je 0x5ce3f2
jmp 0x5ce730
mov eax, dword [rsi]
mov dword [rdi], eax
mov eax, 4
test r8b, 2
je 0x5ce3e8
jmp 0x5ce748
mov ecx, ebx
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x5ce3d2
mov eax, eax
mov dword [r8], 0
mov dword [r8 + rax - 4], 0
jmp 0x5ce46a
mov eax, eax
xor ecx, ecx
mov word [r8 + rax - 2], cx
jmp 0x5ce46a
mov dword [r8], 0
mov dword [r8 + rax - 4], 0
jmp 0x5ce60e
xor r9d, r9d
mov word [r8 + rax - 2], r9w
jmp 0x5ce60e
sub rbx, rax
add rsi, rbx
mov rbx, rax
jmp 0x5ce3be