Function at 0x140018e00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov r15, r9
mov rbx, r8
mov rdi, rdx
mov r14, rcx
movabs rbp, 0xe7037ed1a0b428db
movabs rsi, 0xa0761d6478bd642f
call sym.fastrand::RNG::__u7b__u7b_closure_u7d__u7d_::hed0102dbf78a3115
test rax, rax
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x98], r14
mov qword [rsp + 0x90], r15
je 0x140018e75
mov r8, qword [rax]
add r8, rsi
mov rcx, r8
xor rcx, rbp
mov r9, rax
mov rax, rcx
mul r8
mov r12, rdx
mov qword [r9], r8
xor r12, rax
jmp 0x140018e7f
movabs r12, 0x4d595df4d0f33173
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x30]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::hb0a7f864df944f22
mov rax, qword [rsp + 0x38]
mov byte [rax], 0x2e
mov qword [rsp + 0x40], 1
lea rcx, [rsp + 0x70]
call sym.std::env::current_exe::h5bb19af129e11d54
movabs r13, 0x8000000000000000
cmp qword [rsp + 0x70], r13
jne 0x140018eeb
mov qword [rsp + 0x50], r13
mov rcx, qword [rsp + 0x78]
call sym.core::ptr::drop_in_place_std::io::error::Error_::hd1dde95c731e0855
cmp qword [rsp + 0x50], r13
jne 0x140018f0d
jmp 0x140018fcf
movups xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
cmp qword [rsp + 0x50], r13
je 0x140018fcf
lea rcx, [rsp + 0x50]
call sym.std::sys::os_str::wtf8::Buf::as_mut_slice::h30fe6b7321b7e128
mov rcx, rax
call sym.std::path::Path::file_stem::h0543504797d7693d
test rax, rax
je 0x140018fb0
mov r8, rdx
lea rcx, [rsp + 0x70]
mov rdx, rax
call sym._ZN3std3ffi6os_str95__LT_impl_u20_core..convert..TryFrom_LT__RF_std..ffi..os_str..OsStr_GT__u20_for_u20__RF_str_GT_8try_from17
cmp qword [rsp + 0x70], 0
jne 0x140018fb0
mov r14, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x80]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
sub rax, rdx
cmp rax, rdi
jae 0x140018f71
lea rcx, [rsp + 0x30]
mov r8, rdi
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::hbd67515db0e7201c
mov rdx, qword [rsp + 0x40]
add rdx, qword [rsp + 0x38]
mov rcx, rdx
mov rdx, r14
mov r8, rdi
call sym.memcpy
add rdi, qword [rsp + 0x40]
mov qword [rsp + 0x40], rdi
cmp rdi, qword [rsp + 0x30]
jne 0x140018f9f
lea rcx, [rsp + 0x30]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::hb0a7f864df944f22
mov rax, qword [rsp + 0x38]
mov byte [rax + rdi], 0x2e
inc rdi
mov qword [rsp + 0x40], rdi
mov rdx, qword [rsp + 0x50]
cmp rdx, r13
je 0x140018fcf
test rdx, rdx
je 0x140018fcf
mov rcx, qword [rsp + 0x58]
mov r8d, 1
call sym.__rust_dealloc
mov qword [rsp + 0x48], rbx
xor edi, edi
movabs rbx, 0x40ec3ac8f17ac85e
lea r14, [0x1403224bc]
lea r13, [rsp + 0x30]
jmp 0x140019013
inc edi
mov eax, edx
lea rcx, [rax + rax*4]
lea rcx, [rcx + rcx*4]
add rcx, rax
shr rcx, 0x20
movzx edx, byte [rcx + r14]
mov rcx, r13
call fcn.140018040
mov r12, r15
cmp edi, 0x20
je 0x140019061
lea r15, [r12 + rsi]
mov rax, r15
xor rax, rbp
mul r15
xor rdx, rax
lea eax, [rdx + rdx*4]
lea eax, [rax + rax*4]
add eax, edx
cmp eax, 0x15
ja 0x140018ff0
add r12, rbx
nop dword [rax + rax]
add r15, rsi
mov rax, r12
xor rax, rbp
mul r12
xor rdx, rax
lea eax, [rdx + rdx*4]
lea eax, [rax + rax*4]
add eax, edx
add r12, rsi
cmp eax, 0x16
jb 0x140019040
jmp 0x140018ff0
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
sub rax, rdx
mov rdi, qword [rsp + 0x110]
cmp rax, rdi
jae 0x140019094
lea rcx, [rsp + 0x30]
mov r8, rdi
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::hbd67515db0e7201c
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
jmp 0x140019099
mov rsi, qword [rsp + 0x48]
add rdx, qword [rsp + 0x38]
mov rcx, rdx
mov rdx, qword [rsp + 0x90]
mov r8, rdi
call sym.memcpy
add rdi, qword [rsp + 0x40]
mov qword [rsp + 0x40], rdi
mov r14, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov qword [rsp + 0x20], rdi
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov r8, rsi
mov r9, r15
call sym.std::path::Path::_join::hb96b5b808166ac2a
test r14, r14
je 0x1400190fb
mov r8d, 1
mov rcx, r15
mov rdx, r14
call sym.__rust_dealloc
nop
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret