Function at 0x1400cfa30
Capabilities:
Hash data using sha512

Disassembly:
push rdi
mov eax, 0x1650
push rsi
push rbx
call fcn.14025bb50
sub rsp, rax
vmovups xmmword [rsp + 0x1630], xmm6
vmovups xmmword [rsp + 0x1640], xmm7
movabs rbx, 0x6a09e667f3bcc908
movabs rsi, 0xbb67ae8584caa73b
movabs rdi, 0x3c6ef372fe94f82b
vmovq xmm7, rbx
vmovq xmm6, rsi
vmovq xmm5, rdi
movabs rbx, 0xa54ff53a5f1d36f1
vmovq xmm4, rbx
vpbroadcastq ymm5, xmm5
vpbroadcastq ymm7, xmm7
movabs rsi, 0x510e527fade682d1
vmovq xmm3, rsi
vpbroadcastq ymm4, xmm4
vpbroadcastq ymm6, xmm6
movabs rdi, 0x9b05688c2b3e6c1f
movabs rbx, 0x5be0cd19137e2179
vmovq xmm2, rdi
vpbroadcastq ymm3, xmm3
vmovq xmm0, rbx
vpbroadcastq ymm2, xmm2
mov rax, rcx
lea r9, [rsp + 0x3f]
vpbroadcastq ymm0, xmm0
mov r10, rdx
mov rbx, qword [rax]
mov r11, qword [rax + 8]
and r9, 0xffffffffffffffe0
movabs rcx, 0x1f83d9abfb41bd6b
mov rdi, qword [rax + 0x10]
mov rsi, qword [rax + 0x18]
vmovq xmm1, rcx
vmovdqu ymmword [r9 + 0x40], ymm5
vpbroadcastq ymm1, xmm1
vmovdqu ymmword [r9 + 0x60], ymm4
mov rcx, qword [rax + 0x20]
mov r8, qword [rax + 0x30]
vmovdqu ymmword [r9 + 0xc0], ymm1
mov rdx, qword [rax + 0x28]
mov rax, qword [rax + 0x38]
vmovdqu ymmword [r9 + 0xe0], ymm0
vmovdqu ymmword [r9 + 0xb40], ymm5
vmovq xmm5, qword [rbx]
vmovdqu ymmword [r9 + 0xb60], ymm4
vmovq xmm4, qword [rdi]
vmovdqu ymmword [r9 + 0xbc0], ymm1
vpinsrq xmm1, xmm4, qword [rsi], 1
vmovdqu ymmword [r9 + 0xbe0], ymm0
vpinsrq xmm0, xmm5, qword [r11], 1
vmovdqu ymmword [r9 + 0x80], ymm3
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [r9], ymm7
vmovdqu ymmword [r9 + 0xa0], ymm2
vmovdqu ymmword [r9 + 0xb80], ymm3
vmovdqu ymmword [r9 + 0xba0], ymm2
vmovdqu ymmword [r9 + 0x20], ymm6
vmovdqu ymmword [r9 + 0xb00], ymm7
vmovq xmm7, qword [rcx]
vmovdqu ymmword [r9 + 0xb20], ymm6
vmovq xmm6, qword [r8]
vpinsrq xmm1, xmm6, qword [rax], 1
vmovdqu ymmword [r9 + 0x100], ymm0
vpinsrq xmm0, xmm7, qword [rdx], 1
vmovq xmm4, qword [rdi + 8]
vmovq xmm5, qword [rbx + 8]
vmovq xmm6, qword [r8 + 8]
vinserti128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm4, qword [rsi + 8], 1
vmovq xmm7, qword [rcx + 8]
vmovdqu ymmword [r9 + 0xc00], ymm0
vpinsrq xmm0, xmm5, qword [r11 + 8], 1
vmovq xmm4, qword [rdi + 0x10]
vmovq xmm5, qword [rbx + 0x10]
vinserti128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm6, qword [rax + 8], 1
vmovq xmm6, qword [r8 + 0x10]
vmovdqu ymmword [r9 + 0x120], ymm0
vpinsrq xmm0, xmm7, qword [rdx + 8], 1
vmovq xmm7, qword [rcx + 0x10]
vinserti128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm4, qword [rsi + 0x10], 1
vmovdqu ymmword [r9 + 0xc20], ymm0
vpinsrq xmm0, xmm5, qword [r11 + 0x10], 1
vinserti128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm6, qword [rax + 0x10], 1
vmovdqu ymmword [r9 + 0x140], ymm0
vpinsrq xmm0, xmm7, qword [rdx + 0x10], 1
vinserti128 ymm0, ymm0, xmm1, 1
vmovq xmm1, qword [rdi + 0x18]
vpinsrq xmm1, xmm1, qword [rsi + 0x18], 1
vmovdqu ymmword [r9 + 0xc40], ymm0
vmovq xmm0, qword [rbx + 0x18]
vpinsrq xmm0, xmm0, qword [r11 + 0x18], 1
vinserti128 ymm0, ymm0, xmm1, 1
vmovq xmm1, qword [r8 + 0x18]
vpinsrq xmm1, xmm1, qword [rax + 0x18], 1
movabs rax, 0x1000000000000
vmovdqu ymmword [r9 + 0x160], ymm0
vmovq xmm0, qword [rcx + 0x18]
vpinsrq xmm0, xmm0, qword [rdx + 0x18], 1
mov rcx, r9
vinserti128 ymm0, ymm0, xmm1, 1
vmovq xmm1, rax
vmovdqu ymmword [r9 + 0xc60], ymm0
vpbroadcastq ymm1, xmm1
vpbroadcastq ymm0, qword [0x1402a8020]
vmovdqu ymmword [r9 + 0x2e0], ymm1
vmovdqu ymmword [r9 + 0x180], ymm0
vmovdqu ymmword [r9 + 0xc80], ymm0
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [r9 + 0x1a0], ymm0
vmovdqu ymmword [r9 + 0xca0], ymm0
vmovdqu ymmword [r9 + 0x1c0], ymm0
vmovdqu ymmword [r9 + 0xcc0], ymm0
vmovdqu ymmword [r9 + 0x1e0], ymm0
vmovdqu ymmword [r9 + 0xce0], ymm0
vmovdqu ymmword [r9 + 0x200], ymm0
vmovdqu ymmword [r9 + 0xd00], ymm0
vmovdqu ymmword [r9 + 0x220], ymm0
vmovdqu ymmword [r9 + 0xd20], ymm0
vmovdqu ymmword [r9 + 0x240], ymm0
vmovdqu ymmword [r9 + 0xd40], ymm0
vmovdqu ymmword [r9 + 0x260], ymm0
vmovdqu ymmword [r9 + 0xd60], ymm0
vmovdqu ymmword [r9 + 0x280], ymm0
vmovdqu ymmword [r9 + 0xd80], ymm0
vmovdqu ymmword [r9 + 0x2a0], ymm0
vmovdqu ymmword [r9 + 0xda0], ymm0
vmovdqu ymmword [r9 + 0x2c0], ymm0
vmovdqu ymmword [r9 + 0xdc0], ymm0
vmovdqu ymmword [r9 + 0xde0], ymm1
vzeroupper
call fcn.1400cc180
vmovdqu ymm4, ymmword [r9]
vmovdqu ymm6, ymmword [r9 + 0x20]
vmovdqu ymm0, ymmword [0x1402a8000]
xor eax, eax
vmovdqu ymm5, ymmword [r9 + 0xb00]
vmovdqu ymm7, ymmword [r9 + 0xb20]
vpshufb ymm1, ymm4, ymm0
vmovdqu ymm4, ymmword [r9 + 0x40]
vmovdqu ymmword [r9], ymm1
vpshufb ymm1, ymm5, ymm0
vmovdqu ymm5, ymmword [r9 + 0xb40]
vmovdqu ymmword [r9 + 0xb00], ymm1
vpshufb ymm1, ymm6, ymm0
vmovdqu ymm6, ymmword [r9 + 0x60]
vmovdqu ymmword [r9 + 0x20], ymm1
vpshufb ymm1, ymm7, ymm0
vmovdqu ymm7, ymmword [r9 + 0xb60]
vmovdqu ymmword [r9 + 0xb20], ymm1
vpshufb ymm1, ymm4, ymm0
vmovdqu ymm4, ymmword [r9 + 0x80]
vmovdqu ymmword [r9 + 0x40], ymm1
vpshufb ymm1, ymm5, ymm0
vmovdqu ymm5, ymmword [r9 + 0xb80]
vmovdqu ymmword [r9 + 0xb40], ymm1
vpshufb ymm1, ymm6, ymm0
vmovdqu ymm6, ymmword [r9 + 0xa0]
vmovdqu ymmword [r9 + 0x60], ymm1
vpshufb ymm1, ymm7, ymm0
vmovdqu ymm7, ymmword [r9 + 0xba0]
vmovdqu ymmword [r9 + 0xb60], ymm1
vpshufb ymm1, ymm4, ymm0
vmovdqu ymm4, ymmword [r9 + 0xc0]
vmovdqu ymmword [r9 + 0x80], ymm1
vpshufb ymm1, ymm5, ymm0
vmovdqu ymm5, ymmword [r9 + 0xbc0]
vmovdqu ymmword [r9 + 0xb80], ymm1
vpshufb ymm1, ymm6, ymm0
vmovdqu ymm6, ymmword [r9 + 0xe0]
vmovdqu ymmword [r9 + 0xa0], ymm1
vpshufb ymm1, ymm7, ymm0
vmovdqu ymm7, ymmword [r9 + 0xbe0]
vmovdqu ymmword [r9 + 0xba0], ymm1
vpshufb ymm1, ymm4, ymm0
vmovdqu ymmword [r9 + 0xc0], ymm1
vpshufb ymm1, ymm5, ymm0
vmovdqu ymmword [r9 + 0xbc0], ymm1
vpshufb ymm1, ymm6, ymm0
vpshufb ymm0, ymm7, ymm0
vmovdqu ymmword [r9 + 0xe0], ymm1
vmovdqu ymmword [r9 + 0xbe0], ymm0
nop dword [rax + rax]
mov rdx, qword [r10]
vmovdqu xmm0, xmmword [r9 + rax*4]
vmovdqu ymm3, ymmword [r9 + rax*4 + 0xb00]
vmovdqu ymm2, ymmword [r9 + rax*4]
vmovq qword [rdx + rax], xmm0
mov rdx, qword [r10 + 8]
vpextrq qword [rdx + rax], xmm0, 1
mov rdx, qword [r10 + 0x10]
vextracti128 xmm0, ymm2, 1
vmovq qword [rdx + rax], xmm0
mov rdx, qword [r10 + 0x18]
vpextrq qword [rdx + rax], xmm0, 1
mov rdx, qword [r10 + 0x20]
vmovdqu xmm0, xmmword [r9 + rax*4 + 0xb00]
vmovq qword [rdx + rax], xmm0
mov rdx, qword [r10 + 0x28]
vpextrq qword [rdx + rax], xmm0, 1
mov rdx, qword [r10 + 0x30]
vextracti128 xmm0, ymm3, 1
vmovq qword [rdx + rax], xmm0
mov rdx, qword [r10 + 0x38]
vpextrq qword [rdx + rax], xmm0, 1
add rax, 8
cmp rax, 0x40
jne 0x1400cff40
vzeroupper
vmovups xmm6, xmmword [rsp + 0x1630]
vmovups xmm7, xmmword [rsp + 0x1640]
add rsp, 0x1650
pop rbx
pop rsi
pop rdi
ret