Function at 0x140009570
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
movups xmmword [rsp + 0xc0], xmm6
movups xmmword [rsp + 0xd0], xmm7
movups xmmword [rsp + 0xe0], xmm8
movups xmmword [rsp + 0xf0], xmm9
movdqu xmm6, xmmword [0x140074280]
mov r14, qword [0x140074290]
mov r15, qword [0x140074298]
mov qword [rsp + 0x150], rcx
mov r12d, r8d
lea rdi, [rsp + 0x40]
lea rsi, [rsp + 0x80]
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], r15
movups xmmword [rsp + 0x40], xmm6
cmp r8d, 0xfffffff8
jl 0x14000980a
movsxd rbx, r8d
lea rsi, [rsp + 0x80]
lea rdi, [rsp + 0x40]
lea rbp, [rdx + rbx]
xor eax, eax
test ebx, ebx
mov edx, 0x40
mov r8, rbp
cmovns eax, ebx
mov ecx, ebx
cmp eax, edx
cmovg eax, edx
sub r8, rbx
cmp ebx, 0x3f
jle 0x140009788
mov r9, rsi
mov rdx, r8
cmp eax, 8
jae 0x140009c40
xor r8d, r8d
test al, 4
je 0x140009644
mov r8d, dword [rdx]
mov dword [r9], r8d
mov r8d, 4
test al, 2
je 0x140009656
movzx r10d, word [rdx + r8]
mov word [r9 + r8], r10w
add r8, 2
test al, 1
je 0x140009663
movzx eax, byte [rdx + r8]
mov byte [r9 + r8], al
mov eax, dword [rsp + 0x80]
bswap eax
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x84]
bswap eax
mov dword [rsp + 0x84], eax
mov eax, dword [rsp + 0x88]
bswap eax
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0x8c]
bswap eax
mov dword [rsp + 0x8c], eax
mov eax, dword [rsp + 0x90]
bswap eax
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x94]
bswap eax
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x98]
bswap eax
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x9c]
bswap eax
mov dword [rsp + 0x9c], eax
mov eax, dword [rsp + 0xa0]
bswap eax
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0xa4]
bswap eax
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0xa8]
bswap eax
mov dword [rsp + 0xa8], eax
mov eax, dword [rsp + 0xac]
bswap eax
mov dword [rsp + 0xac], eax
mov eax, dword [rsp + 0xb0]
bswap eax
mov dword [rsp + 0xb0], eax
mov eax, dword [rsp + 0xb4]
bswap eax
mov dword [rsp + 0xb4], eax
mov eax, dword [rsp + 0xb8]
bswap eax
mov dword [rsp + 0xb8], eax
mov eax, dword [rsp + 0xbc]
bswap eax
mov dword [rsp + 0xbc], eax
cmp ecx, 0x37
jle 0x1400097f0
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
sub rbx, 0x40
call sym.sha256_transform
jmp 0x140009600
pxor xmm0, xmm0
mov r9, rsi
mov rdx, r8
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm0
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x30], xmm0
cmp eax, 8
jae 0x140009c10
xor r8d, r8d
test al, 4
je 0x1400097bd
mov r8d, dword [rdx]
mov dword [r9], r8d
mov r8d, 4
test al, 2
je 0x1400097cf
movzx r10d, word [rdx + r8]
mov word [r9 + r8], r10w
add r8, 2
test al, 1
je 0x1400097dc
movzx eax, byte [rdx + r8]
mov byte [r9 + r8], al
cmp ebx, 0x3f
ja 0x140009663
mov byte [rsi + rbx], pe_nt_image_headers64
jmp 0x140009663
shl r12d, 3
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
mov dword [rsp + 0xbc], r12d
call sym.sha256_transform
xor edx, edx
movdqu xmm6, xmmword [0x140074280]
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x68], rdx
mov eax, 0x80000000
movabs rdx, 0x10000000000
mov qword [rsp + 0x60], rax
xor eax, eax
mov qword [rsp + 0x78], rdx
mov rdx, rdi
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x98], r15
movups xmmword [rsp + 0x80], xmm6
call sym.sha256_transform
movq xmm0, qword [rsp + 0x80]
movq xmm6, qword [rsp + 0x88]
movq xmm1, qword [rsp + 0x90]
movq xmm5, qword [rsp + 0x98]
movdqa xmm2, xmm0
movdqa xmm4, xmm0
punpcklwd xmm2, xmm6
punpcklwd xmm4, xmm6
movdqa xmm3, xmm1
pshufd xmm2, xmm2, 0x4e
punpcklwd xmm3, xmm5
punpcklwd xmm4, xmm2
movdqa xmm2, xmm1
punpcklwd xmm2, xmm5
pshufd xmm2, xmm2, 0x4e
punpcklwd xmm3, xmm2
movq xmm2, qword [0x1400742a0]
movdqa xmm8, xmm2
movdqa xmm7, xmm2
pand xmm8, xmm4
psrlw xmm4, 8
pand xmm7, xmm3
pand xmm4, xmm2
psrlw xmm3, 8
movdqa xmm9, xmm8
pand xmm3, xmm2
packuswb xmm9, xmm7
movdqa xmm7, xmm4
packuswb xmm7, xmm3
movdqa xmm4, xmm0
movdqa xmm3, xmm6
pshufd xmm7, xmm7, 8
psrld xmm4, 0x10
pshufd xmm9, xmm9, 8
movq r8, xmm7
psrld xmm3, 0x10
movdqa xmm7, xmm4
punpcklwd xmm7, xmm3
punpcklwd xmm4, xmm3
movdqa xmm3, xmm1
mov rdx, r8
pshufd xmm7, xmm7, 0x4e
psrld xmm3, 0x10
movzx edx, dh
mov r15, r8
punpcklwd xmm4, xmm7
movdqa xmm7, xmm5
movdqa xmm8, xmm3
movzx r12d, r8b
psrld xmm7, 0x10
pand xmm4, xmm2
movq rax, xmm9
shr r15, 0x10
punpcklwd xmm8, xmm7
punpcklwd xmm3, xmm7
movdqa xmm7, xmm4
mov r14, rax
pshufd xmm8, xmm8, 0x4e
psrld xmm0, 0x18
movzx r13d, al
and r14d, 0xff00
punpcklwd xmm3, xmm8
psrld xmm6, 0x18
or rdx, r14
mov r10, rax
shl rdx, 8
pand xmm3, xmm2
shr r10, 0x10
movzx r15d, r15b
psrld xmm1, 0x18
psrld xmm5, 0x18
packuswb xmm7, xmm3
movdqa xmm3, xmm0
punpcklwd xmm0, xmm6
pshufd xmm7, xmm7, 8
punpcklwd xmm3, xmm6
movq rbx, xmm7
pshufd xmm3, xmm3, 0x4e
mov rsi, rbx
mov r14, rbx
punpcklwd xmm0, xmm3
movdqa xmm3, xmm1
punpcklwd xmm1, xmm5
shr rsi, 0x10
punpcklwd xmm3, xmm5
pand xmm0, xmm2
mov qword [rsp + 0x30], rsi
mov rsi, rbx
pshufd xmm3, xmm3, 0x4e
movdqa xmm5, xmm0
shr rsi, 0x18
punpcklwd xmm1, xmm3
mov qword [rsp + 0x38], rsi
movzx esi, bh
pand xmm2, xmm1
or rdx, rsi
packuswb xmm5, xmm2
shl rdx, 8
pshufd xmm5, xmm5, 8
movq rcx, xmm5
movzx esi, ch
mov rdi, rcx
mov r11, rcx
movzx r9d, cl
shr rdi, 0x10
or rdx, rsi
movzx esi, byte [rsp + 0x38]
shr r11, 0x18
shl rdx, 8
mov qword [rsp + 0x20], rdi
mov rdi, r8
movzx r11d, r11b
or rdx, r13
shr rdi, 0x18
mov r13, rcx
shl rdx, 8
movzx edi, dil
or rdx, r12
movzx r12d, bl
shl rdx, 8
or rdx, r12
mov r12, rax
mov rbp, rdx
mov rdx, r10
movzx r10d, r10b
and edx, 0xff00
shl rbp, 8
or rdx, rdi
mov rdi, qword [rsp + 0x150]
shl rdx, 8
or rdx, rsi
mov rsi, rcx
shl rdx, 8
or rdx, r11
mov r11, r8
shl rdx, 8
or rdx, r10
movzx r10d, byte [rsp + 0x30]
shl rdx, 8
shr r12, 0x20
or rbp, r9
mov r9, rcx
shr r14, 0x28
or rdx, r15
mov r15, r8
shr r13, 0x28
shl rdx, 8
shr r15, 0x28
movzx r14d, r14b
movzx r13d, r13b
shr rsi, 0x30
or rdx, r10
movzx r15d, r15b
shr r9, 0x20
movzx r10d, byte [rsp + 0x20]
shl rdx, 8
shr r11, 0x30
movzx r9d, r9b
mov qword [rsp + 0x20], rbp
mov rbp, r8
movzx r11d, r11b
or rdx, r10
shr rbp, 0x20
mov r10, rbx
mov qword [rsp + 0x28], rdx
mov rdx, r12
movzx r12d, r12b
movzx ebp, bpl
and edx, 0xff00
movdqu xmm1, xmmword [rsp + 0x20]
shr r10, 0x30
mov qword [rsp + 0x20], rsi
or rdx, r15
mov rsi, rax
shr rax, 0x38
movzx r10d, r10b
shl rdx, 8
movups xmmword [rdi], xmm1
mov rdi, rbx
shr rsi, 0x30
or rdx, r14
shr rdi, 0x20
movzx esi, sil
shl rdx, 8
movzx edi, dil
or rdx, r13
shl rdx, 8
or rdx, r12
shl rdx, 8
or rdx, rbp
shl rdx, 8
or rdx, rdi
shl rdx, 8
shld rax, r8, 8
shld rax, rbx, 8
or rdx, r9
shld rax, rcx, 8
movzx ecx, byte [rsp + 0x20]
mov qword [rsp + 0x20], rdx
shl rax, 8
or rax, rsi
shl rax, 8
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x150]
movdqu xmm6, xmmword [rsp + 0x20]
movups xmmword [rax + 0x10], xmm6
movups xmm6, xmmword [rsp + 0xc0]
movups xmm7, xmmword [rsp + 0xd0]
movups xmm8, xmmword [rsp + 0xe0]
movups xmm9, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r11d, eax
xor edx, edx
and r11d, 0xfffffff8
mov r9d, edx
add edx, 8
mov r10, qword [r8 + r9]
mov qword [rsi + r9], r10
cmp edx, r11d
jb 0x140009c19
lea r9, [rsi + rdx]
add rdx, r8
jmp 0x1400097aa
mov r11d, eax
xor edx, edx
and r11d, 0xfffffff8
mov r9d, edx
add edx, 8
mov r10, qword [r8 + r9]
mov qword [rsi + r9], r10
cmp edx, r11d
jb 0x140009c49
lea r9, [rsi + rdx]
add rdx, r8
jmp 0x140009631