Function at 0x408a60
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x180
mov r15, rcx
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x160], rdx
mov qword [rsp + 0x168], r8
mov qword [rsp + 0x170], r9
mov qword [rsp + 0x178], rax
lea r14, [rsp + 0x118]
xorps xmm0, xmm0
movups xmmword [rsp + 0x148], xmm0
movups xmmword [rsp + 0x138], xmm0
movups xmmword [rsp + 0x128], xmm0
movups xmmword [rsp + 0x118], xmm0
mov byte [rsp + 0x158], 0
mov qword [rsp + 0xf0], 0
movups xmm0, xmmword [0x00904f90]
movups xmmword [rsp + 0xf8], xmm0
movups xmm0, xmmword [0x00904fa0]
movups xmmword [rsp + 0x108], xmm0
lea rax, [rsp + 0x160]
mov qword [rsp + 0xb0], rax
lea rax, [0x00406600]
mov qword [rsp + 0xb8], rax
lea rcx, [rsp + 0x170]
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rax
lea rax, [0x00904fb0]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 2
mov qword [rsp + 0x30], 0
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 2
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x20]
call fcn.00499580
mov rbx, qword [rsp + 0x90]
mov rdi, qword [rsp + 0xa0]
cmp rdi, 0x40
jae 0x408d01
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov byte [rsp + 0x158], dil
mov rdx, qword [rsp + 0x98]
test rdx, rdx
jle 0x408bbe
mov r8d, 1
mov rcx, rbx
call fcn.0040a2d0
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x80], rax
mov al, byte [rsp + 0x158]
mov byte [rsp + 0x88], al
mov eax, dword [rsp + 0x159]
mov dword [rsp + 0x89], eax
movzx eax, word [rsp + 0x15d]
mov word [rsp + 0x8d], ax
mov al, byte [rsp + 0x15f]
mov byte [rsp + 0x8f], al
movups xmm0, xmmword [rsp + 0xf0]
movups xmm1, xmmword [rsp + 0x100]
movups xmm2, xmmword [rsp + 0x110]
movups xmm3, xmmword [rsp + 0x120]
movaps xmmword [rsp + 0x20], xmm0
movups xmm0, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0x70], xmm0
movdqu xmm0, xmmword [rsp + 0x130]
movdqa xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm3
movaps xmmword [rsp + 0x40], xmm2
movaps xmmword [rsp + 0x30], xmm1
lea rdi, [rsp + 0x48]
movzx esi, byte [rsp + 0x88]
mov rax, qword [rsp + 0x20]
shl rax, 9
lea rbx, [rsi*8]
or rbx, rax
mov byte [rsp + rsi + 0x48], pe_nt_image_headers64
mov r8, rsi
xor r8, 0x3f
je 0x408c96
lea rcx, [rsi + rdi]
add rcx, 1
xor edx, edx
call sub.msvcrt.dll_memset
bswap rbx
xor esi, 0x38
cmp esi, 8
jae 0x408d5b
lea rsi, [rsp + 0x28]
mov r8d, 1
mov rcx, rsi
mov rdx, rdi
call fcn.004110e0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xd0], xmm0
movdqa xmmword [rsp + 0xc0], xmm0
movdqa xmmword [rsp + 0xb0], xmm0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], rbx
lea rdx, [rsp + 0xb0]
mov r8d, 1
mov rcx, rsi
jmp 0x408d71
lea rcx, [rsp + 0xf8]
mov r8, rdi
shr r8, 6
mov qword [rsp + 0xf0], r8
mov rdx, rbx
call fcn.004110e0
mov esi, edi
and esi, 0x3f
and rdi, 0xffffffffffffffc0
add rdi, rbx
mov rcx, r14
mov rdx, rdi
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rdi, rsi
mov byte [rsp + 0x158], dil
mov rdx, qword [rsp + 0x98]
test rdx, rdx
jg 0x408bb0
jmp 0x408bbe
mov qword [rsp + 0x80], rbx
lea rcx, [rsp + 0x28]
mov r8d, 1
mov rdx, rdi
call fcn.004110e0
pxor xmm0, xmm0
movdqu xmm1, xmmword [rsp + 0x28]
movdqu xmm2, xmmword [rsp + 0x38]
movdqa xmm3, xmm1
punpckhbw xmm3, xmm0
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm3
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshuflw xmm0, xmm2, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm3
movdqa xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0xa0], xmm0
lea r9, str.0123456789abcdef_
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x90]
mov r8d, 0x20
call fcn.0040a310
movups xmm0, xmmword [rsp + 0xb0]
movups xmm1, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.004056f0
mov rax, r15
add rsp, 0x180
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret