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

Disassembly:
push rbx
sub rsp, 0x40
mov rbx, qword [rcx + 8]
mov r11, r9
movaps xmmword [rsp + 0x10], xmm8
movdqa xmm8, xmmword [0x180372e30]
movaps xmmword [rsp], xmm9
movdqa xmm9, xmmword [0x180342620]
cmp r9, 2
jb 0x180184449
mov qword [rsp + 0x50], rdi
mov r10, r9
shr r10, 1
mov rcx, r8
imul rax, r10, 0xfffffffffffffffe
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x20], xmm7
sub rcx, rdx
add r11, rax
nop word [rax + rax]
movdqu xmm6, xmmword [rdx]
lea rax, [rbx + 0x20]
mov r9d, 2
movdqu xmm7, xmmword [rdx + 0x20]
movdqu xmm0, xmmword [rdx + 0x10]
movdqu xmm1, xmmword [rdx + 0x30]
movdqa xmm4, xmm6
movdqa xmm5, xmm7
punpcklqdq xmm4, xmm0
punpcklqdq xmm5, xmm1
punpckhqdq xmm6, xmm0
punpckhqdq xmm7, xmm1
pshufb xmm4, xmm9
pshufb xmm5, xmm9
pshufb xmm6, xmm9
pshufb xmm7, xmm9
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rax - 0x10]
lea rax, [rax + 0x80]
movdqa xmm1, xmm0
psrldq xmm1, 8
movdqa xmm3, xmm2
psrldq xmm3, 8
sha256rnds2 xmm6, xmm4, xmm0
sha256rnds2 xmm7, xmm5, xmm0
movdqa xmm0, xmm1
sha256rnds2 xmm4, xmm6, xmm0
sha256rnds2 xmm5, xmm7, xmm0
movdqa xmm0, xmm2
movdqu xmm2, xmmword [rax - 0x70]
sha256rnds2 xmm6, xmm4, xmm0
sha256rnds2 xmm7, xmm5, xmm0
movdqa xmm0, xmm3
movdqa xmm3, xmm2
psrldq xmm3, 8
sha256rnds2 xmm4, xmm6, xmm0
sha256rnds2 xmm5, xmm7, xmm0
movdqu xmm0, xmmword [rax - 0x80]
movdqa xmm1, xmm0
psrldq xmm1, 8
sha256rnds2 xmm6, xmm4, xmm0
sha256rnds2 xmm7, xmm5, xmm0
movdqa xmm0, xmm1
sha256rnds2 xmm4, xmm6, xmm0
sha256rnds2 xmm5, xmm7, xmm0
movdqa xmm0, xmm2
movdqu xmm2, xmmword [rax - 0x50]
sha256rnds2 xmm6, xmm4, xmm0
sha256rnds2 xmm7, xmm5, xmm0
movdqa xmm0, xmm3
movdqa xmm3, xmm2
psrldq xmm3, 8
sha256rnds2 xmm4, xmm6, xmm0
sha256rnds2 xmm5, xmm7, xmm0
movdqu xmm0, xmmword [rax - 0x60]
movdqa xmm1, xmm0
psrldq xmm1, 8
sha256rnds2 xmm6, xmm4, xmm0
sha256rnds2 xmm7, xmm5, xmm0
movdqa xmm0, xmm1
sha256rnds2 xmm4, xmm6, xmm0
sha256rnds2 xmm5, xmm7, xmm0
movdqa xmm0, xmm2
movdqu xmm2, xmmword [rax - 0x30]
sha256rnds2 xmm6, xmm4, xmm0
sha256rnds2 xmm7, xmm5, xmm0
movdqa xmm0, xmm3
movdqa xmm3, xmm2
psrldq xmm3, 8
sha256rnds2 xmm4, xmm6, xmm0
sha256rnds2 xmm5, xmm7, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqa xmm1, xmm0
psrldq xmm1, 8
sha256rnds2 xmm6, xmm4, xmm0
sha256rnds2 xmm7, xmm5, xmm0
movdqa xmm0, xmm1
sha256rnds2 xmm4, xmm6, xmm0
sha256rnds2 xmm5, xmm7, xmm0
movdqa xmm0, xmm2
sha256rnds2 xmm6, xmm4, xmm0
sha256rnds2 xmm7, xmm5, xmm0
movdqa xmm0, xmm3
sha256rnds2 xmm4, xmm6, xmm0
sha256rnds2 xmm5, xmm7, xmm0
sub r9, 1
jne 0x1801842b0
movdqa xmm0, xmm4
punpcklqdq xmm4, xmm6
punpckhqdq xmm0, xmm6
pshufb xmm0, xmm8
pshufb xmm4, xmm8
movdqu xmmword [r8], xmm0
add r8, 0x40
movdqa xmm0, xmm5
punpcklqdq xmm5, xmm7
movdqu xmmword [rcx + rdx + 0x10], xmm4
punpckhqdq xmm0, xmm7
pshufb xmm0, xmm8
pshufb xmm5, xmm8
movdqu xmmword [rcx + rdx + 0x20], xmm0
movdqu xmmword [rcx + rdx + 0x30], xmm5
add rdx, 0x40
sub r10, 1
jne 0x180184260
movaps xmm7, xmmword [rsp + 0x20]
movaps xmm6, xmmword [rsp + 0x30]
mov rdi, qword [rsp + 0x50]
mov rax, rbx
test r11, r11
je 0x18018462c
sub r8, rdx
nop dword [rax + rax]
movdqu xmm0, xmmword [rdx + 0x10]
movdqu xmm2, xmmword [rdx]
movdqu xmm1, xmmword [rbx + 0x10]
movdqa xmm3, xmm2
punpckhqdq xmm2, xmm0
punpcklqdq xmm3, xmm0
movdqu xmm0, xmmword [rbx]
pshufb xmm3, xmm9
pshufb xmm2, xmm9
sha256rnds2 xmm2, xmm3, xmm0
psrldq xmm0, 8
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm1
psrldq xmm1, 8
sha256rnds2 xmm2, xmm3, xmm0
movdqa xmm0, xmm1
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rax + 0x20]
movdqu xmm1, xmmword [rbx + 0x30]
sha256rnds2 xmm2, xmm3, xmm0
psrldq xmm0, 8
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm1
psrldq xmm1, 8
sha256rnds2 xmm2, xmm3, xmm0
movdqa xmm0, xmm1
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rbx + 0x40]
movdqu xmm1, xmmword [rbx + 0x50]
sha256rnds2 xmm2, xmm3, xmm0
psrldq xmm0, 8
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm1
psrldq xmm1, 8
sha256rnds2 xmm2, xmm3, xmm0
movdqa xmm0, xmm1
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rbx + 0x60]
movdqu xmm1, xmmword [rbx + 0x70]
sha256rnds2 xmm2, xmm3, xmm0
psrldq xmm0, 8
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm1
psrldq xmm1, 8
sha256rnds2 xmm2, xmm3, xmm0
movdqa xmm0, xmm1
movdqu xmm1, xmmword [rbx + 0x90]
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rbx + 0x80]
sha256rnds2 xmm2, xmm3, xmm0
psrldq xmm0, 8
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm1
psrldq xmm1, 8
sha256rnds2 xmm2, xmm3, xmm0
movdqa xmm0, xmm1
movdqu xmm1, xmmword [rbx + 0xb0]
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rbx + 0xa0]
sha256rnds2 xmm2, xmm3, xmm0
psrldq xmm0, 8
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm1
psrldq xmm1, 8
sha256rnds2 xmm2, xmm3, xmm0
movdqa xmm0, xmm1
movdqu xmm1, xmmword [rbx + 0xd0]
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rbx + 0xc0]
sha256rnds2 xmm2, xmm3, xmm0
psrldq xmm0, 8
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm1
psrldq xmm1, 8
sha256rnds2 xmm2, xmm3, xmm0
movdqa xmm0, xmm1
movdqu xmm1, xmmword [rbx + 0xf0]
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rbx + 0xe0]
sha256rnds2 xmm2, xmm3, xmm0
psrldq xmm0, 8
lea rdx, [rdx + 0x20]
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm1
psrldq xmm1, 8
sha256rnds2 xmm2, xmm3, xmm0
movdqa xmm0, xmm1
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm3
punpcklqdq xmm3, xmm2
punpckhqdq xmm0, xmm2
pshufb xmm0, xmm8
pshufb xmm3, xmm8
movdqu xmmword [r8 + rdx - 0x20], xmm0
movdqu xmmword [r8 + rdx - 0x10], xmm3
sub r11, 1
jne 0x180184460
movaps xmm8, xmmword [rsp + 0x10]
movaps xmm9, xmmword [rsp]
add rsp, 0x40
pop rbx
ret