Function at 0x140112800
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
movdqu xmm0, xmmword [0x1402af9a0]
lea rax, [0x14032f100]
movups xmmword [rsp + 0x40], xmm0
test r8, r8
mov rsi, rcx
mov r12, rdx
movdqu xmm0, xmmword [0x1402af9b0]
cmovne rax, r8
movups xmmword [rsp + 0x50], xmm0
movdqu xmm0, xmmword [0x1402af9c0]
mov rbx, rax
mov rax, qword [0x1402af9e0]
movups xmmword [rsp + 0x60], xmm0
movdqu xmm0, xmmword [0x1402af9d0]
mov qword [rsp + 0x110], rax
movups xmmword [rsp + 0x70], xmm0
pxor xmm0, xmm0
movups xmmword [rsp + 0x80], xmm0
test rdx, rdx
je 0x140112b50
mov rax, rdx
lea rbp, [rsp + 0x40]
shr rax, 0x3d
mov qword [rsp + 0x88], rax
lea rax, [rdx*8]
mov qword [rsp + 0x80], rax
cmp rdx, 0x7f
ja 0x140112ae0
lea rax, [rsp + 0x90]
mov r8d, r12d
mov qword [rsp + 0x38], rax
mov rdi, rax
cmp r12d, 8
jae 0x140112ee8
xor eax, eax
test r8b, 4
jne 0x140112ed0
test r8b, 2
jne 0x140112eb0
and r8d, 1
jne 0x140112ea0
mov dword [rsp + 0x110], r12d
mov byte [rsp + r12 + 0x90], pe_nt_image_headers64
mov rax, qword [rsp + 0x38]
add r12, 1
lea r8, [rax + r12]
cmp r12, 0x70
ja 0x140112b80
mov eax, 0x70
sub rax, r12
mov ecx, eax
cmp eax, 8
jae 0x140112b20
test al, 4
jne 0x140112f00
test ecx, ecx
je 0x140112941
mov byte [r8], 0
test cl, 2
jne 0x140112f30
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov rax, rcx
mov rdx, r8
mov r14, r8
mov r13, r8
shr rax, 0x28
movzx edx, dh
shr r14, 0x10
mov r12, r8
mov qword [rsp + 0x20], rax
movzx eax, r8b
movzx r14d, r14b
mov rdi, r8
shl rax, 8
shr r13, 0x18
mov rsi, r8
mov r11, rcx
or rax, rdx
movzx r13d, r13b
shr r12, 0x20
mov r10, rcx
shl rax, 8
movzx r12d, r12b
shr rdi, 0x28
mov r9, rcx
or rax, r14
shr rsi, 0x30
mov r15, rcx
mov rdx, qword [rsp + 0x38]
shl rax, 8
shr r11, 0x10
shr r10, 0x18
or rax, r13
movzx r11d, r11b
shr r9, 0x20
shl rax, 8
movzx r10d, r10b
movzx r9d, r9b
shr r15, 0x30
or rax, r12
movzx r12d, dil
mov rdi, rax
movzx eax, sil
shl rdi, 8
or rdi, r12
mov rsi, rdi
movzx edi, ch
shl rsi, 8
or rsi, rax
movzx eax, cl
shl rax, 8
or rax, rdi
shl rax, 8
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
movzx r9d, byte [rsp + 0x20]
shl rax, 8
or rax, r9
movzx r9d, r15b
shl rax, 8
shld rsi, r8, 8
mov r8d, 1
or rax, r9
mov qword [rsp + 0x20], rsi
shld rax, rcx, 8
mov rcx, rbp
mov qword [rsp + 0x28], rax
movdqu xmm1, xmmword [rsp + 0x20]
movups xmmword [rsp + 0x100], xmm1
call fcn.1401e7f00
mov eax, dword [rsp + 0x114]
cmp eax, 0x30
je 0x140112ca0
ja 0x140112c30
cmp eax, 0x1c
je 0x140112cf0
cmp eax, 0x20
jne 0x140112ab8
mov rax, qword [rsp + 0x40]
bswap rax
mov qword [rbx], rax
mov rax, qword [rsp + 0x48]
bswap rax
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x50]
bswap rax
mov qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x58]
bswap rax
mov qword [rbx + 0x18], rax
mov edx, 0xd8
mov rcx, rbp
call fcn.1401426f0
mov rax, rbx
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rdx
mov rdx, rcx
mov rcx, rbp
shr r8, 7
call fcn.1401e7f00
mov rax, r12
and eax, 0x7f
jne 0x140112f18
lea rax, [rsp + 0x90]
mov r12d, dword [rsp + 0x110]
mov qword [rsp + 0x38], rax
jmp 0x1401128f5
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 0x140112941
lea rdx, [rsp + 0x90]
mov eax, 0x6f
lea rbp, [rsp + 0x40]
mov byte [rsp + 0x90], pe_nt_image_headers64
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x91]
jmp 0x14011291d
mov eax, pe_nt_image_headers64
xor r10d, r10d
sub rax, r12
cmp rax, 8
jb 0x140112e58
lea rcx, [r8 + 8]
mov qword [r8], 0
mov qword [r8 + rax - 8], 0
and rcx, 0xfffffffffffffff8
sub r8, rcx
add rax, r8
and rax, 0xfffffffffffffff8
cmp rax, 8
jb 0x140112e71
lea r8, [rax - 1]
mov r11, rax
mov qword [rcx], 0
shr r8, 3
and r11, 0xfffffffffffffff8
mov r9, r8
mov r8d, 8
and r9d, 1
cmp r8, rax
jae 0x140112e71
test r9, r9
je 0x140112c09
mov r8d, 0x10
mov qword [rcx + 8], 0
cmp r8, r11
jae 0x140112e71
mov rdx, qword [rsp + 0x38]
mov qword [rcx + r8], r10
mov qword [rcx + r8 + 8], r10
add r8, 0x10
cmp r8, r11
jb 0x140112c0e
mov qword [rsp + 0x38], rdx
jmp 0x140112e71
cmp eax, 0x40
jne 0x140112ab8
mov rax, qword [rsp + 0x40]
bswap rax
mov qword [rbx], rax
mov rax, qword [rsp + 0x48]
bswap rax
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x50]
bswap rax
mov qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x58]
bswap rax
mov qword [rbx + 0x18], rax
mov rax, qword [rsp + 0x60]
bswap rax
mov qword [rbx + 0x20], rax
mov rax, qword [rsp + 0x68]
bswap rax
mov qword [rbx + 0x28], rax
mov rax, qword [rsp + 0x70]
bswap rax
mov qword [rbx + 0x30], rax
mov rax, qword [rsp + 0x78]
bswap rax
mov qword [rbx + 0x38], rax
jmp 0x140112ab8
mov rax, qword [rsp + 0x40]
bswap rax
mov qword [rbx], rax
mov rax, qword [rsp + 0x48]
bswap rax
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x50]
bswap rax
mov qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x58]
bswap rax
mov qword [rbx + 0x18], rax
mov rax, qword [rsp + 0x60]
bswap rax
mov qword [rbx + 0x20], rax
mov rax, qword [rsp + 0x68]
bswap rax
mov qword [rbx + 0x28], rax
jmp 0x140112ab8
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rsi, rdx
movzx eax, cl
mov r15, rcx
mov r14, rcx
shr rsi, 0x10
shl rax, 8
mov r13, rcx
mov r12, rcx
mov qword [rsp + 0x20], rsi
movzx esi, ch
shr r15, 0x10
mov rdi, rcx
or rax, rsi
movzx r15d, r15b
shr r14, 0x18
movzx esi, dh
shl rax, 8
shr r13, 0x20
mov r11, rdx
mov r10, rdx
or rax, r15
movzx r15d, r14b
shr r12, 0x28
mov r9, rdx
shl rax, 8
shr rdi, 0x30
mov r8, rdx
shr r11, 0x18
mov r14, rax
movzx eax, r13b
shr r10, 0x20
shr r9, 0x28
or r14, r15
shr r8, 0x30
shl r14, 8
mov r13, r14
or r13, rax
movzx eax, r12b
shl r13, 8
mov r12, r13
or r12, rax
movzx eax, dil
mov rdi, r12
movzx r12d, byte [rsp + 0x20]
shl rdi, 8
or rdi, rax
movzx eax, dl
shl rax, 8
or rax, rsi
shl rax, 8
mov rsi, rax
movzx eax, r11b
or rsi, r12
shl rsi, 8
mov r11, rsi
or r11, rax
movzx eax, r10b
shl r11, 8
mov r10, r11
or r10, rax
movzx eax, r9b
shl r10, 8
mov r9, r10
or r9, rax
movzx eax, r8b
shl r9, 8
shld rdi, rcx, 8
mov r8, r9
mov qword [rsp + 0x20], rdi
or r8, rax
mov rax, qword [rsp + 0x50]
shld r8, rdx, 8
mov rdx, qword [rsp + 0x58]
bswap rax
mov qword [rbx + 0x10], rax
mov rax, rdx
mov qword [rsp + 0x28], r8
mov r8, rdx
mov rcx, rdx
shr rax, 0x20
shr r8, 0x28
movdqu xmm2, xmmword [rsp + 0x20]
shr rcx, 0x30
movzx eax, al
movzx r8d, r8b
shr rdx, 0x38
shl eax, 8
movzx ecx, cl
movups xmmword [rbx], xmm2
or eax, r8d
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov dword [rbx + 0x18], eax
jmp 0x140112ab8
test al, 4
jne 0x140112f40
test rax, rax
je 0x140112e71
mov byte [r8], 0
test al, 2
jne 0x140112f55
mov rdx, qword [rsp + 0x38]
mov r8d, 1
mov rcx, rbp
call fcn.1401e7f00
lea rax, [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov r8, rax
mov eax, 0x70
jmp 0x14011291d
movzx ecx, byte [rsi + rax]
mov byte [rdi + rax], cl
jmp 0x1401128ed
movzx ecx, word [rsi + rax]
mov word [rdi + rax], cx
add rax, 2
and r8d, 1
je 0x1401128ed
jmp 0x140112ea0
mov eax, dword [rsi]
mov dword [rdi], eax
mov eax, 4
test r8b, 2
je 0x1401128e3
jmp 0x140112eb0
mov ecx, r12d
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x1401128cd
mov dword [r8], 0
mov dword [r8 + rcx - 4], 0
jmp 0x140112941
sub r12, rax
add rsi, r12
mov r12, rax
jmp 0x1401128b0
xor eax, eax
mov word [r8 + rcx - 2], ax
jmp 0x140112941
mov dword [r8], 0
mov dword [r8 + rax - 4], 0
jmp 0x140112e71
xor edx, edx
mov word [r8 + rax - 2], dx
jmp 0x140112e71