Function at 0x1400160a8
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rbp, r9
mov r15, r8
mov r13, rdx
mov r14, rcx
call fcn.1400178e5
mov rcx, rax
xor edx, edx
call fcn.140017905
movabs rbx, 0xa0761d6478bd642f
movabs rsi, 0xe7037ed1a0b428db
test rax, rax
mov qword [rsp + 0xb0], r15
je 0x14001611c
mov r12, rax
lea rcx, [rsp + 0x20]
call fcn.1400178df
test rax, rax
je 0x14001612b
cmp rax, 1
jne 0x140016130
mov rdi, qword [rdx]
inc rdi
jne 0x140016132
jmp 0x140016480
movabs r15, 0x4d595df4d0f33173
jmp 0x14001620d
mov rdi, qword [rdx]
jmp 0x140016132
xor edi, edi
lea rcx, [rsp + 0x20]
call fcn.1400178df
cmp rax, 2
je 0x140016156
cmp rax, 1
jne 0x14001615f
mov rcx, qword [rdx]
sub rcx, 1
jae 0x140016162
jmp 0x140016480
mov rcx, 0xffffffffffffffff
jmp 0x14001616b
mov rcx, qword [rdx]
cmp rcx, rdi
jb 0x140016480
test rdi, rdi
jne 0x140016192
cmp rcx, 0xffffffffffffffff
jne 0x140016192
mov rcx, qword [r12]
add rcx, rbx
mov rax, rcx
xor rax, rsi
mul rcx
mov r15, rdx
mov qword [r12], rcx
xor r15, rax
jmp 0x14001620d
sub rcx, rdi
lea r9, [rcx + 1]
mov r11, qword [r12]
lea r10, [r11 + rbx]
mov rax, r10
xor rax, rsi
mul r10
xor rax, rdx
mul r9
mov r15, rdx
mov qword [r12], r10
cmp rax, r9
jae 0x14001620a
mov r8, rax
not rcx
mov rax, rcx
xor edx, edx
div r9
cmp r8, rdx
jae 0x14001620a
mov rcx, rdx
movabs rax, 0x40ec3ac8f17ac85e
add r11, rax
mov rax, r11
xor rax, rsi
mul r11
add r10, rbx
xor rdx, rax
mov rax, r9
imul rax, rdx
add r11, rbx
cmp rax, rcx
jb 0x1400161df
mov qword [r12], r10
mov rax, rdx
mul r9
mov r15, rdx
add r15, rdi
lea rdi, [rsp + 0x28]
mov qword [rdi], 1
xorps xmm0, xmm0
movups xmmword [rdi + 8], xmm0
mov rcx, rdi
xor edx, edx
call fcn.140017187
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
mov byte [rax + rcx], 0x2e
inc qword [rdi + 0x10]
lea rdi, [rsp + 0x40]
mov rcx, rdi
call fcn.14009b480
cmp byte [rdi + 0x18], 2
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0x98], rbp
jne 0x140016273
lea rcx, [rsp + 0x40]
call fcn.140001364
jmp 0x140016334
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x80], xmm1
movaps xmmword [rsp + 0x70], xmm0
cmp byte [rsp + 0x88], 2
je 0x140016334
lea rcx, [rsp + 0x70]
call fcn.140023b70
mov rcx, rax
call fcn.1400a50e0
test rax, rax
je 0x140016310
mov r8, rdx
lea rdi, [rsp + 0x40]
mov rcx, rdi
mov rdx, rax
call fcn.14009bf90
cmp qword [rdi], 0
jne 0x140016310
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x140016310
mov r8, qword [rsp + 0x50]
add r8, rdx
lea rdi, [rsp + 0x28]
mov rcx, rdi
call fcn.1400169cf
mov rdx, qword [rdi + 0x10]
cmp rdx, qword [rdi + 8]
jne 0x140016302
lea rdi, [rsp + 0x28]
mov rcx, rdi
call fcn.140017187
mov rdx, qword [rdi + 0x10]
mov rax, qword [rsp + 0x28]
mov byte [rax + rdx], 0x2e
inc qword [rsp + 0x38]
cmp byte [rsp + 0x88], 2
je 0x140016334
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x140016334
mov rcx, qword [rsp + 0x70]
mov r8d, 1
call fcn.1400155b0
xor r14d, r14d
lea r12, str.abcdefghijklmnopqrstuvwxyz.__selfdelete__.exe.__relocated__.exe.__temp__.exeC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_self_replace_1.3.7_srcwindows.rs
lea rbp, [rsp + 0x28]
lea rdi, [rsp + 0x40]
lea rcx, [r15 + rbx]
mov rax, rcx
xor rax, rsi
mul rcx
xor rdx, rax
lea eax, [rdx + rdx*4]
lea eax, [rax + rax*4]
add eax, edx
cmp eax, 0x15
ja 0x140016391
movabs rax, 0x40ec3ac8f17ac85e
add r15, rax
add rcx, rbx
mov rax, r15
xor rax, rsi
mul r15
xor rdx, rax
lea eax, [rdx + rdx*4]
lea eax, [rax + rax*4]
add eax, edx
add r15, rbx
cmp eax, 0x16
jb 0x140016372
mov r15, rcx
inc r14d
mov eax, edx
lea rcx, [rax + rax*4]
lea rcx, [rcx + rcx*4]
add rcx, rax
shr rcx, 0x20
mov r13b, byte [rcx + r12]
test r13b, r13b
js 0x1400163da
mov rdx, qword [rsp + 0x38]
cmp rdx, qword [rsp + 0x30]
jne 0x1400163ca
mov rcx, rbp
call fcn.140017187
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
mov byte [rax + rdx], r13b
inc qword [rsp + 0x38]
jmp 0x14001640b
mov dword [rsp + 0x40], 0
mov eax, r13d
shr al, 6
or al, 0xc0
mov byte [rsp + 0x40], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x41], r13b
mov rcx, rbp
mov rdx, rdi
lea r8, [rsp + 0x42]
call fcn.1400169cf
cmp r14d, 0x20
jne 0x140016348
mov rdx, qword [rsp + 0x98]
mov r8, qword [rsp + 0x130]
add r8, rdx
lea rdi, [rsp + 0x28]
mov rcx, rdi
call fcn.1400169cf
mov rax, qword [rdi + 0x10]
lea r9, [rsp + 0x40]
mov qword [r9 + 0x10], rax
movups xmm0, xmmword [rdi]
movaps xmmword [r9], xmm0
mov rsi, qword [rsp + 0xa8]
mov rcx, rsi
mov rdx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb0]
call fcn.140016aad
mov rax, rsi
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rsi, [rsp + 0x20]
mov rcx, rsi
call fcn.1400178df
lea rdi, [rsp + 0xb8]
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov rcx, rsi
call fcn.1400178df
lea rcx, [rsp + 0x28]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
lea rax, [rsp + 0x70]
mov qword [rax], rdi
lea rdx, [0x14001785e]
mov qword [rax + 8], rdx
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rdx
lea rdx, [0x1400e1c38]
lea rcx, [rsp + 0x40]
mov qword [rcx], rdx
mov edx, 2
mov qword [rcx + 8], rdx
mov qword [rcx + 0x20], 0
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rdx
lea rdx, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_fastrand_1.9.0_srclib.rsempty_range:_..
call fcn.1400dba50
ud2