Function at 0x455d80
Capabilities:
Hash data using sha512

Disassembly:
sub rsp, 0x5f8
vmovups xmmword [rsp + 0x550], xmm6
vmovups xmmword [rsp + 0x560], xmm7
vmovups xmmword [rsp + 0x570], xmm8
vmovups xmmword [rsp + 0x580], xmm9
vmovups xmmword [rsp + 0x590], xmm10
vmovups xmmword [rsp + 0x5a0], xmm11
vmovups xmmword [rsp + 0x5b0], xmm12
vmovups xmmword [rsp + 0x5c0], xmm13
vmovups xmmword [rsp + 0x5d0], xmm14
vmovups xmmword [rsp + 0x5e0], xmm15
vmovdqu ymm6, ymmword [rcx + 0x200]
movabs rax, 0x6a09e667f3bcc908
vmovq xmm9, rax
movabs rax, 0xbb67ae8584caa73b
vpbroadcastq ymm9, xmm9
vmovq xmm10, rax
movabs rax, 0x3c6ef372fe94f82b
vpbroadcastq ymm10, xmm10
vmovq xmm14, rax
movabs rax, 0xa54ff53a5f1d36f1
mov r9d, edx
lea rdx, [rsp + 0x35f]
mov r8, rcx
vmovq xmm12, rax
vmovdqu ymmword [rsp + 0x240], ymm6
vmovdqu ymm6, ymmword [rcx + 0x220]
movabs rax, 0x510e527fade682d1
and rdx, 0xffffffffffffffe0
vmovq xmm3, rax
movabs rax, 0x9b05688c2b3e6c1f
vpbroadcastq ymm2, xmm3
vpbroadcastq ymm3, qword [rcx + 0x300]
vmovq xmm1, rax
movabs rax, 0x1f83d9abfb41bd6b
vpbroadcastq ymm1, xmm1
vmovq xmm4, rax
movabs rax, 0x5be0cd19137e2179
vpbroadcastq ymm4, xmm4
vmovq xmm0, rax
vmovdqu ymmword [rsp + 0x260], ymm6
vmovdqu ymm6, ymmword [rcx + 0x240]
vpxor ymm3, ymm3, ymm2
vmovdqu ymmword [rsp + 0x280], ymm6
vmovdqu ymm6, ymmword [rcx + 0x260]
vmovdqu ymmword [rsp + 0x2a0], ymm6
vmovdqu ymm6, ymmword [rcx + 0x280]
vmovdqu ymmword [rsp + 0x2c0], ymm6
vmovdqu ymm6, ymmword [rcx + 0x2a0]
vmovdqu ymmword [rsp + 0x2e0], ymm6
vmovdqu ymm6, ymmword [rcx + 0x2c0]
vmovdqu ymmword [rsp + 0x300], ymm6
vmovdqu ymm6, ymmword [rcx + 0x2e0]
vmovdqu ymmword [rsp + 0x320], ymm6
vpbroadcastq ymm6, xmm14
vmovdqu ymmword [rsp + 0x60], ymm6
vpbroadcastq ymm6, xmm12
vmovdqu ymmword [rsp], ymm6
vpbroadcastq ymm6, xmm0
vpbroadcastq ymm0, qword [rcx + 0x308]
vmovdqu ymmword [rsp + 0x80], ymm6
vpxor ymm1, ymm0, ymm1
test r9d, r9d
je 0x455f57
vpcmpeqq ymm0, ymm0, ymm0
vpxor ymm4, ymm0, ymm4
vmovdqu ymm7, ymmword [r8 + 0xa0]
vmovdqu ymm5, ymmword [r8 + 0x60]
lea rax, [0x006c1130]
vmovdqu ymm12, ymmword [r8]
vmovdqu ymm11, ymmword [r8 + 0x20]
lea r9, [rax + 0xb0]
vmovdqu ymm6, ymmword [r8 + 0x40]
vmovdqu ymm13, ymmword [r8 + 0x80]
vmovdqu ymmword [rsp + 0xc0], ymm7
vmovdqu ymmword [rdx + 0xa0], ymm7
vmovdqu ymm7, ymmword [r8 + 0xc0]
vmovdqu ymmword [rdx], ymm12
vmovdqu ymmword [rdx + 0x20], ymm11
vmovdqu ymmword [rdx + 0x40], ymm6
vmovdqu ymmword [rdx + 0x60], ymm5
vmovdqu ymmword [rdx + 0x80], ymm13
vmovdqu ymmword [rsp + 0xe0], ymm7
vmovdqu ymmword [rdx + 0xc0], ymm7
vmovdqu ymm7, ymmword [r8 + 0xe0]
vmovdqu ymmword [rsp + 0x100], ymm7
vmovdqu ymmword [rdx + 0xe0], ymm7
vmovdqu ymm7, ymmword [r8 + 0x100]
vmovdqu ymmword [rsp + 0x120], ymm7
vmovdqu ymmword [rdx + 0x100], ymm7
vmovdqu ymm7, ymmword [r8 + 0x120]
vmovdqu ymmword [rsp + 0x140], ymm7
vmovdqu ymmword [rdx + 0x120], ymm7
vmovdqu ymm7, ymmword [r8 + 0x140]
vmovdqu ymmword [rsp + 0x160], ymm7
vmovdqu ymmword [rdx + 0x140], ymm7
vmovdqu ymm7, ymmword [r8 + 0x160]
vmovdqu ymmword [rsp + 0x180], ymm7
vmovdqu ymmword [rdx + 0x160], ymm7
vmovdqu ymm7, ymmword [r8 + 0x180]
vmovdqu ymmword [rsp + 0x1a0], ymm7
vmovdqu ymmword [rdx + 0x180], ymm7
vmovdqu ymm7, ymmword [r8 + 0x1a0]
vmovdqu ymm0, ymmword [rsp + 0x320]
vmovdqu ymmword [rsp + 0x220], ymm5
vmovdqu ymm2, ymmword [rsp + 0x2c0]
vmovdqu ymm15, ymmword [rsp + 0x240]
vmovdqu ymm14, ymmword [rsp + 0x2e0]
vmovdqu ymm8, ymmword [rsp + 0x2a0]
vmovdqu ymmword [rsp + 0x1c0], ymm7
vmovdqu ymmword [rdx + 0x1a0], ymm7
vmovdqu ymm7, ymmword [r8 + 0x1c0]
vmovdqu ymmword [rsp + 0x40], ymm0
vmovdqu ymm0, ymmword [rsp + 0x260]
vmovdqu ymmword [rsp + 0x1e0], ymm7
vmovdqu ymmword [rdx + 0x1c0], ymm7
vmovdqu ymm7, ymmword [r8 + 0x1e0]
vmovdqu ymmword [rsp + 0x200], ymm7
vmovdqu ymmword [rdx + 0x1e0], ymm7
vmovdqu ymm7, ymmword [rsp + 0x300]
vmovdqu ymmword [rsp + 0x20], ymm7
vmovdqu ymm7, ymmword [rsp + 0x280]
jmp 0x45625f
movzx ecx, byte [rax]
add rax, 0x10
shl rcx, 5
vmovdqu ymm12, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xf]
shl rcx, 5
vmovdqu ymm11, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xe]
shl rcx, 5
vmovdqu ymm6, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xd]
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xc]
shl rcx, 5
vmovdqu ymm13, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xb]
vmovdqu ymmword [rsp + 0x220], ymm5
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 0xa]
shl rcx, 5
vmovdqu ymmword [rsp + 0xc0], ymm5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 9]
shl rcx, 5
vmovdqu ymmword [rsp + 0xe0], ymm5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 8]
shl rcx, 5
vmovdqu ymmword [rsp + 0x100], ymm5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 7]
shl rcx, 5
vmovdqu ymmword [rsp + 0x120], ymm5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 6]
shl rcx, 5
vmovdqu ymmword [rsp + 0x140], ymm5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 5]
shl rcx, 5
vmovdqu ymmword [rsp + 0x160], ymm5
vmovdqu ymm5, ymmword [rdx + rcx]
vmovdqu ymmword [rsp + 0x180], ymm5
movzx ecx, byte [rax - 4]
shl rcx, 5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 3]
shl rcx, 5
vmovdqu ymmword [rsp + 0x1a0], ymm5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 2]
shl rcx, 5
vmovdqu ymmword [rsp + 0x1c0], ymm5
vmovdqu ymm5, ymmword [rdx + rcx]
movzx ecx, byte [rax - 1]
shl rcx, 5
vmovdqu ymmword [rsp + 0x1e0], ymm5
vmovdqu ymm5, ymmword [rdx + rcx]
vmovdqu ymmword [rsp + 0x200], ymm5
vpaddq ymm15, ymm15, ymm2
vpaddq ymm0, ymm0, ymm14
vpaddq ymm12, ymm15, ymm12
vpaddq ymm6, ymm0, ymm6
vpaddq ymm5, ymm6, ymmword [rsp + 0x220]
vpxor ymm3, ymm3, ymm12
vpaddq ymm12, ymm11, ymm12
vpxor ymm1, ymm1, ymm6
vpsllq ymm15, ymm3, 0x20
vpsrlq ymm3, ymm3, 0x20
vpor ymm3, ymm3, ymm15
vpsllq ymm0, ymm1, 0x20
vpaddq ymm9, ymm9, ymm3
vpsrlq ymm1, ymm1, 0x20
vpxor ymm2, ymm9, ymm2
vpsllq ymm15, ymm2, 0x28
vpsrlq ymm2, ymm2, 0x18
vpor ymm2, ymm2, ymm15
vmovdqu ymm15, ymmword [rsp + 0x20]
vpaddq ymm12, ymm12, ymm2
vpxor ymm3, ymm12, ymm3
vpsllq ymm11, ymm3, 0x30
vpsrlq ymm3, ymm3, 0x10
vpor ymm3, ymm3, ymm11
vpaddq ymm9, ymm3, ymm9
vpxor ymm2, ymm9, ymm2
vpsllq ymm11, ymm2, 1
vpsrlq ymm2, ymm2, 0x3f
vpor ymm2, ymm2, ymm11
vmovdqu ymmword [rsp + 0xa0], ymm2
vpor ymm2, ymm1, ymm0
vpaddq ymm10, ymm10, ymm2
vpaddq ymm7, ymm7, ymm15
vpxor ymm14, ymm10, ymm14
vpaddq ymm13, ymm7, ymm13
vpsllq ymm0, ymm14, 0x28
vpsrlq ymm14, ymm14, 0x18
vpor ymm14, ymm14, ymm0
vpxor ymm4, ymm4, ymm13
vpaddq ymm5, ymm5, ymm14
vpaddq ymm13, ymm13, ymmword [rsp + 0xc0]
vpxor ymm2, ymm5, ymm2
vpsllq ymm0, ymm2, 0x30
vpsrlq ymm2, ymm2, 0x10
vpor ymm6, ymm2, ymm0
vpaddq ymm10, ymm6, ymm10
vpxor ymm14, ymm10, ymm14
vpsllq ymm0, ymm14, 1
vpsrlq ymm14, ymm14, 0x3f
vpor ymm1, ymm14, ymm0
vpsllq ymm0, ymm4, 0x20
vpsrlq ymm4, ymm4, 0x20
vpor ymm4, ymm4, ymm0
vpaddq ymm14, ymm4, ymmword [rsp + 0x60]
vpxor ymm0, ymm14, ymm15
vmovdqu ymm15, ymmword [rsp + 0x40]
vpsllq ymm2, ymm0, 0x28
vpsrlq ymm0, ymm0, 0x18
vpor ymm0, ymm0, ymm2
vpaddq ymm13, ymm13, ymm0
vpxor ymm4, ymm13, ymm4
vpsllq ymm2, ymm4, 0x30
vpsrlq ymm4, ymm4, 0x10
vpor ymm4, ymm4, ymm2
vpaddq ymm14, ymm4, ymm14
vpxor ymm0, ymm14, ymm0
vpsllq ymm2, ymm0, 1
vpsrlq ymm0, ymm0, 0x3f
vpor ymm7, ymm0, ymm2
vpaddq ymm8, ymm8, ymm15
vpaddq ymm8, ymm8, ymmword [rsp + 0xe0]
vpxor ymm2, ymm8, ymmword [rsp + 0x80]
vpaddq ymm8, ymm8, ymmword [rsp + 0x100]
vpsllq ymm0, ymm2, 0x20
vpsrlq ymm2, ymm2, 0x20
vpor ymm2, ymm2, ymm0
vpaddq ymm0, ymm2, ymmword [rsp]
vpxor ymm11, ymm0, ymm15
vpsllq ymm15, ymm11, 0x28
vpsrlq ymm11, ymm11, 0x18
vpor ymm11, ymm11, ymm15
vpaddq ymm8, ymm8, ymm11
vpxor ymm2, ymm8, ymm2
vpsllq ymm15, ymm2, 0x30
vpsrlq ymm2, ymm2, 0x10
vpor ymm2, ymm2, ymm15
vpaddq ymm0, ymm2, ymm0
vpxor ymm11, ymm0, ymm11
vpsllq ymm15, ymm11, 1
vpsrlq ymm11, ymm11, 0x3f
vpor ymm11, ymm11, ymm15
vpaddq ymm15, ymm1, ymmword [rsp + 0x120]
vpaddq ymm12, ymm15, ymm12
vpxor ymm2, ymm12, ymm2
vpsllq ymm15, ymm2, 0x20
vpsrlq ymm2, ymm2, 0x20
vpor ymm2, ymm2, ymm15
vpaddq ymm14, ymm2, ymm14
vpxor ymm1, ymm14, ymm1
vpsllq ymm15, ymm1, 0x28
vpsrlq ymm1, ymm1, 0x18
vpor ymm1, ymm1, ymm15
vpaddq ymm15, ymm1, ymmword [rsp + 0x140]
vpaddq ymm15, ymm15, ymm12
vpxor ymm2, ymm15, ymm2
vpsllq ymm12, ymm2, 0x30
vpsrlq ymm2, ymm2, 0x10
vpor ymm12, ymm2, ymm12
vmovdqu ymmword [rsp + 0x80], ymm12
vpaddq ymm12, ymm14, ymm12
vpxor ymm1, ymm1, ymm12
vmovdqu ymmword [rsp + 0x60], ymm12
vpsllq ymm2, ymm1, 1
vpsrlq ymm1, ymm1, 0x3f
vpor ymm14, ymm1, ymm2
vpaddq ymm1, ymm7, ymmword [rsp + 0x160]
vpaddq ymm5, ymm1, ymm5
vpxor ymm3, ymm5, ymm3
vpsllq ymm1, ymm3, 0x20
vpsrlq ymm3, ymm3, 0x20
vpor ymm3, ymm1, ymm3
vpaddq ymm1, ymm3, ymm0
vpxor ymm7, ymm1, ymm7
vpsllq ymm0, ymm7, 0x28
vpsrlq ymm7, ymm7, 0x18
vpor ymm7, ymm0, ymm7
vpaddq ymm0, ymm7, ymmword [rsp + 0x180]
vpaddq ymm0, ymm0, ymm5
vmovdqu ymm5, ymmword [rsp + 0xa0]
vpxor ymm3, ymm3, ymm0
vpsllq ymm2, ymm3, 0x30
vpsrlq ymm3, ymm3, 0x10
vpor ymm3, ymm2, ymm3
vpaddq ymm1, ymm1, ymm3
vpxor ymm7, ymm7, ymm1
vmovdqu ymmword [rsp], ymm1
vpsllq ymm1, ymm7, 1
vpsrlq ymm7, ymm7, 0x3f
vpor ymm7, ymm1, ymm7
vmovdqu ymmword [rsp + 0x20], ymm7
vpaddq ymm7, ymm11, ymmword [rsp + 0x1a0]
vpaddq ymm13, ymm7, ymm13
vpxor ymm6, ymm13, ymm6
vpsllq ymm1, ymm6, 0x20
vpsrlq ymm6, ymm6, 0x20
vpor ymm6, ymm1, ymm6
vpaddq ymm9, ymm6, ymm9
vpxor ymm11, ymm9, ymm11
vpsllq ymm1, ymm11, 0x28
vpsrlq ymm11, ymm11, 0x18
vpor ymm11, ymm1, ymm11
vpaddq ymm7, ymm11, ymmword [rsp + 0x1c0]
vpaddq ymm7, ymm7, ymm13
vpxor ymm6, ymm6, ymm7
vpsllq ymm1, ymm6, 0x30
vpsrlq ymm6, ymm6, 0x10
vpor ymm1, ymm1, ymm6
vpaddq ymm9, ymm9, ymm1
vpxor ymm11, ymm11, ymm9
vpsllq ymm2, ymm11, 1
vpsrlq ymm11, ymm11, 0x3f
vpor ymm6, ymm2, ymm11
vpaddq ymm2, ymm5, ymmword [rsp + 0x1e0]
vmovdqu ymmword [rsp + 0x40], ymm6
vpaddq ymm8, ymm2, ymm8
vpxor ymm4, ymm8, ymm4
vpsllq ymm2, ymm4, 0x20
vpsrlq ymm4, ymm4, 0x20
vpor ymm4, ymm2, ymm4
vpaddq ymm10, ymm4, ymm10
vpxor ymm5, ymm10, ymm5
vpsllq ymm2, ymm5, 0x28
vpsrlq ymm5, ymm5, 0x18
vpor ymm2, ymm2, ymm5
vpaddq ymm5, ymm2, ymmword [rsp + 0x200]
vpaddq ymm8, ymm5, ymm8
vpxor ymm4, ymm4, ymm8
vpsllq ymm5, ymm4, 0x30
vpsrlq ymm4, ymm4, 0x10
vpor ymm4, ymm5, ymm4
vpaddq ymm10, ymm10, ymm4
vpxor ymm2, ymm2, ymm10
vpsllq ymm5, ymm2, 1
vpsrlq ymm2, ymm2, 0x3f
vpor ymm2, ymm5, ymm2
cmp rax, r9
jne 0x456120
vpxor ymm7, ymm7, ymmword [rsp + 0x60]
vpxor ymm12, ymm8, ymmword [rsp]
vpxor ymm10, ymm0, ymm10
vpxor ymm15, ymm9, ymm15
vpxor ymm4, ymm4, ymmword [rsp + 0x20]
vpxor ymm0, ymm6, ymmword [rsp + 0x80]
vpxor ymm2, ymm3, ymm2
vpxor ymm1, ymm1, ymm14
vpxor ymm15, ymm15, ymmword [rsp + 0x240]
vpxor ymm10, ymm10, ymmword [rsp + 0x260]
vpxor ymm7, ymm7, ymmword [rsp + 0x280]
vpxor ymm12, ymm12, ymmword [rsp + 0x2a0]
vpxor ymm2, ymm2, ymmword [rsp + 0x2c0]
vpxor ymm1, ymm1, ymmword [rsp + 0x2e0]
vpxor ymm4, ymm4, ymmword [rsp + 0x300]
vpxor ymm0, ymm0, ymmword [rsp + 0x320]
vmovdqu ymmword [r8 + 0x200], ymm15
vmovdqu ymmword [r8 + 0x220], ymm10
vmovdqu ymmword [r8 + 0x240], ymm7
vmovdqu ymmword [r8 + 0x260], ymm12
vmovdqu ymmword [r8 + 0x280], ymm2
vmovdqu ymmword [r8 + 0x2a0], ymm1
vmovdqu ymmword [r8 + 0x2c0], ymm4
vmovdqu ymmword [r8 + 0x2e0], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0x550]
vmovups xmm7, xmmword [rsp + 0x560]
vmovups xmm8, xmmword [rsp + 0x570]
vmovups xmm9, xmmword [rsp + 0x580]
vmovups xmm10, xmmword [rsp + 0x590]
vmovups xmm11, xmmword [rsp + 0x5a0]
vmovups xmm12, xmmword [rsp + 0x5b0]
vmovups xmm13, xmmword [rsp + 0x5c0]
vmovups xmm14, xmmword [rsp + 0x5d0]
vmovups xmm15, xmmword [rsp + 0x5e0]
add rsp, 0x5f8
ret