Function at 0x140058550
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 ymm3, ymmword [rcx + 0x260]
vpbroadcastq ymm1, qword [rcx + 0x300]
vmovdqu ymm10, ymmword [rcx + 0x200]
vmovdqu ymmword [rsp + 0x2a0], ymm6
vmovdqu ymm6, ymmword [rcx + 0x240]
mov r8, rcx
mov eax, edx
vmovdqu ymmword [rsp + 0x2e0], ymm3
vmovdqu ymm3, ymmword [rcx + 0x2a0]
lea rdx, [rsp + 0x3bf]
vmovdqu ymmword [rsp + 0x2c0], ymm6
and rdx, 0xffffffffffffffe0
vmovdqu ymm6, ymmword [rcx + 0x280]
vmovdqu ymmword [rsp + 0x320], ymm3
vmovdqu ymm3, ymmword [rcx + 0x2e0]
vmovdqu ymmword [rsp + 0x300], ymm6
vmovdqu ymm6, ymmword [rcx + 0x2c0]
movabs rcx, 0x510e527fade682d1
vmovdqu ymmword [rsp + 0x360], ymm3
vmovq xmm0, rcx
movabs rcx, 0x9b05688c2b3e6c1f
vmovdqu ymmword [rsp + 0x340], ymm6
vpbroadcastq ymm0, xmm0
vpxor ymm12, ymm1, ymm0
vmovq xmm0, rcx
vpbroadcastq ymm1, qword [r8 + 0x308]
movabs rcx, 0x1f83d9abfb41bd6b
vpbroadcastq ymm0, xmm0
vmovq xmm3, rcx
vpxor ymm6, ymm1, ymm0
vpbroadcastq ymm3, xmm3
vmovdqu ymmword [rsp + 0x80], ymm6
vmovdqu ymmword [rsp + 0x60], ymm3
test eax, eax
je 0x1400586b9
vpcmpeqq ymm0, ymm0, ymm0
vpxor ymm3, ymm0, ymm3
vmovdqu ymmword [rsp + 0x60], ymm3
vmovdqu ymm6, ymmword [r8 + 0x60]
vmovdqu ymm4, ymmword [r8]
movabs rcx, 0x5be0cd19137e2179
lea rax, [0x140277710]
vmovdqu ymm1, ymmword [r8 + 0x20]
vmovdqu ymm2, ymmword [r8 + 0x40]
vmovdqu ymm15, ymm10
lea r9, [rax + 0xb0]
vmovdqu ymm5, ymmword [r8 + 0xa0]
vmovdqu ymmword [rdx + 0x60], ymm6
vmovdqu ymmword [rsp + 0xe0], ymm6
vmovdqu ymm6, ymmword [r8 + 0x80]
vmovdqu ymmword [rdx], ymm4
vmovdqu ymmword [rsp + 0x100], ymm6
vmovdqu ymmword [rdx + 0x80], ymm6
vmovdqu ymm6, ymmword [r8 + 0xc0]
vmovdqu ymmword [rdx + 0x20], ymm1
vmovdqu ymmword [rsp + 0x120], ymm6
vmovdqu ymmword [rdx + 0xc0], ymm6
vmovdqu ymm6, ymmword [r8 + 0xe0]
vmovdqu ymmword [rdx + 0x40], ymm2
vmovdqu ymmword [rsp + 0x140], ymm6
vmovdqu ymmword [rdx + 0xe0], ymm6
vmovdqu ymm6, ymmword [r8 + 0x100]
vmovdqu ymmword [rdx + 0xa0], ymm5
vmovdqu ymmword [rsp + 0x160], ymm6
vmovdqu ymmword [rdx + 0x100], ymm6
vmovdqu ymm6, ymmword [r8 + 0x120]
vmovdqu ymmword [rsp + 0x180], ymm6
vmovdqu ymmword [rdx + 0x120], ymm6
vmovdqu ymm6, ymmword [r8 + 0x140]
vmovdqu ymmword [rsp + 0x1a0], ymm6
vmovdqu ymmword [rdx + 0x140], ymm6
vmovdqu ymm6, ymmword [r8 + 0x160]
vmovdqu ymmword [rsp + 0x1c0], ymm6
vmovdqu ymmword [rdx + 0x160], ymm6
vmovdqu ymm6, ymmword [r8 + 0x180]
vmovdqu xmm0, xmmword [0x1402777c0]
vmovdqu ymm3, ymmword [r8 + 0x1c0]
vmovdqu ymm7, ymmword [rsp + 0x320]
vmovdqu ymmword [rsp + 0x380], ymm10
vmovdqu ymmword [rsp + 0x1e0], ymm6
vmovdqu ymm10, ymmword [rsp + 0x60]
vmovdqu ymm11, ymmword [rsp + 0x2e0]
vmovdqu ymmword [rdx + 0x180], ymm6
vmovdqu ymm6, ymmword [r8 + 0x1a0]
vmovdqu ymmword [rsp + 0x220], ymm3
vmovdqu ymmword [rsp + 0x200], ymm6
vmovdqu ymmword [rdx + 0x1a0], ymm6
vmovdqu ymm6, ymmword [r8 + 0x1e0]
vmovdqu ymmword [rdx + 0x1c0], ymm3
vmovdqu ymmword [rsp + 0x240], ymm6
vmovdqu ymmword [rdx + 0x1e0], ymm6
vpermq ymm6, ymm0, 0x44
vmovdqu xmm0, xmmword [0x1402777d0]
vmovdqu ymmword [rsp + 0x280], ymm6
vmovdqu ymm6, ymmword [rsp + 0x360]
vpermq ymm3, ymm0, 0x44
vmovdqu ymmword [rsp + 0x40], ymm7
vmovdqu ymm0, ymmword [rsp + 0x300]
vmovdqu ymm7, ymmword [rsp + 0x2c0]
vmovdqu ymmword [rsp + 0x20], ymm6
vmovdqu ymm6, ymmword [rsp + 0x340]
vmovdqu ymmword [rsp + 0x260], ymm3
vmovdqu ymm3, ymmword [rsp + 0x2a0]
vmovdqu ymmword [rsp], ymm6
vmovq xmm6, rcx
movabs rcx, 0x3c6ef372fe94f82b
vmovdqu ymmword [rsp + 0xc0], ymm12
vpbroadcastq ymm6, xmm6
vmovdqu ymm12, ymmword [rsp + 0x260]
vmovdqu ymmword [rsp + 0xa0], ymm6
vmovq xmm6, rcx
movabs rcx, 0xbb67ae8584caa73b
vmovq xmm9, rcx
vpbroadcastq ymm14, xmm6
movabs rcx, 0xa54ff53a5f1d36f1
vmovq xmm6, rcx
vmovdqu ymmword [rsp + 0x60], ymm14
vpbroadcastq ymm9, xmm9
movabs rcx, 0x6a09e667f3bcc908
vpbroadcastq ymm13, xmm6
vmovq xmm8, rcx
vmovdqu ymm14, ymm5
vmovdqu ymm6, ymm13
vpbroadcastq ymm8, xmm8
vmovdqu ymm13, ymmword [rsp + 0x280]
jmp 0x140058a9f
movzx ecx, byte [rax]
add rax, 0x10
shl rcx, 5
vmovdqu ymm4, 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 ymm2, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xd]
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xc]
vmovdqu ymmword [rsp + 0xe0], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xb]
vmovdqu ymmword [rsp + 0x100], ymm5
shl rcx, 5
vmovdqu ymm14, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xa]
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 ymm15, ymm15, ymm0
vpaddq ymm15, ymm15, ymm4
vpxor ymm5, ymm15, ymmword [rsp + 0xc0]
vpaddq ymm15, ymm1, ymm15
vpshufd ymm5, ymm5, 0xb1
vpaddq ymm4, ymm8, ymm5
vpxor ymm0, ymm4, ymm0
vpshufb ymm0, ymm0, ymm13
vpaddq ymm15, ymm15, ymm0
vpxor ymm5, ymm15, ymm5
vpshufb ymm5, ymm5, ymm12
vpaddq ymm1, ymm4, ymm5
vmovdqu ymmword [rsp + 0x280], ymm1
vpxor ymm0, ymm0, ymm1
vpsllq ymm1, ymm0, 1
vpsrlq ymm0, ymm0, 0x3f
vpor ymm4, ymm0, ymm1
vmovdqu ymm0, ymmword [rsp + 0x40]
vmovdqu ymmword [rsp + 0x260], ymm4
vpaddq ymm3, ymm3, ymm0
vpaddq ymm3, ymm3, ymm2
vpxor ymm8, ymm3, ymmword [rsp + 0x80]
vpaddq ymm3, ymm3, ymmword [rsp + 0xe0]
vpshufd ymm8, ymm8, 0xb1
vpaddq ymm9, ymm9, ymm8
vpxor ymm4, ymm9, ymm0
vpshufb ymm4, ymm4, ymm13
vpaddq ymm3, ymm3, ymm4
vpxor ymm8, ymm3, ymm8
vpshufb ymm8, ymm8, ymm12
vpaddq ymm2, ymm9, ymm8
vmovdqu ymmword [rsp + 0xe0], ymm2
vpxor ymm4, ymm4, ymm2
vmovdqu ymm2, ymmword [rsp]
vpsllq ymm0, ymm4, 1
vpsrlq ymm4, ymm4, 0x3f
vpaddq ymm7, ymm7, ymm2
vpor ymm4, ymm4, ymm0
vpaddq ymm7, ymm7, ymmword [rsp + 0x100]
vpxor ymm9, ymm10, ymm7
vpaddq ymm7, ymm14, ymm7
vpshufd ymm9, ymm9, 0xb1
vpaddq ymm0, ymm9, ymmword [rsp + 0x60]
vpxor ymm1, ymm0, ymm2
vpshufb ymm1, ymm1, ymm13
vpaddq ymm7, ymm7, ymm1
vpxor ymm9, ymm7, ymm9
vpshufb ymm9, ymm9, ymm12
vpaddq ymm14, ymm0, ymm9
vpxor ymm1, ymm14, ymm1
vpsllq ymm0, ymm1, 1
vpsrlq ymm1, ymm1, 0x3f
vpor ymm1, ymm1, ymm0
vmovdqu ymm0, ymmword [rsp + 0x20]
vpaddq ymm10, ymm11, ymm0
vpaddq ymm10, ymm10, ymmword [rsp + 0x120]
vpxor ymm2, ymm10, ymmword [rsp + 0xa0]
vpaddq ymm10, ymm10, ymmword [rsp + 0x140]
vpshufd ymm2, ymm2, 0xb1
vpaddq ymm6, ymm6, ymm2
vpxor ymm0, ymm6, ymm0
vpshufb ymm0, ymm0, ymm13
vpaddq ymm10, ymm10, ymm0
vpxor ymm2, ymm10, ymm2
vpshufb ymm2, ymm2, ymm12
vpaddq ymm6, ymm6, ymm2
vpxor ymm0, ymm6, ymm0
vpsllq ymm11, ymm0, 1
vpsrlq ymm0, ymm0, 0x3f
vpor ymm0, ymm0, ymm11
vpaddq ymm11, ymm4, ymmword [rsp + 0x160]
vpaddq ymm11, ymm11, ymm15
vpxor ymm2, ymm11, ymm2
vpshufd ymm2, ymm2, 0xb1
vpaddq ymm14, ymm14, ymm2
vpxor ymm4, ymm14, ymm4
vpshufb ymm4, ymm4, ymm13
vpaddq ymm15, ymm4, ymmword [rsp + 0x180]
vpaddq ymm15, ymm15, ymm11
vpxor ymm2, ymm15, ymm2
vpshufb ymm2, ymm2, ymm12
vmovdqu ymmword [rsp + 0xa0], ymm2
vpaddq ymm14, ymm14, ymm2
vpxor ymm4, ymm4, ymm14
vmovdqu ymmword [rsp + 0x60], ymm14
vpsllq ymm11, ymm4, 1
vpsrlq ymm4, ymm4, 0x3f
vpor ymm14, ymm4, ymm11
vpaddq ymm4, ymm1, ymmword [rsp + 0x1a0]
vmovdqu ymmword [rsp + 0x40], ymm14
vpaddq ymm4, ymm4, ymm3
vpxor ymm5, ymm4, ymm5
vpshufd ymm5, ymm5, 0xb1
vpaddq ymm6, ymm6, ymm5
vpxor ymm1, ymm6, ymm1
vpshufb ymm1, ymm1, ymm13
vpaddq ymm3, ymm1, ymmword [rsp + 0x1c0]
vpaddq ymm3, ymm3, ymm4
vpxor ymm5, ymm3, ymm5
vpshufb ymm14, ymm5, ymm12
vmovdqu ymmword [rsp + 0xc0], ymm14
vpaddq ymm6, ymm6, ymm14
vpxor ymm1, ymm6, ymm1
vpsllq ymm4, ymm1, 1
vpsrlq ymm1, ymm1, 0x3f
vpor ymm5, ymm4, ymm1
vpaddq ymm1, ymm0, ymmword [rsp + 0x1e0]
vmovdqu ymmword [rsp], ymm5
vpaddq ymm1, ymm1, ymm7
vpxor ymm8, ymm1, ymm8
vpshufd ymm8, ymm8, 0xb1
vpaddq ymm4, ymm8, ymmword [rsp + 0x280]
vpxor ymm0, ymm4, ymm0
vpshufb ymm0, ymm0, ymm13
vpaddq ymm7, ymm0, ymmword [rsp + 0x200]
vpaddq ymm7, ymm7, ymm1
vpxor ymm8, ymm7, ymm8
vpshufb ymm5, ymm8, ymm12
vmovdqu ymmword [rsp + 0x80], ymm5
vpaddq ymm8, ymm4, ymm5
vpxor ymm0, ymm8, ymm0
vpsllq ymm1, ymm0, 1
vpsrlq ymm0, ymm0, 0x3f
vpor ymm0, ymm1, ymm0
vmovdqu ymm1, ymmword [rsp + 0x260]
vpaddq ymm4, ymm1, ymmword [rsp + 0x220]
vmovdqu ymmword [rsp + 0x20], ymm0
vpaddq ymm4, ymm4, ymm10
vpxor ymm9, ymm4, ymm9
vpshufd ymm0, ymm9, 0xb1
vpaddq ymm9, ymm0, ymmword [rsp + 0xe0]
vpxor ymm1, ymm9, ymm1
vpshufb ymm1, ymm1, ymm13
vpaddq ymm11, ymm1, ymmword [rsp + 0x240]
vpaddq ymm11, ymm11, ymm4
vpxor ymm0, ymm11, ymm0
vpshufb ymm4, ymm0, ymm12
vpaddq ymm9, ymm9, ymm4
vmovdqu ymm10, ymm4
vpxor ymm1, ymm9, ymm1
vpsllq ymm0, ymm1, 1
vpsrlq ymm1, ymm1, 0x3f
vpor ymm0, ymm0, ymm1
cmp rax, r9
jne 0x140058960
vmovdqu ymm13, ymm6
vmovdqu ymm6, ymm14
vmovdqu ymm14, ymmword [rsp + 0x60]
vpxor ymm8, ymm8, ymm15
vpxor ymm1, ymm13, ymm11
vpxor ymm3, ymm3, ymm9
vpxor ymm1, ymm1, ymmword [rsp + 0x2e0]
vmovdqu ymm10, ymmword [rsp + 0x380]
vpxor ymm3, ymm3, ymmword [rsp + 0x2a0]
vpxor ymm7, ymm7, ymm14
vpxor ymm7, ymm7, ymmword [rsp + 0x2c0]
vmovdqu ymmword [r8 + 0x260], ymm1
vpxor ymm8, ymm8, ymm10
vpxor ymm1, ymm6, ymmword [rsp + 0x300]
vmovdqu ymmword [r8 + 0x200], ymm8
vmovdqu ymmword [r8 + 0x240], ymm7
vpxor ymm0, ymm1, ymm0
vmovdqu ymmword [r8 + 0x280], ymm0
vpxor ymm0, ymm5, ymmword [rsp + 0x320]
vpxor ymm0, ymm0, ymmword [rsp + 0x40]
vmovdqu ymmword [r8 + 0x220], ymm3
vmovdqu ymmword [r8 + 0x2a0], ymm0
vpxor ymm0, ymm4, ymmword [rsp + 0x340]
vpxor ymm0, ymm0, ymmword [rsp]
vmovdqu ymmword [r8 + 0x2c0], ymm0
vpxor ymm0, ymm2, ymmword [rsp + 0x360]
vpxor ymm0, ymm0, ymmword [rsp + 0x20]
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