Function at 0x4657f0
Capabilities:
Hash data using sha512

Disassembly:
push rbx
sub rsp, 0x120
vmovups xmmword [rsp + 0x110], xmm6
vmovdqu xmm6, xmmword [rcx + 0x80]
mov r9d, edx
lea rdx, [rsp + 0x1f]
and rdx, 0xffffffffffffffe0
vmovups xmmword [rdx + 0x80], xmm6
vmovdqu xmm6, xmmword [rcx + 0x90]
vmovups xmmword [rdx + 0x90], xmm6
vmovdqu xmm6, xmmword [rcx + 0xa0]
vmovups xmmword [rdx + 0xa0], xmm6
vmovdqu xmm6, xmmword [rcx + 0xb0]
vmovups xmmword [rdx + 0xb0], xmm6
vmovdqu xmm6, xmmword [0x006f3f00]
vmovups xmmword [rdx + 0xc0], xmm6
vmovdqu xmm6, xmmword [0x006f3f10]
vmovups xmmword [rdx + 0xd0], xmm6
vmovdqu xmm6, xmmword [0x006f3f30]
vmovups xmmword [rdx + 0xf0], xmm6
vmovdqu64 xmm6, xmmword [0x006f3f20]
vpxor xmm0, xmm6, xmmword [rcx + 0xc0]
vmovups xmmword [rdx + 0xe0], xmm0
test r9d, r9d
je 0x4658a3
not qword [rdx + 0xf0]
vmovdqu64 xmm0, xmmword [0x006f3f40]
vmovdqu64 xmm20, xmmword [rcx]
vmovdqu64 xmm3, xmmword [rcx + 0x10]
vmovdqu64 xmm21, xmmword [rcx + 0x20]
vmovdqu64 xmm17, xmmword [rcx + 0x30]
vpandq xmm6, xmm0, xmm20
vpand xmm5, xmm0, xmm3
vmovdqu64 xmm1, xmmword [rcx + 0x40]
vmovdqu64 xmm16, xmmword [rcx + 0x50]
vpsrlw xmm3, xmm3, 8
vpsrlw xmm20, xmm20, 8
vpackuswb xmm5, xmm6, xmm5
vpackuswb xmm20, xmm20, xmm3
vpandq xmm6, xmm0, xmm17
vpandq xmm3, xmm0, xmm21
vmovdqu64 xmm2, xmmword [rcx + 0x60]
vmovdqu64 xmm4, xmmword [rcx + 0x70]
vpsrlw xmm17, xmm17, 8
vpsrlw xmm21, xmm21, 8
vpackuswb xmm21, xmm21, xmm17
vpackuswb xmm3, xmm3, xmm6
vpandq xmm17, xmm0, xmm1
vpandq xmm6, xmm0, xmm16
vpsrlw xmm1, xmm1, 8
vpsrlw xmm16, xmm16, 8
vpackuswb xmm17, xmm17, xmm6
vpackuswb xmm1, xmm1, xmm16
vpand xmm6, xmm0, xmm4
vpandq xmm16, xmm0, xmm2
vpsrlw xmm4, xmm4, 8
vpsrlw xmm2, xmm2, 8
vpackuswb xmm16, xmm16, xmm6
vpackuswb xmm4, xmm2, xmm4
vpandq xmm19, xmm0, xmm5
vpand xmm2, xmm0, xmm3
vpsrlw xmm5, xmm5, 8
vpsrlw xmm3, xmm3, 8
vpackuswb xmm19, xmm19, xmm2
vpackuswb xmm3, xmm5, xmm3
vpandq xmm2, xmm0, xmm16
vpandq xmm5, xmm0, xmm17
vpackuswb xmm5, xmm5, xmm2
vpandq xmm18, xmm0, xmm20
vpandq xmm2, xmm0, xmm21
vpsrlw xmm16, xmm16, 8
vpsrlw xmm17, xmm17, 8
vpackuswb xmm17, xmm17, xmm16
vpand xmm6, xmm0, xmm4
vpackuswb xmm18, xmm18, xmm2
vpandq xmm16, xmm0, xmm1
vpsrlw xmm20, xmm20, 8
vpsrlw xmm2, xmm21, 8
vpsrlw xmm1, xmm1, 8
vpsrlw xmm4, xmm4, 8
vpackuswb xmm2, xmm20, xmm2
vpackuswb xmm16, xmm16, xmm6
vpackuswb xmm4, xmm1, xmm4
vpandq xmm20, xmm0, xmm19
vpand xmm1, xmm0, xmm5
vpsrlw xmm19, xmm19, 8
vpsrlw xmm5, xmm5, 8
vpackuswb xmm20, xmm20, xmm1
vpackuswb xmm19, xmm19, xmm5
vpandq xmm1, xmm0, xmm16
vpandq xmm5, xmm0, xmm18
vpackuswb xmm5, xmm5, xmm1
vpsrlw xmm16, xmm16, 8
vpsrlw xmm18, xmm18, 8
vpackuswb xmm18, xmm18, xmm16
vpandq xmm1, xmm0, xmm17
vpandq xmm21, xmm0, xmm3
vpsrlw xmm16, xmm17, 8
vpsrlw xmm3, xmm3, 8
vpmovzxbw xmm17, xmm5
vpsrldq xmm5, xmm5, 8
vpackuswb xmm21, xmm21, xmm1
vpackuswb xmm3, xmm3, xmm16
vpmovzxbw xmm5, xmm5
vpandq xmm16, xmm0, xmm2
vpand xmm0, xmm0, xmm4
vpsllw xmm22, xmm5, 8
vpackuswb xmm0, xmm16, xmm0
vpmovzxbw xmm5, xmm21
vpsrlw xmm4, xmm4, 8
vpsrlw xmm2, xmm2, 8
vpackuswb xmm2, xmm2, xmm4
vpsllw xmm17, xmm17, 8
vpmovzxbw xmm4, xmm0
vpmovzxwd xmm25, xmm5
vpmovzxbw xmm23, xmm20
vpmovzxwd xmm6, xmm17
vpmovzxwd xmm16, xmm4
vpslld xmm25, xmm25, 0x10
vpxord xmm25, xmm25, xmm6
vpslld xmm16, xmm16, 0x18
vpmovzxwd xmm6, xmm23
vpxord xmm16, xmm16, xmm6
vpxord xmm25, xmm25, xmm16
vpsrldq xmm16, xmm5, 8
vpmovzxwd xmm16, xmm16
vpsrldq xmm17, xmm17, 8
vpmovzxwd xmm17, xmm17
vpslld xmm16, xmm16, 0x10
vpsrldq xmm4, xmm4, 8
vpxord xmm16, xmm16, xmm17
vpsrldq xmm0, xmm0, 8
vpsrldq xmm17, xmm23, 8
vpmovzxwd xmm4, xmm4
vpmovzxbw xmm0, xmm0
vpmovzxwd xmm17, xmm17
vpsrldq xmm20, xmm20, 8
vpslld xmm4, xmm4, 0x18
vpxord xmm4, xmm4, xmm17
vpmovzxbw xmm20, xmm20
vpsrldq xmm1, xmm21, 8
vpmovzxwd xmm17, xmm0
vpmovzxbw xmm1, xmm1
vpxord xmm16, xmm16, xmm4
vpslld xmm17, xmm17, 0x18
vpmovzxwd xmm4, xmm20
vpxord xmm17, xmm17, xmm4
vpmovzxwd xmm4, xmm1
vpmovzxwd xmm5, xmm22
vpslld xmm4, xmm4, 0x10
vpxor xmm4, xmm4, xmm5
vpsrldq xmm0, xmm0, 8
vpsrldq xmm5, xmm1, 8
vpmovzxwd xmm5, xmm5
vpsrldq xmm1, xmm22, 8
vpmovzxwd xmm0, xmm0
vpsrldq xmm20, xmm20, 8
vpxord xmm17, xmm17, xmm4
vpmovzxbw xmm26, xmm19
vpmovzxbw xmm4, xmm18
vpmovzxbw xmm24, xmm3
vpmovzxwd xmm1, xmm1
vpmovzxwd xmm20, xmm20
vpslld xmm5, xmm5, 0x10
vpslld xmm0, xmm0, 0x18
vpsrldq xmm3, xmm3, 8
vpmovzxwd xmm28, xmm4
vpxord xmm0, xmm0, xmm20
vpmovzxwd xmm29, xmm26
vpxor xmm5, xmm5, xmm1
vpmovzxbw xmm3, xmm3
vpxor xmm5, xmm5, xmm0
vpmovzxwd xmm20, xmm3
vpmovzxbw xmm27, xmm2
vpsrldq xmm3, xmm3, 8
vpsrldq xmm0, xmm2, 8
vpmovzxdq xmm6, xmm29
vpmovzxdq xmm2, xmm28
vpmovzxwd xmm30, xmm24
vpsrldq xmm1, xmm18, 8
vpsllq xmm6, xmm6, 0x20
vpmovzxwd xmm18, xmm3
vpsllq xmm2, xmm2, 0x28
vpmovzxwd xmm3, xmm27
vpxor xmm2, xmm2, xmm6
vpmovzxdq xmm31, xmm3
vpmovzxdq xmm6, xmm30
vpsllq xmm6, xmm6, 0x30
vpsllq xmm31, xmm31, 0x38
vpxorq xmm31, xmm31, xmm6
vpxorq xmm2, xmm2, xmm31
vpmovzxdq xmm6, xmm25
vpxor xmm2, xmm2, xmm6
vmovups xmmword [rdx], xmm2
vpsrldq xmm3, xmm3, 8
vpsrldq xmm2, xmm30, 8
vpmovzxdq xmm3, xmm3
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x30
vpsllq xmm3, xmm3, 0x38
vpxor xmm3, xmm3, xmm2
vpsrldq xmm2, xmm28, 8
vpsrldq xmm28, xmm29, 8
vpmovzxdq xmm2, xmm2
vpmovzxdq xmm28, xmm28
vpsllq xmm2, xmm2, 0x28
vpsllq xmm28, xmm28, 0x20
vpxorq xmm2, xmm2, xmm28
vpsrldq xmm25, xmm25, 8
vpxor xmm3, xmm3, xmm2
vpmovzxdq xmm25, xmm25
vpsrldq xmm26, xmm26, 8
vpsrldq xmm4, xmm4, 8
vpmovzxwd xmm4, xmm4
vpxorq xmm3, xmm3, xmm25
vpmovzxwd xmm26, xmm26
vpmovzxdq xmm2, xmm4
vpsrldq xmm24, xmm24, 8
vpsrldq xmm27, xmm27, 8
vmovups xmmword [rdx + 0x10], xmm3
vpmovzxdq xmm3, xmm26
vpmovzxwd xmm24, xmm24
vpmovzxwd xmm27, xmm27
vpsllq xmm3, xmm3, 0x20
vpsllq xmm2, xmm2, 0x28
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm25, xmm24
vpmovzxdq xmm3, xmm27
vpsllq xmm3, xmm3, 0x38
vpsllq xmm25, xmm25, 0x30
vpxorq xmm3, xmm3, xmm25
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm3, xmm16
vpxor xmm2, xmm2, xmm3
vmovups xmmword [rdx + 0x20], xmm2
vpsrldq xmm3, xmm4, 8
vpsrldq xmm2, xmm26, 8
vpmovzxdq xmm3, xmm3
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x20
vpsllq xmm3, xmm3, 0x28
vpxor xmm3, xmm3, xmm2
vpsrldq xmm4, xmm27, 8
vpsrldq xmm2, xmm24, 8
vpmovzxdq xmm4, xmm4
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x30
vpsllq xmm4, xmm4, 0x38
vpxor xmm4, xmm4, xmm2
vpsrldq xmm19, xmm19, 8
vpsrldq xmm16, xmm16, 8
vpmovzxbw xmm19, xmm19
vpmovzxbw xmm1, xmm1
vpxor xmm3, xmm3, xmm4
vpmovzxdq xmm16, xmm16
vpmovzxwd xmm21, xmm19
vpmovzxwd xmm23, xmm1
vpxorq xmm3, xmm3, xmm16
vpmovzxbw xmm0, xmm0
vmovups xmmword [rdx + 0x30], xmm3
vpmovzxdq xmm2, xmm23
vpmovzxdq xmm3, xmm21
vpmovzxwd xmm22, xmm0
vpsllq xmm3, xmm3, 0x20
vpsllq xmm2, xmm2, 0x28
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm4, xmm20
vpmovzxdq xmm3, xmm22
vpsllq xmm4, xmm4, 0x30
vpsllq xmm3, xmm3, 0x38
vpxor xmm3, xmm3, xmm4
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm3, xmm17
vpxor xmm2, xmm2, xmm3
vmovups xmmword [rdx + 0x40], xmm2
vpsrldq xmm3, xmm21, 8
vpsrldq xmm2, xmm23, 8
vpmovzxdq xmm2, xmm2
vpmovzxdq xmm3, xmm3
vpsllq xmm3, xmm3, 0x20
vpsllq xmm2, xmm2, 0x28
vpxor xmm2, xmm2, xmm3
vpsrldq xmm4, xmm20, 8
vpsrldq xmm3, xmm22, 8
vpmovzxdq xmm3, xmm3
vpmovzxdq xmm4, xmm4
vpsllq xmm4, xmm4, 0x30
vpsllq xmm3, xmm3, 0x38
vpxor xmm3, xmm3, xmm4
vpsrldq xmm17, xmm17, 8
vpxor xmm2, xmm2, xmm3
vpsrldq xmm19, xmm19, 8
vpsrldq xmm1, xmm1, 8
vpmovzxdq xmm17, xmm17
vpmovzxwd xmm19, xmm19
vpmovzxwd xmm1, xmm1
vpxorq xmm2, xmm2, xmm17
vpsrldq xmm0, xmm0, 8
vmovups xmmword [rdx + 0x50], xmm2
vpmovzxdq xmm3, xmm19
vpmovzxdq xmm2, xmm1
vpmovzxwd xmm0, xmm0
vpsllq xmm3, xmm3, 0x20
vpsllq xmm2, xmm2, 0x28
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm4, xmm18
vpmovzxdq xmm3, xmm0
vpsllq xmm3, xmm3, 0x38
vpsllq xmm4, xmm4, 0x30
vpxor xmm3, xmm3, xmm4
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm3, xmm5
vpxor xmm2, xmm2, xmm3
vmovups xmmword [rdx + 0x60], xmm2
vpsrldq xmm1, xmm1, 8
vpsrldq xmm2, xmm19, 8
vpmovzxdq xmm1, xmm1
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vpxor xmm1, xmm1, xmm2
vpsrldq xmm0, xmm0, 8
vpsrldq xmm2, xmm18, 8
vpmovzxdq xmm0, xmm0
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x30
vpsllq xmm0, xmm0, 0x38
vpxor xmm0, xmm0, xmm2
vpsrldq xmm5, xmm5, 8
vpxor xmm0, xmm1, xmm0
vpmovzxdq xmm5, xmm5
vpxor xmm0, xmm0, xmm5
vmovups xmmword [rdx + 0x70], xmm0
lea rax, [0x006f3e40]
vmovdqu64 ymm1, ymmword [rdx + 0xa0]
vmovdqu64 ymm3, ymmword [rdx + 0x80]
vmovdqu64 ymm0, ymmword [rdx + 0xe0]
vmovdqu64 ymm2, ymmword [rdx + 0xc0]
lea r11, [rax + 0xc0]
nop
movzx ebx, byte [rax + 4]
movzx r9d, byte [rax]
movzx r10d, byte [rax + 6]
vmovq xmm4, qword [rdx + rbx*8]
movzx r8d, byte [rax + 2]
vpinsrq xmm5, xmm4, qword [rdx + r10*8], 1
vmovq xmm4, qword [rdx + r9*8]
vpaddq ymm3, ymm3, ymm1
vpinsrq xmm4, xmm4, qword [rdx + r8*8], 1
movzx ebx, byte [rax + 5]
vinserti128 ymm4, ymm4, xmm5, 1
vpaddq ymm4, ymm4, ymm3
vpxor ymm0, ymm0, ymm4
vprolq ymm0, ymm0, 0x20
movzx r9d, byte [rax + 1]
movzx r10d, byte [rax + 7]
vmovq xmm3, qword [rdx + rbx*8]
movzx r8d, byte [rax + 3]
vpinsrq xmm5, xmm3, qword [rdx + r10*8], 1
vpaddq ymm2, ymm2, ymm0
vpxor ymm1, ymm2, ymm1
vprorq ymm1, ymm1, 0x18
vmovq xmm3, qword [rdx + r9*8]
movzx ebx, byte [rax + 0xa]
vpinsrq xmm3, xmm3, qword [rdx + r8*8], 1
movzx r9d, byte [rax + 0xe]
vinserti128 ymm3, ymm3, xmm5, 1
vpaddq ymm3, ymm3, ymm1
vpaddq ymm3, ymm3, ymm4
vpxor ymm0, ymm3, ymm0
vprorq ymm0, ymm0, 0x10
movzx r10d, byte [rax + 0xc]
vmovq xmm4, qword [rdx + rbx*8]
movzx r8d, byte [rax + 8]
vpinsrq xmm5, xmm4, qword [rdx + r10*8], 1
vmovq xmm4, qword [rdx + r9*8]
vpaddq ymm2, ymm0, ymm2
vpxor ymm1, ymm2, ymm1
vprolq ymm1, ymm1, 1
vpinsrq xmm4, xmm4, qword [rdx + r8*8], 1
vpermq ymm3, ymm3, 0x93
vinserti128 ymm4, ymm4, xmm5, 1
vpermq ymm0, ymm0, 0x4e
movzx ebx, byte [rax + 0xb]
vpaddq ymm3, ymm3, ymm1
vpaddq ymm4, ymm4, ymm3
vpxor ymm0, ymm0, ymm4
vprolq ymm0, ymm0, 0x20
vpermq ymm2, ymm2, 0x39
movzx r9d, byte [rax + 0xf]
movzx r10d, byte [rax + 0xd]
vmovq xmm3, qword [rdx + rbx*8]
movzx r8d, byte [rax + 9]
vpaddq ymm2, ymm2, ymm0
vpxor ymm1, ymm2, ymm1
vprorq ymm1, ymm1, 0x18
vpinsrq xmm5, xmm3, qword [rdx + r10*8], 1
vmovq xmm3, qword [rdx + r9*8]
add rax, 0x10
vpinsrq xmm3, xmm3, qword [rdx + r8*8], 1
vinserti128 ymm3, ymm3, xmm5, 1
vpaddq ymm3, ymm3, ymm1
vpaddq ymm3, ymm3, ymm4
vpxor ymm0, ymm0, ymm3
vprorq ymm0, ymm0, 0x10
vpermq ymm3, ymm3, 0x39
vpaddq ymm2, ymm0, ymm2
vpxor ymm1, ymm1, ymm2
vprolq ymm1, ymm1, 1
vpermq ymm0, ymm0, 0x4e
vpermq ymm2, ymm2, 0x93
cmp r11, rax
jne 0x465f80
vmovdqu64 ymmword [rdx + 0xe0], ymm0
vmovdqu64 ymmword [rdx + 0xc0], ymm2
vpxor ymm0, ymm1, ymm0
vpxor ymm2, ymm3, ymm2
vpxor ymm2, ymm2, ymmword [rcx + 0x80]
vpxor ymm0, ymm0, ymmword [rcx + 0xa0]
vmovdqu64 ymmword [rdx + 0xa0], ymm1
vmovdqu64 ymmword [rdx + 0x80], ymm3
vmovdqu64 ymmword [rcx + 0x80], ymm2
vmovdqu64 ymmword [rcx + 0xa0], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0x110]
add rsp, 0x120
pop rbx
ret