Function at 0x14000c2b0
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 xmm5, xmmword [0x14016f740]
mov r14, qword [0x14016f750]
mov r15, qword [0x14016f758]
mov qword [rsp + 0x190], rcx
mov r12d, r8d
lea rdi, [rsp + 0x70]
lea rsi, [rsp + 0xb0]
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x88], r15
vmovdqu xmmword [rsp + 0x70], xmm5
cmp r8d, 0xfffffff8
jl 0x14000c4ad
movsxd rbx, r8d
vmovdqu ymm1, ymmword [0x14016f760]
lea rdi, [rsp + 0x70]
lea rsi, [rsp + 0xb0]
lea rbp, [rdx + rbx]
nop word [rax + rax]
xor eax, eax
test ebx, ebx
mov edx, 0x40
mov r8d, ebx
cmovns eax, ebx
cmp eax, edx
cmovg eax, edx
mov rdx, rbp
sub rdx, rbx
cmp ebx, 0x3f
jle 0x14000c420
mov rcx, rsi
mov r13, rdx
cmp eax, 8
jae 0x14000c9d0
xor edx, edx
test al, 4
je 0x14000c3a4
mov r10d, dword [r13]
mov edx, 4
mov dword [rcx], r10d
test al, 2
je 0x14000c3b7
movzx r9d, word [r13 + rdx]
mov word [rcx + rdx], r9w
add rdx, 2
test al, 1
je 0x14000c3c5
movzx r13d, byte [r13 + rdx]
mov byte [rcx + rdx], r13b
vmovdqu ymm7, ymmword [rsp + 0xb0]
vmovdqu ymm6, ymmword [rsp + 0xd0]
vpshufb ymm2, ymm7, ymm1
vpshufb ymm3, ymm6, ymm1
vmovdqu ymmword [rsp + 0xb0], ymm2
vmovdqu ymmword [rsp + 0xd0], ymm3
cmp r8d, 0x37
jle 0x14000c490
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
vzeroupper
call fcn.14002a6c0
sub rbx, 0x40
vmovdqu ymm1, ymmword [0x14016f760]
jmp 0x14000c360
vpxor xmm0, xmm0, xmm0
mov r11, rsi
mov r13, rdx
vmovdqu xmmword [rsi], xmm0
vmovdqu xmmword [rsi + 0x10], xmm0
vmovdqu xmmword [rsi + 0x20], xmm0
vmovdqu xmmword [rsi + 0x30], xmm0
cmp eax, 8
jae 0x14000c8a0
xor r9d, r9d
test al, 4
je 0x14000c45a
mov edx, dword [r13]
mov r9d, 4
mov dword [r11], edx
test al, 2
je 0x14000c46d
movzx r10d, word [r13 + r9]
mov word [r11 + r9], r10w
add r9, 2
test al, 1
je 0x14000c47b
movzx eax, byte [r13 + r9]
mov byte [r11 + r9], al
cmp ebx, 0x3f
ja 0x14000c3c5
mov byte [rsi + rbx], pe_nt_image_headers64
jmp 0x14000c3c5
shl r12d, 3
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
mov dword [rsp + 0xec], r12d
vzeroupper
call fcn.14002a6c0
xor r8d, r8d
vmovdqu xmm4, xmmword [0x14016f740]
xor ebp, ebp
mov rdx, rdi
mov qword [rsp + 0xa0], r8
mov rcx, rsi
xor r8d, r8d
mov ebx, 0x80000000
movabs r12, 0x10000000000
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0xa8], r12
mov qword [rsp + 0xc0], r14
mov qword [rsp + 0xc8], r15
vmovdqu xmmword [rsp + 0xb0], xmm4
call fcn.14002a6c0
vmovq xmm3, qword [0x14016f780]
vmovq xmm0, qword [rsp + 0xb0]
vmovq xmm8, qword [rsp + 0xb8]
vmovq xmm6, qword [rsp + 0xc0]
vmovq xmm7, qword [rsp + 0xc8]
vpand xmm9, xmm3, xmm0
vpand xmm10, xmm3, xmm8
vpand xmm2, xmm3, xmm6
vpackusdw xmm5, xmm9, xmm10
vpand xmm4, xmm3, xmm7
vpackusdw xmm9, xmm2, xmm4
vpshufd xmm1, xmm5, 8
vmovq xmm5, qword [0x14016f788]
vpshufd xmm10, xmm9, 8
vpand xmm2, xmm5, xmm1
vpsrlw xmm1, xmm1, 8
vpand xmm4, xmm5, xmm10
vpackuswb xmm9, xmm2, xmm4
vpsrlw xmm10, xmm10, 8
vpshufd xmm4, xmm9, 8
vpand xmm2, xmm5, xmm10
vpand xmm9, xmm5, xmm1
vpackuswb xmm1, xmm9, xmm2
vpsrld xmm10, xmm0, 0x10
vpextrb r14d, xmm4, 0
vpsrld xmm9, xmm8, 0x10
vpand xmm2, xmm3, xmm10
vpshufd xmm1, xmm1, 8
vpand xmm10, xmm3, xmm9
vpsrld xmm0, xmm0, 0x18
vpextrb ebx, xmm1, 3
vpackusdw xmm9, xmm2, xmm10
vpsrld xmm10, xmm7, 0x10
mov dword [rsp + 0x2c], ebx
vpextrb ebx, xmm4, 3
vpshufd xmm2, xmm9, 8
vpsrld xmm9, xmm6, 0x10
vpand xmm10, xmm3, xmm10
mov dword [rsp + 0x30], ebx
vpand xmm9, xmm3, xmm9
vpand xmm2, xmm5, xmm2
vpextrb r10d, xmm1, 1
vpackusdw xmm9, xmm9, xmm10
vpsrld xmm6, xmm6, 0x18
vpextrb r9d, xmm1, 2
vpshufd xmm10, xmm9, 8
vpsrld xmm8, xmm8, 0x18
vpextrb r11d, xmm1, 0
vpand xmm9, xmm5, xmm10
vpsrld xmm7, xmm7, 0x18
vpextrb r12d, xmm4, 1
vpackuswb xmm10, xmm2, xmm9
vpand xmm9, xmm3, xmm0
vpextrb edi, xmm4, 2
vpshufd xmm2, xmm10, 8
vpand xmm10, xmm3, xmm8
vpackusdw xmm0, xmm9, xmm10
vpand xmm9, xmm3, xmm6
vpand xmm3, xmm3, xmm7
vpackusdw xmm10, xmm9, xmm3
vpshufd xmm8, xmm0, 8
vpextrb r15d, xmm2, 0
vpshufd xmm6, xmm10, 8
vpand xmm0, xmm5, xmm8
vpextrb r13d, xmm2, 1
vpand xmm5, xmm5, xmm6
vmovd xmm6, r10d
vpextrb ebp, xmm2, 2
vpackuswb xmm8, xmm0, xmm5
vmovd xmm5, r9d
vpextrb esi, xmm2, 3
vpshufd xmm7, xmm8, 8
vpinsrb xmm8, xmm6, r12d, 1
vmovd xmm6, dword [rsp + 0x2c]
vpextrb ebx, xmm7, 4
vpextrb eax, xmm7, 0
vpextrb r8d, xmm7, 1
mov dword [rsp + 0x34], ebx
vpextrb ebx, xmm2, 4
vpextrb edx, xmm7, 2
vpextrb ecx, xmm7, 3
mov dword [rsp + 0x38], ebx
vpextrb ebx, xmm1, 4
vmovd xmm0, edx
mov dword [rsp + 0x3c], ebx
vpextrb ebx, xmm4, 4
mov dword [rsp + 0x40], ebx
vpextrb ebx, xmm7, 5
mov dword [rsp + 0x44], ebx
vpextrb ebx, xmm2, 5
mov dword [rsp + 0x48], ebx
vpextrb ebx, xmm1, 5
mov dword [rsp + 0x4c], ebx
vpextrb ebx, xmm4, 5
mov dword [rsp + 0x50], ebx
vpextrb ebx, xmm7, 6
mov dword [rsp + 0x54], ebx
vpextrb ebx, xmm2, 6
mov dword [rsp + 0x58], ebx
vpextrb ebx, xmm1, 6
mov dword [rsp + 0x5c], ebx
vpextrb ebx, xmm4, 6
mov dword [rsp + 0x60], ebx
vpextrb ebx, xmm7, 7
vpinsrb xmm7, xmm0, ebp, 1
mov dword [rsp + 0x64], ebx
vpextrb ebx, xmm2, 7
vmovd xmm2, r8d
mov dword [rsp + 0x68], ebx
vpextrb ebx, xmm1, 7
vmovd xmm1, r11d
vpinsrb xmm3, xmm2, r13d, 1
mov dword [rsp + 0x6c], ebx
vpextrb ebx, xmm4, 7
vmovd xmm4, eax
vpinsrb xmm10, xmm1, r14d, 1
vpinsrb xmm9, xmm4, r15d, 1
vpinsrb xmm1, xmm5, edi, 1
vmovd xmm4, ecx
vpinsrb xmm5, xmm6, byte [rsp + 0x30], 1
vpinsrb xmm2, xmm4, esi, 1
vpunpcklwd xmm9, xmm9, xmm10
vpunpcklwd xmm10, xmm3, xmm8
vpunpcklwd xmm3, xmm7, xmm1
vmovd xmm4, dword [rsp + 0x3c]
vpunpcklwd xmm8, xmm2, xmm5
vpunpckldq xmm0, xmm9, xmm10
vmovd xmm1, dword [rsp + 0x34]
vpunpckldq xmm7, xmm3, xmm8
vpinsrb xmm10, xmm1, byte [rsp + 0x38], 1
vpinsrb xmm8, xmm4, byte [rsp + 0x40], 1
vmovd xmm2, dword [rsp + 0x44]
vpunpcklqdq xmm9, xmm0, xmm7
vmovd xmm6, dword [rsp + 0x4c]
vpinsrb xmm0, xmm2, byte [rsp + 0x48], 1
vpinsrb xmm7, xmm6, byte [rsp + 0x50], 1
vpunpcklwd xmm10, xmm10, xmm8
vmovd xmm5, dword [rsp + 0x54]
vmovd xmm3, dword [rsp + 0x5c]
vpinsrb xmm2, xmm5, byte [rsp + 0x58], 1
mov rax, qword [rsp + 0x190]
vmovd xmm1, dword [rsp + 0x64]
vpinsrb xmm6, xmm3, byte [rsp + 0x60], 1
vmovd xmm4, dword [rsp + 0x6c]
vpinsrb xmm3, xmm1, byte [rsp + 0x68], 1
vpinsrb xmm5, xmm4, ebx, 1
vpunpcklwd xmm8, xmm0, xmm7
vpunpcklwd xmm0, xmm2, xmm6
vpunpckldq xmm6, xmm10, xmm8
vpunpcklwd xmm7, xmm3, xmm5
vpunpckldq xmm2, xmm0, xmm7
vpunpcklqdq xmm1, xmm6, xmm2
vinserti128 ymm9, ymm9, xmm1, 1
vmovdqu ymmword [rax], ymm9
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
mov r10d, eax
mov rcx, qword [rdx]
mov r13d, 8
and r10d, 0xfffffff8
lea r11d, [r10 - 1]
mov qword [rsi], rcx
shr r11d, 3
and r11d, 7
cmp r13d, r10d
jae 0x14000c9c0
test r11d, r11d
je 0x14000c958
cmp r11d, 1
je 0x14000c944
cmp r11d, 2
je 0x14000c935
cmp r11d, 3
je 0x14000c926
cmp r11d, 4
je 0x14000c917
cmp r11d, 5
je 0x14000c908
cmp r11d, 6
jne 0x14000cb0f
mov ecx, r13d
add r13d, 8
mov r11, qword [rdx + rcx]
mov qword [rsi + rcx], r11
mov r9d, r13d
add r13d, 8
mov rcx, qword [rdx + r9]
mov qword [rsi + r9], rcx
mov r9d, r13d
add r13d, 8
mov r11, qword [rdx + r9]
mov qword [rsi + r9], r11
mov ecx, r13d
add r13d, 8
mov r9, qword [rdx + rcx]
mov qword [rsi + rcx], r9
mov ecx, r13d
add r13d, 8
mov r11, qword [rdx + rcx]
mov qword [rsi + rcx], r11
mov r9d, r13d
add r13d, 8
mov rcx, qword [rdx + r9]
mov qword [rsi + r9], rcx
cmp r13d, r10d
jae 0x14000c9c0
mov r9d, r13d
lea ecx, [r13 + 8]
mov r11, qword [rdx + r9]
mov qword [rsi + r9], r11
mov r9, qword [rdx + rcx]
mov qword [rsi + rcx], r9
lea ecx, [r13 + 0x10]
lea r9d, [r13 + 0x18]
mov r11, qword [rdx + rcx]
mov qword [rsi + rcx], r11
mov rcx, qword [rdx + r9]
mov qword [rsi + r9], rcx
lea r9d, [r13 + 0x20]
lea ecx, [r13 + 0x28]
mov r11, qword [rdx + r9]
mov qword [rsi + r9], r11
mov r9, qword [rdx + rcx]
mov qword [rsi + rcx], r9
lea ecx, [r13 + 0x30]
lea r9d, [r13 + 0x38]
add r13d, 0x40
mov r11, qword [rdx + rcx]
mov qword [rsi + rcx], r11
mov rcx, qword [rdx + r9]
mov qword [rsi + r9], rcx
cmp r13d, r10d
jb 0x14000c958
lea r11, [rsi + r13]
add r13, rdx
jmp 0x14000c446
mov r10d, eax
mov rcx, qword [rdx]
mov r13d, 8
and r10d, 0xfffffff8
lea r9d, [r10 - 1]
mov qword [rsi], rcx
shr r9d, 3
and r9d, 7
cmp r13d, r10d
jae 0x14000caf0
test r9d, r9d
je 0x14000ca88
cmp r9d, 1
je 0x14000ca74
cmp r9d, 2
je 0x14000ca65
cmp r9d, 3
je 0x14000ca56
cmp r9d, 4
je 0x14000ca47
cmp r9d, 5
je 0x14000ca38
cmp r9d, 6
jne 0x14000cafc
mov r9d, r13d
add r13d, 8
mov rcx, qword [rdx + r9]
mov qword [rsi + r9], rcx
mov r9d, r13d
add r13d, 8
mov r11, qword [rdx + r9]
mov qword [rsi + r9], r11
mov ecx, r13d
add r13d, 8
mov r9, qword [rdx + rcx]
mov qword [rsi + rcx], r9
mov ecx, r13d
add r13d, 8
mov r11, qword [rdx + rcx]
mov qword [rsi + rcx], r11
mov r9d, r13d
add r13d, 8
mov rcx, qword [rdx + r9]
mov qword [rsi + r9], rcx
mov r9d, r13d
add r13d, 8
mov r11, qword [rdx + r9]
mov qword [rsi + r9], r11
cmp r13d, r10d
jae 0x14000caf0
mov ecx, r13d
mov r9, qword [rdx + rcx]
mov qword [rsi + rcx], r9
lea ecx, [r13 + 8]
lea r9d, [r13 + 0x10]
mov r11, qword [rdx + rcx]
mov qword [rsi + rcx], r11
mov rcx, qword [rdx + r9]
mov qword [rsi + r9], rcx
lea r9d, [r13 + 0x18]
lea ecx, [r13 + 0x20]
mov r11, qword [rdx + r9]
mov qword [rsi + r9], r11
mov r9, qword [rdx + rcx]
mov qword [rsi + rcx], r9
lea ecx, [r13 + 0x28]
lea r9d, [r13 + 0x30]
mov r11, qword [rdx + rcx]
mov qword [rsi + rcx], r11
mov rcx, qword [rdx + r9]
mov qword [rsi + r9], rcx
lea r9d, [r13 + 0x38]
add r13d, 0x40
mov r11, qword [rdx + r9]
mov qword [rsi + r9], r11
cmp r13d, r10d
jb 0x14000ca88
lea rcx, [rsi + r13]
add r13, rdx
jmp 0x14000c392
mov r11, qword [rdx + r13]
mov qword [rsi + r13], r11
mov r13d, 0x10
jmp 0x14000ca29
mov r9, qword [rdx + r13]
mov qword [rsi + r13], r9
mov r13d, 0x10
jmp 0x14000c8f9