Function at 0x14003c9b0
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 - 0x278]
sub rsp, 0x378
mov rax, qword [0x14014dcf0]
xor rax, rsp
mov qword [rbp + 0x260], rax
mov r15, qword [rbp + 0x2e8]
mov ebx, 0x40
mov dword [rsp + 0x30], r9d
mov qword [rsp + 0x38], r8
mov r14d, edx
mov r12, rcx
cmp edx, ebx
jle 0x14003ca5c
lea rcx, [rbp + 0x190]
call fcn.1400598c0
lea r8, [rbp + 0x190]
mov edx, r14d
mov rcx, r12
call fcn.140059910
lea rdx, [rbp + 0x220]
lea rcx, [rbp + 0x190]
call fcn.140059a00
mov edx, 0x90
lea rdi, [rbp + 0x190]
mov ecx, edx
xor eax, eax
lea r12, [rbp + 0x220]
mov r14d, ebx
lea r8, [rbp + 0x190]
rep stosb byte [rdi], al
mov byte [r8], al
inc r8
dec rdx
jne 0x14003ca51
mov ecx, dword [rbp + 0x2f0]
mov eax, ecx
cdq
and edx, 0x3f
add eax, edx
mov r13d, eax
and eax, 0x3f
sar r13d, 6
cmp eax, edx
je 0x14003ca7b
inc r13d
mov eax, r13d
shl eax, 6
sub ecx, eax
add ecx, ebx
mov dword [rbp + 0x2f0], ecx
lea rcx, [rbp - 0x20]
call fcn.1400598c0
xor edi, edi
movsxd rsi, r14d
mov edx, edi
test r14d, r14d
jle 0x14003cac9
lea rax, [rbp + 0x100]
mov r8, r12
sub r8, rax
nop dword [rax]
lea rcx, [rbp + rdx + 0x100]
inc rdx
movzx eax, byte [r8 + rcx]
xor al, 0x36
mov byte [rcx], al
cmp rdx, rsi
jl 0x14003cab0
mov eax, ebx
mov edx, 0x36
sub eax, r14d
movsxd r14, eax
lea rax, [rbp + rsi + 0x100]
mov rcx, rax
mov r8, r14
mov qword [rsp + 0x40], rax
call fcn.1400a4ea0
lea r8, [rbp - 0x20]
lea rcx, [rbp + 0x100]
mov edx, ebx
call fcn.140059910
lea rcx, [rbp + 0x70]
call fcn.1400598c0
test rsi, rsi
jle 0x14003cb39
lea rax, [rbp + 0x100]
sub r12, rax
nop dword [rax + rax]
lea rdx, [rbp + rdi + 0x100]
inc rdi
movzx eax, byte [r12 + rdx]
xor al, 0x5c
mov byte [rdx], al
cmp rdi, rsi
jl 0x14003cb20
mov rcx, qword [rsp + 0x40]
mov r8, r14
mov edx, 0x5c
call fcn.1400a4ea0
lea r8, [rbp + 0x70]
lea rcx, [rbp + 0x100]
mov edx, ebx
call fcn.140059910
mov esi, dword [rbp + 0x2e0]
mov r12, qword [rsp + 0x38]
mov r14d, dword [rsp + 0x30]
mov edi, 1
cmp r13d, edi
jle 0x14003cbfc
nop dword [rax + rax]
lea rax, [rsp + 0x50]
mov r9d, edi
mov r8d, esi
mov edx, r14d
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14003c7f0
mov rax, qword [rbp + 0x144]
inc edi
mov qword [r15], rax
mov rax, qword [rbp + 0x14c]
mov qword [r15 + 8], rax
mov rax, qword [rbp + 0x154]
mov qword [r15 + 0x10], rax
mov rax, qword [rbp + 0x15c]
mov qword [r15 + 0x18], rax
mov rax, qword [rbp + 0x164]
mov qword [r15 + 0x20], rax
mov rax, qword [rbp + 0x16c]
mov qword [r15 + 0x28], rax
mov rax, qword [rbp + 0x174]
mov qword [r15 + 0x30], rax
mov rax, qword [rbp + 0x17c]
mov qword [r15 + 0x38], rax
add r15, rbx
cmp edi, r13d
jl 0x14003cb80
lea rax, [rsp + 0x50]
mov r9d, edi
mov r8d, esi
mov edx, r14d
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14003c7f0
movsxd r8, dword [rbp + 0x2f0]
lea rdx, [rbp + 0x144]
mov rcx, r15
call fcn.1400a4990
mov edx, 0x240
lea rdi, [rsp + 0x50]
mov ecx, edx
xor eax, eax
lea r11, [rsp + 0x50]
rep stosb byte [rdi], al
mov byte [r11], al
inc r11
dec rdx
jne 0x14003cc42
lea rdi, [rbp + 0x220]
mov rcx, rbx
lea rdx, [rbp + 0x220]
rep stosb byte [rdi], al
mov byte [rdx], al
inc rdx
dec rbx
jne 0x14003cc60
mov rcx, qword [rbp + 0x260]
xor rcx, rsp
call fcn.1400a4e70
add rsp, 0x378
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret