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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r14
sub rsp, 0x58
mov rax, qword [rcx]
mov rdi, r9
mov rsi, r8
mov rbx, rdx
mov r14, rcx
call qword [rax + 0x20]
test al, al
jne 0x140283a31
mov rcx, r14
call fcn.140251df0
mov ecx, 1
call fcn.140263670
test al, al
je 0x140283a67
mov ecx, 0x100000
call fcn.140263670
test al, al
je 0x140283a67
mov r9, rdi
mov r8, rsi
mov rdx, rbx
mov rcx, r14
add rsp, 0x58
pop r14
pop rdi
pop rsi
pop rbx
jmp 0x1402cdff0
mov ecx, 4
mov qword [rsp + 0x88], rbp
call fcn.140263670
test al, al
je 0x140283ac2
cmp rdi, 8
jb 0x140283ac2
mov rbp, rdi
shr rbp, 3
imul rax, rbp, 0xfffffffffffffff8
add rdi, rax
mov qword [rsp + 0x98], rdi
nop dword [rax]
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call fcn.1402cd240
add rbx, 0x100
add rsi, 0x100
sub rbp, 1
jne 0x140283aa0
call fcn.1402a2910
test al, al
je 0x140283b0c
cmp rdi, 4
jb 0x140283b0c
mov rbp, rdi
shr rbp, 2
imul rax, rbp, 0xfffffffffffffffc
add rdi, rax
mov qword [rsp + 0x98], rdi
nop word [rax + rax]
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call fcn.1402cb840
sub rbx, 0xffffffffffffff80
sub rsi, 0xffffffffffffff80
sub rbp, 1
jne 0x140283af0
test rdi, rdi
je 0x140283ea9
lea rdi, [rsi + 8]
mov qword [rsp + 0x50], r12
sub rsi, rbx
mov qword [rsp + 0x48], r13
lea rax, [rbx + 8]
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rax
mov ebx, dword [rax]
mov esi, 8
mov r11d, dword [rax - 4]
mov ebp, dword [rax - 8]
mov r14d, dword [rax + 4]
mov r15d, dword [rax + 8]
mov r12d, dword [rax + 0xc]
mov r13d, dword [rax + 0x10]
mov edi, dword [rax + 0x14]
mov rcx, qword [rsp + 0x80]
bswap ebx
mov r10d, ebx
bswap r11d
mov rax, qword [rcx + 8]
xor r10d, r11d
add rax, 8
bswap ebp
bswap r14d
bswap r15d
bswap r12d
bswap r13d
bswap edi
nop dword [rax]
mov r8d, r11d
mov edx, r15d
ror edx, 0x19
xor r8d, ebp
and r10d, r8d
mov ecx, r15d
ror ecx, 0xb
xor r10d, r11d
xor edx, ecx
mov ecx, r15d
ror ecx, 6
xor edx, ecx
mov ecx, r13d
xor ecx, r12d
and ecx, r15d
xor ecx, r13d
add edx, ecx
mov ecx, ebp
add edx, dword [rax - 8]
ror ecx, 0xd
add edi, edx
add r14d, edi
mov edx, ebp
ror edx, 0x16
add edi, r10d
xor edx, ecx
mov ecx, ebp
ror ecx, 2
xor edx, ecx
mov ecx, r14d
ror ecx, 0xb
add edi, edx
mov edx, r14d
mov r9d, edi
ror edx, 0x19
xor r9d, ebp
xor edx, ecx
mov r10d, edi
mov ecx, r14d
ror ecx, 6
xor edx, ecx
mov ecx, r12d
xor ecx, r15d
and ecx, r14d
xor ecx, r12d
add edx, ecx
mov ecx, edi
add edx, dword [rax - 4]
add r13d, edx
ror ecx, 0xd
add ebx, r13d
mov edx, edi
ror edx, 0x16
xor edx, ecx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, r9d
and ecx, r8d
xor ecx, ebp
add r13d, ecx
mov ecx, ebx
add r13d, edx
ror ecx, 0xb
mov edx, ebx
xor r10d, r13d
ror edx, 0x19
xor edx, ecx
mov ecx, ebx
ror ecx, 6
xor edx, ecx
mov ecx, r15d
xor ecx, r14d
and ecx, ebx
xor ecx, r15d
add edx, ecx
add edx, dword [rax]
add r12d, edx
mov edx, r13d
add r11d, r12d
ror edx, 0x16
mov ecx, r13d
mov r8d, r13d
ror ecx, 0xd
xor edx, ecx
mov ecx, r13d
ror ecx, 2
xor edx, ecx
mov ecx, r10d
and ecx, r9d
xor ecx, edi
add r12d, ecx
mov ecx, r11d
ror ecx, 0xb
add r12d, edx
xor r8d, r12d
mov edx, r11d
ror edx, 0x19
and r10d, r8d
xor edx, ecx
xor r10d, r13d
mov ecx, r11d
mov r9d, r12d
ror ecx, 6
xor edx, ecx
mov ecx, r14d
xor ecx, ebx
and ecx, r11d
xor ecx, r14d
add edx, ecx
mov ecx, r12d
add edx, dword [rax + 4]
ror ecx, 0xd
add r15d, edx
add ebp, r15d
mov edx, r12d
ror edx, 0x16
add r15d, r10d
xor edx, ecx
mov ecx, r12d
ror ecx, 2
xor edx, ecx
mov ecx, ebp
ror ecx, 0xb
add r15d, edx
xor r9d, r15d
mov edx, ebp
ror edx, 0x19
xor edx, ecx
mov ecx, ebp
ror ecx, 6
xor edx, ecx
mov ecx, ebx
xor ecx, r11d
and ecx, ebp
xor ecx, ebx
add edx, ecx
mov ecx, r15d
add edx, dword [rax + 8]
ror ecx, 0xd
add r14d, edx
add edi, r14d
mov edx, r15d
ror edx, 0x16
xor edx, ecx
mov ecx, r15d
ror ecx, 2
xor edx, ecx
mov ecx, r9d
and ecx, r8d
xor ecx, r12d
add r14d, ecx
mov ecx, edi
ror ecx, 0xb
add r14d, edx
mov edx, edi
ror edx, 0x19
xor edx, ecx
mov ecx, edi
ror ecx, 6
xor edx, ecx
mov ecx, r11d
xor ecx, ebp
mov r8d, r15d
and ecx, edi
xor r8d, r14d
xor ecx, r11d
add edx, ecx
mov ecx, r14d
add edx, dword [rax + 0xc]
ror ecx, 0xd
add ebx, edx
add r13d, ebx
mov edx, r14d
ror edx, 0x16
xor edx, ecx
mov ecx, r14d
ror ecx, 2
xor edx, ecx
mov ecx, r8d
and ecx, r9d
mov r9d, r14d
xor ecx, r15d
add ebx, ecx
mov ecx, r13d
ror ecx, 0xb
add ebx, edx
xor r9d, ebx
mov edx, r13d
ror edx, 0x19
mov r10d, ebx
xor edx, ecx
mov ecx, r13d
ror ecx, 6
xor edx, ecx
mov ecx, edi
xor ecx, ebp
and ecx, r13d
xor ecx, ebp
add edx, ecx
mov ecx, ebx
add edx, dword [rax + 0x10]
ror ecx, 0xd
add r11d, edx
add r12d, r11d
mov edx, ebx
ror edx, 0x16
xor edx, ecx
mov ecx, ebx
ror ecx, 2
xor edx, ecx
mov ecx, r9d
and ecx, r8d
xor ecx, r14d
add r11d, ecx
mov ecx, r12d
add r11d, edx
ror ecx, 0xb
xor r10d, r11d
mov edx, r12d
ror edx, 0x19
and r9d, r10d
xor edx, ecx
mov ecx, r12d
ror ecx, 6
xor edx, ecx
mov ecx, edi
xor ecx, r13d
and ecx, r12d
xor ecx, edi
add edx, ecx
mov ecx, r11d
add edx, dword [rax + 0x14]
add ebp, edx
ror ecx, 0xd
mov edx, r11d
add r15d, ebp
ror edx, 0x16
xor edx, ecx
mov ecx, r11d
ror ecx, 2
xor edx, ecx
xor r9d, ebx
add ebp, r9d
lea rax, [rax + 0x20]
add ebp, edx
sub rsi, 1
jne 0x140283b90
mov rax, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x90]
mov dword [rsp + 0x20], edi
mov rdi, qword [rsp + 0x30]
mov ecx, dword [rsp + 0x20]
bswap ebp
mov dword [rax + rsi - 8], ebp
add rax, 0x20
bswap r11d
mov dword [rdi - 4], r11d
bswap ebx
mov dword [rdi], ebx
bswap r14d
mov dword [rdi + 4], r14d
bswap r15d
mov dword [rdi + 8], r15d
bswap r12d
mov dword [rdi + 0xc], r12d
bswap r13d
mov dword [rdi + 0x10], r13d
bswap ecx
mov dword [rdi + 0x14], ecx
add rdi, 0x20
sub qword [rsp + 0x98], 1
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rdi
jne 0x140283b41
mov r15, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x88]
add rsp, 0x58
pop r14
pop rdi
pop rsi
pop rbx
ret
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rdi, qword [rcx + 8]
mov rbx, r9
movaps xmmword [rsp + 0x10], xmm8
movdqa xmm8, xmmword [0x14032ba90]
movaps xmmword [rsp], xmm9
movdqa xmm9, xmmword [0x14032ba80]
cmp r9, 2
jb 0x1402ce227
shr r9, 1
mov r10, r8
imul rax, r9, 0xfffffffffffffffe
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x20], xmm7
sub r10, rdx
add rbx, rax
movdqu xmm6, xmmword [rdx]
lea rax, [rdi + 0x20]
mov ecx, 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
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 rcx, 1
jne 0x1402ce090
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 r9, 1
jne 0x1402ce042
movaps xmm7, xmmword [rsp + 0x20]
movaps xmm6, xmmword [rsp + 0x30]
test rbx, rbx
je 0x1402ce40c
sub r8, rdx
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rdx + 0x10]
movdqu xmm2, xmmword [rdx]
movdqu xmm1, xmmword [rdi + 0x10]
movdqa xmm3, xmm2
punpckhqdq xmm2, xmm0
punpcklqdq xmm3, xmm0
movdqu xmm0, xmmword [rdi]
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 [rdi + 0x20]
movdqu xmm1, xmmword [rdi + 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 [rdi + 0x40]
movdqu xmm1, xmmword [rdi + 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 [rdi + 0x60]
movdqu xmm1, xmmword [rdi + 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 [rdi + 0x90]
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rdi + 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 [rdi + 0xb0]
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rdi + 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 [rdi + 0xd0]
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rdi + 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 [rdi + 0xf0]
sha256rnds2 xmm3, xmm2, xmm0
movdqu xmm0, xmmword [rdi + 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 [rdx + r8 - 0x20], xmm0
movdqu xmmword [rdx + r8 - 0x10], xmm3
sub rbx, 1
jne 0x1402ce240
mov rbx, qword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x10]
movaps xmm9, xmmword [rsp]
add rsp, 0x40
pop rdi
ret