Function at 0x438630
Capabilities:
Hash data using sha512

Disassembly:
sub rsp, 0x228
vmovups xmmword [rsp + 0x180], xmm6
vmovups xmmword [rsp + 0x190], xmm7
vmovups xmmword [rsp + 0x1a0], xmm8
vmovups xmmword [rsp + 0x1b0], xmm9
vmovups xmmword [rsp + 0x1c0], xmm10
vmovups xmmword [rsp + 0x1d0], xmm11
vmovups xmmword [rsp + 0x1e0], xmm12
vmovups xmmword [rsp + 0x1f0], xmm13
vmovups xmmword [rsp + 0x200], xmm14
vmovups xmmword [rsp + 0x210], xmm15
vmovdqu xmm4, xmmword [rcx + 0x80]
lea rax, [rsp + 0x8f]
and rax, 0xffffffffffffffe0
vmovups xmmword [rax + 0x80], xmm4
vmovdqu xmm4, xmmword [rcx + 0x90]
vmovups xmmword [rax + 0x90], xmm4
vmovdqu xmm4, xmmword [rcx + 0xa0]
vmovups xmmword [rax + 0xa0], xmm4
vmovdqu xmm4, xmmword [rcx + 0xb0]
vmovups xmmword [rax + 0xb0], xmm4
vmovdqu xmm4, xmmword [0x005afd80]
vmovups xmmword [rax + 0xc0], xmm4
vmovdqu xmm4, xmmword [0x005afd90]
vmovups xmmword [rax + 0xd0], xmm4
vmovdqu xmm4, xmmword [0x005afdb0]
vmovups xmmword [rax + 0xf0], xmm4
vmovdqu xmm4, xmmword [0x005afda0]
vpxor xmm0, xmm4, xmmword [rcx + 0xc0]
vmovups xmmword [rax + 0xe0], xmm0
test edx, edx
je 0x438730
not qword [rax + 0xf0]
vmovdqu xmm1, xmmword [0x005afdc0]
vmovdqu xmm7, xmmword [rcx]
lea rdx, [0x005afcc0]
vmovdqu xmm3, xmmword [rcx + 0x10]
lea r10, [rdx + 0xc0]
vmovdqu xmm0, xmmword [rcx + 0x20]
vpand xmm10, xmm1, xmm7
vpsrlw xmm7, xmm7, 8
vmovdqu xmm6, xmmword [rcx + 0x30]
vpand xmm8, xmm1, xmm3
vpsrlw xmm3, xmm3, 8
vpackuswb xmm8, xmm10, xmm8
vmovdqu xmm2, xmmword [rcx + 0x40]
vpand xmm10, xmm1, xmm0
vpackuswb xmm7, xmm7, xmm3
vpsrlw xmm0, xmm0, 8
vmovdqu xmm5, xmmword [rcx + 0x50]
vpand xmm3, xmm1, xmm6
vpsrlw xmm6, xmm6, 8
vpackuswb xmm3, xmm10, xmm3
vmovdqu xmm4, xmmword [rcx + 0x60]
vpand xmm10, xmm1, xmm2
vpackuswb xmm0, xmm0, xmm6
vpsrlw xmm2, xmm2, 8
vmovdqu xmm9, xmmword [rcx + 0x70]
vpand xmm6, xmm1, xmm5
vpsrlw xmm5, xmm5, 8
vpackuswb xmm6, xmm10, xmm6
vpackuswb xmm2, xmm2, xmm5
vpand xmm10, xmm1, xmm4
vpsrlw xmm4, xmm4, 8
vpand xmm11, xmm1, xmm6
vpand xmm5, xmm1, xmm9
vpsrlw xmm9, xmm9, 8
vpackuswb xmm5, xmm10, xmm5
vpand xmm10, xmm1, xmm8
vpackuswb xmm4, xmm4, xmm9
vpsrlw xmm8, xmm8, 8
vpand xmm9, xmm1, xmm3
vpackuswb xmm9, xmm10, xmm9
vpsrlw xmm3, xmm3, 8
vpand xmm10, xmm1, xmm9
vpackuswb xmm3, xmm8, xmm3
vpsrlw xmm6, xmm6, 8
vpand xmm8, xmm1, xmm5
vpackuswb xmm11, xmm11, xmm8
vpsrlw xmm5, xmm5, 8
vpand xmm8, xmm1, xmm7
vpackuswb xmm6, xmm6, xmm5
vpsrlw xmm7, xmm7, 8
vpand xmm5, xmm1, xmm0
vpackuswb xmm5, xmm8, xmm5
vpsrlw xmm0, xmm0, 8
vpand xmm8, xmm1, xmm2
vpackuswb xmm0, xmm7, xmm0
vpsrlw xmm2, xmm2, 8
vpand xmm7, xmm1, xmm4
vpackuswb xmm8, xmm8, xmm7
vpsrlw xmm4, xmm4, 8
vpand xmm7, xmm1, xmm5
vpackuswb xmm2, xmm2, xmm4
vpsrlw xmm5, xmm5, 8
vpand xmm4, xmm1, xmm11
vpackuswb xmm10, xmm10, xmm4
vpand xmm4, xmm1, xmm8
vpsrlw xmm8, xmm8, 8
vpackuswb xmm7, xmm7, xmm4
vpand xmm4, xmm1, xmm6
vpackuswb xmm5, xmm5, xmm8
vpsrlw xmm11, xmm11, 8
vpand xmm8, xmm1, xmm3
vpmovzxbw xmm12, xmm10
vpsrlw xmm6, xmm6, 8
vpackuswb xmm4, xmm8, xmm4
vpmovzxwd xmm14, xmm12
vpsrlw xmm9, xmm9, 8
vpsrlw xmm3, xmm3, 8
vpackuswb xmm9, xmm9, xmm11
vpmovzxbw xmm11, xmm7
vpackuswb xmm3, xmm3, xmm6
vpand xmm6, xmm1, xmm0
vpand xmm1, xmm1, xmm2
vpackuswb xmm1, xmm6, xmm1
vpsrldq xmm6, xmm10, 8
vpmovzxbw xmm10, xmm4
vpsrlw xmm2, xmm2, 8
vpmovzxwd xmm8, xmm10
vpmovzxbw xmm6, xmm6
vpsllw xmm11, xmm11, 8
vpsrlw xmm0, xmm0, 8
vpmovzxwd xmm13, xmm11
vpackuswb xmm0, xmm0, xmm2
vpslld xmm8, xmm8, 0x10
vpmovzxbw xmm2, xmm1
vpsrldq xmm10, xmm10, 8
vpxor xmm13, xmm8, xmm13
vpmovzxwd xmm8, xmm2
vpsrldq xmm1, xmm1, 8
vpmovzxwd xmm10, xmm10
vpsrldq xmm11, xmm11, 8
vpmovzxbw xmm1, xmm1
vpsrldq xmm2, xmm2, 8
vpmovzxwd xmm11, xmm11
vpslld xmm10, xmm10, 0x10
vpmovzxwd xmm2, xmm2
vpsrldq xmm12, xmm12, 8
vpxor xmm10, xmm10, xmm11
vpmovzxwd xmm11, xmm1
vpmovzxwd xmm12, xmm12
vpsrldq xmm7, xmm7, 8
vpsrldq xmm4, xmm4, 8
vpmovzxbw xmm7, xmm7
vpslld xmm2, xmm2, 0x18
vpmovzxbw xmm4, xmm4
vpxor xmm2, xmm2, xmm12
vpslld xmm11, xmm11, 0x18
vpxor xmm2, xmm10, xmm2
vpmovzxwd xmm10, xmm6
vpxor xmm11, xmm11, xmm10
vpsllw xmm7, xmm7, 8
vpmovzxwd xmm10, xmm4
vpsrldq xmm4, xmm4, 8
vpmovzxwd xmm12, xmm7
vpmovzxwd xmm4, xmm4
vpsrldq xmm7, xmm7, 8
vpmovzxwd xmm7, xmm7
vpslld xmm4, xmm4, 0x10
vpsrldq xmm1, xmm1, 8
vpxor xmm4, xmm4, xmm7
vpmovzxbw xmm7, xmm9
vpmovzxwd xmm1, xmm1
vpsrldq xmm6, xmm6, 8
vpsrldq xmm9, xmm9, 8
vpmovzxwd xmm6, xmm6
vpmovzxbw xmm9, xmm9
vpslld xmm1, xmm1, 0x18
vpxor xmm1, xmm1, xmm6
vpmovzxwd xmm6, xmm9
vpxor xmm4, xmm4, xmm1
vpmovzxbw xmm1, xmm5
vpsrldq xmm5, xmm5, 8
vmovups xmmword [rsp + 0x50], xmm6
vpmovzxbw xmm6, xmm5
vpslld xmm8, xmm8, 0x18
vpmovzxwd xmm5, xmm1
vpmovzxwd xmm15, xmm6
vpsrldq xmm6, xmm6, 8
vpxor xmm8, xmm8, xmm14
vpxor xmm8, xmm13, xmm8
vpmovzxwd xmm13, xmm6
vpmovzxbw xmm6, xmm3
vmovups xmmword [rsp + 0x40], xmm15
vpsrldq xmm3, xmm3, 8
vmovups xmmword [rsp + 0x30], xmm13
vpmovzxbw xmm3, xmm3
vpslld xmm10, xmm10, 0x10
vpxor xmm10, xmm10, xmm12
vpxor xmm14, xmm11, xmm10
vpmovzxwd xmm11, xmm3
vpsrldq xmm3, xmm3, 8
vpmovzxwd xmm3, xmm3
vmovups xmmword [rsp + 0x60], xmm14
vpmovzxwd xmm12, xmm7
vpmovzxwd xmm10, xmm6
vmovups xmmword [rsp + 0x10], xmm3
vpmovzxbw xmm3, xmm0
vpsrldq xmm0, xmm0, 8
vpmovzxbw xmm0, xmm0
vmovups xmmword [rsp + 0x20], xmm11
vpmovzxwd xmm13, xmm3
vpmovzxwd xmm14, xmm0
vpsrldq xmm1, xmm1, 8
vmovups xmmword [rsp], xmm14
vpmovzxdq xmm14, xmm5
vpsrldq xmm5, xmm5, 8
vpmovzxwd xmm1, xmm1
vpsllq xmm15, xmm14, 0x28
vpmovzxdq xmm14, xmm12
vpmovzxdq xmm5, xmm5
vpsllq xmm11, xmm14, 0x20
vpxor xmm14, xmm15, xmm11
vpmovzxdq xmm15, xmm10
vpmovzxdq xmm11, xmm13
vpsllq xmm15, xmm15, 0x30
vpsllq xmm11, xmm11, 0x38
vpxor xmm11, xmm11, xmm15
vpxor xmm14, xmm14, xmm11
vpmovzxdq xmm11, xmm8
vpsrldq xmm10, xmm10, 8
vpxor xmm14, xmm14, xmm11
vpsrldq xmm11, xmm13, 8
vpmovzxdq xmm10, xmm10
vmovdqu xmm15, xmmword [rsp + 0x40]
vpmovzxdq xmm11, xmm11
vpsllq xmm10, xmm10, 0x30
vmovups xmmword [rax], xmm14
vpsllq xmm11, xmm11, 0x38
vpxor xmm11, xmm11, xmm10
vpsrldq xmm10, xmm12, 8
vmovdqu xmm12, xmmword [rsp]
vpmovzxdq xmm10, xmm10
vpsrldq xmm8, xmm8, 8
vpsllq xmm10, xmm10, 0x20
vpsrldq xmm7, xmm7, 8
vpsllq xmm5, xmm5, 0x28
vpmovzxwd xmm7, xmm7
vpxor xmm5, xmm5, xmm10
vpxor xmm10, xmm11, xmm5
vpmovzxdq xmm5, xmm8
vpmovzxdq xmm8, xmm1
vpxor xmm5, xmm10, xmm5
vpsrldq xmm6, xmm6, 8
vmovups xmmword [rax + 0x10], xmm5
vpsllq xmm10, xmm8, 0x28
vpmovzxdq xmm8, xmm7
vpmovzxwd xmm6, xmm6
vpsrldq xmm3, xmm3, 8
vpmovzxwd xmm3, xmm3
vpsllq xmm5, xmm8, 0x20
vpxor xmm8, xmm10, xmm5
vpmovzxdq xmm5, xmm3
vpmovzxdq xmm10, xmm6
vpsllq xmm10, xmm10, 0x30
vpsllq xmm5, xmm5, 0x38
vpsrldq xmm1, xmm1, 8
vpxor xmm5, xmm5, xmm10
vpxor xmm8, xmm8, xmm5
vpmovzxdq xmm5, xmm2
vpmovzxdq xmm1, xmm1
vpxor xmm8, xmm8, xmm5
vpsrldq xmm3, xmm3, 8
vmovups xmmword [rax + 0x20], xmm8
vpsllq xmm5, xmm1, 0x28
vpmovzxdq xmm3, xmm3
vpsrldq xmm1, xmm7, 8
vmovdqu xmm7, xmmword [rsp + 0x50]
vpmovzxdq xmm1, xmm1
vpsrldq xmm2, xmm2, 8
vpsllq xmm1, xmm1, 0x20
vpmovzxdq xmm2, xmm2
vpxor xmm1, xmm5, xmm1
vpsrldq xmm5, xmm6, 8
vmovdqu xmm6, xmmword [rsp + 0x20]
vpmovzxdq xmm5, xmm5
vpsllq xmm3, xmm3, 0x38
vpsllq xmm5, xmm5, 0x30
vpxor xmm3, xmm3, xmm5
vpxor xmm1, xmm1, xmm3
vpxor xmm2, xmm1, xmm2
vpmovzxdq xmm1, xmm15
vmovups xmmword [rax + 0x30], xmm2
vpmovzxdq xmm2, xmm7
vpsllq xmm1, xmm1, 0x28
vmovdqu xmm5, xmmword [rsp + 0x60]
vpsllq xmm2, xmm2, 0x20
vpmovzxdq xmm3, xmm6
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm12
vpsllq xmm3, xmm3, 0x30
vpsllq xmm2, xmm2, 0x38
vpxor xmm2, xmm2, xmm3
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm5
vpsrldq xmm3, xmm6, 8
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm7, 8
vmovups xmmword [rax + 0x40], xmm1
vpmovzxdq xmm3, xmm3
vpsrldq xmm1, xmm15, 8
vpmovzxdq xmm2, xmm2
vmovdqu xmm7, xmmword [rsp + 0x10]
vpmovzxdq xmm1, xmm1
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm12, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm3, xmm3, 0x30
vpsllq xmm2, xmm2, 0x38
vpxor xmm2, xmm2, xmm3
vpsrldq xmm9, xmm9, 8
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm3, xmm7
vpsrldq xmm2, xmm5, 8
vmovdqu xmm5, xmmword [rsp + 0x30]
vpmovzxwd xmm9, xmm9
vpmovzxdq xmm2, xmm2
vpsrldq xmm0, xmm0, 8
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm9
vmovups xmmword [rax + 0x50], xmm1
vpmovzxdq xmm1, xmm5
vpmovzxwd xmm0, xmm0
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm0
vpsllq xmm3, xmm3, 0x30
vpsllq xmm2, xmm2, 0x38
vpxor xmm2, xmm2, xmm3
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm4
vpsrldq xmm0, xmm0, 8
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm9, 8
vmovups xmmword [rax + 0x60], xmm1
vpmovzxdq xmm0, xmm0
vpsrldq xmm1, xmm5, 8
vpmovzxdq xmm2, xmm2
vpmovzxdq xmm1, xmm1
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm7, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm0, xmm0, 0x38
vpsllq xmm2, xmm2, 0x30
vpxor xmm0, xmm0, xmm2
vpxor xmm0, xmm1, xmm0
vpsrldq xmm1, xmm4, 8
vpmovzxdq xmm1, xmm1
vpxor xmm0, xmm0, xmm1
vmovdqu xmm1, xmmword [rax + 0xa0]
vmovups xmmword [rax + 0x70], xmm0
vmovdqu xmm6, xmmword [rax + 0x80]
vmovdqu xmm0, xmmword [rax + 0xb0]
vmovdqu xmm9, xmmword [rax + 0xe0]
vmovdqu xmm8, xmmword [rax + 0xc0]
vmovdqu xmm11, xmm0
vmovdqu xmm10, xmmword [rax + 0x90]
vmovdqu xmm2, xmmword [rax + 0xf0]
vmovdqu xmm5, xmmword [rax + 0xd0]
vmovdqu xmm4, xmmword [0x005afdd0]
vmovdqu xmm3, xmmword [0x005afde0]
nop dword [rax]
movzx r9d, byte [rdx]
vpaddq xmm6, xmm6, xmm1
vpaddq xmm10, xmm10, xmm11
add rdx, 0x10
movzx r8d, byte [rdx - 0xe]
vmovq xmm7, qword [rax + r9*8]
movzx r9d, byte [rdx - 0xf]
vpinsrq xmm7, xmm7, qword [rax + r8*8], 1
vpaddq xmm12, xmm7, xmm6
movzx r8d, byte [rdx - 0xd]
vpxor xmm6, xmm9, xmm12
vpshufd xmm6, xmm6, 0xb1
vpaddq xmm13, xmm8, xmm6
vpxor xmm0, xmm13, xmm1
vpshufb xmm0, xmm0, xmm4
vmovq xmm7, qword [rax + r9*8]
movzx r9d, byte [rdx - 0xc]
vpinsrq xmm7, xmm7, qword [rax + r8*8], 1
vpaddq xmm7, xmm7, xmm0
movzx r8d, byte [rdx - 0xa]
vpaddq xmm7, xmm7, xmm12
vpxor xmm6, xmm7, xmm6
vpshufb xmm6, xmm6, xmm3
vpaddq xmm13, xmm13, xmm6
vpxor xmm0, xmm13, xmm0
vpsllq xmm1, xmm0, 1
vmovq xmm9, qword [rax + r9*8]
vpsrlq xmm0, xmm0, 0x3f
vpinsrq xmm9, xmm9, qword [rax + r8*8], 1
movzx r9d, byte [rdx - 0xb]
vpaddq xmm10, xmm9, xmm10
vpor xmm0, xmm0, xmm1
movzx r8d, byte [rdx - 9]
vpxor xmm1, xmm2, xmm10
vpshufd xmm1, xmm1, 0xb1
vpaddq xmm5, xmm5, xmm1
vpxor xmm11, xmm5, xmm11
vpshufb xmm11, xmm11, xmm4
vmovq xmm9, qword [rax + r9*8]
movzx r9d, byte [rdx - 8]
vpinsrq xmm9, xmm9, qword [rax + r8*8], 1
vpaddq xmm9, xmm9, xmm11
movzx r8d, byte [rdx - 6]
vpaddq xmm9, xmm9, xmm10
vpxor xmm1, xmm9, xmm1
vpshufb xmm1, xmm1, xmm3
vmovdqu xmm2, xmm1
vpaddq xmm1, xmm5, xmm1
vpalignr xmm8, xmm6, xmm2, 8
vpxor xmm11, xmm1, xmm11
vpalignr xmm12, xmm2, xmm6, 8
vmovq xmm6, qword [rax + r9*8]
movzx r9d, byte [rdx - 7]
vpinsrq xmm6, xmm6, qword [rax + r8*8], 1
vpsllq xmm5, xmm11, 1
movzx r8d, byte [rdx - 5]
vpsrlq xmm11, xmm11, 0x3f
vpor xmm11, xmm11, xmm5
vpalignr xmm10, xmm11, xmm0, 8
vpaddq xmm6, xmm6, xmm10
vpalignr xmm0, xmm0, xmm11, 8
vpaddq xmm7, xmm6, xmm7
vmovq xmm6, qword [rax + r9*8]
movzx r9d, byte [rdx - 4]
vpinsrq xmm6, xmm6, qword [rax + r8*8], 1
vpxor xmm8, xmm7, xmm8
vpshufd xmm8, xmm8, 0xb1
movzx r8d, byte [rdx - 2]
vpaddq xmm5, xmm1, xmm8
vpxor xmm1, xmm5, xmm10
vpshufb xmm1, xmm1, xmm4
vpaddq xmm6, xmm6, xmm1
vpaddq xmm6, xmm6, xmm7
vmovq xmm10, qword [rax + r9*8]
vpxor xmm8, xmm6, xmm8
vpshufb xmm8, xmm8, xmm3
vpaddq xmm5, xmm5, xmm8
vpinsrq xmm10, xmm10, qword [rax + r8*8], 1
vpaddq xmm10, xmm10, xmm0
vmovdqu xmm7, xmm8
vpxor xmm1, xmm5, xmm1
movzx r9d, byte [rdx - 3]
vpaddq xmm9, xmm10, xmm9
vpsllq xmm11, xmm1, 1
movzx r8d, byte [rdx - 1]
vpxor xmm12, xmm9, xmm12
vpshufd xmm2, xmm12, 0xb1
vpaddq xmm13, xmm13, xmm2
vpxor xmm0, xmm13, xmm0
vpshufb xmm0, xmm0, xmm4
vpsrlq xmm1, xmm1, 0x3f
vpor xmm11, xmm11, xmm1
vmovq xmm10, qword [rax + r9*8]
vpinsrq xmm10, xmm10, qword [rax + r8*8], 1
vpaddq xmm10, xmm10, xmm0
vpaddq xmm10, xmm10, xmm9
vpxor xmm2, xmm10, xmm2
vpshufb xmm2, xmm2, xmm3
vpaddq xmm8, xmm13, xmm2
vpalignr xmm14, xmm2, xmm7, 8
vpxor xmm0, xmm8, xmm0
vpsllq xmm1, xmm0, 1
vmovdqu xmm9, xmm14
vpsrlq xmm0, xmm0, 0x3f
vpor xmm0, xmm1, xmm0
vpalignr xmm7, xmm7, xmm2, 8
vpalignr xmm13, xmm11, xmm0, 8
vmovdqu xmm2, xmm7
vpalignr xmm0, xmm0, xmm11, 8
vmovdqu xmm1, xmm13
vmovdqu xmm11, xmm0
cmp r10, rdx
jne 0x438dc8
vmovups xmmword [rax + 0xb0], xmm0
vmovups xmmword [rax + 0xa0], xmm13
vmovups xmmword [rax + 0x80], xmm6
vmovups xmmword [rax + 0xc0], xmm8
vmovups xmmword [rax + 0x90], xmm10
vmovdqu ymm4, ymmword [rax + 0x80]
vmovups xmmword [rax + 0xd0], xmm5
vxorps ymm0, ymm4, ymmword [rax + 0xc0]
vmovdqu ymm4, ymmword [rax + 0xa0]
vxorps ymm0, ymm0, ymmword [rcx + 0x80]
vmovups xmmword [rax + 0xe0], xmm14
vmovups xmmword [rax + 0xf0], xmm7
vmovdqu ymmword [rcx + 0x80], ymm0
vxorps ymm0, ymm4, ymmword [rax + 0xe0]
vxorps ymm0, ymm0, ymmword [rcx + 0xa0]
vmovdqu ymmword [rcx + 0xa0], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0x180]
vmovups xmm7, xmmword [rsp + 0x190]
vmovups xmm8, xmmword [rsp + 0x1a0]
vmovups xmm9, xmmword [rsp + 0x1b0]
vmovups xmm10, xmmword [rsp + 0x1c0]
vmovups xmm11, xmmword [rsp + 0x1d0]
vmovups xmm12, xmmword [rsp + 0x1e0]
vmovups xmm13, xmmword [rsp + 0x1f0]
vmovups xmm14, xmmword [rsp + 0x200]
vmovups xmm15, xmmword [rsp + 0x210]
add rsp, 0x228
ret