Function at 0x1400bf090
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
vmovdqu32 ymm17, ymmword [0x1403313a0]
mov r12, rcx
mov rdi, rdx
mov rsi, r8
cmp r8, 0x40
ja 0x1400bf250
mov eax, 0x36
vpxord xmm30, xmm30, xmm30
vmovdqu32 ymmword [rcx], ymm17
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
test r8, r8
je 0x1400bf370
lea rbp, [r8 - 1]
cmp r8, 0x40
jne 0x1400bf1f4
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 0x1400bf1af
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 0x1400bf410
vmovdqu8 ymm2, ymmword [rsp + 0x40]
vpxor ymm0, ymm2, ymmword [rdi]
vmovdqu8 ymmword [rsp + 0x40], ymm0
cmp rsi, 0x20
je 0x1400bf18d
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 0x1400bf1e0
jmp 0x1400bf18d
cmp rbp, 0x1e
jbe 0x1400bf417
vmovdqu8 ymm1, ymmword [rsp + 0x40]
vpxor ymm0, ymm1, ymmword [rdi]
vmovdqu8 ymmword [rsp + 0x40], ymm0
cmp rsi, 0x20
je 0x1400bf11c
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 0x1400bf230
jmp 0x1400bf11c
vpxor xmm0, xmm0, xmm0
lea rbp, [r8*8]
vmovdqu32 ymmword [rsp + 0x40], ymm17
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], 0
vmovdqu xmmword [rsp + 0x60], xmm0
cmp rbp, 0x1ff
jbe 0x1400bf41e
lea rsi, [rbp - 0x200]
mov r13d, 0x200
lea rbx, [rsp + 0x40]
shr rsi, 9
inc rsi
shl rsi, 6
add rsi, rdx
jmp 0x1400bf2d9
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 0x1400bf2fb
mov dword [rsp + 0x70], r13d
test r13d, r13d
jne 0x1400bf2be
mov rdx, rdi
mov rcx, rbx
add rdi, 0x40
inc dword [rsp + 0x74]
call sym.blake256_compress
cmp rsi, rdi
jne 0x1400bf2b0
and ebp, 0x1ff
test rbp, rbp
jne 0x1400bf3d0
lea rdi, [rsp + 0x20]
mov r9d, 1
mov r8d, 0x81
mov rcx, rbx
mov rdx, rdi
mov esi, 0x20
mov ebp, 0x1f
call sym.blake256_final_h
vpxor xmm0, xmm0, xmm0
mov eax, 0x36
vmovdqu32 ymmword [r12], ymm17
vmovdqu xmmword [r12 + 0x20], xmm0
vpbroadcastb zmm0, eax
mov qword [r12 + 0x38], 0
mov qword [r12 + 0x30], 0
vmovdqu8 zmmword [rsp + 0x40], zmm0
jmp 0x1400bf1fe
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 0x1400bf18d
mov rax, rbp
lea rdi, [rsp + 0x80]
shr rax, 3
cmp eax, 4
jb 0x1400bf3eb
mov ecx, eax
shr ecx, 2
rep movsd dword [rdi], dword [rsi]
xor edx, edx
test al, 2
je 0x1400bf3fc
movzx edx, word [rsi]
mov word [rdi], dx
mov edx, 2
test al, 1
je 0x1400bf407
movzx eax, byte [rsi + rdx]
mov byte [rdi + rdx], al
mov dword [rsp + 0x78], ebp
jmp 0x1400bf30a
xor eax, eax
jmp 0x1400bf1e0
xor eax, eax
jmp 0x1400bf230
mov rsi, rdx
lea rbx, [rsp + 0x40]
jmp 0x1400bf301