Function at 0x140009ec0
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x118
vmovups xmmword [rsp + 0xe0], xmm6
vmovups xmmword [rsp + 0xf0], xmm7
vmovups xmmword [rsp + 0x100], xmm8
vmovdqu xmm8, xmmword [0x140171600]
vmovdqu xmm6, xmmword [0x140171610]
mov qword [rsp + 0x160], rcx
lea r13, [rsp + 0xa0]
vmovdqu xmmword [rsp + 0x60], xmm8
lea rbx, [rsp + 0x60]
vmovdqu xmmword [rsp + 0x70], xmm6
cmp r8d, 0xfffffff8
jl 0x14000a195
lea rbx, [rsp + 0x60]
movsxd r12, r8d
mov dword [rsp + 0x170], r8d
lea rbp, [rdx + r12]
lea r13, [rsp + 0xa0]
nop dword [rax]
xor eax, eax
test r12d, r12d
mov edx, 0x40
cmovns eax, r12d
mov rsi, rbp
mov r10d, r12d
cmp eax, edx
cmovg eax, edx
sub rsi, r12
cmp r12d, 0x3f
jle 0x14000a100
mov rdi, r13
cmp eax, 8
jb 0x140009f7e
mov ecx, eax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
xor edx, edx
test al, 4
je 0x140009f8d
mov edx, dword [rsi]
mov dword [rdi], edx
mov edx, 4
test al, 2
je 0x140009f9d
movzx ecx, word [rsi + rdx]
mov word [rdi + rdx], cx
add rdx, 2
test al, 1
je 0x140009fa8
movzx eax, byte [rsi + rdx]
mov byte [rdi + rdx], al
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0xd0]
mov r11d, dword [rsp + 0xa4]
mov esi, dword [rsp + 0xac]
bswap eax
vmovd xmm0, eax
mov eax, dword [rsp + 0xa8]
mov edi, dword [rsp + 0xb4]
bswap ecx
vmovd xmm5, ecx
mov r15d, dword [rsp + 0xbc]
bswap r11d
vpinsrd xmm0, xmm0, r11d, 1
mov edx, dword [rsp + 0xc0]
bswap esi
bswap eax
vmovd xmm2, eax
mov eax, dword [rsp + 0xb0]
mov ecx, dword [rsp + 0xd8]
vpinsrd xmm2, xmm2, esi, 1
bswap edi
vpunpcklqdq xmm0, xmm0, xmm2
mov r8d, dword [rsp + 0xc4]
bswap r15d
mov r9d, dword [rsp + 0xcc]
bswap edx
bswap eax
vmovd xmm1, eax
mov eax, dword [rsp + 0xb8]
mov r14d, dword [rsp + 0xdc]
bswap ecx
vpinsrd xmm1, xmm1, edi, 1
vmovd xmm7, ecx
bswap r8d
bswap r9d
bswap eax
vmovd xmm3, eax
mov eax, dword [rsp + 0xc8]
vpinsrd xmm3, xmm3, r15d, 1
vpunpcklqdq xmm1, xmm1, xmm3
vinsertf128 ymm0, ymm0, xmm1, 1
bswap r14d
vmovdqu xmmword [rsp + 0xa0], xmm0
vpinsrd xmm2, xmm7, r14d, 1
vextractf128 xmmword [rsp + 0xb0], ymm0, 1
bswap eax
vmovd xmm4, eax
mov eax, dword [rsp + 0xd4]
vpinsrd xmm4, xmm4, r9d, 1
bswap eax
vpinsrd xmm1, xmm5, eax, 1
vmovd xmm5, edx
vpunpcklqdq xmm1, xmm1, xmm2
vpinsrd xmm0, xmm5, r8d, 1
vpunpcklqdq xmm0, xmm0, xmm4
vinsertf128 ymm0, ymm0, xmm1, 1
vmovdqu xmmword [rsp + 0xc0], xmm0
vextractf128 xmmword [rsp + 0xd0], ymm0, 1
cmp r10d, 0x37
jle 0x14000a170
xor r8d, r8d
mov rdx, r13
mov rcx, rbx
vzeroupper
call sym.sha256_transform
sub r12, 0x40
jmp 0x140009f48
vpxor xmm0, xmm0, xmm0
mov rdi, r13
vmovdqu xmmword [r13], xmm0
vmovdqu xmmword [r13 + 0x10], xmm0
vmovdqu xmmword [r13 + 0x20], xmm0
vmovdqu xmmword [r13 + 0x30], xmm0
cmp eax, 8
jb 0x14000a12c
mov ecx, eax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
xor edx, edx
test al, 4
je 0x14000a13b
mov edx, dword [rsi]
mov dword [rdi], edx
mov edx, 4
test al, 2
je 0x14000a14b
movzx ecx, word [rsi + rdx]
mov word [rdi + rdx], cx
add rdx, 2
test al, 1
je 0x14000a156
movzx eax, byte [rsi + rdx]
mov byte [rdi + rdx], al
cmp r12d, 0x3f
ja 0x140009fa8
mov byte [r13 + r12], pe_nt_image_headers64
jmp 0x140009fa8
mov r14d, dword [rsp + 0x170]
xor r8d, r8d
mov rdx, r13
mov rcx, rbx
shl r14d, 3
mov dword [rsp + 0xdc], r14d
vzeroupper
call sym.sha256_transform
xor edx, edx
mov eax, 0x80000000
xor r8d, r8d
vmovdqu xmmword [rsp + 0xa0], xmm8
mov qword [rsp + 0x88], rdx
mov rcx, r13
movabs rdx, 0x10000000000
mov qword [rsp + 0x80], rax
xor eax, eax
mov qword [rsp + 0x98], rdx
mov rdx, rbx
mov qword [rsp + 0x90], rax
vmovdqu xmmword [rsp + 0xb0], xmm6
call sym.sha256_transform
mov r11d, dword [rsp + 0xa0]
mov r10d, dword [rsp + 0xa4]
mov r9d, dword [rsp + 0xa8]
mov r8d, dword [rsp + 0xac]
mov ebx, r11d
mov ecx, dword [rsp + 0xb4]
shr ebx, 0x18
mov edx, dword [rsp + 0xb8]
mov r15d, r10d
mov r14d, r10d
mov dword [rsp + 0x20], ebx
mov ebx, r11d
mov r13d, r9d
shr r15d, 0x18
shr ebx, 0x10
shr r13d, 0x10
mov r12d, r8d
mov eax, dword [rsp + 0xbc]
mov dword [rsp + 0x24], ebx
mov ebx, r11d
mov ebp, dword [rsp + 0xb0]
mov edi, ecx
shr ebx, 8
vmovd xmm1, dword [rsp + 0x20]
vpinsrb xmm1, xmm1, byte [rsp + 0x24], 1
shr r14d, 0x10
mov dword [rsp + 0x28], ebx
mov ebx, r10d
shr r12d, 0x10
mov esi, edx
shr ebx, 8
vmovd xmm7, dword [rsp + 0x28]
vmovd xmm3, r15d
mov dword [rsp + 0x2c], ebx
mov ebx, r9d
vpinsrb xmm7, xmm7, r11d, 1
shr ebp, 0x10
shr ebx, 0x18
vmovd xmm6, dword [rsp + 0x2c]
shr edi, 0x10
vpinsrb xmm3, xmm3, r14d, 1
mov dword [rsp + 0x30], ebx
mov ebx, r9d
shr esi, 0x10
vpunpcklwd xmm1, xmm1, xmm7
shr ebx, 8
vmovd xmm0, dword [rsp + 0x30]
vpinsrb xmm6, xmm6, r10d, 1
vpunpcklwd xmm3, xmm3, xmm6
mov dword [rsp + 0x34], ebx
mov ebx, r8d
vpinsrb xmm0, xmm0, r13d, 1
vpunpckldq xmm1, xmm1, xmm3
shr ebx, 0x18
vmovd xmm5, dword [rsp + 0x34]
mov dword [rsp + 0x38], ebx
mov ebx, r8d
vpinsrb xmm5, xmm5, r9d, 1
vpunpcklwd xmm0, xmm0, xmm5
shr ebx, 8
mov dword [rsp + 0x3c], ebx
mov ebx, dword [rsp + 0xb0]
shr ebx, 0x18
mov dword [rsp + 0x40], ebx
mov ebx, dword [rsp + 0xb0]
shr ebx, 8
mov dword [rsp + 0x44], ebx
mov ebx, ecx
shr ebx, 0x18
mov dword [rsp + 0x48], ebx
mov ebx, ecx
shr ebx, 8
mov dword [rsp + 0x4c], ebx
mov ebx, edx
shr ebx, 0x18
mov dword [rsp + 0x50], ebx
mov ebx, edx
shr ebx, 8
mov dword [rsp + 0x54], ebx
mov ebx, eax
shr ebx, 0x18
mov dword [rsp + 0x58], ebx
mov ebx, eax
shr ebx, 0x10
mov dword [rsp + 0x5c], ebx
mov ebx, eax
vmovd xmm2, dword [rsp + 0x38]
vmovd xmm4, dword [rsp + 0x3c]
shr ebx, 8
vpinsrb xmm4, xmm4, r8d, 1
vmovd xmm8, dword [rsp + 0x4c]
vmovd xmm6, dword [rsp + 0x54]
vmovd xmm5, ebx
vpinsrb xmm2, xmm2, r12d, 1
vpunpcklwd xmm2, xmm2, xmm4
vmovd xmm4, dword [rsp + 0x48]
vpinsrb xmm5, xmm5, eax, 1
vpunpckldq xmm0, xmm0, xmm2
vpunpcklqdq xmm1, xmm1, xmm0
mov rax, qword [rsp + 0x160]
vmovd xmm0, dword [rsp + 0x40]
vmovd xmm2, dword [rsp + 0x50]
vpinsrb xmm8, xmm8, ecx, 1
vpinsrb xmm6, xmm6, edx, 1
vmovd xmm7, dword [rsp + 0x44]
vmovd xmm3, dword [rsp + 0x58]
vpinsrb xmm7, xmm7, byte [rsp + 0xb0], 1
vpinsrb xmm0, xmm0, ebp, 1
vpinsrb xmm4, xmm4, edi, 1
vpinsrb xmm2, xmm2, esi, 1
vpunpcklwd xmm4, xmm4, xmm8
vpunpcklwd xmm0, xmm0, xmm7
vmovdqu xmmword [rax], xmm1
vpinsrb xmm3, xmm3, byte [rsp + 0x5c], 1
vpunpcklwd xmm2, xmm2, xmm6
vpunpcklwd xmm3, xmm3, xmm5
vpunpckldq xmm0, xmm0, xmm4
vpunpckldq xmm2, xmm2, xmm3
vpunpcklqdq xmm0, xmm0, xmm2
vmovdqu xmmword [rax + 0x10], xmm0
vmovups xmm6, xmmword [rsp + 0xe0]
vmovups xmm7, xmmword [rsp + 0xf0]
vmovups xmm8, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret