Function at 0x140061e20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movdqa xmmword [rsp + 0xf0], xmm15
movdqa xmmword [rsp + 0xe0], xmm14
movdqa xmmword [rsp + 0xd0], xmm13
movdqa xmmword [rsp + 0xc0], xmm12
movdqa xmmword [rsp + 0xb0], xmm11
movdqa xmmword [rsp + 0xa0], xmm10
movdqa xmmword [rsp + 0x90], xmm9
movdqa xmmword [rsp + 0x80], xmm8
movdqa xmmword [rsp + 0x70], xmm7
movdqa xmmword [rsp + 0x60], xmm6
mov rdi, r8
mov r10, rcx
test dil, 3
je 0x140061f0d
mov byte [r10 + 8], 0
mov qword [r10], 0
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x80]
movaps xmm9, xmmword [rsp + 0x90]
movaps xmm10, xmmword [rsp + 0xa0]
movaps xmm11, xmmword [rsp + 0xb0]
movaps xmm12, xmmword [rsp + 0xc0]
movaps xmm13, xmmword [rsp + 0xd0]
movaps xmm14, xmmword [rsp + 0xe0]
movaps xmm15, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r14, rdx
cmp rdi, 2
jb 0x140061fb3
mov r11, r9
movzx edx, byte [rdi + r14 - 1]
movzx eax, byte [rdi + r14 - 2]
mov ecx, 0x3c
mov r8d, 0x3c
sub r8d, eax
add eax, 0x1c2
and eax, r8d
sub ecx, edx
add edx, 0x1c2
and edx, ecx
mov r8d, edx
shr r8d, 8
and r8d, 1
bt eax, 8
mov ecx, r8d
adc cx, 0
movzx r9d, cx
mov rcx, rdi
sub rcx, r9
test r9w, r9w
je 0x140062409
cmp r9d, 1
je 0x14006241c
cmp r9d, 2
jne 0x140061e9b
mov r9, r11
movzx edx, dx
movzx eax, ax
and eax, edx
xor ebp, ebp
test eax, 0x100
sete bpl
cmp rcx, rdi
jbe 0x140061fc2
lea r8, [0x1400e1db8]
mov rdx, rdi
call fcn.1400a9df0
ud2
xor ecx, ecx
test rdi, rdi
setne cl
xor ebp, ebp
cmp rcx, rdi
ja 0x140061fa2
mov rax, rcx
shr rax, 2
mov edx, ecx
and edx, 3
lea rax, [rax + rax*2]
lea r8d, [rdx + rdx*2]
shr r8d, 2
add r8, rax
cmp r8, qword [rsp + 0x170]
jbe 0x140061ff1
mov byte [r10 + 8], 1
jmp 0x140061ea0
mov qword [rsp + 0x58], rdx
and rcx, 0xfffffffffffffffc
movabs rdx, 0xaaaaaaaaaaaaaaab
mov rax, r8
mul rdx
mov rax, rdx
lea rdx, [r14 + rcx]
shr rax, 1
lea rax, [rax + rax*2]
mov r11, r8
sub r11, rax
mov qword [rsp + 0x50], r11
lea r11, [r9 + rax]
mov qword [rsp + 0x48], r11
test rcx, rcx
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x40], r8
je 0x14006220c
xor r8d, r8d
movdqa xmm3, xmmword [0x1400b07a0]
movdqa xmm7, xmmword [0x1400b07c0]
movdqa xmm8, xmmword [0x1400b07d0]
movdqa xmm9, xmmword [0x1400b07e0]
movdqa xmm10, xmmword [0x1400b07f0]
movdqa xmm11, xmmword [0x1400b0800]
movdqa xmm12, xmmword [0x1400b0810]
pcmpeqd xmm13, xmm13
movdqa xmm14, xmmword [str.....]
movdqa xmm15, xmmword [0x1400b0830]
nop dword [rax + rax]
sub rax, 3
jb 0x14006220c
movd xmm0, dword [r14 + r8]
punpcklbw xmm0, xmmword [0x1400b0a10]
movdqa xmm1, xmmword [0x1400b0760]
psubw xmm1, xmm0
movdqa xmm2, xmm0
paddw xmm2, xmmword [0x1400b0770]
pand xmm2, xmm1
movdqa xmm1, xmm0
paddw xmm1, xmmword [0x1400b0790]
movdqa xmm5, xmm3
psubw xmm5, xmm0
pand xmm5, xmm1
psraw xmm5, 8
movdqa xmm4, xmm0
paddw xmm4, xmmword [0x1400b07b0]
pand xmm4, xmm5
movdqa xmm1, xmm0
paddw xmm1, xmm7
movdqa xmm5, xmm8
psubw xmm5, xmm0
pand xmm5, xmm1
psraw xmm5, 8
movdqa xmm6, xmm0
paddw xmm6, xmm9
pand xmm6, xmm5
movdqa xmm1, xmm0
paddw xmm1, xmm10
movdqa xmm5, xmm11
psubw xmm5, xmm0
pand xmm5, xmm1
psraw xmm5, 8
movdqa xmm1, xmm0
paddw xmm1, xmm12
pand xmm1, xmm5
paddw xmm1, xmm6
paddw xmm1, xmm4
psrlw xmm2, 8
pand xmm2, xmmword [0x1400b0780]
paddw xmm1, xmm13
paddw xmm1, xmm2
movdqa xmm2, xmm14
psubw xmm2, xmm0
paddw xmm0, xmm15
pand xmm0, xmm2
psrlw xmm0, 8
pand xmm0, xmm11
paddw xmm0, xmm1
pextrw r10d, xmm0, 1
pextrw r11d, xmm1, 1
pextrw ebx, xmm0, 2
pextrw r13d, xmm1, 2
pextrw r15d, xmm0, 3
movd esi, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movd r12d, xmm0
shl esi, 2
shr r10d, 4
or r10d, esi
mov byte [r9], r10b
shl r11d, 4
shr ebx, 2
or ebx, r11d
mov byte [r9 + 1], bl
shl r13d, 6
or r15d, r13d
mov byte [r9 + 2], r15b
shr r12d, 8
and r12d, 1
or ebp, r12d
add r8, 4
add r9, 3
cmp rcx, r8
jne 0x1400620a0
mov dword [rsp + 0x28], 0x41414141
lea rcx, [rsp + 0x28]
mov rsi, qword [rsp + 0x58]
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
movd xmm0, dword [rsp + 0x28]
pxor xmm1, xmm1
punpcklbw xmm0, xmm1
movdqa xmm2, xmmword [0x1400b0760]
psubw xmm2, xmm0
movdqa xmm1, xmmword [0x1400b0770]
paddw xmm1, xmm0
pand xmm1, xmm2
psrlw xmm1, 8
pand xmm1, xmmword [0x1400b0780]
movdqa xmm2, xmmword [0x1400b0790]
paddw xmm2, xmm0
movdqa xmm3, xmmword [0x1400b07a0]
psubw xmm3, xmm0
pand xmm3, xmm2
psraw xmm3, 8
movdqa xmm2, xmmword [0x1400b07b0]
paddw xmm2, xmm0
pand xmm2, xmm3
movdqa xmm3, xmmword [0x1400b07c0]
paddw xmm3, xmm0
movdqa xmm4, xmmword [0x1400b07d0]
psubw xmm4, xmm0
pand xmm4, xmm3
psraw xmm4, 8
movdqa xmm5, xmmword [0x1400b07e0]
paddw xmm5, xmm0
pand xmm5, xmm4
movdqa xmm4, xmmword [0x1400b07f0]
paddw xmm4, xmm0
movdqa xmm3, xmmword [0x1400b0800]
movdqa xmm6, xmm3
psubw xmm6, xmm0
pand xmm6, xmm4
psraw xmm6, 8
movdqa xmm4, xmmword [0x1400b0810]
paddw xmm4, xmm0
pand xmm4, xmm6
paddw xmm4, xmm5
paddw xmm4, xmm2
pcmpeqd xmm2, xmm2
paddw xmm2, xmm4
paddw xmm2, xmm1
movd eax, xmm2
shl eax, 2
movdqa xmm1, xmmword [str.....]
psubw xmm1, xmm0
paddw xmm0, xmmword [0x1400b0830]
pand xmm0, xmm1
psrlw xmm0, 8
pand xmm0, xmm3
paddw xmm0, xmm2
pextrw ecx, xmm0, 1
shr ecx, 4
or ecx, eax
mov byte [rsp + 0x25], cl
pextrw eax, xmm2, 1
shl eax, 4
pextrw ecx, xmm0, 2
shr ecx, 2
or ecx, eax
mov byte [rsp + 0x26], cl
pextrw eax, xmm2, 2
shl eax, 6
pextrw ecx, xmm0, 3
or ecx, eax
mov byte [rsp + 0x27], cl
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movd ebx, xmm0
shr ebx, 8
and ebx, 1
xor eax, eax
cmp rsi, 1
sete al
or ebp, eax
lea rdx, [rsp + 0x25]
mov rcx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x50]
call sub.VCRUNTIME140.dll_memcpy
or bp, bx
je 0x1400623c4
mov rax, qword [rsp + 0x38]
mov byte [rax + 8], 0
mov qword [rax], 0
jmp 0x140061ea7
mov rbx, qword [rsp + 0x40]
mov rax, rbx
or rax, rdi
mov rsi, qword [rsp + 0x38]
je 0x1400625c2
xor eax, eax
mov rcx, rdi
sub rcx, 1
cmovb rcx, rax
and rcx, 0xfffffffffffffffc
add r14, rcx
sub rdi, rcx
cmovb rdi, rax
cmovb r14, rax
mov r9, qword [rsp + 0x30]
jae 0x140062434
and dil, 1
jmp 0x1400625b2
xor ebp, ebp
mov r9, r11
cmp rcx, rdi
jbe 0x140061fc2
jmp 0x140061fa2
movzx ebp, r8w
xor ebp, 1
mov r9, r11
cmp rcx, rdi
jbe 0x140061fc2
jmp 0x140061fa2
xor r8d, r8d
mov rax, rbx
sub rax, 1
cmovb rax, r8
movabs rcx, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 1
lea rcx, [rdx + rdx*2]
mov rdx, rbx
sub rdx, rcx
cmovb rdx, r8
jae 0x14006246c
and dl, 1
mov edi, edx
jmp 0x1400625b2
add rcx, r9
mov dword [rsp + 0x2c], 0
lea r8, [rsp + 0x2c]
call fcn.1400625e0
test rax, rax
je 0x1400624a5
cmp rdx, rdi
cmovb rdi, rdx
test rdi, rdi
je 0x1400625c2
cmp rdi, 8
jae 0x1400624ad
xor edx, edx
xor ecx, ecx
jmp 0x140062594
mov dil, 1
jmp 0x1400625b2
cmp rdi, 0x20
jae 0x1400624bc
xor edx, edx
xor ecx, ecx
jmp 0x14006253d
mov rcx, rdi
and rcx, 0xffffffffffffffe0
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
movdqu xmm2, xmmword [rax + rdx]
movdqu xmm3, xmmword [rax + rdx + 0x10]
movdqu xmm4, xmmword [r14 + rdx]
pxor xmm4, xmm2
por xmm0, xmm4
movdqu xmm2, xmmword [r14 + rdx + 0x10]
pxor xmm2, xmm3
por xmm1, xmm2
add rdx, 0x20
cmp rcx, rdx
jne 0x1400624cd
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp rdi, rcx
je 0x1400625ac
test dil, 0x18
je 0x140062594
mov r8, rcx
mov rcx, rdi
and rcx, 0xfffffffffffffff8
movzx edx, dl
movd xmm0, edx
mov rdx, qword [r14 + r8]
xor rdx, qword [rax + r8]
movq xmm1, rdx
por xmm0, xmm1
add r8, 8
cmp rcx, r8
jne 0x14006254e
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp rdi, rcx
je 0x1400625ac
movzx r8d, byte [r14 + rcx]
xor r8b, byte [rax + rcx]
lea r9, [rcx + 1]
or dl, r8b
mov rcx, r9
cmp rdi, r9
jne 0x140062594
test dl, dl
je 0x1400625c2
xor edi, edi
mov byte [rsi + 8], dil
mov qword [rsi], 0
jmp 0x140061ea7
mov rax, qword [rsp + 0x30]
mov qword [rsi], rax
mov qword [rsi + 8], rbx
jmp 0x140061ea7