Function at 0x450c20
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 xmm3, xmmword [rcx + 0x80]
mov r9d, edx
lea rdx, [rsp + 0x8f]
and rdx, 0xffffffffffffffe0
vmovups xmmword [rdx + 0x80], xmm3
vmovdqu xmm3, xmmword [rcx + 0x90]
vmovups xmmword [rdx + 0x90], xmm3
vmovdqu xmm3, xmmword [rcx + 0xa0]
vmovups xmmword [rdx + 0xa0], xmm3
vmovdqu xmm3, xmmword [rcx + 0xb0]
vmovups xmmword [rdx + 0xb0], xmm3
vmovdqu xmm3, xmmword [0x006c6020]
vmovups xmmword [rdx + 0xc0], xmm3
vmovdqu xmm3, xmmword [0x006c6030]
vmovups xmmword [rdx + 0xd0], xmm3
vmovdqu xmm3, xmmword [0x006c6050]
vmovups xmmword [rdx + 0xf0], xmm3
vmovdqu xmm3, xmmword [0x006c6040]
vpxor xmm0, xmm3, xmmword [rcx + 0xc0]
vmovups xmmword [rdx + 0xe0], xmm0
test r9d, r9d
je 0x450d25
not qword [rdx + 0xf0]
vmovdqu xmm3, xmmword [rcx]
vmovdqu xmm1, xmmword [0x006c6060]
lea rax, [0x006c5f60]
vpand xmm0, xmm1, xmmword [rcx + 0x10]
vpand xmm8, xmm1, xmmword [rcx]
lea r11, [rax + 0xc0]
vpsrlw xmm7, xmm3, 8
vmovdqu xmm3, xmmword [rcx + 0x10]
vmovdqu xmm6, xmmword [rcx + 0x30]
vpackuswb xmm8, xmm8, xmm0
vmovdqu xmm2, xmmword [rcx + 0x20]
vpand xmm5, xmm1, xmmword [rcx + 0x60]
vpsrlw xmm0, xmm3, 8
vpand xmm3, xmm1, xmmword [rcx + 0x20]
vpand xmm10, xmm1, xmm8
vpsrlw xmm2, xmm2, 8
vpsrlw xmm8, xmm8, 8
vpackuswb xmm7, xmm7, xmm0
vpand xmm0, xmm1, xmmword [rcx + 0x30]
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 xmm1, xmm9
vpxor xmm8, xmm8, xmm14
vmovups xmmword [rsp + 0x50], xmm1
vpmovzxbw xmm1, xmm5
vpsrldq xmm5, xmm5, 8
vpxor xmm8, xmm13, xmm8
vpslld xmm10, xmm10, 0x10
vpsrldq xmm9, xmm9, 8
vpmovzxbw xmm6, xmm5
vpmovzxwd xmm13, xmm6
vpsrldq xmm6, xmm6, 8
vpxor xmm10, xmm10, xmm12
vpmovzxwd xmm14, xmm6
vpmovzxbw xmm6, xmm3
vpxor xmm15, xmm11, xmm10
vmovups xmmword [rsp + 0x40], xmm13
vpsrldq xmm3, xmm3, 8
vpmovzxwd xmm5, xmm1
vpmovzxwd xmm12, xmm7
vmovups xmmword [rsp + 0x60], xmm15
vpmovzxbw xmm3, xmm3
vmovups xmmword [rsp + 0x30], xmm14
vpmovzxdq xmm14, xmm5
vpmovzxwd xmm10, xmm6
vpmovzxwd xmm11, xmm3
vpsrldq xmm3, xmm3, 8
vpmovzxwd xmm9, xmm9
vpmovzxwd xmm3, xmm3
vmovups xmmword [rsp + 0x20], xmm11
vpsrldq xmm5, xmm5, 8
vmovups xmmword [rsp + 0x10], xmm3
vpmovzxbw xmm3, xmm0
vpsrldq xmm0, xmm0, 8
vpmovzxdq xmm5, xmm5
vpmovzxbw xmm0, xmm0
vpsrldq xmm1, xmm1, 8
vpmovzxwd xmm13, xmm3
vpmovzxwd xmm15, xmm0
vpsllq xmm5, xmm5, 0x28
vpmovzxwd xmm1, xmm1
vmovups xmmword [rsp], xmm15
vpsllq xmm15, xmm14, 0x28
vpmovzxdq xmm14, xmm12
vpsllq xmm11, xmm14, 0x20
vpsrldq xmm7, xmm7, 8
vpxor xmm14, xmm15, xmm11
vpmovzxdq xmm11, xmm13
vpmovzxdq xmm15, xmm10
vpsllq xmm11, xmm11, 0x38
vpsllq xmm15, xmm15, 0x30
vpmovzxwd xmm7, xmm7
vpsrldq xmm10, xmm10, 8
vpsrldq xmm6, xmm6, 8
vpxor xmm11, xmm11, xmm15
vpxor xmm14, xmm14, xmm11
vpmovzxdq xmm11, xmm8
vpmovzxdq xmm10, xmm10
vpxor xmm14, xmm14, xmm11
vpsrldq xmm11, xmm13, 8
vpmovzxwd xmm6, xmm6
vmovdqu xmm13, xmmword [rsp + 0x20]
vpmovzxdq xmm11, xmm11
vpsllq xmm10, xmm10, 0x30
vmovups xmmword [rdx], xmm14
vpsllq xmm11, xmm11, 0x38
vpsrldq xmm8, xmm8, 8
vpsrldq xmm3, xmm3, 8
vpsrldq xmm0, xmm0, 8
vpxor xmm11, xmm11, xmm10
vpsrldq xmm10, xmm12, 8
vpmovzxwd xmm3, xmm3
vmovdqu xmm12, xmmword [rsp]
vpmovzxwd xmm0, xmm0
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 + 0x50]
vpmovzxdq xmm1, xmm1
vmovups xmmword [rdx + 0x20], xmm8
vpsllq xmm1, xmm1, 0x20
vpxor xmm1, xmm5, xmm1
vpsrldq xmm5, xmm6, 8
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, xmm7
vpsllq xmm1, xmm1, 0x28
vmovdqu xmm6, 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, xmm6
vpmovzxdq xmm3, xmm3
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm7, 8
vmovdqu xmm7, xmmword [rsp + 0x10]
vmovups xmmword [rdx + 0x40], xmm1
vpsrldq xmm1, xmm5, 8
vpmovzxdq xmm2, xmm2
vmovdqu ymm5, ymmword [rdx + 0xa0]
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, xmm7
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm6, 8
vmovdqu xmm6, xmmword [rsp + 0x30]
vpmovzxdq xmm2, xmm2
vpsllq xmm3, xmm3, 0x30
vpxor xmm1, xmm1, xmm2
vpmovzxdq xmm2, xmm9
vmovups xmmword [rdx + 0x50], xmm1
vpmovzxdq xmm1, xmm6
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 [0x006c6070]
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, xmm6, 8
vpmovzxdq xmm2, xmm2
vmovdqu ymm6, ymmword [rdx + 0xc0]
vpmovzxdq xmm1, xmm1
vpsllq xmm2, xmm2, 0x20
vpsllq xmm1, xmm1, 0x28
vpxor xmm1, xmm1, xmm2
vpsrldq xmm2, xmm7, 8
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x30
vpxor xmm0, xmm0, xmm2
vmovdqu xmm2, xmmword [0x006c6080]
vpxor xmm0, xmm1, xmm0
vpsrldq xmm1, xmm4, 8
vpmovzxdq xmm1, xmm1
vpermq ymm2, ymm2, 0x44
vpxor xmm0, xmm0, xmm1
vmovdqu ymm1, ymmword [rdx + 0x80]
vmovups xmmword [rdx + 0x70], xmm0
vmovdqu ymm0, ymmword [rdx + 0xe0]
nop dword [rax]
movzx r9d, byte [rax]
movzx ebx, byte [rax + 4]
vpaddq ymm1, ymm1, ymm5
add rax, 0x10
movzx r8d, byte [rax - 0xe]
movzx r10d, byte [rax - 0xa]
vmovq xmm7, qword [rdx + rbx*8]
vmovq xmm4, qword [rdx + r9*8]
vpinsrq xmm7, xmm7, qword [rdx + r10*8], 1
vpinsrq xmm4, xmm4, qword [rdx + r8*8], 1
movzx r9d, byte [rax - 0xf]
movzx r8d, byte [rax - 0xd]
vinserti128 ymm7, ymm4, xmm7, 1
movzx ebx, byte [rax - 0xb]
movzx r10d, byte [rax - 9]
vpaddq ymm7, ymm7, ymm1
vpxor ymm0, ymm0, ymm7
vmovq xmm4, qword [rdx + rbx*8]
vpinsrq xmm1, xmm4, qword [rdx + r10*8], 1
vpshufd ymm0, ymm0, 0xb1
vmovq xmm4, qword [rdx + r9*8]
movzx ebx, byte [rax - 6]
vpinsrq xmm4, xmm4, qword [rdx + r8*8], 1
vpaddq ymm6, ymm6, ymm0
movzx r9d, byte [rax - 2]
vpxor ymm5, ymm6, ymm5
movzx r8d, byte [rax - 8]
movzx r10d, byte [rax - 4]
vpshufb ymm5, ymm5, ymm3
vinserti128 ymm1, ymm4, xmm1, 1
vpaddq ymm1, ymm1, ymm5
vpaddq ymm1, ymm1, ymm7
vmovq xmm7, qword [rdx + rbx*8]
movzx ebx, byte [rax - 5]
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 ymm5, ymm5, ymm4
vpinsrq xmm4, xmm7, qword [rdx + r10*8], 1
movzx r10d, byte [rax - 3]
vmovq xmm7, qword [rdx + r9*8]
vpaddq ymm1, ymm1, ymm5
movzx r9d, byte [rax - 1]
vpinsrq xmm7, xmm7, qword [rdx + r8*8], 1
movzx r8d, byte [rax - 7]
vinserti128 ymm7, ymm7, xmm4, 1
vpaddq ymm7, ymm7, ymm1
vmovq xmm1, qword [rdx + rbx*8]
vpinsrq xmm4, xmm1, qword [rdx + r10*8], 1
vpxor ymm0, ymm0, ymm7
vmovq xmm1, qword [rdx + r9*8]
vpinsrq xmm1, xmm1, qword [rdx + r8*8], 1
vpshufd ymm0, ymm0, 0xb1
vpaddq ymm6, ymm6, ymm0
vinserti128 ymm1, ymm1, xmm4, 1
vpxor ymm5, ymm6, ymm5
vpshufb ymm5, ymm5, ymm3
vpaddq ymm1, ymm1, ymm5
vpaddq ymm1, ymm1, ymm7
vpxor ymm0, ymm1, ymm0
vpermq ymm1, ymm1, 0x39
vpshufb ymm0, ymm0, ymm2
vpaddq ymm6, ymm6, ymm0
vpermq ymm0, ymm0, 0x4e
vpxor ymm5, ymm6, ymm5
vpermq ymm6, ymm6, 0x93
vpsllq ymm4, ymm5, 1
vpsrlq ymm5, ymm5, 0x3f
vpor ymm5, ymm4, ymm5
cmp r11, rax
jne 0x4513a8
vmovdqu ymmword [rdx + 0xa0], ymm5
vpxor ymm5, ymm5, ymm0
vpxor ymm5, ymm5, ymmword [rcx + 0xa0]
vmovdqu ymmword [rdx + 0x80], ymm1
vpxor ymm1, ymm1, ymm6
vpxor ymm1, ymm1, ymmword [rcx + 0x80]
vmovdqu ymmword [rdx + 0xe0], ymm0
vmovdqu ymmword [rdx + 0xc0], ymm6
vmovdqu ymmword [rcx + 0x80], ymm1
vmovdqu ymmword [rcx + 0xa0], ymm5
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