Function at 0x451a70
Capabilities:
Hash data using sha512

Disassembly:
push rbx
sub rsp, 0x210
vmovups xmmword [rsp + 0x170], xmm6
vmovups xmmword [rsp + 0x180], xmm7
vmovups xmmword [rsp + 0x190], xmm8
vmovups xmmword [rsp + 0x1a0], xmm9
vmovups xmmword [rsp + 0x1b0], xmm10
vmovups xmmword [rsp + 0x1c0], xmm11
vmovups xmmword [rsp + 0x1d0], xmm12
vmovups xmmword [rsp + 0x1e0], xmm13
vmovups xmmword [rsp + 0x1f0], xmm14
vmovups xmmword [rsp + 0x200], xmm15
vmovups xmm3, xmmword [rcx + 0x80]
mov r9d, edx
lea rdx, [rsp + 0x7f]
and rdx, 0xffffffffffffffe0
vmovups xmmword [rdx + 0x80], xmm3
vmovups xmm3, xmmword [rcx + 0x90]
vmovups xmmword [rdx + 0x90], xmm3
vmovups xmm3, xmmword [rcx + 0xa0]
vmovups xmmword [rdx + 0xa0], xmm3
vmovups xmm3, xmmword [rcx + 0xb0]
vmovups xmmword [rdx + 0xb0], xmm3
vmovups xmm3, xmmword [0x006bae80]
vmovups xmmword [rdx + 0xc0], xmm3
vmovups xmm3, xmmword [0x006bae90]
vmovups xmmword [rdx + 0xd0], xmm3
vmovups xmm3, xmmword [0x006baeb0]
vmovups xmmword [rdx + 0xf0], xmm3
vmovups xmm3, xmmword [0x006baea0]
vxorps xmm0, xmm3, xmmword [rcx + 0xc0]
vmovups xmmword [rdx + 0xe0], xmm0
test r9d, r9d
je 0x451b72
not qword [rdx + 0xf0]
vmovups xmm3, xmmword [rcx]
vmovups xmm1, xmmword [0x006baec0]
lea rax, [0x006badc0]
vandps xmm0, xmm1, xmmword [rcx + 0x10]
lea r11, [rax + 0xc0]
vandps xmm9, xmm1, xmmword [rcx]
vandps xmm5, xmm1, xmmword [rcx + 0x20]
vandps xmm4, xmm1, xmmword [rcx + 0x40]
vandps xmm6, xmm1, xmmword [rcx + 0x60]
vpsrlw xmm7, xmm3, 8
vmovups xmm3, xmmword [rcx + 0x10]
vpackuswb xmm9, xmm9, xmm0
vandps xmm10, xmm1, xmm9
vpsrlw xmm9, xmm9, 8
vpsrlw xmm0, xmm3, 8
vmovups xmm3, xmmword [rcx + 0x20]
vpackuswb xmm7, xmm7, xmm0
vandps xmm0, xmm1, xmmword [rcx + 0x30]
vpsrlw xmm2, xmm3, 8
vmovups xmm3, xmmword [rcx + 0x30]
vpackuswb xmm5, xmm5, xmm0
vpsrlw xmm0, xmm3, 8
vpackuswb xmm0, xmm2, xmm0
vandps xmm2, xmm1, xmmword [rcx + 0x50]
vmovups xmm3, xmmword [rcx + 0x40]
vpackuswb xmm4, xmm4, xmm2
vmovups xmm2, xmmword [rcx + 0x50]
vpsrlw xmm3, xmm3, 8
vpsrlw xmm2, xmm2, 8
vpackuswb xmm2, xmm3, xmm2
vandps xmm3, xmm1, xmmword [rcx + 0x70]
vandps xmm11, xmm1, xmm2
vpsrlw xmm2, xmm2, 8
vpackuswb xmm6, xmm6, xmm3
vmovups xmm3, xmmword [rcx + 0x60]
vpsrlw xmm8, xmm3, 8
vmovups xmm3, xmmword [rcx + 0x70]
vpsrlw xmm3, xmm3, 8
vpackuswb xmm3, xmm8, xmm3
vandps xmm8, xmm1, xmm5
vpsrlw xmm5, xmm5, 8
vpackuswb xmm8, xmm10, xmm8
vpackuswb xmm5, xmm9, xmm5
vandps xmm10, xmm1, xmm4
vandps xmm9, xmm1, xmm6
vpackuswb xmm9, xmm10, xmm9
vpsrlw xmm6, xmm6, 8
vandps xmm10, xmm1, xmm7
vpsrlw xmm4, xmm4, 8
vpsrlw xmm7, xmm7, 8
vpackuswb xmm4, xmm4, xmm6
vandps xmm6, xmm1, xmm0
vpsrlw xmm0, xmm0, 8
vpackuswb xmm0, xmm7, xmm0
vandps xmm7, xmm1, xmm3
vpackuswb xmm6, xmm10, xmm6
vpsrlw xmm3, xmm3, 8
vpackuswb xmm11, xmm11, xmm7
vpackuswb xmm2, xmm2, xmm3
vandps xmm10, xmm1, xmm8
vandps xmm3, xmm1, xmm9
vpackuswb xmm10, xmm10, xmm3
vpsrlw xmm9, xmm9, 8
vandps xmm3, xmm1, xmm11
vpsrlw xmm8, xmm8, 8
vpackuswb xmm8, xmm8, xmm9
vandps xmm9, xmm1, xmm6
vandps xmm7, xmm1, xmm5
vpmovzxbw xmm12, xmm10
vpackuswb xmm9, xmm9, xmm3
vandps xmm3, xmm1, xmm4
vpsrlw xmm11, xmm11, 8
vpsrlw xmm4, xmm4, 8
vpackuswb xmm3, xmm7, xmm3
vandps xmm7, xmm1, xmm0
vandps xmm1, xmm1, xmm2
vpmovzxbw xmm13, xmm9
vpackuswb xmm1, xmm7, xmm1
vpsrlw xmm2, xmm2, 8
vpsrlw xmm0, xmm0, 8
vpackuswb xmm0, xmm0, xmm2
vpmovzxbw xmm2, xmm3
vpsllw xmm13, xmm13, 8
vpsrlw xmm6, xmm6, 8
vpsrlw xmm5, xmm5, 8
vpackuswb xmm6, xmm6, xmm11
vpackuswb xmm5, xmm5, xmm4
vpmovzxbw xmm11, xmm1
vpmovzxwd xmm4, xmm2
vpsrldq xmm1, xmm1, 8
vpmovzxbw xmm7, xmm1
vpmovzxwd xmm1, xmm13
vpslld xmm4, xmm4, 0x10
vpsrldq xmm2, xmm2, 8
vxorps xmm4, xmm4, xmm1
vpmovzxwd xmm2, xmm2
vpmovzxwd xmm1, xmm12
vpsrldq xmm13, xmm13, 8
vpmovzxwd xmm13, xmm13
vxorps xmm4, xmm4, xmm1
vpslld xmm2, xmm2, 0x10
vpmovzxwd xmm1, xmm11
vxorps xmm2, xmm2, xmm13
vpsrldq xmm12, xmm12, 8
vpmovzxwd xmm12, xmm12
vxorps xmm2, xmm2, xmm12
vpslld xmm1, xmm1, 0x18
vpsrldq xmm9, xmm9, 8
vxorps xmm4, xmm4, xmm1
vpmovzxbw xmm9, xmm9
vpsrldq xmm1, xmm11, 8
vpsrldq xmm3, xmm3, 8
vpmovzxwd xmm1, xmm1
vpmovzxbw xmm3, xmm3
vpsllw xmm9, xmm9, 8
vpslld xmm1, xmm1, 0x18
vpmovzxwd xmm11, xmm9
vxorps xmm2, xmm2, xmm1
vpsrldq xmm10, xmm10, 8
vpmovzxwd xmm1, xmm3
vpmovzxbw xmm10, xmm10
vpslld xmm1, xmm1, 0x10
vxorps xmm1, xmm1, xmm11
vpmovzxwd xmm11, xmm10
vpsrldq xmm9, xmm9, 8
vxorps xmm1, xmm1, xmm11
vpmovzxwd xmm11, xmm7
vpmovzxwd xmm9, xmm9
vpsrldq xmm10, xmm10, 8
vpslld xmm11, xmm11, 0x18
vxorps xmm11, xmm1, xmm11
vpsrldq xmm1, xmm3, 8
vpmovzxwd xmm1, xmm1
vpmovzxwd xmm10, xmm10
vpslld xmm1, xmm1, 0x10
vxorps xmm1, xmm1, xmm9
vpsrldq xmm3, xmm7, 8
vxorps xmm1, xmm1, xmm10
vpmovzxbw xmm7, xmm8
vpmovzxwd xmm3, xmm3
vpsrldq xmm8, xmm8, 8
vpmovzxbw xmm8, xmm8
vpslld xmm3, xmm3, 0x18
vxorps xmm3, xmm1, xmm3
vpmovzxwd xmm10, xmm7
vpmovzxwd xmm12, xmm8
vpsrldq xmm8, xmm8, 8
vpmovzxwd xmm1, xmm8
vpsrldq xmm7, xmm7, 8
vmovups xmmword [rsp + 0x50], xmm1
vpmovzxbw xmm1, xmm6
vpsrldq xmm6, xmm6, 8
vpmovzxbw xmm6, xmm6
vpmovzxwd xmm15, xmm6
vpsrldq xmm6, xmm6, 8
vpmovzxwd xmm14, xmm6
vpmovzxbw xmm6, xmm5
vpsrldq xmm5, xmm5, 8
vpmovzxbw xmm5, xmm5
vpmovzxwd xmm13, xmm1
vmovups xmmword [rsp + 0x40], xmm15
vpmovzxwd xmm8, xmm5
vpsrldq xmm5, xmm5, 8
vpmovzxwd xmm5, xmm5
vpmovzxwd xmm9, xmm6
vmovups xmmword [rsp + 0x10], xmm5
vpmovzxbw xmm5, xmm0
vpsrldq xmm0, xmm0, 8
vpmovzxbw xmm0, xmm0
vpmovzxwd xmm15, xmm0
vmovups xmmword [rsp + 0x30], xmm14
vpmovzxdq xmm14, xmm10
vpsrldq xmm10, xmm10, 8
vmovups xmmword [rsp], xmm15
vpmovzxdq xmm10, xmm10
vpmovzxdq xmm15, xmm13
vpsrldq xmm13, xmm13, 8
vpmovzxdq xmm13, xmm13
vmovups xmmword [rsp + 0x20], xmm8
vpsllq xmm15, xmm15, 0x28
vpmovzxwd xmm8, xmm5
vpsllq xmm10, xmm10, 0x20
vpsllq xmm14, xmm14, 0x20
vpsllq xmm13, xmm13, 0x28
vxorps xmm14, xmm15, xmm14
vxorps xmm13, xmm13, xmm10
vpmovzxdq xmm15, xmm9
vpsrldq xmm10, xmm9, 8
vpmovzxdq xmm10, xmm10
vpsllq xmm10, xmm10, 0x30
vpsllq xmm15, xmm15, 0x30
vxorps xmm13, xmm13, xmm10
vxorps xmm15, xmm14, xmm15
vpsrldq xmm10, xmm8, 8
vpmovzxdq xmm14, xmm8
vpmovzxdq xmm10, xmm10
vpmovzxwd xmm7, xmm7
vpsrldq xmm1, xmm1, 8
vpsllq xmm14, xmm14, 0x38
vpmovzxwd xmm1, xmm1
vxorps xmm14, xmm15, xmm14
vpsllq xmm10, xmm10, 0x38
vpmovzxdq xmm15, xmm4
vxorps xmm10, xmm13, xmm10
vpsrldq xmm4, xmm4, 8
vpmovzxdq xmm4, xmm4
vpmovzxdq xmm8, xmm1
vpsrldq xmm6, xmm6, 8
vpmovzxwd xmm6, xmm6
vxorps xmm10, xmm10, xmm4
vpmovzxdq xmm4, xmm7
vpsllq xmm8, xmm8, 0x28
vpsrldq xmm5, xmm5, 8
vpsllq xmm4, xmm4, 0x20
vpmovzxwd xmm5, xmm5
vxorps xmm4, xmm8, xmm4
vpmovzxdq xmm8, xmm6
vpsllq xmm8, xmm8, 0x30
vxorps xmm8, xmm4, xmm8
vpmovzxdq xmm4, xmm5
vpsrldq xmm1, xmm1, 8
vpsllq xmm4, xmm4, 0x38
vxorps xmm4, xmm8, xmm4
vpmovzxdq xmm8, xmm2
vpmovzxdq xmm1, xmm1
vxorps xmm4, xmm4, xmm8
vpsrldq xmm2, xmm2, 8
vpmovzxdq xmm2, xmm2
vxorps xmm14, xmm14, xmm15
vmovups xmmword [rdx + 0x20], xmm4
vpsllq xmm4, xmm1, 0x28
vpsrldq xmm1, xmm7, 8
vpmovzxdq xmm1, xmm1
vpsllq xmm1, xmm1, 0x20
vxorps xmm1, xmm4, xmm1
vpsrldq xmm4, xmm6, 8
vpmovzxdq xmm4, xmm4
vpsllq xmm4, xmm4, 0x30
vxorps xmm1, xmm1, xmm4
vpsrldq xmm4, xmm5, 8
vpmovzxdq xmm4, xmm4
vmovups xmm6, xmmword [rsp + 0x40]
vpsllq xmm4, xmm4, 0x38
vxorps xmm4, xmm1, xmm4
vmovups xmm5, xmmword [rsp + 0x20]
vxorps xmm4, xmm4, xmm2
vpmovzxdq xmm2, xmm12
vpsrldq xmm0, xmm0, 8
vmovups xmmword [rdx + 0x30], xmm4
vmovups xmm4, xmmword [rsp]
vpsllq xmm2, xmm2, 0x20
vmovups xmmword [rdx], xmm14
vmovups xmmword [rdx + 0x10], xmm10
vpmovzxwd xmm0, xmm0
vpmovzxdq xmm1, xmm6
vpsllq xmm1, xmm1, 0x28
vxorps xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm5
vpsllq xmm2, xmm2, 0x30
vxorps xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm4
vpsllq xmm2, xmm2, 0x38
vxorps xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm11
vxorps xmm1, xmm1, xmm2
vpsrldq xmm2, xmm12, 8
vpmovzxdq xmm2, xmm2
vmovups xmmword [rdx + 0x40], xmm1
vpsrldq xmm1, xmm6, 8
vpmovzxdq xmm1, xmm1
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vxorps xmm1, xmm1, xmm2
vpsrldq xmm2, xmm5, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x30
vxorps xmm1, xmm1, xmm2
vpsrldq xmm2, xmm4, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x38
vxorps xmm1, xmm1, xmm2
vpsrldq xmm2, xmm11, 8
vpmovzxdq xmm2, xmm2
vxorps xmm1, xmm1, xmm2
vmovups xmmword [rdx + 0x50], xmm1
vmovups xmm6, xmmword [rsp + 0x30]
vmovups xmm7, xmmword [rsp + 0x50]
vmovups xmm5, xmmword [rsp + 0x10]
vpmovzxdq xmm1, xmm6
vpmovzxdq xmm2, xmm7
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vxorps xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm5
vpsllq xmm2, xmm2, 0x30
vxorps xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm0
vpsrldq xmm0, xmm0, 8
vpsllq xmm2, xmm2, 0x38
vxorps xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm3
vpmovzxdq xmm0, xmm0
vxorps xmm1, xmm1, xmm2
vpsrldq xmm2, xmm7, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm0, xmm0, 0x38
vmovups xmmword [rdx + 0x60], xmm1
vpsrldq xmm1, xmm6, 8
vpmovzxdq xmm1, xmm1
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vxorps xmm1, xmm1, xmm2
vpsrldq xmm2, xmm5, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x30
vxorps xmm1, xmm1, xmm2
vmovups xmm2, xmmword [0x006baee0]
vmovdqu ymm5, ymmword [rdx + 0xa0]
vxorps xmm0, xmm1, xmm0
vpsrldq xmm1, xmm3, 8
vpmovzxdq xmm1, xmm1
vmovups xmm3, xmmword [0x006baed0]
vxorps xmm0, xmm0, xmm1
vmovdqu ymm6, ymmword [rdx + 0xc0]
vmovdqu ymm1, ymmword [rdx + 0x80]
vmovups xmmword [rdx + 0x70], xmm0
vmovdqu ymm0, ymmword [rdx + 0xe0]
vpermq ymm2, ymm2, 0x44
vpermq ymm3, ymm3, 0x44
nop word cs:[rax + rax]
movzx r9d, byte [rax]
movzx r8d, byte [rax + 2]
vpaddq ymm1, ymm1, ymm5
add rax, 0x10
movzx ebx, byte [rax - 0xc]
movzx r10d, byte [rax - 0xa]
vmovq xmm4, qword [rdx + rbx*8]
vpinsrq xmm7, xmm4, qword [rdx + r10*8], 1
vmovq xmm4, qword [rdx + r9*8]
vpinsrq xmm4, xmm4, qword [rdx + r8*8], 1
movzx r9d, byte [rax - 0xf]
movzx r8d, byte [rax - 0xd]
movzx ebx, byte [rax - 0xb]
movzx r10d, byte [rax - 9]
vinserti128 ymm4, ymm4, xmm7, 1
vpaddq ymm4, ymm4, ymm1
vmovq xmm1, qword [rdx + rbx*8]
vpinsrq xmm7, xmm1, qword [rdx + r10*8], 1
vmovq xmm1, qword [rdx + r9*8]
vpinsrq xmm1, xmm1, qword [rdx + r8*8], 1
vpxor ymm0, ymm0, ymm4
movzx r9d, byte [rax - 2]
vpshufd ymm0, ymm0, 0xb1
movzx r8d, byte [rax - 8]
movzx ebx, byte [rax - 6]
vpaddq ymm6, ymm6, ymm0
movzx r10d, byte [rax - 4]
vpxor ymm5, ymm6, ymm5
vpshufb ymm5, ymm5, ymm3
vinserti128 ymm1, ymm1, xmm7, 1
vpaddq ymm1, ymm1, ymm5
vpaddq ymm1, ymm1, ymm4
vpxor ymm0, ymm1, ymm0
vpermq ymm1, ymm1, 0x93
vpshufb ymm0, ymm0, ymm2
vpaddq ymm6, ymm6, ymm0
vpermq ymm0, ymm0, 0x4e
vpxor ymm5, ymm6, ymm5
vpermq ymm6, ymm6, 0x39
vpsllq ymm4, ymm5, 1
vpsrlq ymm5, ymm5, 0x3f
vpor ymm4, ymm5, ymm4
vmovq xmm5, qword [rdx + rbx*8]
vpinsrq xmm7, xmm5, qword [rdx + r10*8], 1
vmovq xmm5, qword [rdx + r9*8]
vpinsrq xmm5, xmm5, qword [rdx + r8*8], 1
vpaddq ymm1, ymm1, ymm4
movzx r9d, byte [rax - 1]
movzx r8d, byte [rax - 7]
movzx ebx, byte [rax - 5]
movzx r10d, byte [rax - 3]
vinserti128 ymm5, ymm5, xmm7, 1
vpaddq ymm5, ymm5, ymm1
vmovq xmm1, qword [rdx + rbx*8]
vpinsrq xmm7, xmm1, qword [rdx + r10*8], 1
vmovq xmm1, qword [rdx + r9*8]
vpinsrq xmm1, xmm1, qword [rdx + r8*8], 1
vpxor ymm0, ymm0, ymm5
vpshufd ymm0, ymm0, 0xb1
vpaddq ymm6, ymm6, ymm0
vpxor ymm4, ymm6, ymm4
vpshufb ymm4, ymm4, ymm3
vinserti128 ymm1, ymm1, xmm7, 1
vpaddq ymm1, ymm1, ymm4
vpaddq ymm1, ymm1, ymm5
vpxor ymm0, ymm1, ymm0
vpermq ymm1, ymm1, 0x39
vpshufb ymm0, ymm0, ymm2
vpaddq ymm6, ymm6, ymm0
vpermq ymm0, ymm0, 0x4e
vpxor ymm4, ymm6, ymm4
vpermq ymm6, ymm6, 0x93
vpsllq ymm5, ymm4, 1
vpsrlq ymm4, ymm4, 0x3f
vpor ymm5, ymm5, ymm4
cmp rax, r11
jne 0x4521f0
vmovdqu ymmword [rdx + 0x80], ymm1
vxorps xmm1, xmm1, xmm6
vxorps xmm1, xmm1, xmmword [rcx + 0x80]
vmovdqu ymmword [rdx + 0xe0], ymm0
vxorps xmm0, xmm5, xmm0
vmovdqu ymmword [rdx + 0xa0], ymm5
vmovdqu ymmword [rdx + 0xc0], ymm6
vxorps xmm0, xmm0, xmmword [rcx + 0xa0]
vmovups xmm3, xmmword [rdx + 0x90]
vmovups xmmword [rcx + 0x80], xmm1
vxorps xmm1, xmm3, xmmword [rdx + 0xd0]
vmovups xmm3, xmmword [rdx + 0xb0]
vxorps xmm1, xmm1, xmmword [rcx + 0x90]
vmovups xmmword [rcx + 0xa0], xmm0
vxorps xmm0, xmm3, xmmword [rdx + 0xf0]
vxorps xmm0, xmm0, xmmword [rcx + 0xb0]
vmovups xmmword [rcx + 0x90], xmm1
vmovups xmmword [rcx + 0xb0], xmm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0x170]
vmovups xmm7, xmmword [rsp + 0x180]
vmovups xmm8, xmmword [rsp + 0x190]
vmovups xmm9, xmmword [rsp + 0x1a0]
vmovups xmm10, xmmword [rsp + 0x1b0]
vmovups xmm11, xmmword [rsp + 0x1c0]
vmovups xmm12, xmmword [rsp + 0x1d0]
vmovups xmm13, xmmword [rsp + 0x1e0]
vmovups xmm14, xmmword [rsp + 0x1f0]
vmovups xmm15, xmmword [rsp + 0x200]
add rsp, 0x210
pop rbx
ret