Function at 0x14003a8ca
Capabilities:
Hash data using sha256

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1f8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x170], 0xfffffffffffffffe
mov r13, r8
mov rdi, rdx
lea r14, [rbp - 0x28]
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 [0x140aa1998]
movaps xmmword [r14 - 0x28], xmm0
movups xmm0, xmmword [0x140aa19a8]
movaps xmmword [r14 - 0x18], xmm0
and qword [r14 - 8], 0
mov qword [rbp + 0x160], rcx
lea rax, [rbp - 0x50]
mov qword [rbp + 0x20], rax
cmp r8, 0x3f
ja 0x14003a989
lea r8, [0x140aa18c0]
xor ecx, ecx
mov rdx, r14
call fcn.140001000
mov r8, rdx
lea r9, [0x140aa18d8]
mov rcx, r13
mov rdx, rax
call fcn.140021aeb
lea rcx, [0x140aa18f0]
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, rdi
mov r9, r13
call fcn.14003e8d6
jmp 0x14003a9e0
mov r12, r13
and r12, 0xffffffffffffffc0
mov r15d, r13d
and r15d, 0x3f
add r12, rdi
shr r13, 6
lea rcx, [rbp + 0x20]
mov rdx, rdi
mov r8, r13
call fcn.14003adf5
lea r9, [0x140aa1890]
push 0x40
pop r8
mov rcx, r15
mov rdx, r14
call fcn.140021aeb
lea rcx, [0x140aa18a8]
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r12
mov r9, r15
call fcn.14003e8d6
mov r13, r15
lea rsi, [rbp - 0x50]
mov byte [rsi + 0x68], r13b
push 0xe
pop rcx
lea rax, [rbp + 0x20]
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
xorps xmm0, xmm0
movaps xmmword [rbp + 0x120], xmm0
movaps xmmword [rbp + 0x110], xmm0
lea rsi, [rbp + 0x48]
movaps xmmword [rbp + 0x150], xmm0
movaps xmmword [rbp + 0x140], xmm0
mov qword [rbp + 0x168], rax
movzx edi, byte [rsi + 0x40]
mov r14, qword [rsi - 8]
mov ebx, edi
shl ebx, 3
mov byte [rbp + rdi + 0x48], 0x80
lea rcx, [rdi + 1]
lea r8, [0x140aa1908]
mov rdx, rsi
call fcn.140001000
xor ecx, ecx
cmp rdx, rcx
je 0x14003aa54
mov byte [rax + rcx], 0
inc rcx
jmp 0x14003aa46
shl r14, 9
or r14, rbx
bswap r14
not edi
test dil, 0x38
jne 0x14003aa9b
lea rdi, [rbp + 0x168]
mov rcx, rdi
mov rdx, rsi
call fcn.140001418
xorps xmm0, xmm0
lea rdx, [rbp + 0xc0]
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 0x14003aaac
mov qword [rbp + 0x80], r14
lea rcx, [rbp + 0x168]
mov rdx, rsi
call fcn.140001418
mov byte [rbp + 0x88], 0
lea rax, [rbp + 0x160]
mov r8, qword [rbp + 0x168]
lea r9, [r8 + 0x20]
lea rdx, [rbp + 0x90]
mov qword [rdx], rax
and qword [rdx + 8], 0
lea rax, [rbp + 0x140]
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], 0x20
mov qword [rdx + 0x20], 4
lea rsi, [rbp + 0xc0]
mov rcx, rsi
call fcn.14003ae01
mov r13, qword [rsi + 0x10]
mov r14, qword [rsi + 0x20]
mov rbx, qword [rsi + 0x28]
mov r15, qword [rsi + 0x38]
mov rdi, qword [rsi + 0x40]
mov rsi, r15
imul rsi, r14
add rsi, r13
push 4
pop r12
cmp r15, rdi
jae 0x14003ab64
test r13, r13
je 0x14003ab64
mov eax, dword [rbx + r15*4]
inc r15
bswap eax
mov dword [rbp + 0xc0], eax
lea rax, [0x140aa1980]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov rdx, r14
lea r8, [rbp + 0xc0]
mov r9, r12
call fcn.14003e8d6
add rsi, r14
jmp 0x14003ab25
movaps xmm0, xmmword [rbp + 0x140]
movaps xmm1, xmmword [rbp + 0x150]
lea rax, [rbp + 0x90]
mov qword [rbp + 0xc0], rax
lea rax, [0x14003af93]
mov qword [rbp + 0xc8], rax
lea rax, [0x140ad7bb0]
lea rdx, [rbp + 0x20]
mov qword [rdx], rax
push 1
pop rsi
mov qword [rdx + 8], rsi
and qword [rdx + 0x20], 0
movaps xmmword [rbp + 0x90], xmm0
movaps xmmword [rbp + 0xa0], xmm1
lea rax, [rbp + 0xc0]
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], rsi
lea rdi, [rbp + 0x110]
mov rcx, rdi
call fcn.14000ae80
mov rbx, qword [rdi + 8]
mov rax, qword [rdi + 0x10]
test al, 1
jne 0x14003acd9
lea rdx, [rbp + 0x168]
mov byte [rdx], 0
lea rcx, [rbp + 0xc0]
mov qword [rcx], rdx
mov qword [rcx + 8], rbx
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.14003a783
test al, 1
je 0x14003acef
mov r14d, edx
mov qword [rbp + 0x138], rbx
lea rsi, [rbp + 0x20]
push 8
pop rdx
mov rcx, rsi
call fcn.1400de8b0
cmp qword [rsi], 0
mov rcx, qword [rsi + 8]
jne 0x14003ad68
lea rdi, [rbp + 0x20]
mov rsi, qword [rdi + 0x10]
mov byte [rsi], r14b
lea r14, [rbp + 0x140]
mov qword [r14], rcx
mov qword [r14 + 8], rsi
mov qword [r14 + 0x10], 1
mov rax, qword [rbp + 0xf0]
mov qword [rdi + 0x30], rax
movups xmm0, xmmword [rbp + 0xc0]
movups xmm1, xmmword [rbp + 0xd0]
movups xmm2, xmmword [rbp + 0xe0]
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
push 1
pop r15
mov r13, r15
mov rcx, rdi
call fcn.14003a783
test al, 1
je 0x14003acf6
mov r12d, edx
cmp r13, qword [rbp + 0x140]
jne 0x14003acc9
mov rcx, r14
mov rdx, r15
call fcn.1400de9a1
mov rsi, qword [rbp + 0x148]
mov byte [rsi + r13], r12b
inc r13
mov qword [rbp + 0x150], r13
jmp 0x14003ac9f
movabs rax, 0x8000000000000000
mov rcx, qword [rbp + 0x160]
mov qword [rcx], rax
jmp 0x14003ad44
xor ecx, ecx
xor r13d, r13d
jmp 0x14003ad04
mov rcx, qword [rbp + 0x140]
mov rbx, qword [rbp + 0x138]
cmp byte [rbp + 0x168], 0
je 0x14003ad32
movabs rax, 0x8000000000000000
mov rdx, qword [rbp + 0x160]
mov qword [rdx], rax
mov rdx, rsi
call fcn.1400c398a
mov rbx, qword [rbp + 0x118]
jmp 0x14003ad44
mov rax, qword [rbp + 0x160]
mov qword [rax], rcx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], r13
mov rcx, qword [rbp + 0x110]
mov rdx, rbx
call fcn.1400c398a
nop
add rsp, 0x1f8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rdx, qword [rbp + 0x30]
call fcn.1400f7e60
ud2