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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x578]
sub rsp, 0x678
mov rax, qword [0x14014dcf0]
xor rax, rsp
mov qword [rbp + 0x560], rax
mov r14, qword [rbp + 0x5e8]
movsxd rsi, edx
mov ebx, 0x40
mov dword [rsp + 0x30], r9d
mov qword [rsp + 0x40], r8
mov r12, rcx
mov dword [rsp + 0x38], esi
cmp esi, ebx
jle 0x14003cf9b
lea rcx, [rbp + 0x3d0]
call fcn.14005d690
lea rcx, [rbp + 0x3d0]
mov r8, rsi
mov rdx, r12
call fcn.1400607b0
lea rdx, [rbp + 0x520]
lea rcx, [rbp + 0x3d0]
call fcn.140060940
mov edx, 0x150
lea rdi, [rbp + 0x3d0]
mov ecx, edx
xor eax, eax
lea r12, [rbp + 0x520]
mov esi, ebx
mov dword [rsp + 0x38], ebx
lea r8, [rbp + 0x3d0]
rep stosb byte [rdi], al
nop dword [rax + rax]
mov byte [r8], al
inc r8
dec rdx
jne 0x14003cf90
mov r15d, dword [rbp + 0x5f0]
mov eax, r15d
cdq
and edx, 0x3f
add eax, edx
mov r13d, eax
and eax, 0x3f
sar r13d, 6
cmp eax, edx
je 0x14003cfbc
inc r13d
mov eax, r13d
lea rcx, [rbp + 0xa0]
shl eax, 6
sub r15d, eax
add r15d, ebx
mov dword [rbp + 0x5f0], r15d
call fcn.14005d690
xor edi, edi
movsxd rsi, esi
mov edx, edi
test rsi, rsi
jle 0x14003d019
lea rax, [rbp + 0x340]
mov r8, r12
sub r8, rax
nop word [rax + rax]
lea rcx, [rbp + rdx + 0x340]
inc rdx
movzx eax, byte [r8 + rcx]
xor al, 0x36
mov byte [rcx], al
cmp rdx, rsi
jl 0x14003d000
mov eax, ebx
lea rcx, [rbp + rsi + 0x340]
mov edx, 0x36
sub eax, dword [rsp + 0x38]
mov qword [rsp + 0x48], rcx
cdqe
mov r8, rax
mov qword [rsp + 0x38], rax
call fcn.1400a4ea0
lea rdx, [rbp + 0x340]
lea rcx, [rbp + 0xa0]
mov r8, rbx
call fcn.1400607b0
lea rcx, [rbp + 0x1f0]
call fcn.14005d690
test rsi, rsi
jle 0x14003d099
lea rax, [rbp + 0x340]
sub r12, rax
nop word [rax + rax]
lea rcx, [rbp + rdi + 0x340]
inc rdi
movzx eax, byte [r12 + rcx]
xor al, 0x5c
mov byte [rcx], al
cmp rdi, rsi
jl 0x14003d080
mov r8, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
mov edx, 0x5c
call fcn.1400a4ea0
lea rdx, [rbp + 0x340]
lea rcx, [rbp + 0x1f0]
mov r8, rbx
call fcn.1400607b0
mov esi, dword [rbp + 0x5e0]
mov r12, qword [rsp + 0x40]
mov edi, 1
cmp r13d, edi
jle 0x14003d164
mov r15d, dword [rsp + 0x30]
lea rax, [rsp + 0x50]
mov r9d, edi
mov r8d, esi
mov edx, r15d
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14003cd20
mov rax, qword [rbp + 0x384]
inc edi
mov qword [r14], rax
mov rax, qword [rbp + 0x38c]
mov qword [r14 + 8], rax
mov rax, qword [rbp + 0x394]
mov qword [r14 + 0x10], rax
mov rax, qword [rbp + 0x39c]
mov qword [r14 + 0x18], rax
mov rax, qword [rbp + 0x3a4]
mov qword [r14 + 0x20], rax
mov rax, qword [rbp + 0x3ac]
mov qword [r14 + 0x28], rax
mov rax, qword [rbp + 0x3b4]
mov qword [r14 + 0x30], rax
mov rax, qword [rbp + 0x3bc]
mov qword [r14 + 0x38], rax
add r14, rbx
cmp edi, r13d
jl 0x14003d0e1
mov r15d, dword [rbp + 0x5f0]
mov edx, dword [rsp + 0x30]
lea rax, [rsp + 0x50]
mov r9d, edi
mov r8d, esi
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14003cd20
lea rdx, [rbp + 0x384]
movsxd r8, r15d
mov rcx, r14
call fcn.1400a4990
mov edx, 0x480
lea rdi, [rsp + 0x50]
mov ecx, edx
xor eax, eax
lea r11, [rsp + 0x50]
rep stosb byte [rdi], al
nop word [rax + rax]
mov byte [r11], al
inc r11
dec rdx
jne 0x14003d1b0
lea rdi, [rbp + 0x520]
mov rcx, rbx
lea rdx, [rbp + 0x520]
rep stosb byte [rdi], al
nop
mov byte [rdx], al
inc rdx
dec rbx
jne 0x14003d1d0
mov rcx, qword [rbp + 0x560]
xor rcx, rsp
call fcn.1400a4e70
add rsp, 0x678
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret