Function at 0x1400317a8
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1e8
mov r13, r8
mov rdi, rdx
lea r14, [rsp + 0x198]
xorps xmm0, xmm0
movups xmmword [r14 + 0x30], xmm0
movups xmmword [r14 + 0x20], xmm0
movups xmmword [r14 + 0x10], xmm0
movups xmmword [r14], xmm0
mov byte [r14 + 0x40], 0
movups xmm0, xmmword [0x140a5e530]
movaps xmmword [r14 - 0x28], xmm0
movups xmm0, xmmword [0x140a5e540]
movaps xmmword [r14 - 0x18], xmm0
and qword [r14 - 8], 0
mov qword [rsp + 0x38], rcx
lea rax, [rsp + 0x170]
mov qword [rsp + 0x100], rax
cmp r8, 0x3f
ja 0x14003185e
lea r8, [0x140a5e3c0]
xor ecx, ecx
mov rdx, r14
call fcn.140001000
mov r8, rdx
lea r9, [0x140a5e3d8]
mov rcx, r13
mov rdx, rax
call fcn.14001b7a0
lea rcx, [0x140a5e3f0]
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, rdi
mov r9, r13
call fcn.14008cb4f
jmp 0x1400318bb
mov r12, r13
and r12, 0xffffffffffffffc0
mov r15d, r13d
and r15d, 0x3f
add r12, rdi
shr r13, 6
lea rcx, [rsp + 0x100]
mov rdx, rdi
mov r8, r13
call fcn.140031c3c
lea r9, [0x140a5e390]
mov r8d, 0x40
mov rcx, r15
mov rdx, r14
call fcn.14001b7a0
lea rcx, [0x140a5e3a8]
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r12
mov r9, r15
call fcn.14008cb4f
mov r13, r15
lea rsi, [rsp + 0x170]
mov byte [rsi + 0x68], r13b
lea rax, [rsp + 0x100]
mov ecx, 0xe
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
lea rsi, [rsp + 0x128]
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x30], rax
movzx edi, byte [rsi + 0x40]
mov r14, qword [rsi - 8]
mov ebx, edi
shl ebx, 3
mov byte [rsp + rdi + 0x128], 0x80
lea rcx, [rdi + 1]
lea r8, [0x140a5e408]
mov rdx, rsi
call fcn.140001000
xor ecx, ecx
cmp rdx, rcx
je 0x140031936
mov byte [rax + rcx], 0
inc rcx
jmp 0x140031928
shl r14, 9
or r14, rbx
bswap r14
not edi
test dil, 0x38
jne 0x14003197c
lea rdi, [rsp + 0x30]
mov rcx, rdi
mov rdx, rsi
call fcn.14000112f
xorps xmm0, xmm0
lea rdx, [rsp + 0x80]
movaps xmmword [rdx + 0x20], xmm0
movaps xmmword [rdx + 0x10], xmm0
movaps xmmword [rdx], xmm0
and qword [rdx + 0x30], 0
mov qword [rdx + 0x38], r14
mov rcx, rdi
jmp 0x14003198c
mov qword [rsp + 0x160], r14
lea rcx, [rsp + 0x30]
mov rdx, rsi
call fcn.14000112f
mov byte [rsp + 0x168], 0
lea rax, [rsp + 0x60]
mov r8, qword [rsp + 0x30]
lea r9, [r8 + 0x20]
lea rdi, [rsp + 0xd0]
mov qword [rdi], rax
and qword [rdi + 8], 0
lea rax, [rsp + 0x40]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0x20
mov qword [rdi + 0x20], 4
lea rsi, [rsp + 0x80]
mov rcx, rsi
mov rdx, rdi
call fcn.140031df7
mov r12, qword [rsi + 0x40]
mov r13, qword [rsi + 0x10]
mov r14, qword [rsi + 0x20]
mov rbp, qword [rsi + 0x28]
mov r15, qword [rsi + 0x38]
mov rbx, r15
imul rbx, r14
add rbx, r13
lea rsi, str.C:Usersuser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sha2_0.10.8_srccore_api.rs
cmp r15, r12
jae 0x140031a41
test r13, r13
je 0x140031a41
mov eax, dword [rbp + r15*4]
inc r15
bswap eax
mov dword [rsp + 0xd0], eax
mov qword [rsp + 0x20], rsi
mov r9d, 4
mov rcx, rbx
mov rdx, r14
mov r8, rdi
call fcn.14008cb4f
add rbx, r14
jmp 0x140031a08
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
mov qword [rsp + 0x80], rdi
lea rax, [0x1400316d3]
mov qword [rsp + 0x88], rax
lea rax, [0x140a94490]
lea rdx, [rsp + 0x100]
mov qword [rdx], rax
mov eax, 1
mov qword [rdx + 8], rax
and qword [rdx + 0x20], 0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
lea rcx, [rsp + 0x80]
mov qword [rdx + 0x10], rcx
mov qword [rdx + 0x18], rax
lea rsi, [rsp + 0x60]
mov rcx, rsi
call fcn.1400079c0
mov rdx, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
test al, 1
jne 0x140031bb2
lea r8, [rsp + 0x30]
mov byte [r8], 0
lea rcx, [rsp + 0x80]
mov qword [rcx], r8
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], rax
and qword [rcx + 0x18], 0
shr rax, 1
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], 1
mov byte [rcx + 0x30], 1
call fcn.140031e6c
test al, 1
je 0x140031bc6
mov ebp, edx
lea rsi, [rsp + 0x100]
mov edx, 8
mov rcx, rsi
call fcn.14008c9fd
cmp qword [rsi], 0
mov rcx, qword [rsi + 8]
jne 0x140031c2e
lea rdi, [rsp + 0x100]
mov rsi, qword [rdi + 0x10]
mov byte [rsi], bpl
lea r14, [rsp + 0x40]
mov qword [r14], rcx
mov qword [r14 + 8], rsi
mov qword [r14 + 0x10], 1
mov rax, qword [rsp + 0xb0]
mov qword [rdi + 0x30], rax
movups xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movups xmm2, xmmword [rsp + 0xa0]
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
mov r15d, 1
mov rcx, rdi
call fcn.140031e6c
test al, 1
je 0x140031bd2
mov ebp, edx
cmp r15, qword [rsp + 0x40]
jne 0x140031ba4
mov edx, 1
mov rcx, r14
call fcn.14009fbc8
mov rsi, qword [rsp + 0x48]
mov byte [rsi + r15], bpl
inc r15
mov qword [rsp + 0x50], r15
jmp 0x140031b7d
movabs rax, 0x8000000000000000
mov rcx, qword [rsp + 0x38]
mov qword [rcx], rax
jmp 0x140031c0f
mov esi, 1
xor ecx, ecx
xor r15d, r15d
jmp 0x140031bd7
mov rcx, qword [rsp + 0x40]
cmp byte [rsp + 0x30], 0
je 0x140031bfa
movabs rax, 0x8000000000000000
mov rdx, qword [rsp + 0x38]
mov qword [rdx], rax
mov rdx, rsi
call fcn.140088c69
jmp 0x140031c0a
mov rax, qword [rsp + 0x38]
mov qword [rax], rcx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], r15
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
call fcn.140088c69
nop
add rsp, 0x1e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x110]
call fcn.1400b5c40
int3