Function at 0x140018670
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
lea rbp, [rsp + 0x20]
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov qword [rbp + 0xa0], rbx
mov rax, qword [0x14003d020]
xor rax, rbp
mov qword [rbp + 0x50], rax
movsxd rsi, r8d
mov r14, rdx
mov qword [rbp + 0x28], rdx
xor ebx, ebx
mov qword [rbp + 0x18], rbx
cmp esi, 0x400
jg 0x1400186f6
mov r13, rsi
mov qword [rbp + 0x20], rsi
mov rcx, rsi
call fcn.140014960
test al, al
je 0x1400186f6
lea rax, [rsi + 0xf]
cmp rax, rsi
ja 0x1400186e3
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.14001a420
sub rsp, rax
lea rcx, [rsp + 0x20]
jmp 0x140018731
mov r13, rsi
mov qword [rbp + 0x20], rsi
mov rax, rsi
not rax
cmp rax, 0x10
jb 0x1400188c6
lea rcx, [rsi + 0x10]
call fcn.140021104
test rax, rax
jne 0x14001871f
xor ecx, ecx
jmp 0x140018731
mov qword [rax], 0
mov rbx, rax
mov qword [rbp + 0x18], rax
lea rcx, [rax + 0x10]
mov qword [rbp + 0x10], rcx
test rcx, rcx
je 0x1400188a6
mov dword [rbp + 0x38], 0x3d050b62
mov dword [rbp + 0x3c], 0xe5e40cfe
mov dword [rbp + 0x40], 0x4b094d1f
mov dword [rbp + 0x44], 0x11df4901
mov edx, 0x35096523
mov r8d, 0x78688051
movups xmm0, xmmword [rbp + 0x38]
movups xmmword [rbp + 0x38], xmm0
movd r11d, xmm0
xor r11d, 0x23650935
mov dword [rbp + 4], r11d
mov eax, dword [rbp + 0x3c]
xor eax, 0x79642590
mov dword [rbp], eax
mov edi, dword [rbp + 0x40]
xor edi, 0x51806878
mov dword [rbp + 8], edi
mov eax, dword [rbp + 0x44]
xor eax, 0x91341639
mov dword [rbp + 0x38], eax
mov r12, r14
mov r15, rcx
test esi, esi
je 0x140018897
mov r13d, dword [rbp]
mov ebx, eax
mov eax, 8
xor r9d, r9d
mov r14d, esi
cmp esi, eax
cmovg r14d, eax
lea r10d, [rax + 0x18]
nop dword [rax + rax]
lea r9d, [r9 - 0x61c88647]
mov ecx, r8d
sar ecx, 5
add ecx, r13d
mov eax, r8d
shl eax, 4
add eax, r11d
xor ecx, eax
lea eax, [r9 + r8]
xor ecx, eax
add edx, ecx
mov ecx, edx
sar ecx, 5
add ecx, ebx
mov eax, edx
shl eax, 4
add eax, edi
xor ecx, eax
lea eax, [r9 + rdx]
xor ecx, eax
add r8d, ecx
sub r10, 1
jne 0x1400187d0
mov dword [rbp + 0x38], edx
mov dword [rbp + 0x3c], r8d
xor eax, eax
movsxd rdi, r14d
test r14d, r14d
jle 0x14001885a
lea rcx, [rbp + 0x38]
mov r8, r12
sub r8, rcx
lea rcx, [rbp + 0x38]
mov r9, r15
sub r9, rcx
nop word [rax + rax]
lea rdx, [rbp + 0x38]
add rdx, rax
movzx ecx, byte [r8 + rdx]
xor cl, byte [rdx]
mov byte [r9 + rdx], cl
inc rax
cmp rax, rdi
jl 0x140018840
mov r8, rdi
mov rdx, r15
lea rcx, [rbp + 0x38]
call fcn.14001ac70
add r12, rdi
add r15, rdi
sub esi, r14d
je 0x140018887
mov r8d, dword [rbp + 0x3c]
mov edx, dword [rbp + 0x38]
mov r11d, dword [rbp + 4]
mov edi, dword [rbp + 8]
jmp 0x1400187b3
mov rbx, qword [rbp + 0x18]
mov r13, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x10]
mov r14, qword [rbp + 0x28]
mov r8, r13
mov rdx, rcx
mov rcx, r14
call fcn.14001ac70
nop
test rbx, rbx
je 0x1400188d1
nop dword [rax + rax]
mov rcx, rbx
mov rbx, qword [rbx]
mov qword [rbp + 0x18], rbx
call fcn.14001df3c
test rbx, rbx
jne 0x1400188b0
jmp 0x1400188d1
mov ecx, 0x80070216
call fcn.140013350
nop
mov rcx, qword [rbp + 0x50]
xor rcx, rbp
call fcn.140019920
mov rbx, qword [rbp + 0xa0]
lea rsp, [rbp + 0x60]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret