Function at 0x4519b0
Capabilities:
Hash data using sha512

Disassembly:
push rbx
sub rsp, 0x220
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 xmm7, xmmword [rcx + 0x80]
mov r9d, edx
lea rdx, [rsp + 0x8f]
and rdx, 0xffffffffffffffe0
vmovups xmmword [rdx + 0x80], xmm7
vmovdqu xmm7, xmmword [rcx + 0x90]
vmovups xmmword [rdx + 0x90], xmm7
vmovdqu xmm7, xmmword [rcx + 0xa0]
vmovups xmmword [rdx + 0xa0], xmm7
vmovdqu xmm7, xmmword [rcx + 0xb0]
vmovups xmmword [rdx + 0xb0], xmm7
vmovdqu xmm7, xmmword [0x00685f40]
vmovups xmmword [rdx + 0xc0], xmm7
vmovdqu xmm7, xmmword [0x00685f50]
vmovups xmmword [rdx + 0xd0], xmm7
vmovdqu xmm7, xmmword [0x00685f70]
vmovups xmmword [rdx + 0xf0], xmm7
vmovdqu xmm7, xmmword [0x00685f60]
vpxor xmm0, xmm7, xmmword [rcx + 0xc0]
vmovups xmmword [rdx + 0xe0], xmm0
test r9d, r9d
je 0x451ab5
not qword [rdx + 0xf0]
vmovdqu xmm7, xmmword [rcx]
vmovdqu xmm1, xmmword [0x00685f80]
lea rax, [0x00685e80]
vmovdqu xmm3, xmmword [rcx + 0x10]
vmovdqu xmm0, xmmword [rcx + 0x20]
lea r11, [rax + 0xc0]
vmovdqu xmm6, xmmword [rcx + 0x30]
vpand xmm10, xmm1, xmm7
vmovdqu xmm2, xmmword [rcx + 0x40]
vpsrlw xmm7, xmm7, 8
vmovdqu xmm5, xmmword [rcx + 0x50]
vpand xmm8, xmm1, xmm3
vpsrlw xmm3, xmm3, 8
vmovdqu xmm4, xmmword [rcx + 0x60]
vmovdqu xmm9, xmmword [rcx + 0x70]
vpackuswb xmm8, xmm10, xmm8
vpackuswb xmm7, xmm7, xmm3
vpand xmm10, xmm1, xmm0
vpand xmm3, xmm1, xmm6
vpsrlw xmm0, xmm0, 8
vpsrlw xmm6, xmm6, 8
vpackuswb xmm3, xmm10, xmm3
vpand xmm10, xmm1, xmm2
vpackuswb xmm0, xmm0, xmm6
vpsrlw xmm2, xmm2, 8
vpand xmm6, xmm1, xmm5
vpsrlw xmm5, xmm5, 8
vpackuswb xmm6, xmm10, xmm6
vpand xmm10, xmm1, xmm4
vpackuswb xmm2, xmm2, xmm5
vpsrlw xmm4, xmm4, 8
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
vpsrlw xmm3, xmm3, 8
vpand xmm11, xmm1, xmm6
vpackuswb xmm9, xmm10, xmm9
vpackuswb xmm3, xmm8, xmm3
vpsrlw xmm6, xmm6, 8
vpand xmm8, xmm1, xmm5
vpsrlw xmm5, xmm5, 8
vpackuswb xmm11, xmm11, xmm8
vpand xmm8, xmm1, xmm7
vpackuswb xmm6, xmm6, xmm5
vpsrlw xmm7, xmm7, 8
vpand xmm5, xmm1, xmm0
vpsrlw xmm0, xmm0, 8
vpackuswb xmm5, xmm8, xmm5
vpand xmm8, xmm1, xmm2
vpackuswb xmm0, xmm7, xmm0
vpsrlw xmm2, xmm2, 8
vpand xmm7, xmm1, xmm4
vpsrlw xmm4, xmm4, 8
vpackuswb xmm8, xmm8, xmm7
vpand xmm10, xmm1, xmm9
vpackuswb xmm2, xmm2, xmm4
vpand xmm4, xmm1, xmm11
vpand xmm7, xmm1, xmm5
vpsrlw xmm5, xmm5, 8
vpsrlw xmm11, xmm11, 8
vpackuswb xmm10, xmm10, xmm4
vpand xmm4, xmm1, xmm8
vpsrlw xmm8, xmm8, 8
vpmovzxbw xmm12, xmm10
vpackuswb xmm7, xmm7, xmm4
vpackuswb xmm5, xmm5, xmm8
vpand xmm4, xmm1, xmm6
vpand xmm8, xmm1, xmm3
vpsrlw xmm6, xmm6, 8
vpmovzxwd xmm14, xmm12
vpsrlw xmm3, xmm3, 8
vpsrlw xmm9, xmm9, 8
vpackuswb xmm4, xmm8, xmm4
vpackuswb xmm3, xmm3, xmm6
vpand xmm6, xmm1, xmm0
vpand xmm1, xmm1, xmm2
vpackuswb xmm9, xmm9, xmm11
vpackuswb xmm1, xmm6, xmm1
vpmovzxbw xmm11, xmm7
vpsrldq xmm6, xmm10, 8
vpsrlw xmm2, xmm2, 8
vpmovzxbw xmm10, xmm4
vpsllw xmm11, xmm11, 8
vpmovzxwd xmm8, xmm10
vpmovzxbw xmm6, xmm6
vpsrlw xmm0, xmm0, 8
vpslld xmm8, xmm8, 0x10
vpmovzxwd xmm13, xmm11
vpackuswb xmm0, xmm0, xmm2
vpmovzxbw xmm2, xmm1
vpxor xmm13, xmm8, xmm13
vpsrldq xmm10, xmm10, 8
vpsrldq xmm1, xmm1, 8
vpmovzxwd xmm8, xmm2
vpsrldq xmm2, xmm2, 8
vpmovzxwd xmm10, xmm10
vpmovzxbw xmm1, xmm1
vpsrldq xmm11, xmm11, 8
vpsrldq xmm12, xmm12, 8
vpmovzxwd xmm2, xmm2
vpmovzxwd xmm11, xmm11
vpslld xmm10, xmm10, 0x10
vpmovzxwd xmm12, xmm12
vpslld xmm2, xmm2, 0x18
vpsrldq xmm7, xmm7, 8
vpxor xmm10, xmm10, xmm11
vpxor xmm2, xmm2, xmm12
vpmovzxwd xmm11, xmm1
vpmovzxbw xmm7, xmm7
vpsrldq xmm4, xmm4, 8
vpslld xmm11, xmm11, 0x18
vpxor xmm2, xmm10, xmm2
vpmovzxbw xmm4, xmm4
vpsllw xmm7, xmm7, 8
vpmovzxwd xmm10, xmm6
vpxor xmm11, xmm11, xmm10
vpmovzxwd xmm10, xmm4
vpmovzxwd xmm12, xmm7
vpsrldq xmm4, xmm4, 8
vpsrldq xmm7, xmm7, 8
vpmovzxwd xmm4, xmm4
vpsrldq xmm1, xmm1, 8
vpmovzxwd xmm7, xmm7
vpslld xmm4, xmm4, 0x10
vpsrldq xmm6, xmm6, 8
vpmovzxwd xmm1, xmm1
vpxor xmm4, xmm4, xmm7
vpmovzxwd xmm6, xmm6
vpmovzxbw xmm7, xmm9
vpslld xmm1, xmm1, 0x18
vpsrldq xmm9, xmm9, 8
vpxor xmm1, xmm1, xmm6
vpslld xmm8, xmm8, 0x18
vpmovzxbw xmm9, xmm9
vpxor xmm4, xmm4, xmm1
vpmovzxwd xmm6, xmm9
vpmovzxbw xmm1, xmm5
vpsrldq xmm5, xmm5, 8
vmovups xmmword [rsp + 0x50], xmm6
vpxor xmm8, xmm8, xmm14
vpmovzxbw xmm6, xmm5
vpxor xmm8, xmm13, xmm8
vpmovzxwd xmm5, xmm1
vpslld xmm10, xmm10, 0x10
vpsrldq xmm1, xmm1, 8
vpmovzxwd xmm13, xmm6
vpsrldq xmm6, xmm6, 8
vpxor xmm10, xmm10, xmm12
vpmovzxwd xmm12, xmm7
vmovups xmmword [rsp + 0x40], xmm13
vpmovzxwd xmm14, xmm6
vpmovzxbw xmm6, xmm3
vpxor xmm15, xmm11, xmm10
vpsrldq xmm3, xmm3, 8
vmovups xmmword [rsp + 0x60], xmm15
vpmovzxwd xmm10, xmm6
vpmovzxwd xmm1, xmm1
vpmovzxbw xmm3, xmm3
vmovups xmmword [rsp + 0x30], xmm14
vpmovzxdq xmm14, xmm5
vpsrldq xmm5, xmm5, 8
vpsrldq xmm7, xmm7, 8
vpmovzxwd xmm11, xmm3
vpsrldq xmm3, xmm3, 8
vmovups xmmword [rsp + 0x20], xmm11
vpmovzxdq xmm5, xmm5
vpmovzxwd xmm7, xmm7
vpsllq xmm5, xmm5, 0x28
vpsrldq xmm6, xmm6, 8
vpmovzxwd xmm3, xmm3
vmovups xmmword [rsp + 0x10], xmm3
vpmovzxbw xmm3, xmm0
vpsrldq xmm0, xmm0, 8
vpmovzxwd xmm6, xmm6
vpmovzxbw xmm0, xmm0
vpsrldq xmm9, xmm9, 8
vpmovzxwd xmm13, xmm3
vpmovzxwd xmm15, xmm0
vpsrldq xmm3, xmm3, 8
vpmovzxwd xmm9, xmm9
vmovups xmmword [rsp], xmm15
vpsllq xmm15, xmm14, 0x28
vpmovzxdq xmm14, xmm12
vpmovzxwd xmm3, xmm3
vpsllq xmm11, xmm14, 0x20
vpsrldq xmm0, xmm0, 8
vpxor xmm14, xmm15, xmm11
vpmovzxdq xmm11, xmm13
vpmovzxdq xmm15, xmm10
vpsllq xmm11, xmm11, 0x38
vpsllq xmm15, xmm15, 0x30
vpmovzxwd xmm0, xmm0
vpxor xmm11, xmm11, xmm15
vpsrldq xmm10, xmm10, 8
vpxor xmm14, xmm14, xmm11
vpmovzxdq xmm11, xmm8
vpmovzxdq xmm10, xmm10
vpsllq xmm10, xmm10, 0x30
vpsrldq xmm8, xmm8, 8
vpxor xmm14, xmm14, xmm11
vpsrldq xmm11, xmm13, 8
vmovdqu xmm13, xmmword [rsp + 0x20]
vmovups xmmword [rdx], xmm14
vpmovzxdq xmm11, xmm11
vpsllq xmm11, xmm11, 0x38
vpxor xmm11, xmm11, xmm10
vpsrldq xmm10, xmm12, 8
vmovdqu xmm12, xmmword [rsp]
vpmovzxdq xmm10, xmm10
vpsllq xmm10, xmm10, 0x20
vpxor xmm5, xmm5, xmm10
vpxor xmm10, xmm11, xmm5
vpmovzxdq xmm5, xmm8
vpmovzxdq xmm8, xmm1
vpxor xmm5, xmm10, xmm5
vpsllq xmm10, xmm8, 0x28
vpmovzxdq xmm8, xmm7
vmovups xmmword [rdx + 0x10], xmm5
vpsllq xmm5, xmm8, 0x20
vpsrldq xmm1, xmm1, 8
vpxor xmm8, xmm10, xmm5
vpmovzxdq xmm5, xmm3
vpmovzxdq xmm10, xmm6
vpsllq xmm5, xmm5, 0x38
vpsllq xmm10, xmm10, 0x30
vpmovzxdq xmm1, xmm1
vpxor xmm5, xmm5, xmm10
vpsrldq xmm3, xmm3, 8
vpxor xmm8, xmm8, xmm5
vpmovzxdq xmm5, xmm2
vpmovzxdq xmm3, xmm3
vpsllq xmm3, xmm3, 0x38
vpsrldq xmm2, xmm2, 8
vpxor xmm8, xmm8, xmm5
vpsllq xmm5, xmm1, 0x28
vpsrldq xmm1, xmm7, 8
vpmovzxdq xmm2, xmm2
vmovdqu xmm7, xmmword [rsp + 0x60]
vpmovzxdq xmm1, xmm1
vmovups xmmword [rdx + 0x20], xmm8
vpsllq xmm1, xmm1, 0x20
vpxor xmm1, xmm5, xmm1
vpsrldq xmm5, xmm6, 8
vmovdqu xmm6, xmmword [rsp + 0x50]
vpmovzxdq xmm5, xmm5
vpsllq xmm5, xmm5, 0x30
vpxor xmm3, xmm3, xmm5
vmovdqu xmm5, xmmword [rsp + 0x40]
vpxor xmm1, xmm1, xmm3
vpmovzxdq xmm3, xmm13
vpxor xmm2, xmm1, xmm2
vpsllq xmm3, xmm3, 0x30
vpmovzxdq xmm1, xmm5
vmovups xmmword [rdx + 0x30], xmm2
vpmovzxdq xmm2, xmm6
vpsllq xmm1, xmm1, 0x28
vpsllq xmm2, xmm2, 0x20
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm12
vpsllq xmm2, xmm2, 0x38
vpxor xmm2, xmm2, xmm3
vpsrldq xmm3, xmm13, 8
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm7
vpmovzxdq xmm3, xmm3
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm6, 8
vmovdqu xmm6, xmmword [rsp + 0x10]
vmovups xmmword [rdx + 0x40], xmm1
vpsrldq xmm1, xmm5, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x20
vpsllq xmm3, xmm3, 0x30
vpmovzxdq xmm1, xmm1
vpsllq xmm1, xmm1, 0x28
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm12, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x38
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm3, xmm6
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm7, 8
vmovdqu xmm7, xmmword [rsp + 0x30]
vpmovzxdq xmm2, xmm2
vpsllq xmm3, xmm3, 0x30
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm9
vmovups xmmword [rdx + 0x50], xmm1
vpmovzxdq xmm1, xmm7
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm0
vpsllq xmm2, xmm2, 0x38
vpsrldq xmm0, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm0, xmm0
vpxor xmm1, xmm1, xmm2
vpsllq xmm0, xmm0, 0x38
vpmovzxdq xmm2, xmm4
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm9, 8
vmovups xmmword [rdx + 0x60], xmm1
vpsrldq xmm1, xmm7, 8
vpmovzxdq xmm2, xmm2
vpmovzxdq xmm1, xmm1
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm6, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x30
vpxor xmm0, xmm0, xmm2
vpxor xmm0, xmm1, xmm0
vpsrldq xmm1, xmm4, 8
vpmovzxdq xmm1, xmm1
vpxor xmm0, xmm0, xmm1
vmovdqu ymm1, ymmword [rdx + 0xa0]
vmovups xmmword [rdx + 0x70], xmm0
vmovdqu ymm4, ymmword [rdx + 0x80]
vmovdqu xmm3, xmmword [0x00685f90]
vmovdqu ymm0, ymmword [rdx + 0xe0]
vmovdqu ymm2, ymmword [rdx + 0xc0]
vpermq ymm3, ymm3, 0x44
nop dword [rax + rax]
movzx r9d, byte [rax]
movzx ebx, byte [rax + 4]
vpaddq ymm4, ymm4, ymm1
add rax, 0x10
movzx r8d, byte [rax - 0xe]
movzx r10d, byte [rax - 0xa]
vmovq xmm5, qword [rdx + rbx*8]
movzx ebx, byte [rax - 0xb]
vpinsrq xmm6, xmm5, qword [rdx + r10*8], 1
vmovq xmm5, qword [rdx + r9*8]
vpinsrq xmm5, xmm5, qword [rdx + r8*8], 1
movzx r9d, byte [rax - 0xf]
movzx r8d, byte [rax - 0xd]
movzx r10d, byte [rax - 9]
vinserti128 ymm5, ymm5, xmm6, 1
vpaddq ymm5, ymm5, ymm4
vmovq xmm4, qword [rdx + rbx*8]
vpinsrq xmm6, xmm4, qword [rdx + r10*8], 1
vpxor ymm0, ymm0, ymm5
vmovq xmm4, qword [rdx + r9*8]
movzx ebx, byte [rax - 6]
vpshufd ymm0, ymm0, 0xb1
movzx r9d, byte [rax - 2]
movzx r10d, byte [rax - 4]
vpaddq ymm2, ymm2, ymm0
vpinsrq xmm4, xmm4, qword [rdx + r8*8], 1
movzx r8d, byte [rax - 8]
vpxor ymm1, ymm2, ymm1
vpshufb ymm1, ymm1, ymm3
vinserti128 ymm4, ymm4, xmm6, 1
vpaddq ymm4, ymm4, ymm1
vpaddq ymm4, ymm4, ymm5
vmovq xmm5, qword [rdx + rbx*8]
movzx ebx, byte [rax - 5]
vpxor ymm0, ymm4, ymm0
vpermq ymm4, ymm4, 0x93
vpshuflw ymm0, ymm0, 0x39
vpshufhw ymm0, ymm0, 0x39
vpaddq ymm2, ymm2, ymm0
vpermq ymm0, ymm0, 0x4e
vpxor ymm1, ymm2, ymm1
vpermq ymm2, ymm2, 0x39
vpsllq ymm6, ymm1, 1
vpsrlq ymm1, ymm1, 0x3f
vpor ymm6, ymm1, ymm6
vpinsrq xmm1, xmm5, qword [rdx + r10*8], 1
movzx r10d, byte [rax - 3]
vmovq xmm5, qword [rdx + r9*8]
vpaddq ymm4, ymm4, ymm6
movzx r9d, byte [rax - 1]
vpinsrq xmm5, xmm5, qword [rdx + r8*8], 1
movzx r8d, byte [rax - 7]
vinserti128 ymm5, ymm5, xmm1, 1
vpaddq ymm5, ymm5, ymm4
vmovq xmm4, qword [rdx + rbx*8]
vpxor ymm0, ymm0, ymm5
vpshufd ymm0, ymm0, 0xb1
vpaddq ymm1, ymm2, ymm0
vpinsrq xmm2, xmm4, qword [rdx + r10*8], 1
vmovq xmm4, qword [rdx + r9*8]
vpinsrq xmm4, xmm4, qword [rdx + r8*8], 1
vpxor ymm6, ymm1, ymm6
vpshufb ymm6, ymm6, ymm3
vinserti128 ymm4, ymm4, xmm2, 1
vpaddq ymm4, ymm4, ymm6
vpaddq ymm4, ymm4, ymm5
vpxor ymm0, ymm4, ymm0
vpermq ymm4, ymm4, 0x39
vpshuflw ymm0, ymm0, 0x39
vpshufhw ymm0, ymm0, 0x39
vpaddq ymm2, ymm1, ymm0
vpermq ymm0, ymm0, 0x4e
vpxor ymm6, ymm2, ymm6
vpermq ymm2, ymm2, 0x93
vpsllq ymm1, ymm6, 1
vpsrlq ymm6, ymm6, 0x3f
vpor ymm1, ymm1, ymm6
cmp r11, rax
jne 0x452128
vmovdqu ymmword [rdx + 0xe0], ymm0
vpxor ymm0, ymm1, ymm0
vpxor ymm0, ymm0, ymmword [rcx + 0xa0]
vmovdqu ymmword [rdx + 0xc0], ymm2
vpxor ymm2, ymm4, ymm2
vpxor ymm2, ymm2, ymmword [rcx + 0x80]
vmovdqu ymmword [rdx + 0xa0], ymm1
vmovdqu ymmword [rdx + 0x80], ymm4
vmovdqu ymmword [rcx + 0x80], ymm2
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, 0x220
pop rbx
ret