Function at 0x55b5d0
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
vmovdqu xmm0, xmmword [0x006fc6c0]
vmovdqu xmm1, xmmword [0x006fc6d0]
mov rbx, rcx
mov dword [rsp + 0x100], r8d
lea rbp, [rsp + 0x60]
lea r12, [rsp + 0x20]
vmovdqu xmmword [rsp + 0x20], xmm0
vmovdqu xmmword [rsp + 0x30], xmm1
cmp r8d, 0xfffffff8
jl 0x55ba03
lea rbp, [rsp + 0x60]
lea r12, [rsp + 0x20]
xor r13d, r13d
movsxd r15, dword [rsp + 0x100]
lea r14, [rdx + r15]
jmp 0x55b65c
xor r8d, r8d
mov rdx, rbp
mov rcx, r12
sub r15, 0x40
call fcn.00559700
cmp r15d, 0xfffffff8
jl 0x55ba03
mov r9d, r15d
mov eax, r15d
mov r8d, r15d
cmp r15d, 0x3f
jle 0x55bab0
test eax, eax
mov edi, 0x40
mov rsi, r14
cmovs eax, r13d
cmp eax, 0x40
cmovg eax, edi
mov rdi, rbp
sub rsi, r15
cmp eax, 8
jb 0x55b696
mov ecx, eax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
xor edx, edx
test al, 4
je 0x55b6a5
mov edx, dword [rsi]
mov dword [rdi], edx
mov edx, 4
test al, 2
je 0x55b6b5
movzx ecx, word [rsi + rdx]
mov word [rdi + rdx], cx
add rdx, 2
test al, 1
je 0x55b6c0
movzx eax, byte [rsi + rdx]
mov byte [rdi + rdx], al
cmp r9d, 0x3f
ja 0x55b6cc
mov byte [rbp + r15], pe_nt_image_headers64
movzx eax, byte [rsp + 0x62]
movzx ecx, byte [rsp + 0x63]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x61]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x60]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x67]
add eax, edx
mov dword [rsp + 0x60], eax
movzx eax, byte [rsp + 0x66]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x65]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x64]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x6b]
add eax, edx
mov dword [rsp + 0x64], eax
movzx eax, byte [rsp + 0x6a]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x69]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x68]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x6f]
add eax, edx
mov dword [rsp + 0x68], eax
movzx eax, byte [rsp + 0x6e]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x6d]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x6c]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x73]
add eax, edx
mov dword [rsp + 0x6c], eax
movzx eax, byte [rsp + 0x72]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x71]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x70]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x77]
add eax, edx
mov dword [rsp + 0x70], eax
movzx eax, byte [rsp + 0x76]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x75]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x74]
shl edx, 0x18
add edx, ecx
add eax, edx
mov dword [rsp + 0x74], eax
movzx eax, byte [rsp + 0x7a]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x79]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x78]
movzx ecx, byte [rsp + 0x7b]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x7f]
add eax, edx
mov dword [rsp + 0x78], eax
movzx eax, byte [rsp + 0x7e]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x7d]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x7c]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x83]
add eax, edx
mov dword [rsp + 0x7c], eax
movzx eax, byte [rsp + 0x82]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x81]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x80]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x87]
add eax, edx
mov dword [rsp + 0x80], eax
movzx eax, byte [rsp + 0x86]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x85]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x84]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x8b]
add eax, edx
mov dword [rsp + 0x84], eax
movzx eax, byte [rsp + 0x8a]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x89]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x88]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x8f]
add eax, edx
mov dword [rsp + 0x88], eax
movzx eax, byte [rsp + 0x8e]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x8d]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x8c]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x93]
add eax, edx
mov dword [rsp + 0x8c], eax
movzx eax, byte [rsp + 0x92]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x91]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x90]
shl edx, 0x18
add edx, ecx
add eax, edx
mov dword [rsp + 0x90], eax
movzx eax, byte [rsp + 0x96]
movzx ecx, byte [rsp + 0x97]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x95]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x94]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x9b]
add eax, edx
mov dword [rsp + 0x94], eax
movzx eax, byte [rsp + 0x9a]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x99]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x98]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [rsp + 0x9f]
add eax, edx
mov dword [rsp + 0x98], eax
movzx eax, byte [rsp + 0x9e]
shl eax, 8
mov edx, eax
movzx eax, byte [rsp + 0x9d]
shl eax, 0x10
add eax, edx
movzx edx, byte [rsp + 0x9c]
shl edx, 0x18
add edx, ecx
add eax, edx
mov dword [rsp + 0x9c], eax
cmp r8d, 0x37
jg 0x55b640
mov eax, dword [rsp + 0x100]
mov rdx, rbp
mov rcx, r12
lea r8d, [rax*8]
mov dword [rsp + 0x9c], r8d
xor r8d, r8d
call fcn.00559700
vmovdqu xmm2, xmmword [0x006fc6a0]
vmovdqu xmm3, xmmword [0x006fc6b0]
xor r8d, r8d
mov rdx, r12
vmovdqu xmm4, xmmword [0x006fc6c0]
vmovdqu xmm5, xmmword [0x006fc6d0]
mov rcx, rbp
vmovdqu xmmword [rsp + 0x40], xmm2
vmovdqu xmmword [rsp + 0x50], xmm3
vmovdqu xmmword [rsp + 0x60], xmm4
vmovdqu xmmword [rsp + 0x70], xmm5
call fcn.00559700
movbe eax, dword [rsp + 0x60]
mov dword [rbx], eax
movbe eax, dword [rsp + 0x64]
mov dword [rbx + 4], eax
movbe eax, dword [rsp + 0x68]
mov dword [rbx + 8], eax
movbe eax, dword [rsp + 0x6c]
mov dword [rbx + 0xc], eax
movbe eax, dword [rsp + 0x70]
mov dword [rbx + 0x10], eax
movbe eax, dword [rsp + 0x74]
mov dword [rbx + 0x14], eax
movbe eax, dword [rsp + 0x78]
mov dword [rbx + 0x18], eax
movbe eax, dword [rsp + 0x7c]
mov dword [rbx + 0x1c], eax
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rbp], 0
mov qword [rbp + 8], 0
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], 0
mov qword [rbp + 0x28], 0
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], 0
jmp 0x55b66f