Function at 0x45e770
Capabilities:
Hash data using sha512

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
movabs rax, 0x6a09e667f3bcc908
vpbroadcastq zmm0, rax
movabs rax, 0xbb67ae8584caa73b
vmovdqu64 zmmword [rcx + 0x400], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x3c6ef372fe94f82b
vmovdqu64 zmmword [rcx + 0x440], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0xa54ff53a5f1d36f1
vmovdqu64 zmmword [rcx + 0x480], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x510e527fade682d1
vmovdqu64 zmmword [rcx + 0x4c0], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x9b05688c2b3e6c1f
vmovdqu64 zmmword [rcx + 0x500], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x1f83d9abfb41bd6b
vmovdqu64 zmmword [rcx + 0x540], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x5be0cd19137e2179
vmovdqu64 zmmword [rcx + 0x580], zmm0
vpbroadcastq zmm0, rax
mov qword [rcx + 0x710], 0
mov qword [rcx + 0x708], 0
mov qword [rcx + 0x700], 0
mov rbx, rcx
vmovdqu64 zmmword [rcx + 0x5c0], zmm0
mov rcx, r9
shr rcx, 3
mov rsi, rdx
test ecx, ecx
jle 0x45eaf0
lea edx, [rcx - 1]
inc rdx
shl rdx, 6
xor eax, eax
nop word [rax + rax]
vmovdqu64 zmm5, zmmword [r8 + rax]
vmovdqu64 zmmword [rbx + rax], zmm5
add rax, 0x40
cmp rdx, rax
jne 0x45e878
mov qword [rbx + 0x700], r9
mov rax, qword [rbx + 0x708]
cmp r9, 0x80
je 0x45e910
mov edx, pe_nt_image_headers64
mov r8, rcx
vpbroadcastq zmm0, rdx
shl r9d, 3
shl r8, 6
vmovdqu64 zmmword [rbx + r8], zmm0
mov edx, r9d
mov rbp, qword [rbx + 0x710]
lea rdi, [rdx + rax]
test rcx, rcx
je 0x45e961
test rax, rax
je 0x45ead0
mov edx, 0x400
sub edx, r9d
sub rax, rdx
mov qword [rbx + 0x708], rax
mov edx, 0xd
sub edx, ecx
inc rcx
test edx, edx
jg 0x45e981
jmp 0x45e9af
add rax, 0x400
mov qword [rbx + 0x708], rax
cmp rax, 0x3ff
ja 0x45e92c
inc qword [rbx + 0x710]
mov rcx, rbx
vzeroupper
call fcn.00453600
mov eax, pe_nt_image_headers64
mov qword [rbx + 0x700], 0
vpbroadcastq zmm0, rax
mov rdi, qword [rbx + 0x708]
mov rbp, qword [rbx + 0x710]
vmovdqu64 zmmword [rbx], zmm0
mov qword [rbx + 0x708], 0xfffffffffffffc00
mov qword [rbx + 0x710], 0xffffffffffffffff
mov ecx, 1
mov edx, 0xd
lea r8d, [rdx - 1]
inc r8
shl r8, 6
mov eax, 0x40
test edx, edx
cmovle r8, rax
shl rcx, 6
add rcx, rbx
xor edx, edx
vzeroupper
call sub.msvcrt.dll_memset
mov rax, qword [rbx + 0x708]
movabs rdx, 0x100000000000000
vpbroadcastq zmm0, rdx
mov rdx, rbp
vmovdqu64 zmmword [rbx + 0x340], zmm0
bswap rdx
vpbroadcastq zmm0, rdx
vmovdqu64 zmmword [rbx + 0x380], zmm0
add rax, 0x400
bswap rdi
vpbroadcastq zmm0, rdi
mov qword [rbx + 0x708], rax
vmovdqu64 zmmword [rbx + 0x3c0], zmm0
cmp rax, 0x3ff
ja 0x45ea05
inc qword [rbx + 0x710]
mov rcx, rbx
vzeroupper
call fcn.00453600
vmovdqu64 xmm0, xmmword [0x006f2600]
vmovdqu64 zmm2, zmmword [rbx + 0x400]
vshufi64x2 zmm0, zmm0, zmm0, 0
vpshufb zmm1, zmm2, zmm0
vmovdqu64 zmmword [rsi], zmm1
vmovdqu64 zmm3, zmmword [rbx + 0x440]
vpshufb zmm1, zmm3, zmm0
vmovdqu64 zmmword [rsi + 0x40], zmm1
vmovdqu64 zmm4, zmmword [rbx + 0x480]
vpshufb zmm1, zmm4, zmm0
vmovdqu64 zmmword [rsi + 0x80], zmm1
vmovdqu64 zmm5, zmmword [rbx + 0x4c0]
vpshufb zmm1, zmm5, zmm0
vmovdqu64 zmmword [rsi + 0xc0], zmm1
vmovdqu64 zmm2, zmmword [rbx + 0x500]
vpshufb zmm1, zmm2, zmm0
vmovdqu64 zmmword [rsi + 0x100], zmm1
vmovdqu64 zmm3, zmmword [rbx + 0x540]
vpshufb zmm1, zmm3, zmm0
vmovdqu64 zmmword [rsi + 0x140], zmm1
vmovdqu64 zmm4, zmmword [rbx + 0x580]
vpshufb zmm1, zmm4, zmm0
vmovdqu64 zmmword [rsi + 0x180], zmm1
vmovdqu64 zmm1, zmmword [rbx + 0x5c0]
vpshufb zmm0, zmm1, zmm0
vmovdqu64 zmmword [rsi + 0x1c0], zmm0
vzeroupper
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
lea rax, [rdx - 0x400]
lea rdx, [rbp - 1]
mov qword [rbx + 0x708], rax
mov qword [rbx + 0x710], rdx
jmp 0x45e8f5
mov qword [rbx + 0x700], r9
xor eax, eax
cmp r9, 0x80
jne 0x45e8a6
mov qword [rbx + 0x708], 0x400
jmp 0x45e92c