Function at 0x14009e9e0
Capabilities:
Hash data using sha256 via x86 extensions

Disassembly:
mov r11, rsp
mov dword [r11 + 0x20], r9d
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
sub rsp, 0x108
movdqu xmm0, xmmword [rcx]
cmp r9d, 1
mov edx, recv
movdqu xmm1, xmmword [rcx + 0x10]
mov eax, edx
mov ecx, recv
cmovne eax, ecx
movaps xmmword [rsp + 0x70], xmm10
movaps xmmword [rsp + 0x60], xmm11
movaps xmmword [rsp + 0x50], xmm12
mov qword [r11 - 8], rbx
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x20], rdi
mov edi, 7
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
mov dword [rsp], eax
mov eax, r9d
cmp eax, 1
mov qword [r11 - 0x40], r15
mov r15d, recv
mov r9d, 3
setne r13b
add r13b, 0xd
cmp eax, 1
mov byte [rsp + 0x1e], r13b
sete r12b
add r12b, 0xd
cmp eax, 1
mov byte [rsp + 0x1d], r12b
cmovne ecx, edx
setne bpl
mov dword [rsp + 4], ecx
mov edx, 8
mov r14d, edx
mov ecx, 4
cmovne r14d, r15d
mov ebx, ecx
add bpl, 9
mov byte [rsp + 0x1b], r14b
cmp eax, 1
mov byte [rsp + 0x1a], bpl
sete sil
add sil, 9
cmp eax, 1
mov byte [rsp + 0x19], sil
cmovne r15d, edx
cmovne ebx, edi
setne r11b
mov byte [rsp + 0x18], r15b
add r11b, 5
mov byte [rsp + 0x17], bl
cmp eax, 1
mov byte [rsp + 0x16], r11b
sete r10b
add r10b, 5
cmp eax, 1
mov byte [rsp + 0x15], r10b
cmovne edi, ecx
xor ecx, ecx
cmp eax, 1
mov byte [rsp + 0x14], dil
mov r8d, ecx
cmovne r8d, r9d
setne dl
inc dl
mov byte [rsp + 0x13], r8b
cmp eax, 1
mov byte [rsp + 0x12], dl
sete al
inc al
cmp dword [rsp + 0x128], 1
mov byte [rsp + 0x11], al
cmovne r9d, ecx
mov ecx, dword [rsp]
mov byte [rsp + 0x1f], cl
mov ecx, dword [rsp + 4]
mov byte [rsp + 0x1c], cl
mov byte [rsp + 0x10], r9b
mov rax, qword [rsp + 0x120]
movdqa xmm12, xmmword [rsp + 0x10]
mov r15, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xf0]
mov rbp, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x110]
pshufd xmm0, xmm0, 0xb1
pshufd xmm11, xmm1, 0x1b
movdqa xmm10, xmm0
palignr xmm10, xmm11, 8
pblendw xmm11, xmm0, 0xf0
cmp rax, 0x40
jb 0x14009ef4c
mov rdx, qword [rsp + 0x118]
movaps xmmword [rsp + 0xb0], xmm6
add rdx, 0x20
movaps xmmword [rsp + 0xa0], xmm7
movaps xmmword [rsp + 0x90], xmm8
movaps xmmword [rsp + 0x80], xmm9
movaps xmmword [rsp + 0x40], xmm13
movdqa xmm13, xmmword [0x1401c0b60]
movaps xmmword [rsp + 0x30], xmm14
movdqa xmm14, xmmword [0x1401c0b10]
movaps xmmword [rsp + 0x20], xmm15
movdqa xmm15, xmmword [0x1401c0ac0]
shr rax, 6
nop dword [rax]
movdqu xmm1, xmmword [rdx - 0x20]
movdqu xmm2, xmmword [rdx - 0x10]
movdqu xmm3, xmmword [rdx]
movdqu xmm4, xmmword [rdx + 0x10]
pshufb xmm2, xmm12
movdqa xmm9, xmm10
movdqa xmm0, xmm13
pshufb xmm3, xmm12
pshufb xmm4, xmm12
pshufb xmm1, xmm12
movdqa xmm5, xmm4
movdqa xmm8, xmm11
paddd xmm0, xmm1
palignr xmm5, xmm3, 4
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
sha256msg1 xmm1, xmm2
paddd xmm5, xmm1
movdqa xmm0, xmm14
paddd xmm0, xmm2
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
sha256msg1 xmm2, xmm3
sha256msg2 xmm5, xmm4
movdqa xmm6, xmm5
movdqa xmm0, xmm15
paddd xmm0, xmm3
palignr xmm6, xmm4, 4
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
paddd xmm6, xmm2
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0b30]
paddd xmm0, xmm4
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0a90]
paddd xmm0, xmm5
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0ae0]
sha256msg2 xmm6, xmm5
paddd xmm0, xmm6
movdqa xmm2, xmm6
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0b20]
sha256msg1 xmm3, xmm4
palignr xmm2, xmm5, 4
paddd xmm2, xmm3
sha256msg2 xmm2, xmm6
paddd xmm0, xmm2
movdqa xmm3, xmm2
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0a80]
palignr xmm3, xmm6, 4
sha256msg1 xmm4, xmm5
sha256msg1 xmm5, xmm6
paddd xmm3, xmm4
sha256msg2 xmm3, xmm2
paddd xmm0, xmm3
movdqa xmm7, xmm3
sha256rnds2 xmm8, xmm10, xmm0
palignr xmm7, xmm2, 4
pshufd xmm0, xmm0, 0xe
paddd xmm7, xmm5
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0ab0]
sha256msg2 xmm7, xmm3
paddd xmm0, xmm7
movdqa xmm1, xmm7
sha256msg1 xmm6, xmm2
sha256rnds2 xmm8, xmm10, xmm0
sha256msg1 xmm2, xmm3
pshufd xmm0, xmm0, 0xe
lea rdx, [rdx + 0x40]
palignr xmm1, xmm3, 4
paddd xmm1, xmm6
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0b00]
sha256msg2 xmm1, xmm7
paddd xmm0, xmm1
movdqa xmm4, xmm1
palignr xmm4, xmm7, 4
paddd xmm4, xmm2
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0b50]
sha256msg2 xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm5, xmm4
palignr xmm5, xmm1, 4
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0a70]
sha256msg1 xmm3, xmm7
paddd xmm5, xmm3
sha256msg2 xmm5, xmm4
paddd xmm0, xmm5
movdqa xmm3, xmm5
palignr xmm3, xmm4, 4
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0aa0]
sha256msg1 xmm7, xmm1
paddd xmm3, xmm7
sha256msg1 xmm1, xmm4
sha256msg2 xmm3, xmm5
paddd xmm0, xmm3
movdqa xmm2, xmm3
palignr xmm2, xmm5, 4
paddd xmm2, xmm1
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0ad0]
sha256msg2 xmm2, xmm3
paddd xmm0, xmm2
movdqa xmm1, xmm2
palignr xmm1, xmm3, 4
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmmword [0x1401c0af0]
sha256msg1 xmm4, xmm5
paddd xmm1, xmm4
sha256msg2 xmm1, xmm2
paddd xmm0, xmm1
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm10, xmm8, xmm0
movdqa xmm0, xmm1
palignr xmm0, xmm2, 4
sha256msg1 xmm5, xmm3
paddd xmm0, xmm5
sha256msg2 xmm0, xmm1
paddd xmm0, xmmword [0x1401c0b40]
sha256rnds2 xmm8, xmm10, xmm0
pshufd xmm0, xmm0, 0xe
paddd xmm11, xmm8
sha256rnds2 xmm10, xmm8, xmm0
paddd xmm10, xmm9
sub rax, 1
jne 0x14009ec20
movaps xmm15, xmmword [rsp + 0x20]
movaps xmm14, xmmword [rsp + 0x30]
movaps xmm13, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm12, xmmword [rsp + 0x50]
pshufd xmm1, xmm10, 0x1b
movaps xmm10, xmmword [rsp + 0x70]
movdqa xmm0, xmm1
pshufd xmm2, xmm11, 0xb1
movaps xmm11, xmmword [rsp + 0x60]
pblendw xmm0, xmm2, 0xf0
palignr xmm2, xmm1, 8
movdqu xmmword [rcx], xmm0
movdqu xmmword [rcx + 0x10], xmm2
add rsp, 0x108
ret