Function at 0x140173980
Capabilities:
Hash data using sha256

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x30
mov rax, qword [rcx + 0x10]
lea rbp, [fcn.140173980]
xor ebx, ebx
mov rsi, r8
mov r14, rdx
mov rdi, rcx
cmp rbp, rax
je 0x140173a17
test rax, rax
je 0x140173a17
mov rax, qword [rcx + 0x20]
mov rcx, qword [rcx]
test rax, rax
je 0x1401739ce
call qword [case.0x1400d90b6.0]
jmp 0x1401739f0
test r14, r14
je 0x1401739eb
mov rax, qword [rdx + 8]
test rax, rax
je 0x1401739eb
mov rdx, rcx
mov rcx, qword [r14 + 0x10]
call qword [case.0x1400d90b6.0]
jmp 0x1401739f0
call fcn.1401b3750
mov qword [rdi], rbx
mov qword [rdi + 8], 0xffffffffffffffff
mov qword [rdi + 0x18], rbx
mov qword [rdi + 0x20], rbx
mov qword [rdi + 0x28], rbx
mov qword [rdi + 0x30], rbx
mov qword [rdi + 0x38], rbx
mov qword [rdi + 0x40], rbx
mov qword [rdi + 0x48], rbx
mov qword [rdi + 0x10], rbp
test rsi, rsi
je 0x140173c2a
cmp dword [rsi], 1
ja 0x140173c2a
mov r8d, dword [rsi + 4]
lea eax, [r8 - 8]
cmp eax, 0x3f8
ja 0x140173c2a
test r8b, 3
jne 0x140173c2a
mov rdx, qword [rsi + 0x10]
movabs r9, 0x7ffffffffffffffe
cmp rdx, 0xffffffffffffffff
je 0x140173a6b
lea rax, [rdx - 1]
cmp rax, r9
ja 0x140173c2a
mov eax, dword [rsi + 8]
cmp eax, 0xf
ja 0x140173c2a
lea rbp, [0x140250eb8]
cmp rdx, 0xffffffffffffffff
je 0x140173aa5
movzx ecx, byte [rax + rbp]
lea rax, [rdx + r8]
dec rcx
add rax, rcx
movabs rcx, 0x7ffffffffffffffb
cmp rax, rcx
ja 0x140173c2a
mov rax, qword [rsi + 0x18]
movabs rcx, 0x8000000000000000
sub rax, rcx
cmp rax, r9
jbe 0x140173c2a
mov rcx, qword [rdi]
test rcx, rcx
jne 0x140173b4c
test r14, r14
je 0x140173aed
mov rax, qword [r14]
test rax, rax
je 0x140173aed
lea edx, [rcx + 1]
mov r8d, 0xf8
mov rcx, qword [r14 + 0x10]
call qword [case.0x1400d90b6.0]
jmp 0x140173af7
mov ecx, 0xf8
call fcn.1401b57f8
mov rcx, rax
test rax, rax
jne 0x140173b07
lea eax, [rcx + 5]
jmp 0x140173c2f
mov qword [rdi], rcx
lea rax, [0x1401735c0]
mov qword [rdi + 0x18], rax
lea rax, [0x1401738c0]
mov qword [rdi + 0x20], rax
mov qword [rcx + 8], rbx
mov qword [rcx + 0x10], 0xffffffffffffffff
mov qword [rcx + 0x18], rbx
mov qword [rcx + 0x20], rbx
mov qword [rcx + 0x28], rbx
mov qword [rcx + 0x30], rbx
mov qword [rcx + 0x38], rbx
mov qword [rcx + 0x40], rbx
mov qword [rcx + 0x48], rbx
mov qword [rcx + 0x50], rbx
mov dword [rcx], ebx
mov qword [rcx + 0x58], rsi
mov qword [rcx + 0x60], rbx
mov qword [rcx + 0x68], rbx
mov rdx, qword [rsi + 0x10]
cmp rdx, 0xffffffffffffffff
jne 0x140173b8a
mov eax, dword [rsi + 8]
mov r8d, 0xffffffff
cmp eax, 0xf
ja 0x140173b77
movzx r8d, byte [rax + rbp]
mov eax, dword [rsi + 4]
movabs rdx, 0x7ffffffffffffffc
sub rdx, rax
sub rdx, r8
mov qword [rcx + 0x70], rdx
movabs rdx, 0x7fffffffffffffff
mov rax, qword [rsi + 0x18]
cmp rax, 0xffffffffffffffff
mov qword [rcx + 0x80], rbx
cmove rax, rdx
mov qword [rcx + 0x78], rax
mov edx, dword [rsi + 8]
sub edx, 1
je 0x140173bef
sub edx, 3
je 0x140173be6
cmp edx, 6
jne 0x140173bf5
movups xmm0, xmmword [0x1402530c0]
movups xmmword [rcx + 0xc8], xmm0
movups xmm1, xmmword [0x1402530d0]
mov qword [rcx + 0xe8], rbx
movups xmmword [rcx + 0xd8], xmm1
jmp 0x140173bf5
mov qword [rcx + 0xc8], rbx
jmp 0x140173bf5
mov dword [rcx + 0xc8], ebx
cmp dword [rsi], 1
jb 0x140173c01
movzx ebx, byte [rsi + 0xc8]
test ebx, ebx
mov byte [rsp + 0x20], 0
lea r9, [0x140173c50]
mov rdx, r14
setne al
mov byte [rcx + 0xf0], al
add rcx, 8
mov r8, qword [rsi + 0x20]
call fcn.140174940
jmp 0x140173c2f
mov eax, 0xb
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret