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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rdi
push r12
push r13
sub rsp, 0x38
mov rax, qword [rcx + 0x10]
mov r12, r9
mov rbx, r8
mov rdi, rdx
mov r13, rcx
cmp qword [rcx + 8], rax
jne 0x1800b28ca
call fcn.1800331f0
mov rax, qword [0x18026a1e0]
test rax, rax
jne 0x1800b28e2
call fcn.180045990
mov rax, qword [0x18026a1e0]
bt rax, 0x14
jae 0x1800b2904
mov r9, r12
mov r8, rbx
mov rdx, rdi
mov rcx, r13
add rsp, 0x38
pop r13
pop r12
pop rdi
pop rbx
jmp 0x18010c950
mov qword [rsp + 0x70], rsi
call fcn.180045930
test al, al
je 0x1800b294c
cmp r12, 4
jb 0x1800b294c
mov rsi, r12
shr rsi, 2
imul rax, rsi, 0xfffffffffffffffc
add r12, rax
nop word [rax + rax]
mov r8, rbx
mov rdx, rdi
mov rcx, r13
call fcn.18010bd80
sub rdi, 0xffffffffffffff80
sub rbx, 0xffffffffffffff80
sub rsi, 1
jne 0x1800b2930
test r12, r12
je 0x1800b2d2e
lea r9, [rbx + 8]
mov qword [rsp + 0x68], rbp
sub rbx, rdi
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x30], r15
lea rax, [rdi + 8]
mov qword [rsp + 0x20], r9
lea rcx, [rbx - 8]
mov qword [rsp + 0x28], rcx
nop dword [rax]
mov r10d, dword [rax - 8]
mov r9d, 8
mov r11d, dword [rax - 4]
mov ebx, dword [rax]
mov edi, dword [rax + 4]
mov esi, dword [rax + 8]
mov ebp, dword [rax + 0xc]
mov r14d, dword [rax + 0x10]
mov r15d, dword [rax + 0x14]
mov r13, qword [r13 + 8]
bswap r10d
bswap r11d
bswap ebx
bswap edi
bswap esi
bswap ebp
bswap r14d
bswap r15d
add r13, 8
nop dword [rax]
mov r8d, esi
mov ecx, esi
rol ecx, 7
mov edx, esi
ror r8d, 0xb
not edx
xor r8d, ecx
and edx, r14d
mov ecx, esi
ror ecx, 6
xor r8d, ecx
mov ecx, ebp
and ecx, esi
xor edx, ecx
mov ecx, r10d
add r8d, edx
rol ecx, 0xa
add r8d, dword [r13 - 8]
mov edx, r11d
add r15d, r8d
or edx, r10d
and edx, ebx
add edi, r15d
mov r8d, r10d
ror r8d, 0xd
xor r8d, ecx
mov ecx, r10d
ror ecx, 2
xor r8d, ecx
mov ecx, r11d
and ecx, r10d
or edx, ecx
mov ecx, edi
rol ecx, 7
add r15d, edx
add r15d, r8d
mov edx, edi
not edx
mov r8d, edi
ror r8d, 0xb
and edx, ebp
xor r8d, ecx
mov ecx, edi
ror ecx, 6
xor r8d, ecx
mov ecx, esi
and ecx, edi
xor edx, ecx
mov ecx, r15d
add r8d, edx
rol ecx, 0xa
add r8d, dword [r13 - 4]
mov edx, r15d
add r14d, r8d
or edx, r10d
add ebx, r14d
and edx, r11d
mov r8d, r15d
ror r8d, 0xd
xor r8d, ecx
mov ecx, r15d
ror ecx, 2
xor r8d, ecx
mov ecx, r15d
and ecx, r10d
or edx, ecx
mov ecx, ebx
add r14d, edx
rol ecx, 7
add r14d, r8d
mov edx, ebx
mov r8d, ebx
not edx
ror r8d, 0xb
and edx, esi
xor r8d, ecx
mov ecx, ebx
ror ecx, 6
xor r8d, ecx
mov ecx, edi
and ecx, ebx
xor edx, ecx
mov ecx, r14d
add r8d, edx
rol ecx, 0xa
add r8d, dword [r13]
mov edx, r15d
add ebp, r8d
or edx, r14d
and edx, r10d
add r11d, ebp
mov r8d, r14d
ror r8d, 0xd
xor r8d, ecx
mov ecx, r14d
ror ecx, 2
xor r8d, ecx
mov ecx, r15d
and ecx, r14d
or edx, ecx
mov ecx, r11d
rol ecx, 7
add ebp, edx
add ebp, r8d
mov edx, r11d
not edx
mov r8d, r11d
ror r8d, 0xb
and edx, edi
xor r8d, ecx
mov ecx, r11d
ror ecx, 6
xor r8d, ecx
mov ecx, ebx
and ecx, r11d
xor edx, ecx
mov ecx, ebp
add r8d, edx
rol ecx, 0xa
add r8d, dword [r13 + 4]
mov edx, r14d
add esi, r8d
or edx, ebp
add r10d, esi
and edx, r15d
mov r8d, ebp
ror r8d, 0xd
xor r8d, ecx
mov ecx, ebp
ror ecx, 2
xor r8d, ecx
mov ecx, r14d
and ecx, ebp
or edx, ecx
mov ecx, r10d
rol ecx, 7
add esi, edx
add esi, r8d
mov edx, r10d
not edx
mov r8d, r10d
ror r8d, 0xb
and edx, ebx
xor r8d, ecx
mov ecx, r10d
ror ecx, 6
xor r8d, ecx
mov ecx, r11d
and ecx, r10d
xor edx, ecx
mov ecx, esi
add r8d, edx
rol ecx, 0xa
add r8d, dword [r13 + 8]
add edi, r8d
mov r8d, esi
ror r8d, 0xd
add r15d, edi
xor r8d, ecx
mov ecx, esi
ror ecx, 2
xor r8d, ecx
mov edx, ebp
mov ecx, ebp
and ecx, esi
or edx, esi
and edx, r14d
or edx, ecx
mov ecx, r15d
rol ecx, 7
add edi, edx
add edi, r8d
mov edx, r15d
not edx
mov r8d, r15d
ror r8d, 0xb
and edx, r11d
xor r8d, ecx
mov ecx, r15d
ror ecx, 6
xor r8d, ecx
mov ecx, r15d
and ecx, r10d
xor edx, ecx
mov ecx, edi
add r8d, edx
rol ecx, 0xa
add r8d, dword [r13 + 0xc]
mov edx, esi
add ebx, r8d
or edx, edi
and edx, ebp
add r14d, ebx
mov r8d, edi
ror r8d, 0xd
xor r8d, ecx
mov ecx, edi
ror ecx, 2
xor r8d, ecx
mov ecx, esi
and ecx, edi
or edx, ecx
mov ecx, r14d
rol ecx, 7
add ebx, edx
add ebx, r8d
mov edx, r14d
not edx
mov r8d, r14d
ror r8d, 0xb
and edx, r10d
xor r8d, ecx
mov ecx, r14d
ror ecx, 6
xor r8d, ecx
mov ecx, r15d
and ecx, r14d
xor edx, ecx
mov ecx, ebx
add r8d, edx
rol ecx, 0xa
add r8d, dword [r13 + 0x10]
mov edx, edi
add r11d, r8d
or edx, ebx
add ebp, r11d
and edx, esi
mov r8d, ebx
ror r8d, 0xd
xor r8d, ecx
mov ecx, ebx
ror ecx, 2
xor r8d, ecx
mov ecx, edi
and ecx, ebx
or edx, ecx
mov ecx, ebp
add r11d, edx
rol ecx, 7
add r11d, r8d
mov r8d, ebp
ror r8d, 0xb
xor r8d, ecx
mov ecx, ebp
lea r13, [r13 + 0x20]
ror ecx, 6
mov edx, ebp
xor r8d, ecx
not edx
and edx, r15d
mov ecx, r14d
and ecx, ebp
xor edx, ecx
mov ecx, r11d
add r8d, edx
rol ecx, 0xa
add r8d, dword [r13 - 0xc]
mov edx, ebx
add r10d, r8d
or edx, r11d
add esi, r10d
and edx, edi
mov r8d, r11d
ror r8d, 0xd
xor r8d, ecx
mov ecx, r11d
ror ecx, 2
xor r8d, ecx
mov ecx, ebx
and ecx, r11d
or edx, ecx
add r10d, edx
add r10d, r8d
sub r9, 1
jne 0x1800b29c0
mov r9, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov r13, qword [rsp + 0x60]
bswap r10d
bswap r11d
bswap ebx
bswap edi
bswap esi
bswap ebp
bswap r14d
bswap r15d
mov dword [rcx + rax], r10d
add rax, 0x20
mov dword [r9 - 4], r11d
mov dword [r9], ebx
mov dword [r9 + 4], edi
mov dword [r9 + 8], esi
mov dword [r9 + 0xc], ebp
mov dword [r9 + 0x10], r14d
mov dword [r9 + 0x14], r15d
add r9, 0x20
mov qword [rsp + 0x20], r9
sub r12, 1
jne 0x1800b2980
mov r15, qword [rsp + 0x30]
mov r14, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x38
pop r13
pop r12
pop rdi
pop rbx
ret
push rbx
sub rsp, 0x40
mov rbx, qword [rcx + 8]
movaps xmmword [rsp + 0x10], xmm8
movdqa xmm8, xmmword [0x1801d8c60]
movaps xmmword [rsp], xmm9
movdqa xmm9, xmmword [0x1801bff80]
cmp r9, 2
jb 0x18010caa7
mov rcx, r9
movaps xmmword [rsp + 0x30], xmm6
shr rcx, 1
mov r10, r8
imul rax, rcx, 0xfffffffffffffffe
movaps xmmword [rsp + 0x20], xmm7
sub r10, rdx
add r9, rax
nop
movdqu xmm6, xmmword [rdx]
mov rax, rbx
mov r11d, 8
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]
movdqu xmm2, xmmword [rax + 0x10]
lea rax, [rax + 0x20]
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
sha256rnds2 xmm6, xmm4, xmm0
sha256rnds2 xmm7, xmm5, xmm0
movdqa xmm0, xmm3
sha256rnds2 xmm4, xmm6, xmm0
sha256rnds2 xmm5, xmm7, xmm0
sub r11, 1
jne 0x18010c9f0
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 [r10 + rdx + 0x10], xmm4
punpckhqdq xmm0, xmm7
pshufb xmm0, xmm8
pshufb xmm5, xmm8
movdqu xmmword [r10 + rdx + 0x20], xmm0
movdqu xmmword [r10 + rdx + 0x30], xmm5
add rdx, 0x40
sub rcx, 1
jne 0x18010c9a0
movaps xmm7, xmmword [rsp + 0x20]
movaps xmm6, xmmword [rsp + 0x30]
test r9, r9
je 0x18010cb48
sub r8, rdx
movdqu xmm3, xmmword [rdx]
mov rax, rbx
mov ecx, 8
movdqu xmm0, xmmword [rdx + 0x10]
movdqa xmm2, xmm3
punpcklqdq xmm2, xmm0
punpckhqdq xmm3, xmm0
pshufb xmm2, xmm9
pshufb xmm3, xmm9
nop dword [rax]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x20]
sha256rnds2 xmm3, xmm2, xmm0
psrldq xmm0, 8
sha256rnds2 xmm2, xmm3, xmm0
movdqa xmm0, xmm1
psrldq xmm1, 8
sha256rnds2 xmm3, xmm2, xmm0
movdqa xmm0, xmm1
sha256rnds2 xmm2, xmm3, xmm0
sub rcx, 1
jne 0x18010cae0
movdqa xmm0, xmm2
punpcklqdq xmm2, xmm3
punpckhqdq xmm0, xmm3
pshufb xmm0, xmm8
pshufb xmm2, xmm8
movdqu xmmword [r8 + rdx], xmm0
movdqu xmmword [r8 + rdx + 0x10], xmm2
add rdx, 0x20
sub r9, 1
jne 0x18010cab3
movaps xmm8, xmmword [rsp + 0x10]
movaps xmm9, xmmword [rsp]
add rsp, 0x40
pop rbx
ret