Function at 0x140018b00
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 0x14001905d
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
mov rax, qword [str._0_]
mov rax, qword [rax]
test rax, rax
je 0x140018ef8
bt rax, 0x30
jb 0x140018f08
test rsi, rsi
je 0x140018ff2
cmp rsi, 4
jae 0x140018bc4
xor eax, eax
jmp 0x140018e46
mov rax, rsi
and rax, 0xfffffffffffffffc
xor ecx, ecx
pxor xmm1, xmm1
movdqa xmm3, xmmword [0x14029ed10]
movdqa xmm8, xmmword [0x14029ed50]
nop word cs:[rax + rax]
movq xmm7, qword [rbx + rcx*2]
movdqa xmm6, xmm7
movdqa xmm12, xmm7
movdqa xmm13, xmm7
pxor xmm9, xmm9
punpcklwd xmm9, xmm7
pand xmm7, xmmword [0x14029ecf0]
movdqa xmm5, xmm7
pcmpeqw xmm5, xmm1
pand xmm6, xmmword [0x14029ed00]
pand xmm12, xmm3
pand xmm13, xmmword [0x14029ed20]
movdqa xmm4, xmm13
punpcklwd xmm4, xmm1
movdqa xmm14, xmm12
pcmpeqw xmm14, xmm3
por xmm5, xmm14
punpcklwd xmm5, xmm5
pxor xmm11, xmm11
punpcklwd xmm11, xmm6
movdqa xmm2, xmm12
punpcklwd xmm2, xmm12
pcmpeqw xmm2, xmm1
movdqa xmm6, xmm2
por xmm6, xmm5
movdqa xmm10, xmm4
pandn xmm5, xmm2
movdqa xmm2, xmm13
psrlw xmm2, 1
por xmm2, xmm13
movdqa xmm15, xmm2
psrlw xmm15, 2
por xmm15, xmm2
movdqa xmm2, xmm15
psrlw xmm2, 4
por xmm2, xmm15
movdqa xmm15, xmm2
psrlw xmm15, 8
por xmm15, xmm2
pxor xmm15, xmmword [0x14029ede0]
movdqa xmm2, xmm15
psrlw xmm2, 1
pand xmm2, xmmword [str.UUUUUUUUUUUUUUUU3333333333333333]
psubb xmm15, xmm2
movdqa xmm2, xmm15
pand xmm2, xmm8
psrlw xmm15, 2
pand xmm15, xmm8
paddb xmm15, xmm2
movdqa xmm2, xmm15
psrlw xmm2, 4
paddb xmm2, xmm15
pand xmm2, xmmword [0x14029ed60]
movdqa xmm15, xmm2
psllw xmm15, 8
paddb xmm15, xmm2
psrlw xmm15, 8
punpcklwd xmm15, xmm1
movdqa xmm2, xmm15
paddd xmm2, xmmword [str._b_b_b_b]
pslld xmm2, 0x17
paddd xmm2, xmmword [0x14029ed80]
cvttps2dq xmm2, xmm2
pshufd xmm0, xmm4, 0xf5
pmuludq xmm4, xmm2
pshufd xmm2, xmm2, 0xf5
pmuludq xmm2, xmm0
pshufd xmm0, xmm4, 0xe8
pshufd xmm2, xmm2, 0xe8
punpckldq xmm0, xmm2
movdqa xmm4, xmm11
por xmm4, xmmword [0x14029eda0]
pslld xmm15, 0x17
psubd xmm4, xmm15
pand xmm0, xmmword [0x14029ed90]
por xmm4, xmm0
pcmpeqw xmm13, xmm1
pandn xmm13, xmm14
pslld xmm10, 0xd
por xmm10, xmm11
punpcklwd xmm7, xmm7
pcmpeqw xmm7, xmmword [0x14029edc0]
por xmm11, xmmword [0x14029edd0]
pand xmm11, xmm7
pandn xmm7, xmm9
por xmm7, xmm11
psrlw xmm12, 0xa
paddw xmm12, xmmword [0x14029ed30]
punpcklwd xmm12, xmm12
pslld xmm12, 0x17
por xmm12, xmm10
punpcklwd xmm13, xmm13
por xmm10, xmmword [0x14029edb0]
pand xmm10, xmm13
pandn xmm13, xmm7
por xmm13, xmm10
pand xmm4, xmm5
pandn xmm5, xmm13
por xmm5, xmm4
pand xmm5, xmm6
pandn xmm6, xmm12
por xmm6, xmm5
movdqu xmmword [rdi + rcx*4], xmm6
add rcx, 4
cmp rax, rcx
jne 0x140018bf0
cmp rax, rsi
jne 0x140018e46
jmp 0x140018ff2
shl r8d, 0x10
mov edx, r8d
mov dword [rdi + rax*4], edx
inc rax
cmp rsi, rax
je 0x140018ff2
movzx ecx, word [rbx + rax*2]
movzx r8d, cx
test ecx, 0x7fff
je 0x140018e30
mov edx, r8d
and edx, 0x8000
mov ecx, r8d
and ecx, 0x7c00
and r8d, 0x3ff
shl edx, 0x10
cmp ecx, 0x7c00
jne 0x140018e90
test r8w, r8w
je 0x140018eb2
shl r8d, 0xd
or edx, r8d
or edx, 0x7fc00000
jmp 0x140018e37
test cx, cx
je 0x140018ebd
movzx ecx, cx
shl ecx, 0xd
and ecx, 0xf800000
shl r8d, 0xd
add ecx, r8d
add ecx, 0x38000000
or edx, ecx
jmp 0x140018e37
or edx, 0x7f800000
jmp 0x140018e37
test r8w, r8w
je 0x140018ece
bsr r9w, r8w
xor r9d, 0xf
jmp 0x140018ed3
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 0x140018e37
call fcn.14029cf70
bt rax, 0x30
jae 0x140018bae
mov r15, rsi
and r15, 0xfffffffffffffff8
and esi, 7
test r15, r15
je 0x140018f61
xor r12d, r12d
lea r14, [rsp + 0x50]
mov rdx, rbx
nop word cs:[rax + rax]
lea r13, [rdx + 0x10]
mov rcx, r14
call fcn.140018a30
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 0x140018f30
lea rbx, [rbx + r15*2]
lea rdi, [rdi + r15*4]
cmp esi, 4
jbe 0x140018faf
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.140018a30
jmp 0x140018fe1
test rsi, rsi
je 0x140018ff2
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.140018a20
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:UsersWDAGUtilityAccount.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.140296350
int3