Function at 0x14009c0a0
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.14009c0a0]
xor ebx, ebx
mov rsi, r8
mov r14, rdx
mov rdi, rcx
cmp rbp, rax
je 0x14009c137
test rax, rax
je 0x14009c137
mov rax, qword [rcx + 0x20]
mov rcx, qword [rcx]
test rax, rax
je 0x14009c0ee
call qword [case.0x140032886.0]
jmp 0x14009c110
test r14, r14
je 0x14009c10b
mov rax, qword [rdx + 8]
test rax, rax
je 0x14009c10b
mov rdx, rcx
mov rcx, qword [r14 + 0x10]
call qword [case.0x140032886.0]
jmp 0x14009c110
call fcn.1400e3bf4
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 0x14009c34a
cmp dword [rsi], 1
ja 0x14009c34a
mov r8d, dword [rsi + 4]
lea eax, [r8 - 8]
cmp eax, 0x3f8
ja 0x14009c34a
test r8b, 3
jne 0x14009c34a
mov rdx, qword [rsi + 0x10]
movabs r9, 0x7ffffffffffffffe
lea rax, [rdx - 1]
cmp rax, r9
jbe 0x14009c18b
cmp rdx, 0xffffffffffffffff
jne 0x14009c34a
mov eax, dword [rsi + 8]
cmp eax, 0xf
ja 0x14009c34a
lea rbp, [0x14013a818]
cmp rdx, 0xffffffffffffffff
je 0x14009c1c5
movzx ecx, byte [rax + rbp]
lea rax, [rdx + r8]
dec rcx
add rax, rcx
movabs rcx, 0x7ffffffffffffffb
cmp rax, rcx
ja 0x14009c34a
mov rax, qword [rsi + 0x18]
movabs rcx, 0x8000000000000000
sub rax, rcx
cmp rax, r9
jbe 0x14009c34a
mov rcx, qword [rdi]
test rcx, rcx
jne 0x14009c26c
test r14, r14
je 0x14009c20d
mov rax, qword [r14]
test rax, rax
je 0x14009c20d
lea edx, [rcx + 1]
mov r8d, 0xf8
mov rcx, qword [r14 + 0x10]
call qword [case.0x140032886.0]
jmp 0x14009c217
mov ecx, 0xf8
call fcn.1400e9cb4
mov rcx, rax
test rax, rax
jne 0x14009c227
lea eax, [rcx + 5]
jmp 0x14009c34f
mov qword [rdi], rcx
lea rax, [0x14009bcf0]
mov qword [rdi + 0x18], rax
lea rax, [0x14009bfe0]
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 0x14009c2aa
mov eax, dword [rsi + 8]
mov r8d, 0xffffffff
cmp eax, 0xf
ja 0x14009c297
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 0x14009c30f
sub edx, 3
je 0x14009c306
cmp edx, 6
jne 0x14009c315
movups xmm0, xmmword [0x14013c920]
movups xmmword [rcx + 0xc8], xmm0
movups xmm1, xmmword [0x14013c930]
mov qword [rcx + 0xe8], rbx
movups xmmword [rcx + 0xd8], xmm1
jmp 0x14009c315
mov qword [rcx + 0xc8], rbx
jmp 0x14009c315
mov dword [rcx + 0xc8], ebx
cmp dword [rsi], 1
jb 0x14009c321
movzx ebx, byte [rsi + 0xc8]
test ebx, ebx
mov byte [rsp + 0x20], 0
lea r9, [0x14009c370]
mov rdx, r14
setne al
mov byte [rcx + 0xf0], al
add rcx, 8
mov r8, qword [rsi + 0x20]
call fcn.14009d060
jmp 0x14009c34f
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