Function at 0x1400d02a0
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
vmovups xmmword [rsp + 0xf0], xmm6
vmovups xmmword [rsp + 0x100], xmm7
vmovups xmmword [rsp + 0x110], xmm8
vmovdqu ymm0, ymmword [0x1401f8860]
lea r13, [r8*8]
mov qword [rsp + 0x170], rcx
mov rbx, rdx
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xa0], 0
vmovdqu ymmword [rsp + 0x70], ymm0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rsp + 0x90], xmm0
cmp r13, 0x1ff
jbe 0x1400d0820
sub r13, 0x200
xor r12d, r12d
xor edi, edi
lea rbp, [rsp + 0x70]
mov r14, r13
shr r14, 9
lea rsi, [r14 + 1]
shl rsi, 6
add rsi, rdx
vzeroupper
nop word [rax + rax]
add edi, 0x200
mov dword [rsp + 0xa0], edi
jne 0x1400d036a
inc r12d
mov dword [rsp + 0xa4], r12d
mov rdx, rbx
mov rcx, rbp
add rbx, 0x40
call sym.blake256_compress
cmp rbx, rsi
jne 0x1400d0350
lea edx, [r14 + 1]
shl r14, 9
shl edx, 9
sub r13, r14
jne 0x1400d06f0
mov r9d, edx
xor ecx, ecx
movzx eax, dl
movzx esi, dh
mov ebx, edx
mov r11d, edx
shl rax, 8
shr ebx, 0x10
shr r11d, 0x18
mov r10d, r12d
or rax, rsi
movzx ebx, bl
movzx r11d, r11b
shr r10d, 0x10
shl rax, 8
mov r8d, r12d
movzx r10d, r10b
mov byte [rsp + 0x66], 0x81
or rax, rbx
mov ebx, r12d
shr r8d, 0x18
mov byte [rsp + 0x67], 1
shl rax, 8
movzx esi, bh
movzx r8d, r8b
or rax, r11
movzx r11d, r12b
shl rax, 8
or rax, r11
shl rax, 8
or rax, rsi
shl rax, 8
or rax, r10
shl rax, 8
or rax, r8
mov qword [rsp + 0x68], rax
cmp ecx, 0x1b8
je 0x1400d07a0
cmp ecx, 0x1b7
jg 0x1400d0740
test ecx, ecx
je 0x1400d06e0
mov r8d, 0x1b8
sub edx, 0x1b8
sub r8d, ecx
mov dword [rsp + 0xa0], edx
mov rcx, rbp
lea rdx, [0x1401f8700]
movsxd r8, r8d
call sym.blake256_update
lea rdx, [rsp + 0x67]
mov r8d, 8
mov rcx, rbp
call sym.blake256_update
mov eax, dword [rsp + 0xa0]
sub eax, 8
sub eax, 0x40
lea rdx, [rsp + 0x68]
mov rcx, rbp
mov r8d, 0x40
mov dword [rsp + 0xa0], eax
call sym.blake256_update
mov r9d, dword [rsp + 0x7c]
mov r8d, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x84]
mov edx, dword [rsp + 0x88]
mov edi, dword [rsp + 0x74]
mov ebp, dword [rsp + 0x70]
mov eax, r9d
mov esi, dword [rsp + 0x78]
mov r12d, r9d
shr eax, 8
shr r12d, 0x18
mov dword [rsp + 0x30], eax
mov eax, r8d
mov dword [rsp + 0x2c], r12d
mov r12d, r9d
shr eax, 0x18
mov r10d, edi
mov ebx, ebp
mov r11d, edi
mov dword [rsp + 0x34], eax
mov eax, r8d
shr r10d, 0x18
shr ebx, 0x18
shr eax, 0x10
mov dword [rsp + 0x24], r10d
mov r10d, esi
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x38], eax
mov eax, r8d
shr r10d, 0x18
mov ebx, ebp
shr eax, 8
mov dword [rsp + 0x28], r10d
mov r10d, esi
shr ebx, 8
mov dword [rsp + 0x3c], eax
mov eax, ecx
shr r11d, 8
shr r10d, 8
shr eax, 0x18
mov r15d, ebp
mov r14d, edi
mov r13d, esi
mov dword [rsp + 0x40], eax
mov eax, ecx
shr r15d, 0x10
shr r14d, 0x10
shr eax, 0x10
shr r13d, 0x10
shr r12d, 0x10
vmovd xmm0, dword [rsp + 0x20]
mov dword [rsp + 0x44], eax
mov eax, ecx
vmovd xmm3, dword [rsp + 0x24]
vmovd xmm1, dword [rsp + 0x28]
shr eax, 8
vmovd xmm2, dword [rsp + 0x2c]
vmovd xmm4, dword [rsp + 0x30]
vmovd xmm7, ebx
mov dword [rsp + 0x48], eax
mov eax, edx
vmovd xmm6, r11d
vmovd xmm5, r10d
shr eax, 0x18
vpinsrb xmm7, xmm7, ebp, 1
vpinsrb xmm6, xmm6, edi, 1
vpinsrb xmm5, xmm5, esi, 1
mov dword [rsp + 0x4c], eax
mov eax, edx
vpinsrb xmm4, xmm4, r9d, 1
vpinsrb xmm0, xmm0, r15d, 1
shr eax, 0x10
vpinsrb xmm3, xmm3, r14d, 1
vpinsrb xmm1, xmm1, r13d, 1
vpinsrb xmm2, xmm2, r12d, 1
mov dword [rsp + 0x50], eax
mov eax, edx
vpunpcklwd xmm3, xmm3, xmm6
vpunpcklwd xmm2, xmm2, xmm4
shr eax, 8
vpunpcklwd xmm0, xmm0, xmm7
vpunpcklwd xmm1, xmm1, xmm5
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x8c]
vpunpckldq xmm1, xmm1, xmm2
vpunpckldq xmm0, xmm0, xmm3
vpunpcklqdq xmm0, xmm0, xmm1
vmovd xmm1, dword [rsp + 0x34]
shr eax, 0x18
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x8c]
shr eax, 0x10
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x8c]
vpinsrb xmm1, xmm1, byte [rsp + 0x38], 1
vmovd xmm4, dword [rsp + 0x40]
vmovd xmm2, dword [rsp + 0x4c]
vpinsrb xmm4, xmm4, byte [rsp + 0x44], 1
vmovd xmm3, dword [rsp + 0x58]
vmovd xmm8, dword [rsp + 0x3c]
vpinsrb xmm2, xmm2, byte [rsp + 0x50], 1
vpinsrb xmm3, xmm3, byte [rsp + 0x5c], 1
vmovd xmm7, dword [rsp + 0x48]
vmovd xmm6, dword [rsp + 0x54]
vpinsrb xmm8, xmm8, r8d, 1
vpinsrb xmm7, xmm7, ecx, 1
shr eax, 8
vpinsrb xmm6, xmm6, edx, 1
vmovd xmm5, eax
vpinsrb xmm5, xmm5, byte [rsp + 0x8c], 1
mov rax, qword [rsp + 0x170]
vpunpcklwd xmm1, xmm1, xmm8
vpunpcklwd xmm4, xmm4, xmm7
vpunpcklwd xmm2, xmm2, xmm6
vpunpckldq xmm1, xmm1, xmm4
vpunpcklwd xmm3, xmm3, xmm5
vpunpckldq xmm2, xmm2, xmm3
vpunpcklqdq xmm1, xmm1, xmm2
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [rax], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0xf0]
vmovups xmm7, xmmword [rsp + 0x100]
vmovups xmm8, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0xac], 1
jmp 0x1400d0430
mov rax, r13
lea rdi, [rsp + 0xb0]
shr rax, 3
cmp eax, 4
jae 0x1400d0800
xor ecx, ecx
test al, 2
jne 0x1400d07e0
test al, 1
jne 0x1400d07d0
mov ecx, r13d
mov dword [rsp + 0xa8], r13d
add r13d, edx
jb 0x1400d0895
mov r9d, edx
mov edx, r13d
jmp 0x1400d0397
mov r8d, 0x200
sub edx, 0x200
sub r8d, ecx
mov dword [rsp + 0xa0], edx
mov rcx, rbp
lea rdx, [0x1401f8700]
movsxd r8, r8d
call sym.blake256_update
mov r8d, 0x1b8
lea rdx, [0x1401f8701]
mov rcx, rbp
sub dword [rsp + 0xa0], 0x1b8
call sym.blake256_update
mov dword [rsp + 0xac], 1
jmp 0x1400d0458
sub r9d, 8
lea rdx, [rsp + 0x66]
mov r8d, 8
mov rcx, rbp
mov dword [rsp + 0xa0], r9d
call sym.blake256_update
mov eax, dword [rsp + 0xa0]
jmp 0x1400d0475
movzx eax, byte [rsi + rcx]
mov byte [rdi + rcx], al
jmp 0x1400d071a
movzx ecx, word [rsi]
mov word [rdi], cx
mov ecx, 2
test al, 1
je 0x1400d071a
jmp 0x1400d07d0
mov ecx, eax
shr ecx, 2
rep movsd dword [rdi], dword [rsi]
xor ecx, ecx
test al, 2
je 0x1400d0712
jmp 0x1400d07e0
test r13, r13
jne 0x1400d0837
xor r12d, r12d
xor edx, edx
lea rbp, [rsp + 0x70]
vzeroupper
jmp 0x1400d0392
mov rax, r13
lea rdi, [rsp + 0xb0]
shr rax, 3
cmp eax, 4
jb 0x1400d0858
mov ecx, eax
mov rsi, rbx
shr ecx, 2
rep movsd dword [rdi], dword [rsi]
mov rbx, rsi
xor edx, edx
test al, 2
je 0x1400d0869
movzx edx, word [rbx]
mov word [rdi], dx
mov edx, 2
test al, 1
je 0x1400d0874
movzx eax, byte [rbx + rdx]
mov byte [rdi + rdx], al
mov dword [rsp + 0xa8], r13d
xor r9d, r9d
xor r12d, r12d
mov ecx, r13d
mov edx, r13d
lea rbp, [rsp + 0x70]
vzeroupper
jmp 0x1400d0397
inc r12d
jmp 0x1400d072e