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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
lea r12, [rsp + 0x7f]
mov r15, rcx
mov r14, rdx
mov rbx, r8
and r12, 0xffffffffffffffc0
lea r13, [rcx + 0x80]
cmp r8, 0x40
ja 0x58a518
call fcn.0056ed90
mov esi, 0x40
lea rbp, [r12 + rbx]
sub rsi, rbx
test rbx, rbx
je 0x58a580
cmp rbx, 0x1f
jbe 0x58a570
vmovdqu ymm0, ymmword [str.66666666666666666666666666666666_]
mov rax, rbx
vpxor ymm1, ymm0, ymmword [r14]
shr rax, 5
vmovdqu ymmword [r12], ymm1
cmp rax, 2
jne 0x58a4a2
vpxor ymm0, ymm0, ymmword [r14 + 0x20]
vmovdqu ymmword [r12 + 0x20], ymm0
vzeroupper
movabs rax, 0x3636363636363636
mov edx, esi
cmp esi, 8
jae 0x58a4f8
test sil, 4
jne 0x58a60b
test edx, edx
je 0x58a3be
mov byte [rbp], 0x36
test dl, 2
jne 0x58a5fc
mov r8d, 0x40
mov rdx, r12
mov rcx, r15
call fcn.0056edc0
mov rcx, r13
call fcn.0056ed90
lea rax, [rbx - 1]
cmp rax, 0x1e
jbe 0x58a5e1
vmovdqu ymm0, ymmword [0x006beb00]
mov rax, rbx
vpxor ymm1, ymm0, ymmword [r14]
shr rax, 5
vmovdqu ymmword [r12], ymm1
cmp rax, 2
jne 0x58a470
vpxor ymm0, ymm0, ymmword [r14 + 0x20]
vmovdqu ymmword [r12 + 0x20], ymm0
vzeroupper
movabs rax, 0x5c5c5c5c5c5c5c5c
mov edx, esi
cmp esi, 8
jae 0x58a4d8
and esi, 4
jne 0x58a5e8
test edx, edx
je 0x58a444
mov byte [rbp], 0x5c
test dl, 2
jne 0x58a61f
mov r8d, 0x40
mov rdx, r12
mov rcx, r13
call fcn.0056edc0
nop
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp rbx, 0x20
je 0x58a62e
mov eax, 0x20
vzeroupper
nop word [rax + rax]
movzx edx, byte [r14 + rax]
inc rax
xor edx, 0x5c
mov byte [rax + r12 - 1], dl
cmp rax, rbx
jb 0x58a488
jmp 0x58a415
cmp rbx, 0x20
je 0x58a636
mov eax, 0x20
vzeroupper
nop dword [rax]
movzx edx, byte [r14 + rax]
inc rax
xor edx, 0x36
mov byte [rax + r12 - 1], dl
cmp rbx, rax
ja 0x58a4b8
jmp 0x58a38e
mov edx, esi
mov rdi, rbp
mov qword [rbp + rdx - 8], rax
lea edx, [rsi - 1]
shr edx, 3
mov ecx, edx
rep stosq qword [rdi], rax
jmp 0x58a444
mov edx, esi
mov rdi, rbp
mov qword [rbp + rdx - 8], rax
lea edx, [rsi - 1]
shr edx, 3
mov ecx, edx
rep stosq qword [rdi], rax
jmp 0x58a3be
call fcn.0056ed90
mov r8, rbx
mov rdx, r14
mov rcx, r15
lea r14, [rsp + 0x20]
lea rbp, [r12 + 0x20]
mov esi, 0x20
mov ebx, 0x20
call fcn.0056edc0
mov rdx, r14
mov rcx, r15
call fcn.0056f280
mov rcx, r15
call fcn.0056ed90
vmovdqu ymm0, ymmword [str.66666666666666666666666666666666_]
vpxor ymm0, ymm0, ymmword [rsp + 0x20]
vmovdqu ymmword [r12], ymm0
vzeroupper
jmp 0x58a38e
xor eax, eax
jmp 0x58a4b8
movabs rdx, 0x3636363636363636
mov r8d, 0x40
mov rcx, r15
mov rbp, r12
movabs rax, 0x3636363636363636
mov qword [r12 + 8], rdx
mov esi, 0x40
mov qword [r12 + 0x18], rdx
mov qword [r12 + 0x28], rdx
mov qword [r12 + 0x38], rdx
mov rdx, r12
mov qword [r12], rax
mov qword [r12 + 0x10], rax
mov qword [r12 + 0x20], rax
mov qword [r12 + 0x30], rax
call fcn.0056edc0
mov rcx, r13
call fcn.0056ed90
jmp 0x58a415
xor eax, eax
jmp 0x58a488
mov dword [rbp], 0x5c5c5c5c
mov dword [rbp + rdx - 4], 0x5c5c5c5c
jmp 0x58a444
mov eax, 0x3636
mov word [rbp + rdx - 2], ax
jmp 0x58a3be
mov dword [rbp], 0x36363636
mov dword [rbp + rdx - 4], 0x36363636
jmp 0x58a3be
mov ecx, 0x5c5c
mov word [rbp + rdx - 2], cx
jmp 0x58a444
vzeroupper
jmp 0x58a415
vzeroupper
jmp 0x58a38e