Function at 0x14000a1a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x7e8]
sub rsp, 0x8e8
mov rax, qword [0x14005bec0]
xor rax, rsp
mov qword [rbp + 0x7d0], rax
mov rax, qword [rbp + 0x850]
mov r14, r8
mov r12d, dword [rbp + 0x860]
mov r15, rcx
mov r13, qword [rbp + 0x868]
mov rsi, qword [rbp + 0x870]
mov qword [rsp + 0x48], rax
mov rax, qword [rbp + 0x858]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], r9
mov byte [rsp + 0x40], dl
mov qword [rsp + 0x50], rcx
cmp r12d, 0x18
jbe 0x14000a21b
xor al, al
jmp 0x14000a412
xor edi, edi
mov eax, edi
mov rdx, r14
imul rbx, rax, 0x98
add rbx, 0x148
add rbx, r15
mov rcx, rbx
call fcn.14001b144
test al, al
je 0x14000a261
cmp dword [rbx + 0x50], r12d
jne 0x14000a261
mov rdx, qword [rsp + 0x48]
lea rcx, [rbx + 0x20]
mov r8d, 0x10
call fcn.140045a80
test eax, eax
je 0x14000a435
inc edi
cmp edi, 4
jb 0x14000a21d
mov rcx, qword [rsp + 0x58]
lea rdx, [rbp - 0x30]
mov edi, 0x800
mov r8d, edi
call fcn.140020904
mov ecx, r12d
mov ebx, 1
shl ebx, cl
lea rcx, [rbp - 0x30]
call fcn.140036870
mov rdx, rax
mov dword [rsp + 0x38], ebx
mov rbx, qword [rsp + 0x48]
lea rax, [rbp - 0x78]
mov qword [rsp + 0x30], rax
lea rcx, [rbp - 0x30]
lea rax, [rbp - 0x58]
mov r9d, 0x10
mov qword [rsp + 0x28], rax
mov r8, rbx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
call fcn.14000a894
mov edx, edi
lea rcx, [rbp - 0x30]
call fcn.14001b468
mov ecx, dword [r15 + 0x3a8]
mov eax, ecx
and eax, 3
add r15, 0x148
imul rax, rax, 0x98
add r15, rax
lea eax, [rcx + 1]
mov rcx, qword [rsp + 0x50]
mov dword [rcx + 0x3a8], eax
mov dword [r15 + 0x50], r12d
cmp r15, r14
je 0x14000a31f
mov r8, qword [r14 + 8]
mov rcx, r15
sub r8, qword [r14]
mov rdx, qword [r14]
sar r8, 1
call fcn.14000999c
mov al, byte [r14 + 0x18]
lea rcx, [r15 + 0x20]
mov r8d, 0x10
mov byte [r15 + 0x18], al
mov rdx, rbx
call fcn.140045040
mov edi, 0x20
lea rdx, [rsp + 0x68]
mov r8d, edi
lea rcx, [r15 + 0x30]
call fcn.140045040
lea rcx, [r15 + 0x54]
mov r8d, edi
lea rdx, [rbp - 0x78]
call fcn.140045040
lea rcx, [r15 + 0x74]
mov r8d, edi
lea rdx, [rbp - 0x58]
call fcn.140045040
xor r9d, r9d
lea rcx, [r15 + 0x30]
mov r8b, 1
mov edx, edi
call fcn.14001b2b0
mov r15, qword [rsp + 0x50]
test r13, r13
je 0x14000a399
mov r8, rdi
lea rdx, [rbp - 0x58]
mov rcx, r13
call fcn.140045040
test rsi, rsi
je 0x14000a3d9
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 8]
call fcn.1400456e0
lea rdx, [rbp - 0x78]
xor r8d, r8d
mov r9, rdi
mov al, byte [rdx]
mov rcx, r8
and ecx, 7
inc r8
inc rdx
xor byte [rcx + rsi], al
sub r9, 1
jne 0x14000a3b6
mov rdx, rdi
lea rcx, [rbp - 0x78]
call fcn.14001b468
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14000a403
mov dl, byte [rsp + 0x40]
lea rcx, [r15 + 0x3b0]
mov r9d, 0x100
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x68]
call fcn.14001a704
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.14001b468
mov al, 1
mov rcx, qword [rbp + 0x7d0]
xor rcx, rsp
call fcn.140031d00
add rsp, 0x8e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov edi, 0x20
lea rdx, [rbx + 0x30]
mov r8d, edi
lea rcx, [rsp + 0x68]
call fcn.140045040
xor r9d, r9d
lea rcx, [rsp + 0x68]
xor r8d, r8d
mov edx, edi
call fcn.14001b2b0
lea rdx, [rbx + 0x54]
mov r8d, edi
lea rcx, [rbp - 0x78]
call fcn.140045040
lea rdx, [rbx + 0x74]
mov r8d, edi
lea rcx, [rbp - 0x58]
call fcn.140045040
jmp 0x14000a385