Function at 0x14001038e
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc78
movaps xmmword [rsp + 0xc60], xmm6
mov r15, r9
mov r13, rcx
lea rbp, [rsp + 0x200]
mov rcx, rbp
call fcn.14004ef25
cmp qword [rbp], 0
mov rdi, qword [rbp + 8]
mov rsi, qword [rbp + 0x10]
mov r14d, dword [rbp + 0x18]
mov cl, byte [rbp + 0x1c]
mov bl, byte [rbp + 0x1d]
je 0x140010423
movzx eax, word [rsp + 0x21e]
movups xmm0, xmmword [rsp + 0x220]
mov qword [rsp + 0x408], rdi
mov qword [rsp + 0x410], rsi
mov dword [rsp + 0x418], r14d
mov byte [rsp + 0x41c], cl
mov byte [rsp + 0x41d], bl
mov word [rsp + 0x41e], ax
movups xmmword [rsp + 0x420], xmm0
jmp 0x14001052c
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r13
mov r12, qword [rsp + 0x220]
mov r13, qword [rsp + 0x228]
call fcn.14004f006
cmp al, 4
je 0x140012086
mov ebp, eax
lea r15, [rsp + 0x200]
mov rcx, r15
mov rdx, rdi
mov r8, rsi
call fcn.14004f015
mov rdx, qword [r15]
mov rsi, qword [r15 + 8]
mov rdi, qword [r15 + 0x10]
mov al, byte [r15 + 0x18]
mov cl, byte [r15 + 0x19]
cmp rdx, 3
jne 0x1400104d4
mov qword [rsp + 0x90], r12
movzx r12d, cl
movabs rcx, 0x8000000000000010
movabs rdx, 0x8000000000000002
test al, al
je 0x140010ad2
cmp r12d, 0x7f
je 0x1400109f6
test r12d, r12d
jne 0x140010a0f
mov qword [rsp + 0x408], 1
mov qword [rsp + 0x410], rcx
mov byte [rsp + 0x418], 0
jmp 0x14001051a
mov r8, qword [rsp + 0x21a]
mov r9, qword [rsp + 0x220]
mov qword [rsp + 0x428], r9
mov qword [rsp + 0x422], r8
mov qword [rsp + 0x408], rdx
mov qword [rsp + 0x410], rsi
mov qword [rsp + 0x418], rdi
mov byte [rsp + 0x420], al
mov byte [rsp + 0x421], cl
mov r13, qword [rsp + 0x38]
lea rbp, [rsp + 0x200]
mov r15, qword [rsp + 0x30]
movups xmm0, xmmword [rsp + 0x408]
mov rax, qword [rsp + 0x418]
movups xmm1, xmmword [rsp + 0x420]
movups xmmword [rsp + 0x408], xmm0
mov qword [rsp + 0x418], rax
movups xmmword [rsp + 0x420], xmm1
mov qword [rsp + 0x400], 2
mov qword [rsp + 0x408], 1
mov qword [rsp + 0x410], rdx
jmp 0x14001051a
lea r15, [rsp + 0x200]
mov rcx, r15
mov rdx, r12
mov r8, rsi
mov r9, rdi
call fcn.14004f09d
mov rax, qword [r15]
mov rsi, qword [r15 + 8]
mov rdi, qword [r15 + 0x10]
mov rdx, qword [r15 + 0x18]
mov r8, qword [r15 + 0x20]
cmp rax, 3
jne 0x140010bf8
lea r15, [rsp + 0x810]
mov rcx, r15
call fcn.14004f0d8
mov r15, qword [r15]
movabs rax, 0x8000000000000015
cmp r15, rax
jne 0x140010d00
mov rdx, qword [rsp + 0x818]
lea r8, [rsp + 0x200]
mov qword [r8], 1
movabs rax, 0x8000000000000002
mov qword [r8 + 8], rax
lea r12, [rsp + 0x350]
mov rcx, r12
mov qword [rsp + 0x98], rdx
call fcn.14004f113
mov rax, qword [r12]
mov r12, qword [r12 + 8]
cmp rax, 3
jne 0x140010d8f
movabs rcx, 0x8000000000000015
mov rdx, qword [rsp + 0x98]
call fcn.14005a4ff
test bl, bl
lea rdx, [rsp + 0x200]
mov byte [rdx + 0x2d], bpl
setne byte [rdx + 0x2c]
mov dword [rdx + 0x28], r14d
and qword [rdx], 0
mov qword [rdx + 8], r12
movabs r14, 0x8000000000000001
mov qword [rdx + 0x10], r14
movabs rax, 0x8000000000000000
lea r8, [rsp + 0x350]
mov qword [r8], rax
mov rax, qword [rsp + 0x90]
mov qword [r8 + 8], rax
mov qword [r8 + 0x10], r13
lea r15, [rsp + 0x400]
mov rcx, r15
call fcn.14004f068
mov qword [r15 - 0x10], rsi
mov qword [r15 - 8], rdi
mov rax, qword [r15]
cmp rax, 2
mov r13, qword [rsp + 0x38]
lea rbp, [rsp + 0x200]
mov r15, qword [rsp + 0x30]
je 0x14001052c
mov rdi, qword [rsp + 0x3f0]
mov rbp, qword [rsp + 0x3f8]
mov rsi, qword [rsp + 0x408]
mov r13, qword [rsp + 0x410]
mov r12, qword [rsp + 0x418]
movups xmm0, xmmword [rsp + 0x420]
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x130], xmm0
test rax, rax
jne 0x140010c25
mov rcx, rsi
shr rcx, 0x20
je 0x140010c25
mov qword [rsp + 0x408], 1
movabs rax, 0x8000000000000002
mov qword [rsp + 0x410], rax
mov qword [rsp + 0x418], rbp
mov qword [rsp + 0x408], rax
mov qword [rsp + 0x410], rsi
mov qword [rsp + 0x418], rdi
mov qword [rsp + 0x420], rdx
mov qword [rsp + 0x428], r8
jmp 0x14001051a
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0xd8], r12
movaps xmm0, xmmword [rsp + 0x130]
movups xmmword [rsp + 0xe0], xmm0
cmp byte [rsp + 0xed], 0
je 0x140010d2b
lea rsi, [rsp + 0x3f0]
lea r9, [rsp + 0xc0]
mov rcx, rsi
mov rdx, rdi
mov r8, rbp
call fcn.14005ac61
mov rax, qword [rsi]
mov r15, qword [rsi + 8]
mov rbp, qword [rsi + 0x10]
mov r14, qword [rsi + 0x18]
mov rbx, qword [rsi + 0x20]
cmp rax, 3
jne 0x140010d56
lea rsi, [rsp + 0x840]
lea rdi, [rsp + 0xc0]
mov rcx, rsi
mov rdx, rdi
call fcn.14005a55f
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movaps xmmword [rsi - 0x10], xmm2
movaps xmmword [rsi - 0x20], xmm1
movaps xmmword [rsi - 0x30], xmm0
lea rax, [rsp + 0x400]
mov qword [rax - 0x10], r15
mov qword [rax - 8], rbp
lea rsi, [rsp + 0x810]
mov ecx, 0xc
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
mov qword [rax + 0x60], r14
mov qword [rax + 0x68], rbx
jmp 0x140011cb5
mov qword [rsp + 0x408], 1
movabs rax, 0x8000000000000002
mov qword [rsp + 0x410], rax
mov rdx, qword [rsp + 0x818]
jmp 0x140010dc7
test rax, rax
je 0x14001177e
mov qword [rsp + 0x58], 1
movabs rax, 0x8000000000000008
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rsi
jmp 0x140011b6d
mov qword [rsp + 0x408], rax
mov qword [rsp + 0x410], r15
mov qword [rsp + 0x418], rbp
mov qword [rsp + 0x420], r14
mov qword [rsp + 0x428], rbx
mov qword [rsp + 0x400], 2
jmp 0x140011caa
mov rcx, qword [rsp + 0x370]
mov qword [rsp + 0x428], rcx
movups xmm0, xmmword [rsp + 0x360]
movups xmmword [rsp + 0x418], xmm0
mov qword [rsp + 0x408], rax
mov qword [rsp + 0x410], r12
mov rdx, qword [rsp + 0x98]
mov rcx, r15
call fcn.14005a4ff
jmp 0x14001051a
cmp rsi, rbp
jbe 0x140011793
and qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rsi
invalid
jmp 0x140011b6d
mov eax, dword [rsp + 0xe8]
mov cl, byte [rsp + 0xec]
in al, dx
add byte [rax], al
add byte [rbp - 0x57c00b0], cl
sbb eax, 0x298870f
add byte [rax], al
lea rcx, str.internal_error:_entered_unreachable_codemid___len
lea r8, [0x140251a48]
mov edx, 0x28
call fcn.1402418d0