Function at 0x1800050a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x20], 0xfffffffffffffffe
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [rbp + 0x80]
test rax, rax
je 0x18000511a
cmp rax, 1
jne 0x180005150
test rdi, rdi
je 0x180005193
js 0x18000531d
movzx r14d, byte [r9]
movzx eax, byte [0x1801ed229]
mov edx, 1
mov rcx, rdi
call fcn.1800059e0
test rax, rax
je 0x180005141
mov r15, rax
cmp rdi, 8
jae 0x1800051b7
xor eax, eax
jmp 0x180005250
test rdi, rdi
je 0x18000519e
js 0x18000531d
movzx eax, byte [0x1801ed229]
mov edx, 1
mov rcx, rdi
call fcn.1800059e0
mov r15, rax
test rax, rax
jne 0x1800051a4
mov ecx, 1
mov rdx, rdi
call fcn.180128dd0
ud2
add rdi, rbx
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], rdi
mov qword [rbp - 0x40], r9
mov qword [rbp - 0x38], rax
pxor xmm0, xmm0
movdqu xmmword [rbp - 0x30], xmm0
movdqu xmmword [rbp - 0x20], xmm0
lea rcx, [rbp - 0x10]
lea rdx, [rbp - 0x50]
call fcn.180005790
mov r15, qword [rbp - 0x10]
mov rax, qword [rbp - 8]
mov qword [rbp + 0x18], rax
mov rdi, qword [rbp]
jmp 0x180005273
mov r15d, 1
jmp 0x180005263
mov r15d, 1
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
jmp 0x180005263
movzx ecx, r14b
cmp rdi, 0x20
jae 0x1800051c5
xor eax, eax
jmp 0x180005214
mov rax, rdi
and rax, 0xffffffffffffffe0
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor edx, edx
movdqu xmm1, xmmword [rbx + rdx]
movdqu xmm2, xmmword [rbx + rdx + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [r15 + rdx], xmm1
movdqu xmmword [r15 + rdx + 0x10], xmm2
add rdx, 0x20
cmp rax, rdx
jne 0x1800051e0
cmp rax, rdi
je 0x180005263
test dil, 0x18
je 0x180005250
mov rdx, rax
mov rax, rdi
and rax, 0xfffffffffffffff8
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
nop dword [rax + rax]
movq xmm1, qword [rbx + rdx]
pxor xmm1, xmm0
movq qword [r15 + rdx], xmm1
add rdx, 8
cmp rax, rdx
jne 0x180005230
cmp rax, rdi
je 0x180005263
nop dword [rax]
movzx ecx, byte [rbx + rax]
xor cl, r14b
mov byte [r15 + rax], cl
inc rax
cmp rdi, rax
jne 0x180005250
mov qword [rbp - 0x10], r15
mov qword [rbp - 8], rdi
mov qword [rbp], rdi
mov qword [rbp + 0x18], rdi
lea rcx, [rbp - 0x50]
mov qword [rbp + 8], r15
mov rdx, r15
mov r8, rdi
call fcn.1801151a0
cmp qword [rbp - 0x50], 0
je 0x1800052f7
mov rax, qword [rbp - 0x48]
movzx ecx, byte [rbp - 0x40]
mov edx, dword [rbp - 0x3f]
mov dword [rbp + 0x10], edx
mov edx, dword [rbp - 0x3c]
mov dword [rbp + 0x13], edx
cmp cl, 2
mov rdx, qword [rbp + 8]
je 0x1800052fb
mov qword [rbp - 0x50], rdx
mov rdx, qword [rbp + 0x18]
mov qword [rbp - 0x48], rdx
mov qword [rbp - 0x40], rdi
mov qword [rbp - 0x38], rax
mov byte [rbp - 0x30], cl
mov eax, dword [rbp + 0x10]
mov ecx, dword [rbp + 0x13]
mov dword [rbp - 0x2f], eax
mov dword [rbp - 0x2c], ecx
lea rax, str.src_lib.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x18012b598]
lea r9, fcn.180004340
lea r8, [rbp - 0x50]
mov edx, 0x2b
call fcn.180129350
ud2
mov rdx, qword [rbp + 8]
mov qword [rsi], rdx
mov rax, qword [rbp + 0x18]
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rdi
mov rax, rsi
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
call fcn.18010eeb0
ud2