Function at 0x1400502b0
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 xmm0, xmmword [0x140277620]
vmovdqu xmm3, xmmword [rcx + 0x80]
vpxor xmm0, xmm0, xmmword [rcx + 0xc0]
mov r9d, edx
lea rdx, [rsp + 0x8f]
mov r8, rcx
and rdx, 0xffffffffffffffe0
vmovdqu xmmword [rdx + 0x80], xmm3
vmovdqu xmm3, xmmword [rcx + 0x90]
vmovdqu xmmword [rdx + 0xe0], xmm0
vmovdqu xmmword [rdx + 0x90], xmm3
vmovdqu xmm3, xmmword [rcx + 0xa0]
vmovdqu xmmword [rdx + 0xa0], xmm3
vmovdqu xmm3, xmmword [rcx + 0xb0]
vmovdqu xmmword [rdx + 0xb0], xmm3
vmovdqu xmm3, xmmword [0x1402775c0]
vmovdqu xmmword [rdx + 0xc0], xmm3
vmovdqu xmm3, xmmword [0x1402775d0]
vmovdqu xmmword [rdx + 0xd0], xmm3
vmovdqu xmm3, xmmword [0x1402775f0]
vmovdqu xmmword [rdx + 0xf0], xmm3
test r9d, r9d
je 0x1400503c2
movabs rax, 0xe07c265404be4294
mov qword [rdx + 0xf0], rax
vmovdqu xmm3, xmmword [r8]
mov eax, 0xff
vmovdqu xmm5, xmmword [r8 + 0x50]
vmovd xmm2, eax
vmovdqu xmm7, xmmword [r8 + 0x70]
lea rax, [0x140277500]
vpsrlw xmm8, xmm3, 8
vpbroadcastw xmm2, xmm2
vmovdqu xmm3, xmmword [r8 + 0x10]
vpand xmm0, xmm2, xmmword [r8 + 0x10]
vpand xmm9, xmm2, xmmword [r8]
vpsrlw xmm5, xmm5, 8
vpand xmm1, xmm2, xmmword [r8 + 0x20]
vpand xmm4, xmm2, xmmword [r8 + 0x40]
vpand xmm6, xmm2, xmmword [r8 + 0x70]
lea r10, [rax + 0xc0]
vpackuswb xmm9, xmm9, xmm0
vpsrlw xmm0, xmm3, 8
vmovdqu xmm3, xmmword [r8 + 0x20]
vpackuswb xmm8, xmm8, xmm0
vpsrlw xmm7, xmm7, 8
vpand xmm0, xmm2, xmmword [r8 + 0x30]
vpackuswb xmm1, xmm1, xmm0
vpsrlw xmm0, xmm3, 8
vmovdqu xmm3, xmmword [r8 + 0x30]
vpand xmm10, xmm2, xmm1
vpsrlw xmm3, xmm3, 8
vpackuswb xmm0, xmm0, xmm3
vpand xmm3, xmm2, xmmword [r8 + 0x50]
vpackuswb xmm4, xmm4, xmm3
vmovdqu xmm3, xmmword [r8 + 0x40]
vpand xmm11, xmm2, xmm4
vpsrlw xmm4, xmm4, 8
vpsrlw xmm3, xmm3, 8
vpackuswb xmm3, xmm3, xmm5
vpand xmm5, xmm2, xmmword [r8 + 0x60]
vpackuswb xmm5, xmm5, xmm6
vmovdqu xmm6, xmmword [r8 + 0x60]
vpsrlw xmm6, xmm6, 8
vpackuswb xmm6, xmm6, xmm7
vpand xmm7, xmm2, xmm9
vpackuswb xmm7, xmm7, xmm10
vpsrlw xmm9, xmm9, 8
vpsrlw xmm10, xmm1, 8
vpackuswb xmm1, xmm9, xmm10
vpand xmm9, xmm2, xmm5
vpand xmm10, xmm2, xmm3
vpsrlw xmm5, xmm5, 8
vpsrlw xmm3, xmm3, 8
vpackuswb xmm11, xmm11, xmm9
vpackuswb xmm4, xmm4, xmm5
vpand xmm9, xmm2, xmm0
vpand xmm5, xmm2, xmm8
vpackuswb xmm5, xmm5, xmm9
vpsrlw xmm8, xmm8, 8
vpsrlw xmm9, xmm0, 8
vpackuswb xmm0, xmm8, xmm9
vpand xmm8, xmm2, xmm6
vpand xmm9, xmm2, xmm7
vpsrlw xmm6, xmm6, 8
vpsrlw xmm7, xmm7, 8
vpackuswb xmm10, xmm10, xmm8
vpackuswb xmm3, xmm3, xmm6
vpand xmm6, xmm2, xmm11
vpand xmm8, xmm2, xmm10
vpsrlw xmm10, xmm10, 8
vpsrlw xmm11, xmm11, 8
vpackuswb xmm9, xmm9, xmm6
vpand xmm6, xmm2, xmm5
vpsrlw xmm5, xmm5, 8
vpmovzxbw xmm12, xmm9
vpackuswb xmm6, xmm6, xmm8
vpackuswb xmm5, xmm5, xmm10
vpand xmm8, xmm2, xmm4
vpand xmm10, xmm2, xmm1
vpsrlw xmm4, xmm4, 8
vpackuswb xmm7, xmm7, xmm11
vpsrlw xmm1, xmm1, 8
vpackuswb xmm10, xmm10, xmm8
vpmovzxwd xmm13, xmm12
vpackuswb xmm1, xmm1, xmm4
vpand xmm4, xmm2, xmm0
vpand xmm2, xmm2, xmm3
vpackuswb xmm4, xmm4, xmm2
vpsrlw xmm3, xmm3, 8
vpmovzxbw xmm11, xmm6
vpsrlw xmm0, xmm0, 8
vpsrldq xmm2, xmm10, 8
vpackuswb xmm0, xmm0, xmm3
vpmovzxbw xmm3, xmm10
vpmovzxbw xmm10, xmm4
vpmovzxwd xmm8, xmm10
vpsllw xmm11, xmm11, 8
vpmovzxbw xmm2, xmm2
vpslld xmm8, xmm8, 0x18
vpsrldq xmm10, xmm10, 8
vpmovzxwd xmm14, xmm11
vpxor xmm8, xmm8, xmm13
vpmovzxwd xmm13, xmm3
vpmovzxwd xmm10, xmm10
vpsrldq xmm3, xmm3, 8
vpsrldq xmm4, xmm4, 8
vpmovzxwd xmm3, xmm3
vpsrldq xmm11, xmm11, 8
vpmovzxbw xmm4, xmm4
vpsrldq xmm12, xmm12, 8
vpsrldq xmm9, xmm9, 8
vpmovzxwd xmm11, xmm11
vpmovzxwd xmm12, xmm12
vpslld xmm3, xmm3, 0x10
vpmovzxbw xmm9, xmm9
vpslld xmm10, xmm10, 0x18
vpsrldq xmm6, xmm6, 8
vpxor xmm3, xmm3, xmm11
vpxor xmm10, xmm10, xmm12
vpmovzxwd xmm11, xmm4
vpmovzxbw xmm6, xmm6
vpslld xmm11, xmm11, 0x18
vpsllw xmm6, xmm6, 8
vpxor xmm3, xmm3, xmm10
vpmovzxwd xmm10, xmm9
vpsrldq xmm4, xmm4, 8
vpmovzxwd xmm12, xmm6
vpxor xmm11, xmm11, xmm10
vpmovzxwd xmm10, xmm2
vpmovzxwd xmm4, xmm4
vpsrldq xmm2, xmm2, 8
vpsrldq xmm6, xmm6, 8
vpmovzxwd xmm2, xmm2
vpsrldq xmm9, xmm9, 8
vpmovzxwd xmm6, xmm6
vpslld xmm2, xmm2, 0x10
vpslld xmm4, xmm4, 0x18
vpmovzxwd xmm9, xmm9
vpxor xmm2, xmm2, xmm6
vpmovzxbw xmm6, xmm7
vpxor xmm4, xmm4, xmm9
vpsrldq xmm7, xmm7, 8
vpslld xmm13, xmm13, 0x10
vpxor xmm2, xmm4, xmm2
vpmovzxbw xmm7, xmm7
vpslld xmm10, xmm10, 0x10
vpxor xmm13, xmm13, xmm14
vmovdqu xmmword [rsp + 0x50], xmm2
vpmovzxwd xmm4, xmm7
vpxor xmm10, xmm10, xmm12
vpxor xmm8, xmm8, xmm13
vmovdqu xmmword [rsp + 0x40], xmm4
vpmovzxbw xmm4, xmm5
vpsrldq xmm5, xmm5, 8
vpxor xmm15, xmm11, xmm10
vpmovzxbw xmm5, xmm5
vpsrldq xmm7, xmm7, 8
vpmovzxwd xmm13, xmm4
vmovdqu xmmword [rsp + 0x60], xmm15
vpmovzxwd xmm10, xmm6
vpmovzxwd xmm14, xmm5
vpmovzxwd xmm7, xmm7
vpsrldq xmm5, xmm5, 8
vpmovzxbw xmm2, xmm0
vpmovzxdq xmm11, xmm10
vmovdqu xmmword [rsp + 0x20], xmm14
vpmovzxwd xmm12, xmm5
vmovdqu xmmword [rsp + 0x30], xmm7
vpmovzxdq xmm14, xmm13
vpmovzxbw xmm7, xmm1
vpmovzxwd xmm5, xmm2
vmovdqu xmmword [rsp + 0x10], xmm12
vpsllq xmm11, xmm11, 0x20
vpmovzxwd xmm12, xmm7
vpsllq xmm14, xmm14, 0x28
vpsrldq xmm10, xmm10, 8
vpmovzxdq xmm15, xmm12
vpxor xmm14, xmm14, xmm11
vpmovzxdq xmm11, xmm5
vpmovzxdq xmm10, xmm10
vpsllq xmm11, xmm11, 0x38
vpsllq xmm15, xmm15, 0x30
vpsllq xmm10, xmm10, 0x20
vpsrldq xmm5, xmm5, 8
vpxor xmm11, xmm11, xmm15
vpxor xmm11, xmm14, xmm11
vpmovzxdq xmm14, xmm8
vpmovzxdq xmm5, xmm5
vpsllq xmm5, xmm5, 0x38
vpsrldq xmm8, xmm8, 8
vpxor xmm11, xmm11, xmm14
vmovdqu xmm14, xmmword [rsp + 0x20]
vmovdqu xmmword [rdx], xmm11
vpsrldq xmm11, xmm13, 8
vpmovzxdq xmm8, xmm8
vpsrldq xmm7, xmm7, 8
vpsrldq xmm2, xmm2, 8
vpmovzxdq xmm11, xmm11
vpsllq xmm11, xmm11, 0x28
vpmovzxwd xmm7, xmm7
vpmovzxwd xmm2, xmm2
vpsrldq xmm6, xmm6, 8
vpsrldq xmm4, xmm4, 8
vpxor xmm10, xmm11, xmm10
vpsrldq xmm11, xmm12, 8
vpmovzxwd xmm6, xmm6
vpmovzxwd xmm4, xmm4
vpsrldq xmm1, xmm1, 8
vpsrldq xmm0, xmm0, 8
vpmovzxdq xmm11, xmm11
vpsllq xmm11, xmm11, 0x30
vpmovzxbw xmm1, xmm1
vpmovzxbw xmm0, xmm0
vpxor xmm5, xmm5, xmm11
vpmovzxwd xmm9, xmm1
vpxor xmm5, xmm10, xmm5
vpmovzxdq xmm10, xmm6
vmovdqu xmmword [rsp], xmm9
vmovdqu xmm13, xmmword [rsp]
vpxor xmm5, xmm5, xmm8
vpmovzxdq xmm8, xmm2
vpmovzxwd xmm9, xmm0
vmovdqu xmmword [rdx + 0x10], xmm5
vpmovzxdq xmm5, xmm7
vpsllq xmm8, xmm8, 0x38
vpsllq xmm5, xmm5, 0x30
vpsllq xmm10, xmm10, 0x20
vpsrldq xmm2, xmm2, 8
vpsrldq xmm1, xmm1, 8
vpxor xmm8, xmm8, xmm5
vpmovzxdq xmm5, xmm4
vpmovzxdq xmm2, xmm2
vpmovzxwd xmm1, xmm1
vpsllq xmm5, xmm5, 0x28
vpsllq xmm2, xmm2, 0x38
vpsrldq xmm4, xmm4, 8
vpsrldq xmm0, xmm0, 8
vpxor xmm5, xmm5, xmm10
vpxor xmm5, xmm8, xmm5
vpmovzxdq xmm8, xmm3
vpmovzxdq xmm4, xmm4
vpxor xmm5, xmm5, xmm8
vpsllq xmm4, xmm4, 0x28
vpmovzxwd xmm0, xmm0
vmovdqu xmmword [rdx + 0x20], xmm5
vpsrldq xmm5, xmm7, 8
vpsrldq xmm3, xmm3, 8
vpmovzxdq xmm5, xmm5
vpmovzxdq xmm3, xmm3
vpsllq xmm5, xmm5, 0x30
vpxor xmm2, xmm2, xmm5
vpsrldq xmm5, xmm6, 8
vmovdqu xmm6, xmmword [rsp + 0x40]
vpmovzxdq xmm5, xmm5
vpsllq xmm5, xmm5, 0x20
vpxor xmm4, xmm4, xmm5
vmovdqu xmm5, xmmword [rsp + 0x60]
vpxor xmm2, xmm2, xmm4
vpmovzxdq xmm4, xmm13
vpxor xmm2, xmm2, xmm3
vpsllq xmm4, xmm4, 0x30
vpmovzxdq xmm3, xmm6
vmovdqu xmmword [rdx + 0x30], xmm2
vpmovzxdq xmm2, xmm14
vpsllq xmm3, xmm3, 0x20
vpsllq xmm2, xmm2, 0x28
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm3, xmm9
vpsllq xmm3, xmm3, 0x38
vpxor xmm3, xmm3, xmm4
vpsrldq xmm4, xmm13, 8
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm3, xmm5
vpmovzxdq xmm4, xmm4
vpxor xmm2, xmm2, xmm3
vpsrldq xmm3, xmm6, 8
vmovdqu xmmword [rdx + 0x40], xmm2
vpsrldq xmm2, xmm14, 8
vpmovzxdq xmm3, xmm3
vpsllq xmm3, xmm3, 0x20
vpsllq xmm4, xmm4, 0x30
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x28
vpxor xmm2, xmm2, xmm3
vpsrldq xmm3, xmm9, 8
vpmovzxdq xmm3, xmm3
vpsllq xmm3, xmm3, 0x38
vpxor xmm3, xmm3, xmm4
vpxor xmm2, xmm2, xmm3
vpsrldq xmm3, xmm5, 8
vpmovzxdq xmm3, xmm3
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm3, xmm1
vmovdqu xmmword [rdx + 0x50], xmm2
vmovdqu xmm6, xmmword [rsp + 0x10]
vmovdqu xmm7, xmmword [rsp + 0x30]
vpmovzxdq xmm2, xmm0
vpsllq xmm3, xmm3, 0x30
vpsllq xmm2, xmm2, 0x38
vmovdqu xmm5, xmmword [rsp + 0x50]
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm4, xmm7
vpmovzxdq xmm3, xmm6
vpsllq xmm4, xmm4, 0x20
vpsllq xmm3, xmm3, 0x28
vpsrldq xmm0, xmm0, 8
vpsrldq xmm1, xmm1, 8
vpxor xmm3, xmm3, xmm4
vmovdqu ymm4, ymmword [rdx + 0xa0]
vpxor xmm2, xmm2, xmm3
vpmovzxdq xmm3, xmm5
vpmovzxdq xmm0, xmm0
vpxor xmm2, xmm2, xmm3
vpsrldq xmm3, xmm7, 8
vpmovzxdq xmm1, xmm1
vmovdqu xmmword [rdx + 0x60], xmm2
vpsrldq xmm2, xmm6, 8
vpmovzxdq xmm3, xmm3
vpsllq xmm3, xmm3, 0x20
vpsllq xmm1, xmm1, 0x30
vpmovzxdq xmm2, xmm2
vpsllq xmm2, xmm2, 0x28
vpsllq xmm0, xmm0, 0x38
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm0, xmm1
vmovdqu xmm3, xmmword [0x140277630]
vpsrldq xmm1, xmm5, 8
vpxor xmm0, xmm2, xmm0
vmovdqu xmm2, xmmword [0x140277640]
vmovdqu ymm5, ymmword [rdx + 0x80]
vpmovzxdq xmm1, xmm1
vpermq ymm3, ymm3, 0x44
vpxor xmm0, xmm0, xmm1
vmovdqu ymm1, ymmword [0x140277600]
vpermq ymm2, ymm2, 0x44
vmovdqu xmmword [rdx + 0x70], xmm0
vmovdqu ymm0, ymmword [rdx + 0xe0]
movzx r9d, byte [rax]
movzx ecx, byte [rax + 2]
vpaddq ymm5, ymm5, ymm4
add rax, 0x10
movzx ebx, byte [rax - 0xc]
movzx r11d, byte [rax - 0xa]
vmovq xmm6, qword [rdx + r9*8]
vpinsrq xmm6, xmm6, qword [rdx + rcx*8], 1
vmovq xmm7, qword [rdx + rbx*8]
vpinsrq xmm7, xmm7, qword [rdx + r11*8], 1
movzx r9d, byte [rax - 0xf]
movzx ecx, byte [rax - 0xd]
vinserti128 ymm6, ymm6, xmm7, 1
movzx ebx, byte [rax - 0xb]
movzx r11d, byte [rax - 9]
vpaddq ymm6, ymm6, ymm5
vmovq xmm5, qword [rdx + r9*8]
movzx r9d, byte [rax - 2]
vpxor ymm0, ymm0, ymm6
vmovq xmm7, qword [rdx + rbx*8]
vpinsrq xmm8, xmm7, qword [rdx + r11*8], 1
vpshufd ymm0, ymm0, 0xb1
vpinsrq xmm7, xmm5, qword [rdx + rcx*8], 1
movzx ebx, byte [rax - 6]
vpaddq ymm1, ymm1, ymm0
movzx ecx, byte [rax - 8]
movzx r11d, byte [rax - 4]
vpxor ymm4, ymm1, ymm4
vinserti128 ymm7, ymm7, xmm8, 1
vpshufb ymm4, ymm4, ymm3
vpaddq ymm7, ymm7, ymm4
vpaddq ymm7, ymm7, ymm6
vpxor ymm0, ymm7, ymm0
vpermq ymm5, ymm7, 0x93
vmovq xmm7, qword [rdx + rbx*8]
vpinsrq xmm7, xmm7, qword [rdx + r11*8], 1
vpshufb ymm0, ymm0, ymm2
movzx ebx, byte [rax - 1]
movzx r11d, byte [rax - 5]
vpaddq ymm1, ymm1, ymm0
vpermq ymm0, ymm0, 0x4e
vpxor ymm4, ymm1, ymm4
vpermq ymm1, ymm1, 0x39
vpsllq ymm6, ymm4, 1
vpsrlq ymm4, ymm4, 0x3f
vpor ymm6, ymm4, ymm6
vmovq xmm4, qword [rdx + r9*8]
movzx r9d, byte [rax - 3]
vpinsrq xmm4, xmm4, qword [rdx + rcx*8], 1
movzx ecx, byte [rax - 7]
vinserti128 ymm4, ymm4, xmm7, 1
vpaddq ymm7, ymm5, ymm6
vmovq xmm5, qword [rdx + rbx*8]
vpinsrq xmm5, xmm5, qword [rdx + rcx*8], 1
vpaddq ymm4, ymm4, ymm7
vmovq xmm7, qword [rdx + r11*8]
vpinsrq xmm7, xmm7, qword [rdx + r9*8], 1
vpxor ymm0, ymm0, ymm4
vpshufd ymm0, ymm0, 0xb1
vinserti128 ymm5, ymm5, xmm7, 1
vpaddq ymm1, ymm1, ymm0
vpxor ymm6, ymm1, ymm6
vpshufb ymm6, ymm6, ymm3
vpaddq ymm5, ymm5, ymm6
vpaddq ymm5, ymm5, ymm4
vpxor ymm0, ymm5, ymm0
vpermq ymm5, ymm5, 0x39
vpshufb ymm0, ymm0, ymm2
vpaddq ymm1, ymm1, ymm0
vpermq ymm0, ymm0, 0x4e
vpxor ymm6, ymm1, ymm6
vpermq ymm1, ymm1, 0x93
vpsllq ymm4, ymm6, 1
vpsrlq ymm6, ymm6, 0x3f
vpor ymm4, ymm4, ymm6
cmp rax, r10
jne 0x140050a60
vpxor ymm4, ymm4, ymmword [r8 + 0xa0]
vpxor ymm1, ymm1, ymm5
vpxor ymm1, ymm1, ymmword [r8 + 0x80]
vmovdqu ymmword [r8 + 0x80], ymm1
vpxor ymm4, ymm4, ymm0
vmovdqu ymmword [r8 + 0xa0], ymm4
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