Function at 0x1400220b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x120
movdqa xmmword [rsp + 0x110], xmm15
movdqa xmmword [rsp + 0x100], xmm14
movdqa xmmword [rsp + 0xf0], xmm13
movdqa xmmword [rsp + 0xe0], xmm12
movdqa xmmword [rsp + 0xd0], xmm11
movdqa xmmword [rsp + 0xc0], xmm10
movdqa xmmword [rsp + 0xb0], xmm9
movdqa xmmword [rsp + 0xa0], xmm8
movdqa xmmword [rsp + 0x90], xmm7
movdqa xmmword [rsp + 0x80], xmm6
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], r9
cmp rdx, r9
jne 0x1400225fd
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
mov rax, qword [0x140260138]
mov rax, qword [rax]
test rax, rax
je 0x140022498
bt rax, 0x23
jb 0x1400224a8
test rsi, rsi
je 0x140022592
cmp rsi, 4
jae 0x140022174
xor eax, eax
jmp 0x1400223e6
mov rax, rsi
and rax, 0xfffffffffffffffc
xor ecx, ecx
pxor xmm1, xmm1
pcmpeqd xmm5, xmm5
movdqa xmm8, xmmword [0x1401c3eb0]
nop
movq xmm9, qword [rbx + rcx*2]
movdqa xmm7, xmm9
movdqa xmm2, xmm9
movdqa xmm14, xmm9
pxor xmm10, xmm10
punpcklwd xmm10, xmm9
pand xmm9, xmmword [0x1401c3e50]
movdqa xmm6, xmm9
pcmpeqw xmm6, xmm1
pand xmm7, xmmword [0x1401c3e60]
movdqa xmm0, xmmword [0x1401c3e70]
pand xmm2, xmm0
pand xmm14, xmmword [0x1401c3e80]
movdqa xmm4, xmm14
punpcklwd xmm4, xmm1
movdqa xmm13, xmm2
pcmpeqw xmm13, xmm0
por xmm6, xmm13
pxor xmm12, xmm12
punpcklwd xmm12, xmm7
movdqa xmm7, xmm2
pcmpeqw xmm7, xmm1
movdqa xmm15, xmm7
por xmm15, xmm6
movdqa xmm11, xmm4
pandn xmm6, xmm7
movdqa xmm7, xmm14
psrlw xmm7, 1
por xmm7, xmm14
movdqa xmm0, xmm7
psrlw xmm0, 2
por xmm0, xmm7
movdqa xmm7, xmm0
psrlw xmm7, 4
por xmm7, xmm0
movdqa xmm0, xmm7
psrlw xmm0, 8
por xmm0, xmm7
pxor xmm0, xmm5
movdqa xmm7, xmm0
psrlw xmm7, 1
pand xmm7, xmmword [str.UUUUUUUUUUUUUUUU3333333333333333]
psubb xmm0, xmm7
movdqa xmm7, xmm0
pand xmm7, xmm8
psrlw xmm0, 2
pand xmm0, xmm8
paddb xmm0, xmm7
movdqa xmm7, xmm0
psrlw xmm7, 4
paddb xmm7, xmm0
pand xmm7, xmmword [0x1401c3ec0]
movdqa xmm0, xmm7
psllw xmm0, 8
paddb xmm0, xmm7
psrlw xmm0, 8
punpcklwd xmm0, xmm1
movdqa xmm7, xmm0
paddd xmm7, xmmword [str._b_b_b_b]
pslld xmm7, 0x17
paddd xmm7, xmmword [0x1401c3ee0]
cvttps2dq xmm7, xmm7
pshufd xmm3, xmm4, 0xf5
pmuludq xmm4, xmm7
pshufd xmm7, xmm7, 0xf5
pmuludq xmm7, xmm3
pshufd xmm3, xmm4, 0xe8
pshufd xmm4, xmm7, 0xe8
punpckldq xmm3, xmm4
movdqa xmm4, xmm12
por xmm4, xmmword [0x1401c3f00]
pslld xmm0, 0x17
psubd xmm4, xmm0
pand xmm3, xmmword [0x1401c3ef0]
por xmm4, xmm3
pcmpeqw xmm14, xmm1
pandn xmm14, xmm13
pslld xmm11, 0xd
por xmm11, xmm12
punpcklwd xmm9, xmm9
pcmpeqw xmm9, xmmword [0x1401c3f20]
por xmm12, xmmword [0x1401c3f30]
pand xmm12, xmm9
pandn xmm9, xmm10
por xmm9, xmm12
psrlw xmm2, 0xa
paddw xmm2, xmmword [0x1401c3e90]
punpcklwd xmm2, xmm2
pslld xmm2, 0x17
por xmm2, xmm11
punpcklwd xmm14, xmm14
por xmm11, xmmword [0x1401c3f10]
pand xmm11, xmm14
pandn xmm14, xmm9
por xmm14, xmm11
punpcklwd xmm6, xmm6
pand xmm4, xmm6
pandn xmm6, xmm14
por xmm6, xmm4
punpcklwd xmm15, xmm15
pxor xmm15, xmm5
pand xmm2, xmm15
pandn xmm15, xmm6
por xmm15, xmm2
movdqu xmmword [rdi + rcx*4], xmm15
add rcx, 4
cmp rax, rcx
jne 0x140022190
cmp rax, rsi
jne 0x1400223e6
jmp 0x140022592
shl r8d, 0x10
mov edx, r8d
mov dword [rdi + rax*4], edx
inc rax
cmp rsi, rax
je 0x140022592
movzx ecx, word [rbx + rax*2]
movzx r8d, cx
test ecx, 0x7fff
je 0x1400223d0
mov edx, r8d
and edx, 0x8000
mov ecx, r8d
and ecx, 0x7c00
and r8d, 0x3ff
shl edx, 0x10
cmp ecx, 0x7c00
jne 0x140022430
test r8w, r8w
je 0x140022452
shl r8d, 0xd
or edx, r8d
or edx, 0x7fc00000
jmp 0x1400223d7
test cx, cx
je 0x14002245d
movzx ecx, cx
shl ecx, 0xd
and ecx, 0xf800000
shl r8d, 0xd
add ecx, r8d
add ecx, 0x38000000
or edx, ecx
jmp 0x1400223d7
or edx, 0x7f800000
jmp 0x1400223d7
test r8w, r8w
je 0x14002246e
bsr r9w, r8w
xor r9d, 0xf
jmp 0x140022473
mov r9w, 0x10
mov ecx, r9d
add cl, 8
shl r8d, cl
and r8d, 0x7fffff
or edx, 0x3b000000
shl r9d, 0x17
sub edx, r9d
or edx, r8d
jmp 0x1400223d7
call fcn.1401bf910
bt rax, 0x23
jae 0x14002215e
mov r15, rsi
and r15, 0xfffffffffffffff8
and esi, 7
test r15, r15
je 0x140022501
xor r12d, r12d
lea r14, [rsp + 0x50]
mov rdx, rbx
nop word cs:[rax + rax]
lea r13, [rdx + 0x10]
mov rcx, r14
call fcn.140021190
movdqu xmm0, xmmword [rsp + 0x50]
movdqu xmm1, xmmword [rsp + 0x60]
movdqu xmmword [rdi + r12*4 + 0x10], xmm1
movdqu xmmword [rdi + r12*4], xmm0
add r12, 8
mov rdx, r13
cmp r15, r12
jne 0x1400224d0
lea rbx, [rbx + r15*2]
lea rdi, [rdi + r15*4]
cmp esi, 4
jbe 0x14002254f
lea r14d, [rsi + rsi]
mov r8d, 0x10
sub r8, r14
lea rcx, [rsp + r14]
add rcx, 0x40
xor edx, edx
call sub.VCRUNTIME140.dll_memset
lea r15, [rsp + 0x40]
mov rcx, r15
mov rdx, rbx
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
lea rbx, [rsp + 0x50]
mov rcx, rbx
mov rdx, r15
call fcn.140021190
jmp 0x140022581
test rsi, rsi
je 0x140022592
mov qword [rsp + 0x40], 0
lea r8d, [rsi + rsi]
lea r14, [rsp + 0x40]
mov rcx, r14
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
lea rbx, [rsp + 0x50]
mov rcx, rbx
mov rdx, r14
call fcn.140021180
shl esi, 2
mov rcx, rdi
mov rdx, rbx
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
movaps xmm9, xmmword [rsp + 0xb0]
movaps xmm10, xmmword [rsp + 0xc0]
movaps xmm11, xmmword [rsp + 0xd0]
movaps xmm12, xmmword [rsp + 0xe0]
movaps xmm13, xmmword [rsp + 0xf0]
movaps xmm14, xmmword [rsp + 0x100]
movaps xmm15, xmmword [rsp + 0x110]
add rsp, 0x120
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str.destination_and_source_slices_have_different_lengths
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x60], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
lea rax, str.C:Userskernel.cargo_registry_srcindex.crates.io_6f17d22bba15001fhalf_2.4.1_src_slice.rs
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea r9, [rsp + 0x50]
xor ecx, ecx
call fcn.1401bb6d0
int3