Function at 0x14019dce0
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
vmovdqu xmm1, xmmword [0x1402f5780]
vmovdqu xmm2, xmmword [0x1402f5790]
lea rsi, [rsp + 0x5f]
mov r12, rcx
mov rbx, rdx
mov rdi, r8
and rsi, 0xffffffffffffffc0
mov qword [rsi + 0x60], 0
vmovdqu xmmword [rsi + 0x40], xmm1
vmovdqu xmmword [rsi + 0x50], xmm2
cmp r8, 0x7f
jbe 0x14019df08
lea rax, [r8 - 0x40]
lea r13, [rsi + 0x40]
and rax, 0xffffffffffffffc0
lea rbp, [rdx + rax + 0x40]
nop word [rax + rax]
mov rcx, rbx
mov rdx, r13
add rbx, 0x40
call sym.sha2_round
cmp rbx, rbp
jne 0x14019dd48
mov rdx, rdi
and edx, 0x3f
jne 0x14019de88
mov qword [rsi + 0x60], rdi
and edi, 0x3f
lea eax, [rdi + 1]
mov byte [rsi + rdi], pe_nt_image_headers64
mov rdx, rax
cmp eax, 0x38
jbe 0x14019de48
mov ecx, 0x40
add rax, rsi
sub ecx, edx
je 0x14019dd9f
xor edx, edx
mov r8d, edx
add edx, 1
mov byte [rax + r8], 0
cmp edx, ecx
jb 0x14019dd90
mov rdx, r13
mov rcx, rsi
vpxor xmm0, xmm0, xmm0
call sym.sha2_round
mov qword [rsi + 0x30], 0
vmovdqu xmmword [rsi], xmm0
vmovdqu xmmword [rsi + 0x10], xmm0
vmovdqu xmmword [rsi + 0x20], xmm0
mov rax, qword [rsi + 0x60]
shl rax, 3
bswap rax
mov rdx, r13
mov rcx, rsi
mov qword [rsi + 0x38], rax
call sym.sha2_round
mov eax, dword [rsi + 0x40]
bswap eax
mov dword [r12], eax
mov eax, dword [rsi + 0x44]
bswap eax
mov dword [r12 + 4], eax
mov eax, dword [rsi + 0x48]
bswap eax
mov dword [r12 + 8], eax
mov eax, dword [rsi + 0x4c]
bswap eax
mov dword [r12 + 0xc], eax
mov eax, dword [rsi + 0x50]
bswap eax
mov dword [r12 + 0x10], eax
mov eax, dword [rsi + 0x54]
bswap eax
mov dword [r12 + 0x14], eax
mov eax, dword [rsi + 0x58]
bswap eax
mov dword [r12 + 0x18], eax
mov eax, dword [rsi + 0x5c]
bswap eax
mov dword [r12 + 0x1c], eax
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x38
sub ecx, eax
add rax, rsi
mov edx, ecx
xor r9d, r9d
cmp ecx, 8
jae 0x14019dec0
and ecx, 4
jne 0x14019e01a
test edx, edx
je 0x14019ddc4
mov byte [rax], 0
test dl, 2
je 0x14019ddc4
xor ecx, ecx
mov word [rax + rdx - 2], cx
jmp 0x14019ddc4
mov r8, rsi
mov rax, rbp
cmp edx, 8
jae 0x14019dfb8
xor ecx, ecx
test dl, 4
jne 0x14019dfa0
test dl, 2
jne 0x14019df80
and edx, 1
jne 0x14019df68
add rdi, qword [rsi + 0x60]
jmp 0x14019dd68
lea r8, [rax + 8]
mov qword [rax], 0
mov qword [rcx + rax - 8], 0
and r8, 0xfffffffffffffff8
sub rax, r8
lea edx, [rcx + rax]
and edx, 0xfffffff8
cmp edx, 8
jb 0x14019ddc4
and edx, 0xfffffff8
xor eax, eax
mov ecx, eax
add eax, 8
mov qword [r8 + rcx], r9
cmp eax, edx
jb 0x14019deef
jmp 0x14019ddc4
test r8, r8
je 0x14019e004
xor r15d, r15d
lea r13, [rsi + 0x40]
mov r14d, 0x40
nop
mov rbp, r14
lea rcx, [rsi + r15]
mov rdx, rbx
sub rbp, r15
cmp rbp, rdi
cmova rbp, rdi
mov r8, rbp
add r15, rbp
add rbx, rbp
sub rdi, rbp
call sym.memcpy
cmp r15, 0x40
je 0x14019dfe0
add rbp, qword [rsi + 0x60]
mov qword [rsi + 0x60], rbp
test rdi, rdi
jne 0x14019df20
mov rdi, rbp
jmp 0x14019dd6c
movzx eax, byte [rax + rcx]
mov byte [r8 + rcx], al
add rdi, qword [rsi + 0x60]
jmp 0x14019dd68
movzx r9d, word [rax + rcx]
mov word [r8 + rcx], r9w
add rcx, 2
and edx, 1
je 0x14019deb4
jmp 0x14019df68
mov ecx, dword [rax]
mov dword [r8], ecx
mov ecx, 4
test dl, 2
je 0x14019deab
jmp 0x14019df80
mov r9d, edx
xor eax, eax
and r9d, 0xfffffff8
mov ecx, eax
add eax, 8
mov r8, qword [rbp + rcx]
mov qword [rsi + rcx], r8
cmp eax, r9d
jb 0x14019dfc1
lea r8, [rsi + rax]
add rax, rbp
jmp 0x14019de97
mov rdx, r13
mov rcx, rsi
call sym.sha2_round
add rbp, qword [rsi + 0x60]
mov qword [rsi + 0x60], rbp
test rdi, rdi
je 0x14019df5c
xor r15d, r15d
jmp 0x14019df20
mov byte [rsi], pe_nt_image_headers64
mov eax, 1
mov ecx, 0x37
lea r13, [rsi + 0x40]
jmp 0x14019de4f
mov dword [rax], 0
mov dword [rax + rdx - 4], 0
jmp 0x14019ddc4