Function at 0x1401318d0
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rsi, r8
mov rax, qword [0x14037e040]
xor rax, rsp
mov qword [rsp + 0x90], rax
xorps xmm0, xmm0
lea rdi, [rsp + 0x48]
movups xmmword [rdi + 0x34], xmm0
movups xmmword [rdi + 0x28], xmm0
movups xmmword [rdi + 0x18], xmm0
movups xmmword [rdi + 8], xmm0
movups xmmword [rdi - 8], xmm0
movaps xmm0, xmmword [0x140323290]
movups xmmword [rdi - 0x28], xmm0
movaps xmm0, xmmword [0x1403232a0]
movups xmmword [rdi - 0x18], xmm0
mov dword [rdi + 0x44], 0x20
test rdx, rdx
je 0x1401319d2
mov r14, rdx
mov rbx, rcx
lea eax, [rdx*8]
mov rcx, rdx
shr rcx, 0x1d
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x40], eax
cmp rdx, 0x40
jb 0x1401319bc
mov r15, r14
shr r15, 6
mov ecx, 2
call fcn.1401448f0
bt eax, 0x1d
jb 0x140131bd9
mov ecx, 1
call fcn.1401448f0
mov ebp, eax
bt eax, 0x1c
jae 0x140131b88
xor ecx, ecx
call fcn.1401448f0
bt eax, 0x1e
jae 0x140131b88
lea rcx, [rsp + 0x20]
mov rdx, rbx
mov r8, r15
call fcn.140014ec0
mov r8, r14
and r8, 0x3f
je 0x1401319d2
and r14, 0xffffffffffffffc0
add rbx, r14
jmp 0x1401319bf
mov r8, r14
mov dword [rsp + 0x88], r8d
mov rcx, rdi
mov rdx, rbx
call fcn.1401a4fc0
mov eax, dword [rsp + 0x88]
lea rcx, [rax + 1]
mov r14d, dword [rsp + 0x8c]
mov ebp, dword [rsp + 0x40]
mov r15d, dword [rsp + 0x44]
mov byte [rsp + rax + 0x48], 0x80
cmp rax, 0x38
jae 0x140131af3
cmp rcx, 0x38
je 0x140131a16
mov r8d, 0x38
sub r8, rcx
add rcx, rdi
xor edx, edx
call fcn.1401a5660
bswap r15d
mov dword [rsp + 0x80], r15d
bswap ebp
mov dword [rsp + 0x84], ebp
mov ecx, 2
call fcn.1401448f0
bt eax, 0x1d
jb 0x140131bad
mov ecx, 1
call fcn.1401448f0
mov ebx, eax
bt eax, 0x1c
jae 0x140131b60
xor ecx, ecx
call fcn.1401448f0
bt eax, 0x1e
jae 0x140131b60
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
call fcn.140014ec0
xorps xmm0, xmm0
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi], xmm0
mov dword [rdi + 0x40], 0
cmp r14d, 0x20
ja 0x140131ac1
cmp r14d, 4
jb 0x140131ac1
shr r14d, 2
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [rsp + rax*4 + 0x20]
bswap ecx
mov dword [rsi + rax*4], ecx
inc rax
cmp r14, rax
jne 0x140131ab0
lea rcx, [rsp + 0x20]
mov edx, 0x70
call fcn.140138090
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.14016cc60
mov rax, rsi
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
cmp eax, 0x3f
je 0x140131b0b
mov r8d, 0x3f
sub r8, rax
add rcx, rdi
xor edx, edx
call fcn.1401a5660
mov ecx, 2
call fcn.1401448f0
bt eax, 0x1d
jb 0x140131c2e
mov ecx, 1
call fcn.1401448f0
mov ebx, eax
bt eax, 0x1c
jae 0x140131c02
xor ecx, ecx
call fcn.1401448f0
bt eax, 0x1e
jae 0x140131c02
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
call fcn.140014ec0
xor ecx, ecx
jmp 0x140131a03
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
bt ebx, 9
jb 0x140131b7e
call fcn.140012a00
jmp 0x140131a78
call fcn.140013f80
jmp 0x140131a78
lea rcx, [rsp + 0x20]
mov rdx, rbx
mov r8, r15
bt ebp, 9
jb 0x140131ba3
call fcn.140012a00
jmp 0x1401319aa
call fcn.140013f80
jmp 0x1401319aa
mov ecx, 1
call fcn.1401448f0
bt eax, 9
jae 0x140131a3e
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
call fcn.140013bc0
jmp 0x140131a78
mov ecx, 1
call fcn.1401448f0
bt eax, 9
jae 0x140131973
lea rcx, [rsp + 0x20]
mov rdx, rbx
mov r8, r15
call fcn.140013bc0
jmp 0x1401319aa
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
bt ebx, 9
jb 0x140131c22
call fcn.140012a00
xor ecx, ecx
jmp 0x140131a03
call fcn.140013f80
xor ecx, ecx
jmp 0x140131a03
mov ecx, 1
call fcn.1401448f0
bt eax, 9
jae 0x140131b1f
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
call fcn.140013bc0
xor ecx, ecx
jmp 0x140131a03