Function at 0x1400be490
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
vmovdqu ymm0, ymmword [0x1403313a0]
lea r12, [r8*8]
vmovq xmm17, rcx
mov rbx, rdx
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], 0
vmovdqu ymmword [rsp + 0x40], ymm0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rsp + 0x60], xmm0
cmp r12, 0x1ff
jbe 0x1400bea10
lea r14, [r12 - 0x200]
xor ebp, ebp
xor edi, edi
lea r13, [rsp + 0x40]
shr r14, 9
lea rsi, [r14 + 1]
shl rsi, 6
add rsi, rdx
vzeroupper
nop
add edi, 0x200
mov dword [rsp + 0x70], edi
jne 0x1400be8b0
mov rdx, rbx
inc ebp
mov rcx, r13
add rbx, 0x40
mov dword [rsp + 0x74], ebp
call sym.blake256_compress
cmp rbx, rsi
jne 0x1400be510
lea r9d, [r14 + 1]
shl r9d, 9
and r12d, 0x1ff
jne 0x1400be8e0
mov r14d, r9d
xor ecx, ecx
mov eax, r9d
movzx edx, r9b
mov esi, r9d
mov ebx, r9d
shr eax, 8
shr esi, 0x10
shr ebx, 0x18
mov r8d, ebp
movzx edi, al
mov rax, rdx
movzx esi, sil
movzx ebx, bl
shl rax, 8
mov r10d, ebp
mov r11d, ebp
movzx ebp, bpl
or rax, rdi
shr r11d, 8
shr r10d, 0x10
shr r8d, 0x18
shl rax, 8
movzx r11d, r11b
movzx r10d, r10b
movzx r8d, r8b
or rax, rsi
mov byte [rsp + 0x36], 0x81
mov byte [rsp + 0x37], 1
shl rax, 8
or rax, rbx
shl rax, 8
or rax, rbp
shl rax, 8
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, r8
mov qword [rsp + 0x38], rax
cmp ecx, 0x1b8
je 0x1400be990
cmp ecx, 0x1b7
jg 0x1400be930
test ecx, ecx
je 0x1400be8d0
mov r8d, 0x1b8
sub r9d, 0x1b8
lea rdx, [0x140331220]
sub r8d, ecx
mov rcx, r13
mov dword [rsp + 0x70], r9d
movsxd r8, r8d
call sym.blake256_update
lea rdx, [rsp + 0x37]
mov r8d, 8
mov rcx, r13
call sym.blake256_update
mov eax, dword [rsp + 0x70]
sub eax, 8
sub eax, 0x40
lea rdx, [rsp + 0x38]
mov rcx, r13
mov r8d, 0x40
mov dword [rsp + 0x70], eax
call sym.blake256_update
mov eax, dword [rsp + 0x58]
mov r11d, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x50]
mov ebx, eax
mov edx, dword [rsp + 0x54]
shr ebx, 8
mov esi, r11d
mov r15d, r11d
vmovd xmm20, ebx
mov ebx, dword [rsp + 0x5c]
shr esi, 0x18
mov edi, r10d
vmovd xmm0, esi
mov esi, r11d
shr edi, 0x18
mov r14d, r10d
shr esi, 8
vmovd xmm18, edi
mov edi, r9d
mov r13d, r9d
vmovd xmm26, esi
mov esi, r10d
shr edi, 0x18
mov r12d, r8d
shr ebx, 0x18
shr esi, 8
vmovd xmm3, edi
mov edi, r8d
vmovd xmm4, ebx
mov ebx, dword [rsp + 0x5c]
vmovd xmm25, esi
mov esi, r9d
shr esi, 8
shr edi, 0x18
shr r15d, 0x10
shr r14d, 0x10
vmovd xmm24, esi
mov esi, r8d
vmovd xmm16, edi
shr r13d, 0x10
shr esi, 8
shr r12d, 0x10
vinsertps xmm0, xmm0, xmm0, 0xe
vinsertps xmm26, xmm26, xmm26, 0xe
shr ebx, 0x10
vmovd xmm23, esi
vinsertps xmm18, xmm18, xmm18, 0xe
vinsertps xmm25, xmm25, xmm25, 0xe
mov dword [rsp + 0x2c], ebx
mov ebx, dword [rsp + 0x5c]
vinsertps xmm3, xmm3, xmm3, 0xe
vinsertps xmm24, xmm24, xmm24, 0xe
vinsertps xmm16, xmm16, xmm16, 0xe
vinsertps xmm23, xmm23, xmm23, 0xe
vpinsrb xmm0, xmm0, r15d, 1
vpinsrb xmm26, xmm26, r11d, 1
vpinsrb xmm18, xmm18, r14d, 1
vpinsrb xmm25, xmm25, r10d, 1
vpinsrb xmm3, xmm3, r13d, 1
vpinsrb xmm24, xmm24, r9d, 1
vpinsrb xmm16, xmm16, r12d, 1
vpinsrb xmm23, xmm23, r8d, 1
vpunpcklwd xmm18, xmm18, xmm25
vpunpcklwd xmm0, xmm0, xmm26
shr ebx, 8
vpunpcklwd xmm16, xmm16, xmm23
vpunpcklwd xmm3, xmm3, xmm24
mov esi, ecx
vpunpckldq xmm3, xmm3, xmm16
vmovd xmm19, ebx
vpunpckldq xmm0, xmm0, xmm18
shr esi, 8
vpunpcklqdq xmm0, xmm0, xmm3
vinsertps xmm19, xmm19, xmm19, 0xe
vinsertps xmm3, xmm4, xmm4, 0xe
vpinsrb xmm19, xmm19, byte [rsp + 0x5c], 1
vpinsrb xmm3, xmm3, byte [rsp + 0x2c], 1
mov edi, ecx
vmovd xmm22, esi
mov esi, edx
shr edi, 0x18
shr esi, 8
mov ebp, ecx
vinsertps xmm16, xmm20, xmm20, 0xe
vmovd xmm21, esi
vmovd xmm1, edi
mov esi, eax
mov edi, edx
shr edi, 0x18
shr esi, 0x18
shr ebp, 0x10
vinsertps xmm18, xmm21, xmm21, 0xe
vmovd xmm5, edi
vmovd xmm2, esi
mov edi, edx
mov esi, eax
shr edi, 0x10
shr esi, 0x10
vinsertps xmm1, xmm1, xmm1, 0xe
vinsertps xmm22, xmm22, xmm22, 0xe
vinsertps xmm5, xmm5, xmm5, 0xe
vinsertps xmm2, xmm2, xmm2, 0xe
vpinsrb xmm16, xmm16, eax, 1
vpinsrb xmm1, xmm1, ebp, 1
vpinsrb xmm5, xmm5, edi, 1
vpinsrb xmm22, xmm22, ecx, 1
vpinsrb xmm18, xmm18, edx, 1
vpinsrb xmm2, xmm2, esi, 1
vpunpcklwd xmm4, xmm5, xmm18
vpunpcklwd xmm3, xmm3, xmm19
vpunpcklwd xmm1, xmm1, xmm22
vpunpcklwd xmm2, xmm2, xmm16
vpunpckldq xmm1, xmm1, xmm4
vpunpckldq xmm2, xmm2, xmm3
vmovq rax, xmm17
vpunpcklqdq xmm1, xmm1, xmm2
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu8 ymmword [rax], ymm0
vzeroupper
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rbx
mov rcx, r13
add rbx, 0x40
call sym.blake256_compress
cmp rsi, rbx
jne 0x1400be510
jmp 0x1400be53a
mov dword [rsp + 0x7c], 1
jmp 0x1400be5fc
mov rax, r12
lea rdi, [rsp + 0x80]
shr rax, 3
cmp eax, 4
jae 0x1400be9f0
xor edx, edx
test al, 2
jne 0x1400be9d0
test al, 1
jne 0x1400be9c0
mov ecx, r12d
mov dword [rsp + 0x78], r12d
add r12d, r9d
jb 0x1400bea81
mov r14d, r9d
mov r9d, r12d
jmp 0x1400be554
mov r8d, 0x200
sub r9d, 0x200
lea rdx, [0x140331220]
sub r8d, ecx
mov rcx, r13
mov dword [rsp + 0x70], r9d
movsxd r8, r8d
call sym.blake256_update
mov r8d, 0x1b8
lea rdx, [0x140331221]
mov rcx, r13
sub dword [rsp + 0x70], 0x1b8
call sym.blake256_update
mov dword [rsp + 0x7c], 1
jmp 0x1400be623
sub r14d, 8
lea rdx, [rsp + 0x36]
mov r8d, 8
mov rcx, r13
mov dword [rsp + 0x70], r14d
call sym.blake256_update
mov eax, dword [rsp + 0x70]
jmp 0x1400be63d
movzx eax, byte [rsi + rdx]
mov byte [rdi + rdx], al
jmp 0x1400be90a
movzx edx, word [rsi]
mov word [rdi], dx
mov edx, 2
test al, 1
je 0x1400be90a
jmp 0x1400be9c0
mov rcx, rax
xor edx, edx
shr rcx, 2
rep movsd dword [rdi], dword [rsi]
test al, 2
je 0x1400be902
jmp 0x1400be9d0
test r12, r12
jne 0x1400bea27
xor ebp, ebp
xor r9d, r9d
lea r13, [rsp + 0x40]
vzeroupper
jmp 0x1400be54f
mov rax, r12
lea rdi, [rsp + 0x80]
shr rax, 3
cmp eax, 4
jb 0x1400bea48
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 0x1400bea59
movzx edx, word [rbx]
mov word [rdi], dx
mov edx, 2
test al, 1
je 0x1400bea64
movzx eax, byte [rbx + rdx]
mov byte [rdi + rdx], al
mov dword [rsp + 0x78], r12d
xor r14d, r14d
xor ebp, ebp
mov ecx, r12d
mov r9d, r12d
lea r13, [rsp + 0x40]
vzeroupper
jmp 0x1400be554
inc ebp
jmp 0x1400be91b