Function at 0x14014b0c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x8e8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x860], 0xfffffffffffffffe
cmp byte [rcx + 8], 0
jne 0x14014b856
mov r15d, r8d
mov rdi, rdx
mov r14, rcx
cmp qword [0x140566be8], 0
jne 0x14014b16d
mov ecx, 0x900
mov edx, 0x489e9ee3
mov r8d, 0x765eed10
call fcn.1400aaef0
mov qword [rbp + 0x850], rax
mov rcx, rax
call fcn.140084e30
mov rdx, qword [rbp + 0x850]
nop
mov eax, dword [0x1405642c0]
mov ecx, dword [0x140509dd8]
not ecx
add ecx, eax
add ecx, 0x25ea3c
imul ecx, eax
test cl, 1
je 0x14014b166
mov qword [0x140566be8], rdx
mov eax, dword [0x1405642c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14014b130
mov qword [0x140566be8], rdx
mov eax, dword [0x1405642c0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x140509dd8]
mov edx, eax
xor edx, 0xaa897674
and eax, 0x2a897674
lea eax, [rdx + rax*2]
cmp ecx, eax
je 0x14014b198
jmp 0x14014b1c6
mov rsi, qword [0x140566be8]
mov rax, qword [rsi + 0x708]
mov rcx, rdi
call qword [0x1404ee420]
lea rcx, [fcn.14014b0c0]
add ecx, ecx
add ecx, 0x7e0
mov edx, ecx
not edx
test edx, ecx
je 0x14014b205
mov esi, 0xaa897675
lea rax, [fcn.14014b0c0]
lea ebx, [rax + rax]
add ebx, 0x100
nop dword [rax + rax]
mov rax, qword [0x140566be8]
mov rax, qword [rax + 0x708]
mov rcx, rdi
call qword [0x1404ee420]
mov eax, dword [0x140509dd8]
add eax, esi
test ebx, eax
jne 0x14014b1e0
jmp 0x14014b198
cmp eax, 0xffffffff
jne 0x14014b856
mov qword [rbp + 0x808], 0
mov rax, qword [rsi + 0x718]
lea r8, [rbp - 0x40]
lea r9, [rbp + 0x808]
mov rcx, rdi
mov edx, 0x800
call qword [0x1404ee420]
test eax, eax
je 0x14014b856
mov byte [rbp + 0x85f], r15b
mov qword [rbp + 0x850], r14
cmp dword [0x140509dd8], 0x5576898c
jne 0x14014b2fb
mov qword [rbp + 0x848], 0
mov dword [rsp + 0x38], 0x33ee61c1
mov dword [rsp + 0x30], 0x3b0ebe
mov dword [rsp + 0x28], 0x42210f3b
mov qword [rsp + 0x20], 0x10
lea rcx, [rbp + 0x848]
lea rdx, [rbp + 0x7f0]
lea r9, [rbp - 0x40]
mov r8d, 0x10
call fcn.140154390
mov rax, qword [0x140509de0]
movabs rcx, 0x9ca093da9fcae680
add rax, rcx
mov qword [rbp + 0x838], rax
mov qword [rbp + 0x840], 0xf
movzx eax, byte [0x140509ddc]
add al, 0x2b
mov byte [rbp + 0x828], al
lea rax, [0x140426b18]
mov qword [rbp + 0x820], rax
cmp dword [0x140509dd8], 0x5576898c
je 0x14014b443
movabs r13, 0x635f6c2560351970
movabs rbx, 0x9ca093da9fcae690
lea rdi, [rbp + 0x848]
lea r14, [rbp + 0x7f0]
lea r15, [rbp - 0x40]
movabs rsi, 0x1ca093da9fcae680
lea r12, [0x140426b18]
nop word cs:[rax + rax]
mov qword [rbp + 0x848], 0
mov rax, qword [0x140509de0]
mov rcx, rax
neg rcx
mov rdx, rcx
xor rdx, r13
and rcx, r13
lea r8, [rdx + rcx*2]
neg r8
add rax, rbx
mov edx, dword [0x140509dd8]
lea ecx, [rdx - 0x13557a51]
mov r9d, edx
not r9d
mov r10d, edx
and r10d, 0x553b7acd
mov r11d, r9d
and r11d, 0xaac48532
or r11d, r10d
mov r10d, edx
xor r10d, 0x2ac48532
and r9d, 0x553b7acd
or r9d, r10d
not r9d
lea r9d, [r11 + r9*2]
mov r10d, edx
xor r10d, 0xde77d835
and edx, 0x5e77d835
lea edx, [r10 + rdx*2]
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], r9d
mov rcx, rdi
mov rdx, r14
mov r9, r15
call fcn.140154390
mov rax, qword [0x140509de0]
mov rcx, rax
movabs rdx, 0x9ca093da9fcae680
xor rcx, rdx
and rax, rsi
lea rax, [rcx + rax*2]
mov qword [rbp + 0x838], rax
mov qword [rbp + 0x840], 0xf
movzx eax, byte [0x140509ddc]
add al, 0x2b
mov byte [rbp + 0x828], al
mov qword [rbp + 0x820], r12
mov eax, dword [0x1405642c0]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x14014b340
jmp 0x14014b25f
lea rcx, [rbp + 0x820]
lea rdx, [rbp + 0x7f0]
mov r8d, 2
call fcn.140248680
mov edx, dword [rbp + 0x838]
test edx, edx
mov r14, qword [rbp + 0x850]
movzx ebx, byte [rbp + 0x85f]
je 0x14014b491
cmp qword [rbp + 0x840], 0x10
lea rcx, [rbp + 0x828]
jb 0x14014b48c
mov rcx, qword [rbp + 0x828]
call fcn.140084d60
lea rdi, [r14 + 0x90]
lea rdx, [rbp + 0x820]
mov rcx, rdi
call fcn.1400f78f0
cmp rax, qword [rdi]
jne 0x14014b791
lea rcx, [rbp + 0x7c8]
lea rdx, [rbp - 0x40]
call fcn.140247ee0
mov eax, dword [0x1405642c0]
mov ecx, 0xaa897676
nop dword [rax + rax]
mov edx, dword [0x1405642c0]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x140509dd8]
add r8d, ecx
xor edx, edx
div r8d
test edx, edx
jne 0x14014b4d0
test bl, bl
je 0x14014b578
movabs rax, 0xa132dcff32140b12
add rax, qword [0x140509de0]
cmp qword [r14 + 0x28], rax
je 0x14014b5f8
mov rax, qword [r14 + 0x20]
mov rsi, qword [rax]
mov qword [rbp + 0x818], 0
mov ecx, 0x38
call fcn.1403e3fbc
mov rdi, rax
mov rcx, rax
add rcx, 0x10
mov qword [rbp + 0x818], rax
lea rdx, [rbp + 0x7c8]
call fcn.140247be0
mov rax, qword [r14 + 0x28]
mov rcx, rax
xor rcx, 1
and eax, 1
lea rax, [rcx + rax*2]
mov qword [r14 + 0x28], rax
mov rax, qword [rsi + 8]
mov qword [rdi], rsi
mov qword [rdi + 8], rax
mov qword [rsi + 8], rdi
mov qword [rax], rdi
jmp 0x14014b6e3
movabs rax, 0x492492492492492
cmp qword [r14 + 0x48], rax
je 0x14014b620
mov rax, qword [r14 + 0x40]
mov rbx, qword [rax]
mov qword [rbp + 0x810], 0
mov ecx, 0x38
call fcn.1403e3fbc
mov rdi, rax
mov rcx, rax
add rcx, 0x10
mov qword [rbp + 0x810], rax
lea rdx, [rbp + 0x7c8]
call fcn.140247be0
mov eax, dword [0x140509dd8]
mov ecx, eax
xor ecx, 0xaa897675
and eax, 0x2a897675
lea eax, [rcx + rax*2]
lea rcx, [fcn.14014b0c0]
add ecx, ecx
add ecx, 0x4940
xor ecx, eax
not ecx
test ecx, eax
jne 0x14014b67d
jmp 0x14014b648
mov dword [rsp + 0x20], 0x33462ec6
mov ecx, 1
xor edx, edx
mov r8d, 0xa4b7c4f9
mov r9d, 0xa98b5c38
call fcn.140154750
mov rcx, rax
call fcn.1403e5c74
mov dword [rsp + 0x20], 0x33462ec6
mov ecx, 1
xor edx, edx
mov r8d, 0xa4b7c4f9
mov r9d, 0xa98b5c38
call fcn.140154750
mov rcx, rax
call fcn.1403e5c74
inc qword [r14 + 0x48]
mov rax, qword [rbx + 8]
mov qword [rdi], rbx
mov qword [rdi + 8], rax
mov qword [rbx + 8], rdi
mov qword [rax], rdi
mov ecx, dword [0x1405642c0]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xaa897676
add ecx, dword [0x140509dd8]
xor edx, edx
div ecx
test edx, edx
je 0x14014b6e3
mov edx, 1
sub rdx, qword [r14 + 0x48]
lea rcx, [rdx + rdx]
shl rdx, cl
sub rdx, rcx
imul rdx, rcx
mov rax, rdx
shl rax, cl
mov ecx, edx
sub ecx, eax
imul ecx, eax
mov rax, rdx
shl rax, cl
mov ecx, eax
shl rdx, cl
mov rcx, rdx
neg rcx
dec rdx
xor rdx, rcx
and rdx, rax
xor rdx, rcx
and rcx, rax
lea rcx, [rdx + rcx*2]
add rcx, rax
mov qword [r14 + 0x48], rcx
mov rax, qword [rbx + 8]
mov qword [rdi], rbx
mov qword [rdi + 8], rax
mov qword [rbx + 8], rdi
mov qword [rax], rdi
jmp 0x14014b648
mov rax, qword [rbp + 0x7e8]
cmp rax, 8
jb 0x14014b791
mov rsi, qword [rbp + 0x7d0]
lea rdi, [rax + rax]
add rdi, 2
movabs rcx, 0x9ca093da9fcaf67f
add rcx, qword [0x140509de0]
cmp rdi, rcx
jbe 0x14014b73b
mov rcx, qword [rsi - 8]
add rsi, 0xfffffffffffffff8
sub rsi, rcx
cmp rsi, 0x20
jae 0x14014b80a
add rax, rax
add rax, 0x29
mov rdi, rax
mov rsi, rcx
lea rax, [fcn.14014b0c0]
add eax, eax
add eax, 0x1060
mov ecx, eax
not ecx
test ecx, eax
je 0x14014b786
mov ebx, 0xaa897674
nop word cs:[rax + rax]
mov rcx, rsi
mov rdx, rdi
call fcn.1400a9560
mov eax, dword [0x1405642c0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x140509dd8]
add eax, ebx
cmp ecx, eax
jne 0x14014b760
mov rcx, rsi
mov rdx, rdi
call fcn.1400a9560
mov rax, qword [rbp + 0x840]
cmp rax, 0x10
jb 0x14014b7e5
mov rcx, qword [rbp + 0x828]
mov r8, qword [0x140509de0]
add r8, rax
movabs rdx, 0x9ca093da9fcae681
add rdx, r8
cmp rdx, 0x1000
jb 0x14014b7e0
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14014b7ff
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a9560
mov eax, dword [0x1405642c0]
mov ecx, dword [0x140509dd8]
add ecx, eax
dec ecx
imul ecx, eax
test cl, 1
jne 0x14014b841
jmp 0x14014b80f
mov eax, dword [0x1405642c0]
call fcn.1403c3cac
call fcn.1403c3cac
mov ecx, dword [0x1405642c0]
lea eax, [rcx - 0x368f5f8d]
mov edx, eax
xor edx, 0x368f5f8c
and eax, 0x368f5f8c
lea eax, [rdx + rax*2]
imul eax, ecx
mov ecx, 0xaa897676
add ecx, dword [0x140509dd8]
xor edx, edx
div ecx
test edx, edx
je 0x14014b856
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x14014b850
jmp 0x14014b80f
add rsp, 0x8e8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret