Function at 0x14021c090
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 [0x140516040]
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 [0x1404a3840]
movups xmmword [rdi - 0x28], xmm0
movaps xmm0, xmmword [0x1404a3850]
movups xmmword [rdi - 0x18], xmm0
mov dword [rdi + 0x44], 0x20
test rdx, rdx
je 0x14021c192
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 0x14021c17c
mov r15, r14
shr r15, 6
mov ecx, 2
call fcn.1402415b0
bt eax, 0x1d
jb 0x14021c3a3
mov ecx, 1
call fcn.1402415b0
mov ebp, eax
bt eax, 0x1c
jae 0x14021c352
xor ecx, ecx
call fcn.1402415b0
bt eax, 0x1e
jae 0x14021c352
lea rcx, [rsp + 0x20]
mov rdx, rbx
mov r8, r15
call fcn.140041d40
mov r8, r14
and r8, 0x3f
je 0x14021c192
and r14, 0xffffffffffffffc0
add rbx, r14
jmp 0x14021c17f
mov r8, r14
mov dword [rsp + 0x88], r8d
mov rcx, rdi
mov rdx, rbx
call fcn.1402d94c0
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 0x14021c2bd
cmp rcx, 0x38
je 0x14021c1d6
mov r8d, 0x38
sub r8, rcx
add rcx, rdi
xor edx, edx
call fcn.1402d9b60
bswap r15d
mov dword [rsp + 0x80], r15d
bswap ebp
mov dword [rsp + 0x84], ebp
mov ecx, 2
call fcn.1402415b0
bt eax, 0x1d
jb 0x14021c377
mov ecx, 1
call fcn.1402415b0
mov ebx, eax
bt eax, 0x1c
jae 0x14021c32a
xor ecx, ecx
call fcn.1402415b0
bt eax, 0x1e
jae 0x14021c32a
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
call fcn.140041d40
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 0x14021c281
cmp r14d, 4
jb 0x14021c281
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 0x14021c270
lea rcx, [rsp + 0x20]
mov edx, 0x70
call fcn.1402359a0
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
cmp rcx, qword [0x140516040]
je 0x14021c2aa
call fcn.14029bbb0
int3
mov rax, rsi
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
cmp eax, 0x3f
je 0x14021c2d5
mov r8d, 0x3f
sub r8, rax
add rcx, rdi
xor edx, edx
call fcn.1402d9b60
mov ecx, 2
call fcn.1402415b0
bt eax, 0x1d
jb 0x14021c3f8
mov ecx, 1
call fcn.1402415b0
mov ebx, eax
bt eax, 0x1c
jae 0x14021c3cc
xor ecx, ecx
call fcn.1402415b0
bt eax, 0x1e
jae 0x14021c3cc
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
call fcn.140041d40
xor ecx, ecx
jmp 0x14021c1c3
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
bt ebx, 9
jb 0x14021c348
call fcn.14003f880
jmp 0x14021c238
call fcn.140040e00
jmp 0x14021c238
lea rcx, [rsp + 0x20]
mov rdx, rbx
mov r8, r15
bt ebp, 9
jb 0x14021c36d
call fcn.14003f880
jmp 0x14021c16a
call fcn.140040e00
jmp 0x14021c16a
mov ecx, 1
call fcn.1402415b0
bt eax, 9
jae 0x14021c1fe
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
call fcn.140040a40
jmp 0x14021c238
mov ecx, 1
call fcn.1402415b0
bt eax, 9
jae 0x14021c133
lea rcx, [rsp + 0x20]
mov rdx, rbx
mov r8, r15
call fcn.140040a40
jmp 0x14021c16a
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
bt ebx, 9
jb 0x14021c3ec
call fcn.14003f880
xor ecx, ecx
jmp 0x14021c1c3
call fcn.140040e00
xor ecx, ecx
jmp 0x14021c1c3
mov ecx, 1
call fcn.1402415b0
bt eax, 9
jae 0x14021c2e9
lea rcx, [rsp + 0x20]
mov r8d, 1
mov rdx, rdi
call fcn.140040a40
xor ecx, ecx
jmp 0x14021c1c3