Function at 0x140144c10
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
vmovups xmmword [rsp + 0xf0], xmm6
vmovups xmmword [rsp + 0x100], xmm7
vmovups xmmword [rsp + 0x110], xmm8
vmovups xmmword [rsp + 0x120], xmm9
vmovups xmmword [rsp + 0x130], xmm10
vmovdqu ymm5, ymmword [0x1401fbc80]
mov qword [rsp + 0x190], rcx
mov r14d, r8d
lea r12, [rsp + 0xb0]
lea rbx, [rsp + 0x70]
vmovdqu ymmword [rsp + 0x70], ymm5
cmp r8d, 0xfffffff8
jl 0x140144dc0
vmovdqu ymm1, ymmword [0x1401fbcc0]
movsxd r13, r8d
lea r12, [rsp + 0xb0]
lea rbx, [rsp + 0x70]
lea rbp, [rdx + r13]
nop dword [rax]
xor eax, eax
test r13d, r13d
mov edx, 0x40
mov rsi, rbp
cmovns eax, r13d
cmp eax, edx
cmovg eax, edx
sub rsi, r13
mov edx, r13d
cmp r13d, 0x3f
jle 0x140144d50
mov rdi, r12
cmp eax, 4
jb 0x140144cd5
mov ecx, eax
shr ecx, 2
rep movsd dword [rdi], dword [rsi]
xor ecx, ecx
test al, 2
je 0x140144ce6
movzx ecx, word [rsi]
mov word [rdi], cx
mov ecx, 2
test al, 1
je 0x140144cf1
movzx eax, byte [rsi + rcx]
mov byte [rdi + rcx], al
vmovdqu ymm7, ymmword [rsp + 0xb0]
vmovdqu ymm6, ymmword [rsp + 0xd0]
vpshufb ymm0, ymm7, ymm1
vmovdqu ymmword [rsp + 0xb0], ymm0
vpshufb ymm0, ymm6, ymm1
vmovdqu ymmword [rsp + 0xd0], ymm0
cmp edx, 0x37
jle 0x140144da0
xor r8d, r8d
mov rdx, r12
mov rcx, rbx
vzeroupper
call sym.sha256_transform
sub r13, 0x40
vmovdqu ymm1, ymmword [0x1401fbcc0]
jmp 0x140144ca0
vpxor xmm0, xmm0, xmm0
mov rdi, r12
vmovdqu ymmword [r12], ymm0
vmovdqu ymmword [r12 + 0x20], ymm0
cmp eax, 4
jb 0x140144d70
mov ecx, eax
shr ecx, 2
rep movsd dword [rdi], dword [rsi]
xor ecx, ecx
test al, 2
je 0x140144d81
movzx ecx, word [rsi]
mov word [rdi], cx
mov ecx, 2
test al, 1
je 0x140144d8c
movzx eax, byte [rsi + rcx]
mov byte [rdi + rcx], al
cmp r13d, 0x3f
ja 0x140144cf1
mov byte [r12 + r13], pe_nt_image_headers64
jmp 0x140144cf1
lea eax, [r14*8]
xor r8d, r8d
mov rdx, r12
mov rcx, rbx
mov dword [rsp + 0xec], eax
vzeroupper
call sym.sha256_transform
vmovdqu ymm5, ymmword [0x1401fbc60]
vmovdqu ymm4, ymmword [0x1401fbc80]
xor r8d, r8d
mov rdx, rbx
mov rcx, r12
vmovdqu ymmword [rsp + 0x90], ymm5
vmovdqu ymmword [rsp + 0xb0], ymm4
vzeroupper
call sym.sha256_transform
vmovq xmm3, qword [0x1401fbce0]
vmovq xmm0, qword [rsp + 0xb0]
vmovq xmm8, qword [rsp + 0xb8]
vmovq xmm6, qword [rsp + 0xc0]
vmovq xmm7, qword [rsp + 0xc8]
vmovq xmm5, qword [0x1401fbce8]
vpand xmm1, xmm3, xmm0
vpand xmm2, xmm3, xmm8
vpand xmm4, xmm3, xmm7
vpackusdw xmm1, xmm1, xmm2
vpand xmm2, xmm3, xmm6
vpsrld xmm10, xmm7, 0x10
vpackusdw xmm2, xmm2, xmm4
vpshufd xmm1, xmm1, 8
vpand xmm10, xmm3, xmm10
vpsrld xmm7, xmm7, 0x18
vpshufd xmm2, xmm2, 8
vpand xmm4, xmm5, xmm1
vpsrlw xmm1, xmm1, 8
vpand xmm1, xmm5, xmm1
vpand xmm9, xmm5, xmm2
vpsrlw xmm2, xmm2, 8
vpand xmm2, xmm5, xmm2
vpackuswb xmm4, xmm4, xmm9
vpackuswb xmm1, xmm1, xmm2
vpsrld xmm9, xmm8, 0x10
vpsrld xmm2, xmm0, 0x10
vpand xmm9, xmm3, xmm9
vpsrld xmm0, xmm0, 0x18
vpand xmm2, xmm3, xmm2
vpsrld xmm8, xmm8, 0x18
vpackusdw xmm2, xmm2, xmm9
vpand xmm8, xmm3, xmm8
vpsrld xmm9, xmm6, 0x10
vpand xmm0, xmm3, xmm0
vpand xmm9, xmm3, xmm9
vpsrld xmm6, xmm6, 0x18
vpand xmm6, xmm3, xmm6
vpand xmm3, xmm3, xmm7
vpackusdw xmm9, xmm9, xmm10
vpackusdw xmm0, xmm0, xmm8
vpshufd xmm2, xmm2, 8
vpackusdw xmm6, xmm6, xmm3
vpshufd xmm6, xmm6, 8
vpshufd xmm9, xmm9, 8
vpand xmm2, xmm5, xmm2
vpshufd xmm0, xmm0, 8
vpshufd xmm1, xmm1, 8
vpand xmm9, xmm5, xmm9
vpand xmm0, xmm5, xmm0
vpand xmm5, xmm5, xmm6
vpshufd xmm4, xmm4, 8
vpackuswb xmm2, xmm2, xmm9
vpextrb ebx, xmm1, 3
vpackuswb xmm0, xmm0, xmm5
vpshufd xmm2, xmm2, 8
vpshufd xmm0, xmm0, 8
mov dword [rsp + 0x2c], ebx
vpextrb ebx, xmm4, 3
mov dword [rsp + 0x30], ebx
vpextrb ebx, xmm0, 4
vpextrb r14d, xmm4, 0
mov dword [rsp + 0x34], ebx
vpextrb ebx, xmm2, 4
vpextrb r12d, xmm4, 1
mov dword [rsp + 0x38], ebx
vpextrb ebx, xmm1, 4
vpextrb edi, xmm4, 2
mov dword [rsp + 0x3c], ebx
vpextrb ebx, xmm4, 4
vpextrb r11d, xmm1, 0
mov dword [rsp + 0x40], ebx
vpextrb ebx, xmm0, 5
vpextrb r8d, xmm0, 1
vmovd xmm7, r11d
mov dword [rsp + 0x44], ebx
vpextrb ebx, xmm2, 5
vpextrb r10d, xmm1, 1
vmovd xmm3, r8d
mov dword [rsp + 0x48], ebx
vpextrb ebx, xmm1, 5
vpextrb edx, xmm0, 2
vmovd xmm6, r10d
mov dword [rsp + 0x4c], ebx
vpextrb ebx, xmm4, 5
vpextrb r9d, xmm1, 2
vpinsrb xmm7, xmm7, r14d, 1
mov dword [rsp + 0x50], ebx
vpextrb ebx, xmm0, 6
vpextrb ecx, xmm0, 3
vmovd xmm5, r9d
mov dword [rsp + 0x54], ebx
vpextrb ebx, xmm2, 6
vpextrb eax, xmm0, 0
vpinsrb xmm6, xmm6, r12d, 1
mov dword [rsp + 0x58], ebx
vpextrb ebx, xmm1, 6
vpextrb r15d, xmm2, 0
vpinsrb xmm5, xmm5, edi, 1
mov dword [rsp + 0x5c], ebx
vpextrb ebx, xmm4, 6
vpextrb r13d, xmm2, 1
vmovd xmm8, dword [rsp + 0x3c]
mov dword [rsp + 0x60], ebx
vpextrb ebx, xmm0, 7
vpextrb ebp, xmm2, 2
vmovd xmm0, eax
mov dword [rsp + 0x64], ebx
vpextrb ebx, xmm2, 7
vpextrb esi, xmm2, 3
vmovd xmm2, ecx
mov dword [rsp + 0x68], ebx
vpextrb ebx, xmm1, 7
vmovd xmm1, edx
vpinsrb xmm0, xmm0, r15d, 1
mov dword [rsp + 0x6c], ebx
vpextrb ebx, xmm4, 7
vmovd xmm4, dword [rsp + 0x2c]
vpinsrb xmm4, xmm4, byte [rsp + 0x30], 1
vpinsrb xmm3, xmm3, r13d, 1
vpinsrb xmm1, xmm1, ebp, 1
vpinsrb xmm2, xmm2, esi, 1
vpinsrb xmm8, xmm8, byte [rsp + 0x40], 1
vpunpcklwd xmm3, xmm3, xmm6
vpunpcklwd xmm0, xmm0, xmm7
vpunpcklwd xmm1, xmm1, xmm5
vpunpckldq xmm0, xmm0, xmm3
vmovd xmm7, dword [rsp + 0x4c]
vpunpcklwd xmm2, xmm2, xmm4
vmovd xmm4, dword [rsp + 0x44]
vpinsrb xmm4, xmm4, byte [rsp + 0x48], 1
vpunpckldq xmm1, xmm1, xmm2
vpunpcklqdq xmm0, xmm0, xmm1
vmovd xmm1, dword [rsp + 0x34]
vpinsrb xmm1, xmm1, byte [rsp + 0x38], 1
vpinsrb xmm7, xmm7, byte [rsp + 0x50], 1
vmovd xmm2, dword [rsp + 0x54]
vmovd xmm6, dword [rsp + 0x5c]
vpinsrb xmm2, xmm2, byte [rsp + 0x58], 1
vpinsrb xmm6, xmm6, byte [rsp + 0x60], 1
vmovd xmm3, dword [rsp + 0x64]
vpinsrb xmm3, xmm3, byte [rsp + 0x68], 1
vmovd xmm5, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x190]
vpinsrb xmm5, xmm5, ebx, 1
vpunpcklwd xmm4, xmm4, xmm7
vpunpcklwd xmm1, xmm1, xmm8
vpunpcklwd xmm2, xmm2, xmm6
vpunpckldq xmm1, xmm1, xmm4
vpunpcklwd xmm3, xmm3, xmm5
vpunpckldq xmm2, xmm2, xmm3
vpunpcklqdq xmm1, xmm1, xmm2
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [rax], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0xf0]
vmovups xmm7, xmmword [rsp + 0x100]
vmovups xmm8, xmmword [rsp + 0x110]
vmovups xmm9, xmmword [rsp + 0x120]
vmovups xmm10, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret