Function at 0x14005cf30
Capabilities:
Hash data using sha512

Disassembly:
sub rsp, 0x658
vmovups xmmword [rsp + 0x5b0], xmm6
vmovups xmmword [rsp + 0x5c0], xmm7
vmovups xmmword [rsp + 0x5d0], xmm8
vmovups xmmword [rsp + 0x5e0], xmm9
vmovups xmmword [rsp + 0x5f0], xmm10
vmovups xmmword [rsp + 0x600], xmm11
vmovups xmmword [rsp + 0x610], xmm12
vmovups xmmword [rsp + 0x620], xmm13
vmovups xmmword [rsp + 0x630], xmm14
vmovups xmmword [rsp + 0x640], xmm15
vmovdqu ymm6, ymmword [rcx + 0x220]
vmovdqu ymm10, ymmword [rcx + 0x200]
vpbroadcastq ymm1, qword [rcx + 0x300]
vmovdqu ymmword [rsp + 0x2a0], ymm6
mov r8, rcx
mov eax, edx
vmovdqu ymm6, ymmword [rcx + 0x240]
lea rdx, [rsp + 0x3bf]
vmovdqu ymmword [rsp + 0x2c0], ymm6
and rdx, 0xffffffffffffffe0
vmovdqu ymm6, ymmword [rcx + 0x260]
vmovdqu ymmword [rsp + 0x2e0], ymm6
vmovdqu ymm6, ymmword [rcx + 0x280]
vmovdqu ymmword [rsp + 0x300], ymm6
vmovdqu ymm6, ymmword [rcx + 0x2a0]
vmovdqu ymmword [rsp + 0x320], ymm6
vmovdqu ymm6, ymmword [rcx + 0x2c0]
vmovdqu ymmword [rsp + 0x340], ymm6
vmovdqu ymm6, ymmword [rcx + 0x2e0]
movabs rcx, 0x510e527fade682d1
vmovq xmm0, rcx
movabs rcx, 0x9b05688c2b3e6c1f
vmovdqu ymmword [rsp + 0x360], ymm6
vpbroadcastq ymm0, xmm0
vpxor ymm6, ymm1, ymm0
vmovq xmm0, rcx
vpbroadcastq ymm1, qword [r8 + 0x308]
movabs rcx, 0x1f83d9abfb41bd6b
vmovdqu ymmword [rsp + 0x80], ymm6
vpbroadcastq ymm0, xmm0
vpxor ymm6, ymm1, ymm0
vmovdqu ymmword [rsp + 0xa0], ymm6
vmovq xmm6, rcx
vpbroadcastq ymm6, xmm6
vmovdqu ymmword [rsp + 0x60], ymm6
test eax, eax
je 0x14005d0a2
vpcmpeqq ymm0, ymm0, ymm0
vpxor ymm6, ymm0, ymm6
vmovdqu ymmword [rsp + 0x60], ymm6
vmovdqu ymm6, ymmword [r8 + 0x60]
vmovdqu ymm2, ymmword [r8]
movabs rcx, 0x5be0cd19137e2179
lea rax, [0x1402bb010]
vmovdqu ymm1, ymmword [r8 + 0x20]
vmovdqu ymm0, ymmword [r8 + 0x40]
vmovq xmm8, rcx
movabs rcx, 0x3c6ef372fe94f82b
vmovdqu ymmword [rdx + 0x60], ymm6
vpbroadcastq ymm12, xmm8
lea r9, [rax + 0xb0]
vmovdqu ymm15, ymm10
vmovdqu ymm7, ymmword [r8 + 0x80]
vmovdqu ymmword [rdx], ymm2
vmovdqu ymmword [rsp + 0x260], ymm6
vmovdqu ymmword [rsp + 0xe0], ymm7
vmovdqu ymmword [rdx + 0x80], ymm7
vmovdqu ymm7, ymmword [r8 + 0xa0]
vmovdqu ymmword [rdx + 0x20], ymm1
vmovdqu ymmword [rsp + 0x100], ymm7
vmovdqu ymmword [rdx + 0xa0], ymm7
vmovdqu ymm7, ymmword [r8 + 0xc0]
vmovdqu ymmword [rdx + 0x40], ymm0
vmovdqu ymmword [rsp + 0x120], ymm7
vmovdqu ymmword [rdx + 0xc0], ymm7
vmovdqu ymm7, ymmword [r8 + 0xe0]
vmovdqu ymmword [rsp + 0x140], ymm7
vmovdqu ymmword [rdx + 0xe0], ymm7
vmovdqu ymm7, ymmword [r8 + 0x100]
vmovdqu ymmword [rsp + 0x160], ymm7
vmovdqu ymmword [rdx + 0x100], ymm7
vmovdqu ymm7, ymmword [r8 + 0x120]
vmovdqu ymmword [rsp + 0x180], ymm7
vmovdqu ymmword [rdx + 0x120], ymm7
vmovdqu ymm7, ymmword [r8 + 0x140]
vmovdqu ymmword [rsp + 0x1a0], ymm7
vmovdqu ymmword [rdx + 0x140], ymm7
vmovdqu ymm7, ymmword [r8 + 0x160]
vmovdqu ymmword [rsp + 0x1c0], ymm7
vmovdqu ymmword [rdx + 0x160], ymm7
vmovdqu xmm3, xmmword [0x1402bb0c0]
vmovdqu ymm7, ymmword [r8 + 0x180]
vmovdqu ymmword [rsp + 0xc0], ymm12
vmovq xmm12, rcx
movabs rcx, 0xbb67ae8584caa73b
vmovdqu ymm13, ymmword [rsp + 0x320]
vmovdqu ymmword [rsp + 0x1e0], ymm7
vmovq xmm9, rcx
movabs rcx, 0xa54ff53a5f1d36f1
vmovdqu ymm5, ymmword [rsp + 0x340]
vmovq xmm8, rcx
vpbroadcastq ymm14, xmm12
vpbroadcastq ymm9, xmm9
vmovdqu ymmword [rdx + 0x180], ymm7
vmovdqu ymm7, ymmword [r8 + 0x1a0]
vpbroadcastq ymm12, xmm8
movabs rcx, 0x6a09e667f3bcc908
vmovdqu ymmword [rsp + 0x40], ymm13
vmovq xmm8, rcx
vmovdqu ymm13, ymm14
vmovdqu ymm4, ymmword [rsp + 0x300]
vmovdqu ymm6, ymmword [rsp + 0x2a0]
vmovdqu ymmword [rsp + 0x200], ymm7
vpbroadcastq ymm8, xmm8
vmovdqu ymm11, ymmword [rsp + 0x2e0]
vmovdqu ymmword [rdx + 0x1a0], ymm7
vmovdqu ymm7, ymmword [r8 + 0x1c0]
vmovdqu ymmword [rsp + 0x380], ymm10
vmovdqu ymmword [rsp + 0x220], ymm7
vmovdqu ymmword [rdx + 0x1c0], ymm7
vmovdqu ymm7, ymmword [r8 + 0x1e0]
vmovdqu ymmword [rsp + 0x20], ymm5
vmovdqu ymmword [rsp + 0x240], ymm7
vmovdqu ymmword [rdx + 0x1e0], ymm7
vpermq ymm7, ymm3, 0x44
vmovdqu ymm3, ymm7
vmovdqu ymm7, ymmword [rsp + 0x360]
vmovdqu ymm14, ymm3
vmovdqu ymm3, ymmword [rsp + 0x260]
vmovdqu ymmword [rsp], ymm7
vmovdqu ymm7, ymmword [rsp + 0x2c0]
jmp 0x14005d44f
movzx ecx, byte [rax]
add rax, 0x10
shl rcx, 5
vmovdqu ymm2, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xf]
shl rcx, 5
vmovdqu ymm1, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xe]
shl rcx, 5
vmovdqu ymm0, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xd]
shl rcx, 5
vmovdqu ymm3, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xc]
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xb]
vmovdqu ymmword [rsp + 0xe0], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xa]
vmovdqu ymmword [rsp + 0x100], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 9]
vmovdqu ymmword [rsp + 0x120], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 8]
vmovdqu ymmword [rsp + 0x140], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 7]
vmovdqu ymmword [rsp + 0x160], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 6]
vmovdqu ymmword [rsp + 0x180], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 5]
vmovdqu ymmword [rsp + 0x1a0], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
vmovdqu ymmword [rsp + 0x1c0], ymm5
movzx ecx, byte [rax - 4]
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 3]
vmovdqu ymmword [rsp + 0x1e0], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 2]
vmovdqu ymmword [rsp + 0x200], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 1]
vmovdqu ymmword [rsp + 0x220], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
vmovdqu ymmword [rsp + 0x240], ymm5
vpaddq ymm10, ymm15, ymm4
vmovdqu ymm15, ymmword [rsp]
vpaddq ymm10, ymm10, ymm2
vpxor ymm5, ymm10, ymmword [rsp + 0x80]
vpaddq ymm10, ymm1, ymm10
vpaddq ymm11, ymm11, ymm15
vpaddq ymm11, ymm11, ymmword [rsp + 0x120]
vpshufd ymm5, ymm5, 0xb1
vpaddq ymm8, ymm8, ymm5
vpxor ymm4, ymm8, ymm4
vpshufb ymm4, ymm4, ymm14
vpaddq ymm10, ymm10, ymm4
vpxor ymm1, ymm10, ymm5
vpshuflw ymm1, ymm1, 0x39
vpshufhw ymm1, ymm1, 0x39
vpaddq ymm8, ymm8, ymm1
vpxor ymm4, ymm8, ymm4
vpsllq ymm2, ymm4, 1
vpsrlq ymm4, ymm4, 0x3f
vpor ymm5, ymm4, ymm2
vmovdqu ymm4, ymmword [rsp + 0x40]
vmovdqu ymmword [rsp + 0x280], ymm5
vpaddq ymm6, ymm6, ymm4
vpaddq ymm6, ymm6, ymm0
vpxor ymm2, ymm6, ymmword [rsp + 0xa0]
vpaddq ymm6, ymm3, ymm6
vpshufd ymm2, ymm2, 0xb1
vpaddq ymm9, ymm9, ymm2
vpxor ymm0, ymm9, ymm4
vpshufb ymm0, ymm0, ymm14
vpaddq ymm6, ymm6, ymm0
vpxor ymm2, ymm6, ymm2
vpshuflw ymm2, ymm2, 0x39
vpshufhw ymm2, ymm2, 0x39
vpaddq ymm3, ymm9, ymm2
vmovdqu ymmword [rsp + 0x260], ymm3
vpxor ymm0, ymm0, ymm3
vpsllq ymm3, ymm0, 1
vpsrlq ymm0, ymm0, 0x3f
vpor ymm9, ymm0, ymm3
vmovdqu ymm0, ymmword [rsp + 0x20]
vpaddq ymm7, ymm7, ymm0
vpaddq ymm7, ymm7, ymmword [rsp + 0xe0]
vpxor ymm4, ymm7, ymmword [rsp + 0x60]
vpaddq ymm7, ymm7, ymmword [rsp + 0x100]
vpshufd ymm4, ymm4, 0xb1
vpaddq ymm13, ymm13, ymm4
vpxor ymm3, ymm13, ymm0
vpshufb ymm3, ymm3, ymm14
vpaddq ymm7, ymm7, ymm3
vpxor ymm4, ymm7, ymm4
vpshuflw ymm4, ymm4, 0x39
vpshufhw ymm4, ymm4, 0x39
vpaddq ymm13, ymm13, ymm4
vpxor ymm3, ymm13, ymm3
vpsllq ymm0, ymm3, 1
vpsrlq ymm3, ymm3, 0x3f
vpor ymm3, ymm3, ymm0
vpxor ymm0, ymm11, ymmword [rsp + 0xc0]
vpaddq ymm11, ymm11, ymmword [rsp + 0x140]
vpshufd ymm0, ymm0, 0xb1
vpaddq ymm12, ymm12, ymm0
vpxor ymm5, ymm12, ymm15
vpshufb ymm5, ymm5, ymm14
vpaddq ymm11, ymm11, ymm5
vpxor ymm0, ymm11, ymm0
vpshuflw ymm0, ymm0, 0x39
vpshufhw ymm0, ymm0, 0x39
vpaddq ymm12, ymm12, ymm0
vpxor ymm5, ymm12, ymm5
vpsllq ymm15, ymm5, 1
vpsrlq ymm5, ymm5, 0x3f
vpor ymm5, ymm5, ymm15
vpaddq ymm15, ymm9, ymmword [rsp + 0x160]
vpaddq ymm15, ymm15, ymm10
vpxor ymm0, ymm15, ymm0
vpshufd ymm0, ymm0, 0xb1
vpaddq ymm13, ymm13, ymm0
vpxor ymm9, ymm13, ymm9
vpshufb ymm9, ymm9, ymm14
vpaddq ymm10, ymm9, ymmword [rsp + 0x180]
vpaddq ymm15, ymm10, ymm15
vpxor ymm0, ymm15, ymm0
vpshuflw ymm0, ymm0, 0x39
vpshufhw ymm0, ymm0, 0x39
vmovdqu ymmword [rsp + 0xc0], ymm0
vpaddq ymm13, ymm13, ymm0
vpxor ymm9, ymm13, ymm9
vpsllq ymm10, ymm9, 1
vpsrlq ymm9, ymm9, 0x3f
vpor ymm10, ymm9, ymm10
vmovdqu ymmword [rsp + 0x40], ymm10
vpaddq ymm10, ymm3, ymmword [rsp + 0x1a0]
vpaddq ymm10, ymm10, ymm6
vpxor ymm1, ymm10, ymm1
vpshufd ymm1, ymm1, 0xb1
vpaddq ymm12, ymm12, ymm1
vpxor ymm3, ymm12, ymm3
vpshufb ymm9, ymm3, ymm14
vpaddq ymm6, ymm9, ymmword [rsp + 0x1c0]
vpaddq ymm6, ymm6, ymm10
vpxor ymm3, ymm6, ymm1
vpshuflw ymm3, ymm3, 0x39
vpshufhw ymm3, ymm3, 0x39
vmovdqu ymmword [rsp + 0x80], ymm3
vpaddq ymm12, ymm12, ymm3
vpxor ymm9, ymm12, ymm9
vpsllq ymm1, ymm9, 1
vpsrlq ymm9, ymm9, 0x3f
vpor ymm1, ymm1, ymm9
vmovdqu ymmword [rsp + 0x20], ymm1
vpaddq ymm1, ymm5, ymmword [rsp + 0x1e0]
vpaddq ymm1, ymm1, ymm7
vpxor ymm2, ymm1, ymm2
vpshufd ymm2, ymm2, 0xb1
vpaddq ymm8, ymm8, ymm2
vpxor ymm5, ymm8, ymm5
vpshufb ymm5, ymm5, ymm14
vpaddq ymm7, ymm5, ymmword [rsp + 0x200]
vpaddq ymm7, ymm7, ymm1
vpxor ymm2, ymm7, ymm2
vpshuflw ymm2, ymm2, 0x39
vpshufhw ymm2, ymm2, 0x39
vmovdqu ymmword [rsp + 0xa0], ymm2
vpaddq ymm8, ymm8, ymm2
vpxor ymm5, ymm8, ymm5
vpsllq ymm1, ymm5, 1
vpsrlq ymm5, ymm5, 0x3f
vpor ymm1, ymm1, ymm5
vmovdqu ymm5, ymmword [rsp + 0x280]
vmovdqu ymmword [rsp], ymm1
vpaddq ymm1, ymm5, ymmword [rsp + 0x220]
vpaddq ymm1, ymm1, ymm11
vpxor ymm4, ymm1, ymm4
vpshufd ymm4, ymm4, 0xb1
vpaddq ymm9, ymm4, ymmword [rsp + 0x260]
vpxor ymm5, ymm9, ymm5
vpshufb ymm5, ymm5, ymm14
vpaddq ymm11, ymm5, ymmword [rsp + 0x240]
vpaddq ymm11, ymm11, ymm1
vpxor ymm1, ymm11, ymm4
vpshuflw ymm1, ymm1, 0x39
vpshufhw ymm1, ymm1, 0x39
vpaddq ymm9, ymm9, ymm1
vmovdqu ymmword [rsp + 0x60], ymm1
vpxor ymm5, ymm9, ymm5
vpsllq ymm4, ymm5, 1
vpsrlq ymm5, ymm5, 0x3f
vpor ymm4, ymm4, ymm5
cmp rax, r9
jne 0x14005d310
vmovdqu ymm14, ymm13
vmovdqu ymm5, ymmword [rsp + 0x20]
vmovdqu ymm10, ymmword [rsp + 0x380]
vpxor ymm8, ymm8, ymm15
vmovdqu ymm13, ymmword [rsp + 0x40]
vpxor ymm6, ymm6, ymm9
vpxor ymm3, ymm3, ymmword [rsp + 0x300]
vpxor ymm7, ymm7, ymm14
vpxor ymm2, ymm2, ymmword [rsp + 0x320]
vpxor ymm12, ymm12, ymm11
vpxor ymm1, ymm1, ymmword [rsp + 0x340]
vpxor ymm6, ymm6, ymmword [rsp + 0x2a0]
vpxor ymm8, ymm8, ymm10
vpxor ymm7, ymm7, ymmword [rsp + 0x2c0]
vpxor ymm2, ymm2, ymm13
vpxor ymm3, ymm3, ymm4
vpxor ymm1, ymm1, ymm5
vmovdqu ymmword [r8 + 0x200], ymm8
vpxor ymm12, ymm12, ymmword [rsp + 0x2e0]
vpxor ymm0, ymm0, ymmword [rsp + 0x360]
vmovdqu ymmword [r8 + 0x220], ymm6
vmovdqu ymmword [r8 + 0x240], ymm7
vpxor ymm0, ymm0, ymmword [rsp]
vmovdqu ymmword [r8 + 0x260], ymm12
vmovdqu ymmword [r8 + 0x280], ymm3
vmovdqu ymmword [r8 + 0x2a0], ymm2
vmovdqu ymmword [r8 + 0x2c0], ymm1
vmovdqu ymmword [r8 + 0x2e0], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0x5b0]
vmovups xmm7, xmmword [rsp + 0x5c0]
vmovups xmm8, xmmword [rsp + 0x5d0]
vmovups xmm9, xmmword [rsp + 0x5e0]
vmovups xmm10, xmmword [rsp + 0x5f0]
vmovups xmm11, xmmword [rsp + 0x600]
vmovups xmm12, xmmword [rsp + 0x610]
vmovups xmm13, xmmword [rsp + 0x620]
vmovups xmm14, xmmword [rsp + 0x630]
vmovups xmm15, xmmword [rsp + 0x640]
add rsp, 0x658
ret