Function at 0x461950
Capabilities:
Hash data using sha512

Disassembly:
sub rsp, 0x3b8
vmovups xmmword [rsp + 0x310], xmm6
vmovups xmmword [rsp + 0x320], xmm7
vmovups xmmword [rsp + 0x330], xmm8
vmovups xmmword [rsp + 0x340], xmm9
vmovups xmmword [rsp + 0x350], xmm10
vmovups xmmword [rsp + 0x360], xmm11
vmovups xmmword [rsp + 0x370], xmm12
vmovups xmmword [rsp + 0x380], xmm13
vmovups xmmword [rsp + 0x390], xmm14
vmovups xmmword [rsp + 0x3a0], xmm15
movabs rax, 0x6a09e667f3bcc908
vmovq xmm0, rax
movabs rax, 0xbb67ae8584caa73b
vpbroadcastq ymm22, xmm0
vmovq xmm0, rax
vmovdqu ymm7, ymmword [rcx + 0x200]
movabs rax, 0x3c6ef372fe94f82b
vmovdqu ymmword [rsp], ymm7
vmovdqu ymm7, ymmword [rcx + 0x220]
mov r9d, edx
vmovdqu ymmword [rsp + 0x20], ymm7
vmovdqu ymm7, ymmword [rcx + 0x240]
lea rdx, [rsp + 0x11f]
vmovdqu ymmword [rsp + 0x40], ymm7
vmovdqu ymm7, ymmword [rcx + 0x260]
vpbroadcastq ymm24, xmm0
vmovdqu ymmword [rsp + 0x60], ymm7
vmovdqu ymm7, ymmword [rcx + 0x280]
vmovq xmm0, rax
vmovdqu ymmword [rsp + 0x80], ymm7
vmovdqu ymm7, ymmword [rcx + 0x2a0]
movabs rax, 0xa54ff53a5f1d36f1
vmovdqu ymmword [rsp + 0xa0], ymm7
vmovdqu ymm7, ymmword [rcx + 0x2c0]
vpbroadcastq ymm23, xmm0
vmovdqu ymmword [rsp + 0xc0], ymm7
vmovdqu ymm7, ymmword [rcx + 0x2e0]
vmovq xmm0, rax
movabs rax, 0x510e527fade682d1
vpbroadcastq ymm21, xmm0
vmovq xmm1, rax
movabs rax, 0x9b05688c2b3e6c1f
vpbroadcastq ymm1, xmm1
vmovq xmm0, rax
vpbroadcastq ymm0, xmm0
movabs rax, 0x1f83d9abfb41bd6b
vpxorq ymm1, ymm1, qword [rcx + 0x300]{1to4}
vmovq xmm3, rax
vpxorq ymm0, ymm0, qword [rcx + 0x308]{1to4}
movabs rax, 0x5be0cd19137e2179
mov r8, rcx
vmovq xmm4, rax
and rdx, 0xffffffffffffffe0
vmovdqu ymmword [rsp + 0xe0], ymm7
vpbroadcastq ymm3, xmm3
vpbroadcastq ymm4, xmm4
test r9d, r9d
je 0x461afe
vpcmpeqq ymm2, ymm2, ymm2
vpxor ymm3, ymm2, ymm3
vmovdqu ymm12, ymmword [r8]
vmovdqu ymm13, ymmword [r8 + 0x20]
vmovdqu ymm11, ymmword [r8 + 0x40]
vmovdqu ymm10, ymmword [r8 + 0x60]
vmovdqu ymm9, ymmword [r8 + 0x80]
vmovdqu ymm8, ymmword [r8 + 0xa0]
vmovdqu ymm7, ymmword [r8 + 0xc0]
vmovdqu ymm6, ymmword [r8 + 0xe0]
vmovdqu ymm15, ymmword [r8 + 0x100]
vmovdqu64 ymm31, ymmword [r8 + 0x120]
vmovdqu64 ymm27, ymmword [r8 + 0x140]
vmovdqu64 ymm30, ymmword [r8 + 0x160]
vmovdqu64 ymm26, ymmword [r8 + 0x180]
vmovdqu64 ymm29, ymmword [r8 + 0x1a0]
vmovdqu64 ymm25, ymmword [r8 + 0x1c0]
vmovdqu64 ymm28, ymmword [r8 + 0x1e0]
lea rax, [0x00740750]
vmovdqu ymmword [rdx], ymm12
vmovdqu ymmword [rdx + 0x20], ymm13
vmovdqu ymmword [rdx + 0x40], ymm11
vmovdqu ymmword [rdx + 0x60], ymm10
vmovdqu ymmword [rdx + 0x80], ymm9
vmovdqu ymmword [rdx + 0xa0], ymm8
vmovdqu ymmword [rdx + 0xc0], ymm7
vmovdqu ymmword [rdx + 0xe0], ymm6
vmovdqu ymmword [rdx + 0x100], ymm15
vmovdqu64 ymmword [rdx + 0x120], ymm31
vmovdqu64 ymmword [rdx + 0x140], ymm27
vmovdqu64 ymmword [rdx + 0x160], ymm30
vmovdqu64 ymmword [rdx + 0x180], ymm26
vmovdqu64 ymmword [rdx + 0x1a0], ymm29
vmovdqu64 ymmword [rdx + 0x1c0], ymm25
vmovdqu64 ymmword [rdx + 0x1e0], ymm28
lea r9, [rax + 0xb0]
vmovdqu64 ymm16, ymmword [rsp + 0xc0]
vmovdqu64 ymm18, ymmword [rsp + 0x40]
vmovdqu ymm2, ymmword [rsp + 0x80]
vmovdqu ymm14, ymmword [rsp]
vmovdqu ymm5, ymmword [rsp + 0xe0]
vmovdqu64 ymm17, ymmword [rsp + 0xa0]
vmovdqu64 ymm20, ymmword [rsp + 0x60]
vmovdqu64 ymm19, ymmword [rsp + 0x20]
jmp 0x461d19
movzx ecx, byte [rax]
add rax, 0x10
shl rcx, 5
vmovdqu ymm12, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xf]
shl rcx, 5
vmovdqu ymm13, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xe]
shl rcx, 5
vmovdqu ymm11, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xd]
shl rcx, 5
vmovdqu ymm10, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xc]
shl rcx, 5
vmovdqu ymm9, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xb]
shl rcx, 5
vmovdqu ymm8, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xa]
shl rcx, 5
vmovdqu ymm7, ymmword [rdx + rcx]
movzx ecx, byte [rax - 9]
shl rcx, 5
vmovdqu ymm6, ymmword [rdx + rcx]
movzx ecx, byte [rax - 8]
shl rcx, 5
vmovdqu ymm15, ymmword [rdx + rcx]
movzx ecx, byte [rax - 7]
shl rcx, 5
vmovdqu64 ymm31, ymmword [rdx + rcx]
movzx ecx, byte [rax - 6]
shl rcx, 5
vmovdqu64 ymm27, ymmword [rdx + rcx]
movzx ecx, byte [rax - 5]
shl rcx, 5
vmovdqu64 ymm30, ymmword [rdx + rcx]
movzx ecx, byte [rax - 4]
shl rcx, 5
vmovdqu64 ymm26, ymmword [rdx + rcx]
movzx ecx, byte [rax - 3]
shl rcx, 5
vmovdqu64 ymm29, ymmword [rdx + rcx]
movzx ecx, byte [rax - 2]
shl rcx, 5
vmovdqu64 ymm25, ymmword [rdx + rcx]
movzx ecx, byte [rax - 1]
shl rcx, 5
vmovdqu64 ymm28, ymmword [rdx + rcx]
vpaddq ymm19, ymm19, ymm17
vpaddq ymm18, ymm18, ymm16
vpaddq ymm20, ymm20, ymm5
vpaddq ymm14, ymm14, ymm2
vpaddq ymm11, ymm19, ymm11
vpaddq ymm9, ymm18, ymm9
vpaddq ymm7, ymm20, ymm7
vpaddq ymm14, ymm14, ymm12
vpxor ymm1, ymm1, ymm14
vpxor ymm0, ymm0, ymm11
vpxor ymm3, ymm3, ymm9
vpxor ymm4, ymm4, ymm7
vprolq ymm1, ymm1, 0x20
vprolq ymm0, ymm0, 0x20
vprolq ymm3, ymm3, 0x20
vprolq ymm4, ymm4, 0x20
vpaddq ymm14, ymm13, ymm14
vpaddq ymm10, ymm10, ymm11
vpaddq ymm22, ymm22, ymm1
vpaddq ymm24, ymm24, ymm0
vpaddq ymm23, ymm23, ymm3
vpaddq ymm21, ymm21, ymm4
vpxorq ymm2, ymm22, ymm2
vpxorq ymm17, ymm24, ymm17
vpxorq ymm16, ymm23, ymm16
vpxorq ymm5, ymm21, ymm5
vprorq ymm2, ymm2, 0x18
vprorq ymm17, ymm17, 0x18
vprorq ymm16, ymm16, 0x18
vprorq ymm5, ymm5, 0x18
vpaddq ymm8, ymm8, ymm9
vpaddq ymm6, ymm6, ymm7
vpaddq ymm14, ymm14, ymm2
vpaddq ymm10, ymm10, ymm17
vpaddq ymm8, ymm8, ymm16
vpaddq ymm6, ymm6, ymm5
vpxor ymm1, ymm14, ymm1
vpxor ymm0, ymm10, ymm0
vpxor ymm3, ymm8, ymm3
vpxor ymm4, ymm6, ymm4
vprorq ymm1, ymm1, 0x10
vprorq ymm0, ymm0, 0x10
vprorq ymm3, ymm3, 0x10
vprorq ymm4, ymm4, 0x10
vpaddq ymm22, ymm1, ymm22
vpaddq ymm24, ymm0, ymm24
vpaddq ymm23, ymm3, ymm23
vpaddq ymm21, ymm4, ymm21
vpxorq ymm2, ymm22, ymm2
vpxorq ymm17, ymm24, ymm17
vpxorq ymm16, ymm23, ymm16
vpxorq ymm5, ymm21, ymm5
vprolq ymm2, ymm2, 1
vprolq ymm17, ymm17, 1
vprolq ymm16, ymm16, 1
vprolq ymm5, ymm5, 1
vpaddq ymm20, ymm25, ymm2
vpaddq ymm15, ymm15, ymm17
vpaddq ymm19, ymm27, ymm16
vpaddq ymm18, ymm26, ymm5
vpaddq ymm10, ymm19, ymm10
vpaddq ymm8, ymm18, ymm8
vpaddq ymm6, ymm20, ymm6
vpaddq ymm14, ymm15, ymm14
vpxor ymm4, ymm14, ymm4
vpxor ymm1, ymm10, ymm1
vpxor ymm0, ymm8, ymm0
vpxor ymm3, ymm6, ymm3
vprolq ymm4, ymm4, 0x20
vprolq ymm1, ymm1, 0x20
vprolq ymm0, ymm0, 0x20
vprolq ymm3, ymm3, 0x20
vpaddq ymm23, ymm4, ymm23
vpaddq ymm21, ymm1, ymm21
vpaddq ymm22, ymm0, ymm22
vpaddq ymm24, ymm3, ymm24
vpxorq ymm17, ymm23, ymm17
vpxorq ymm16, ymm21, ymm16
vpxorq ymm5, ymm5, ymm22
vpxorq ymm2, ymm2, ymm24
vprorq ymm17, ymm17, 0x18
vprorq ymm16, ymm16, 0x18
vprorq ymm5, ymm5, 0x18
vprorq ymm2, ymm2, 0x18
vpaddq ymm31, ymm31, ymm17
vpaddq ymm19, ymm30, ymm16
vpaddq ymm18, ymm29, ymm5
vpaddq ymm20, ymm28, ymm2
vpaddq ymm14, ymm31, ymm14
vpaddq ymm19, ymm19, ymm10
vpaddq ymm18, ymm18, ymm8
vpaddq ymm20, ymm20, ymm6
vpxor ymm4, ymm14, ymm4
vpxorq ymm1, ymm1, ymm19
vpxorq ymm0, ymm0, ymm18
vpxorq ymm3, ymm3, ymm20
vprorq ymm4, ymm4, 0x10
vprorq ymm1, ymm1, 0x10
vprorq ymm0, ymm0, 0x10
vprorq ymm3, ymm3, 0x10
vpaddq ymm23, ymm4, ymm23
vpaddq ymm21, ymm21, ymm1
vpaddq ymm22, ymm22, ymm0
vpaddq ymm24, ymm24, ymm3
vpxorq ymm17, ymm23, ymm17
vpxorq ymm16, ymm16, ymm21
vpxorq ymm5, ymm5, ymm22
vpxorq ymm2, ymm2, ymm24
vprolq ymm17, ymm17, 1
vprolq ymm16, ymm16, 1
vprolq ymm5, ymm5, 1
vprolq ymm2, ymm2, 1
cmp rax, r9
jne 0x461c38
vpxor ymm1, ymm1, ymmword [rsp + 0x80]
vpxor ymm0, ymm0, ymmword [rsp + 0xa0]
vpxor ymm3, ymm3, ymmword [rsp + 0xc0]
vpxor ymm4, ymm4, ymmword [rsp + 0xe0]
vpxorq ymm14, ymm22, ymm14
vpxorq ymm19, ymm19, ymm24
vpxorq ymm18, ymm18, ymm23
vpxorq ymm20, ymm21, ymm20
vpxor ymm14, ymm14, ymmword [rsp]
vpxorq ymm19, ymm19, ymmword [rsp + 0x20]
vpxorq ymm18, ymm18, ymmword [rsp + 0x40]
vpxorq ymm20, ymm20, ymmword [rsp + 0x60]
vpxor ymm2, ymm1, ymm2
vpxorq ymm17, ymm0, ymm17
vpxorq ymm16, ymm3, ymm16
vpxor ymm5, ymm4, ymm5
vmovdqu ymmword [r8 + 0x200], ymm14
vmovdqu64 ymmword [r8 + 0x220], ymm19
vmovdqu64 ymmword [r8 + 0x240], ymm18
vmovdqu64 ymmword [r8 + 0x260], ymm20
vmovdqu ymmword [r8 + 0x280], ymm2
vmovdqu64 ymmword [r8 + 0x2a0], ymm17
vmovdqu64 ymmword [r8 + 0x2c0], ymm16
vmovdqu ymmword [r8 + 0x2e0], ymm5
vzeroupper
vmovups xmm6, xmmword [rsp + 0x310]
vmovups xmm7, xmmword [rsp + 0x320]
vmovups xmm8, xmmword [rsp + 0x330]
vmovups xmm9, xmmword [rsp + 0x340]
vmovups xmm10, xmmword [rsp + 0x350]
vmovups xmm11, xmmword [rsp + 0x360]
vmovups xmm12, xmmword [rsp + 0x370]
vmovups xmm13, xmmword [rsp + 0x380]
vmovups xmm14, xmmword [rsp + 0x390]
vmovups xmm15, xmmword [rsp + 0x3a0]
add rsp, 0x3b8
ret