Function at 0x451510
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 [0x00695f60]
vmovups xmmword [rdx + 0xc0], xmm7
vmovdqu xmm7, xmmword [0x00695f70]
vmovups xmmword [rdx + 0xd0], xmm7
vmovdqu xmm7, xmmword [0x00695f90]
vmovups xmmword [rdx + 0xf0], xmm7
vmovdqu xmm7, xmmword [0x00695f80]
vpxor xmm0, xmm7, xmmword [rcx + 0xc0]
vmovups xmmword [rdx + 0xe0], xmm0
test r9d, r9d
je 0x451615
not qword [rdx + 0xf0]
vmovdqu xmm3, xmmword [rcx + 0x10]
vmovdqu xmm7, xmmword [rcx]
lea rax, [0x00695ea0]
vmovdqu xmm1, xmmword [0x00695fa0]
vpand xmm0, xmm1, xmmword [rcx + 0x10]
lea r11, [rax + 0xc0]
vpand xmm8, xmm1, xmmword [rcx]
vmovdqu xmm6, xmmword [rcx + 0x20]
vpsrlw xmm7, xmm7, 8
vpand xmm5, xmm1, xmmword [rcx + 0x60]
vpackuswb xmm8, xmm8, xmm0
vpsrlw xmm0, xmm3, 8
vpand xmm3, xmm1, xmmword [rcx + 0x20]
vpackuswb xmm7, xmm7, xmm0
vpsrlw xmm2, xmm6, 8
vpand xmm0, xmm1, xmmword [rcx + 0x30]
vmovdqu xmm6, xmmword [rcx + 0x30]
vpand xmm10, xmm1, xmm8
vpsrlw xmm8, xmm8, 8
vpackuswb xmm3, xmm3, xmm0
vpsrlw xmm0, xmm6, 8
vpand xmm6, xmm1, xmmword [rcx + 0x40]
vpackuswb xmm0, xmm2, xmm0
vpand xmm2, xmm1, xmmword [rcx + 0x50]
vpackuswb xmm6, xmm6, xmm2
vmovdqu xmm2, xmmword [rcx + 0x40]
vpand xmm11, xmm1, xmm6
vpsrlw xmm6, xmm6, 8
vpsrlw xmm4, xmm2, 8
vmovdqu xmm2, xmmword [rcx + 0x50]
vpsrlw xmm2, xmm2, 8
vpackuswb xmm2, xmm4, xmm2
vpand xmm4, xmm1, xmmword [rcx + 0x70]
vpackuswb xmm5, xmm5, xmm4
vmovdqu xmm4, xmmword [rcx + 0x60]
vpsrlw xmm9, xmm4, 8
vmovdqu xmm4, xmmword [rcx + 0x70]
vpsrlw xmm4, xmm4, 8
vpackuswb xmm4, xmm9, xmm4
vpand xmm9, xmm1, xmm3
vpsrlw xmm3, xmm3, 8
vpackuswb xmm9, xmm10, xmm9
vpackuswb xmm3, xmm8, xmm3
vpand xmm8, xmm1, xmm5
vpand xmm10, xmm1, xmm9
vpsrlw xmm5, xmm5, 8
vpsrlw xmm9, xmm9, 8
vpackuswb xmm11, xmm11, xmm8
vpackuswb xmm6, xmm6, xmm5
vpand xmm8, xmm1, xmm7
vpand xmm5, xmm1, xmm0
vpsrlw xmm7, xmm7, 8
vpsrlw xmm0, xmm0, 8
vpackuswb xmm5, xmm8, xmm5
vpackuswb xmm0, xmm7, xmm0
vpand xmm8, xmm1, xmm2
vpand xmm7, xmm1, xmm4
vpsrlw xmm2, xmm2, 8
vpsrlw xmm4, xmm4, 8
vpackuswb xmm8, xmm8, xmm7
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
vpackuswb xmm9, xmm9, xmm11
vpackuswb xmm7, xmm7, xmm4
vpackuswb xmm5, xmm5, xmm8
vpand xmm4, xmm1, xmm6
vpand xmm8, xmm1, xmm3
vpsrlw xmm6, xmm6, 8
vpmovzxbw xmm12, xmm10
vpsrlw xmm3, xmm3, 8
vpackuswb xmm4, xmm8, xmm4
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
vpsllw xmm11, xmm11, 8
vpmovzxwd xmm8, xmm10
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
vpmovzxwd xmm8, xmm2
vpmovzxwd xmm14, xmm12
vpsrldq xmm2, xmm2, 8
vpsrldq xmm1, xmm1, 8
vpmovzxwd xmm10, xmm10
vpsrldq xmm11, xmm11, 8
vpmovzxwd xmm2, xmm2
vpmovzxbw xmm1, xmm1
vpsrldq xmm12, xmm12, 8
vpmovzxwd xmm11, xmm11
vpmovzxbw xmm6, xmm6
vpslld xmm10, xmm10, 0x10
vpslld xmm2, xmm2, 0x18
vpmovzxwd xmm12, xmm12
vpxor xmm10, xmm10, xmm11
vpxor xmm2, xmm2, xmm12
vpmovzxwd xmm11, xmm1
vpsrldq xmm7, xmm7, 8
vpsrldq xmm4, xmm4, 8
vpxor xmm2, xmm10, xmm2
vpmovzxbw xmm4, xmm4
vpmovzxwd xmm10, xmm6
vpmovzxbw xmm7, xmm7
vpslld xmm11, xmm11, 0x18
vpsllw xmm7, xmm7, 8
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
vmovups xmmword [rdx + 0x20], xmm8
vpmovzxdq xmm1, xmm1
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
vmovdqu xmm7, xmmword [rsp + 0x60]
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
vmovdqu xmm3, xmmword [0x00695fb0]
vpxor xmm1, xmm1, xmm2
vpsllq xmm0, xmm0, 0x38
vpmovzxdq xmm2, xmm4
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm9, 8
vpermq ymm3, ymm3, 0x44
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
vmovdqu ymm2, ymmword [rdx + 0xc0]
vpxor xmm0, xmm1, xmm0
vpsrldq xmm1, xmm4, 8
vmovdqu ymm4, ymmword [rdx + 0x80]
vpmovzxdq xmm1, xmm1
vpxor xmm0, xmm0, xmm1
vmovdqu ymm1, ymmword [rdx + 0xa0]
vmovups xmmword [rdx + 0x70], xmm0
vmovdqu ymm0, ymmword [rdx + 0xe0]
nop word cs:[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
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 ymm5, ymm1, 1
vpsrlq ymm1, ymm1, 0x3f
vpor ymm1, ymm1, ymm5
vmovq xmm5, qword [rdx + rbx*8]
vpinsrq xmm6, xmm5, qword [rdx + r10*8], 1
vmovq xmm5, qword [rdx + r9*8]
vpinsrq xmm5, xmm5, qword [rdx + r8*8], 1
vpaddq ymm4, ymm4, ymm1
movzx r9d, byte [rax - 1]
movzx r8d, byte [rax - 7]
vinserti128 ymm5, ymm5, xmm6, 1
movzx ebx, byte [rax - 5]
movzx r10d, byte [rax - 3]
vpaddq ymm5, ymm5, ymm4
vpxor ymm0, ymm0, ymm5
vmovq xmm4, qword [rdx + rbx*8]
vpinsrq xmm6, xmm4, qword [rdx + r10*8], 1
vpshufd ymm0, ymm0, 0xb1
vmovq xmm4, qword [rdx + r9*8]
vpinsrq xmm4, xmm4, qword [rdx + r8*8], 1
vpaddq ymm2, ymm2, ymm0
vpxor ymm1, ymm2, ymm1
vinserti128 ymm4, ymm4, xmm6, 1
vpshufb ymm1, ymm1, ymm3
vpaddq ymm4, ymm4, ymm1
vpaddq ymm4, ymm4, ymm5
vpxor ymm0, ymm4, ymm0
vpermq ymm4, ymm4, 0x39
vpshuflw ymm0, ymm0, 0x39
vpshufhw ymm0, ymm0, 0x39
vpaddq ymm2, ymm2, ymm0
vpermq ymm0, ymm0, 0x4e
vpxor ymm1, ymm2, ymm1
vpermq ymm2, ymm2, 0x93
vpsllq ymm5, ymm1, 1
vpsrlq ymm1, ymm1, 0x3f
vpor ymm1, ymm5, ymm1
cmp r11, rax
jne 0x451c90
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