Function at 0x1400bf430
Capabilities:
Authenticate hmac
Encode data using xor
Hash data using sha256

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov r12, rcx
mov rdi, rdx
mov rsi, r8
cmp r8, 0x40
ja 0x1400bf5f0
vmovdqu32 ymm17, ymmword [0x1403313c0]
mov eax, 0x36
vpxord xmm30, xmm30, xmm30
mov qword [rcx + 0x38], 0
vpbroadcastb zmm0, eax
mov qword [rcx + 0x30], 0
vmovdqu32 xmmword [rcx + 0x20], xmm30
lea rbx, [rsp + 0x40]
vmovdqu8 zmmword [rsp + 0x40], zmm0
vmovdqu32 ymmword [rcx], ymm17
test r8, r8
je 0x1400bf730
lea rbp, [r8 - 1]
cmp r8, 0x40
jne 0x1400bf594
vpxorq zmm0, zmm0, zmmword [rdx]
vmovdqu8 zmmword [rsp + 0x40], zmm0
mov rcx, r12
mov r8d, 0x200
mov rdx, rbx
vzeroupper
call sym.blake256_update
vpxor xmm0, xmm0, xmm0
mov eax, 0x5c
lea rcx, [r12 + 0x80]
vmovdqu xmmword [r12 + 0xa0], xmm0
vpbroadcastb zmm0, eax
vmovdqu32 ymmword [r12 + 0x80], ymm17
mov qword [r12 + 0xb8], 0
mov qword [r12 + 0xb0], 0
vmovdqu8 zmmword [rsp + 0x40], zmm0
cmp rbp, 0x3f
jne 0x1400bf54f
vpxorq zmm0, zmm0, zmmword [rdi]
vmovdqu8 zmmword [rsp + 0x40], zmm0
mov r8d, 0x200
mov rdx, rbx
vzeroupper
call sym.blake256_update
nop
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
cmp rbp, 0x1e
jbe 0x1400bf7d0
vmovdqu8 ymm2, ymmword [rsp + 0x40]
vpxor ymm0, ymm2, ymmword [rdi]
vmovdqu8 ymmword [rsp + 0x40], ymm0
cmp rsi, 0x20
je 0x1400bf52d
mov eax, 0x20
nop dword [rax + rax]
movzx edx, byte [rbx + rax]
xor dl, byte [rdi + rax]
mov byte [rbx + rax], dl
inc rax
cmp rax, rsi
jb 0x1400bf580
jmp 0x1400bf52d
cmp rbp, 0x1e
jbe 0x1400bf7d7
vmovdqu8 ymm1, ymmword [rsp + 0x40]
vpxor ymm0, ymm1, ymmword [rdx]
vmovdqu8 ymmword [rsp + 0x40], ymm0
cmp r8, 0x20
je 0x1400bf4bc
mov eax, 0x20
nop word cs:[rax + rax]
nop dword [rax]
movzx edx, byte [rbx + rax]
xor dl, byte [rdi + rax]
mov byte [rbx + rax], dl
inc rax
cmp rax, rsi
jb 0x1400bf5d0
jmp 0x1400bf4bc
vmovdqu ymm0, ymmword [0x1403313a0]
lea rbp, [r8*8]
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 rbp, 0x1ff
jbe 0x1400bf7de
lea rsi, [rbp - 0x200]
mov r13d, 0x200
lea rbx, [rsp + 0x40]
shr rsi, 9
inc rsi
shl rsi, 6
add rsi, rdx
vzeroupper
jmp 0x1400bf689
mov dword [rsp + 0x70], 0x200
mov r13d, 0x200
mov rdx, rdi
mov rcx, rbx
add rdi, 0x40
add r13d, 0x200
call sym.blake256_compress
cmp rsi, rdi
je 0x1400bf6ab
mov dword [rsp + 0x70], r13d
test r13d, r13d
jne 0x1400bf66e
mov rdx, rdi
mov rcx, rbx
add rdi, 0x40
inc dword [rsp + 0x74]
call sym.blake256_compress
cmp rsi, rdi
jne 0x1400bf660
and ebp, 0x1ff
test rbp, rbp
jne 0x1400bf790
lea rdi, [rsp + 0x20]
mov r9d, 1
mov r8d, 0x81
mov rcx, rbx
mov rdx, rdi
mov esi, 0x1c
mov ebp, 0x1b
call sym.blake256_final_h
vmovdqu32 ymm17, ymmword [0x1403313c0]
vpxor xmm0, xmm0, xmm0
mov eax, 0x36
vmovdqu xmmword [r12 + 0x20], xmm0
vpbroadcastb zmm0, eax
mov qword [r12 + 0x38], 0
mov qword [r12 + 0x30], 0
vmovdqu8 zmmword [rsp + 0x40], zmm0
xor eax, eax
vmovdqu32 ymmword [r12], ymm17
jmp 0x1400bf5d0
mov r8d, 0x200
mov rdx, rbx
vzeroupper
call sym.blake256_update
mov eax, 0x5c
vmovdqu32 ymmword [r12 + 0x80], ymm17
mov qword [r12 + 0xb8], 0
vpbroadcastb zmm0, eax
mov qword [r12 + 0xb0], 0
vmovdqu32 xmmword [r12 + 0xa0], xmm30
lea rcx, [r12 + 0x80]
vmovdqu8 zmmword [rsp + 0x40], zmm0
jmp 0x1400bf52d
mov rax, rbp
lea rdi, [rsp + 0x80]
shr rax, 3
cmp eax, 4
jb 0x1400bf7ab
mov ecx, eax
shr ecx, 2
rep movsd dword [rdi], dword [rsi]
xor edx, edx
test al, 2
je 0x1400bf7bc
movzx edx, word [rsi]
mov word [rdi], dx
mov edx, 2
test al, 1
je 0x1400bf7c7
movzx eax, byte [rsi + rdx]
mov byte [rdi + rdx], al
mov dword [rsp + 0x78], ebp
jmp 0x1400bf6ba
xor eax, eax
jmp 0x1400bf580
xor eax, eax
jmp 0x1400bf5d0
mov rsi, rdx
lea rbx, [rsp + 0x40]
vzeroupper
jmp 0x1400bf6b1