Function at 0x1400c0830
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov rax, qword [0x1409c0280]
xor rax, rsp
mov qword [rsp + 0x90], rax
xor ebx, ebx
mov edi, r8d
mov rbp, rcx
mov dword [rsp + 0x40], r9d
mov rcx, qword [rsp + 0x110]
mov r11d, r9d
mov r12, rdx
mov qword [rsp + 0x48], rcx
mov r8d, ebx
mov r14d, ebx
movzx eax, byte [rbp + 0x2cd]
mov r13d, ebx
movzx r15d, byte [rbp + 0x2d1]
cmp al, 1
jne 0x1400c0a69
movzx edx, word [rbp + 0x394]
bt dx, 0xe
jae 0x1400c08ac
movzx r8d, word [rbp + 0x2c8]
mov eax, r8d
mov rcx, rdi
sub rcx, rax
mov rsi, rdi
bt dx, 0xd
mov r13d, 1
movzx r14d, byte [rcx + r12 - 1]
jae 0x1400c09a7
sub edi, r8d
mov eax, 0xff
movsxd rdx, edi
dec rdx
add rdx, r12
lea ecx, [rdi - 1]
movzx r9d, byte [rdx]
mov esi, r9d
sub esi, edi
add esi, r15d
shr esi, 0x1f
dec sil
cmp ecx, eax
cmovg ecx, eax
movsxd r8, ecx
test ecx, ecx
jle 0x1400c0931
nop dword [rax]
nop word [rax + rax]
mov ecx, r9d
lea rdx, [rdx - 1]
sub ecx, ebx
movzx eax, r9b
xor al, byte [rdx + 1]
inc ebx
shr ecx, 0x1f
dec cl
and cl, al
or sil, cl
sub r8, r13
jne 0x1400c0910
mov r9d, edi
mov dword [rsp + 0x30], r13d
sub r9d, r15d
mov dword [rsp + 0x28], r11d
sub r9d, r14d
mov dword [rsp + 0x20], r14d
dec r9d
lea rdx, [rsp + 0x70]
mov r8, r12
mov rcx, rbp
call qword [rbp + 0x98]
movzx r8d, byte [rbp + 0x2d1]
lea r9, [rsp + 0x70]
mov edx, edi
mov rcx, r12
mov ebx, eax
call fcn.1400c0180
or al, sil
not al
movzx ecx, al
shr cl, 4
and al, cl
movzx ecx, al
mov edx, ecx
shr edx, 2
and edx, ecx
mov eax, edx
shr eax, 1
and eax, edx
dec eax
add eax, ebx
je 0x1400c0a52
mov eax, 0xfffffecf
jmp 0x1400c0acb
sub edi, r15d
lea eax, [rdi - 1]
cmp r14d, eax
jbe 0x1400c09ff
cmp dword [0x140a04560], ebx
je 0x1400c09f9
mov rax, qword [0x140a04558]
test rax, rax
je 0x1400c09d4
lea rdx, str.Plain_Len_not_long_enough_for_pad_mac
mov ecx, r13d
call rax
jmp 0x1400c09f4
mov ecx, 2
call fcn.14017cf98
mov rcx, rax
lea r8, str.Plain_Len_not_long_enough_for_pad_mac
lea rdx, [0x140998764]
call fcn.1400af550
mov r11d, dword [rsp + 0x40]
mov r14d, ebx
mov ebx, r13d
mov dword [rsp + 0x30], r13d
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x28], r11d
sub edi, r14d
mov r8, r12
mov dword [rsp + 0x20], r14d
mov rcx, rbp
lea r9d, [rdi - 1]
call qword [rbp + 0x98]
mov ecx, r14d
lea rdx, [r12 - 1]
sub rsi, r15
mov r8d, r15d
sub rsi, rcx
mov edi, eax
add rdx, rsi
lea rcx, [rsp + 0x50]
call fcn.1400b7810
test eax, eax
jne 0x1400c0ab9
test edi, edi
jne 0x1400c0ab9
test ebx, ebx
jne 0x1400c0ab9
mov rcx, qword [rsp + 0x48]
cmp byte [rbp + 0x2cd], 2
jne 0x1400c0ac0
movzx eax, word [rbp + 0x2ca]
jmp 0x1400c0ac7
test al, al
jne 0x1400c0a57
mov r9d, edi
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], r11d
lea rdx, [rsp + 0x50]
sub r9d, r15d
mov dword [rsp + 0x20], 0xffffffff
mov r8, r12
mov rcx, rbp
call qword [rbp + 0x98]
mov rdx, rdi
lea rcx, [rsp + 0x50]
sub rdx, r15
mov r8d, r15d
add rdx, r12
mov ebx, eax
call fcn.1400b7810
test eax, eax
jne 0x1400c0ab9
test ebx, ebx
je 0x1400c0a52
mov eax, 0xfffffecf
jmp 0x1400c0acb
lea eax, [r15 + r13]
add eax, r14d
mov dword [rcx], eax
xor eax, eax
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140167e90
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret