Function at 0x1400e5e80
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 r15, r8
mov qword [rsp + 0x30], rdx
mov r10, rcx
test r15b, 3
je 0x1400e5f75
mov byte [r10 + 8], 0
mov qword [r10], 0
mov rax, r10
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
cmp r15, 2
jb 0x1400e5ff1
mov r11, r9
mov rax, qword [rsp + 0x30]
movzx edx, byte [r15 + rax - 1]
movzx eax, byte [r15 + rax - 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, r15
sub rcx, r9
test r9w, r9w
je 0x1400e5ff8
cmp r9d, 2
je 0x1400e5ffc
cmp r9d, 1
jne 0x1400e5f00
mov r9, r11
movzx ebp, r8w
xor ebp, 1
jmp 0x1400e6012
xor ebp, ebp
mov rcx, r15
jmp 0x1400e6012
xor ebp, ebp
jmp 0x1400e600f
movzx edx, dx
movzx eax, ax
and eax, edx
xor ebp, ebp
test eax, 0x100
sete bpl
mov r9, r11
mov rax, rcx
shr rax, 2
mov r8d, ecx
and r8d, 3
lea rax, [rax + rax*2]
lea esi, [r8 + r8*2]
shr esi, 2
add rsi, rax
cmp rsi, qword [rsp + 0x170]
jbe 0x1400e6042
mov byte [r10 + 8], 1
jmp 0x1400e5f05
and rcx, 0xfffffffffffffffc
movabs rdx, 0xaaaaaaaaaaaaaaab
mov rax, rsi
mul rdx
mov rax, rdx
mov rdx, qword [rsp + 0x30]
add rdx, rcx
shr rax, 1
lea rax, [rax + rax*2]
mov rdi, rsi
sub rdi, rax
lea rbx, [r9 + rax]
test rcx, rcx
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], rbx
je 0x1400e626b
mov r11, r9
xor r9d, r9d
movdqa xmm3, xmmword [0x1402026f0]
movdqa xmm4, xmmword [0x140202720]
pcmpeqd xmm7, xmm7
movdqa xmm8, xmmword [0x140202740]
movdqa xmm9, xmmword [0x140202750]
movdqa xmm10, xmmword [0x140202760]
movdqa xmm11, xmmword [0x140202770]
movdqa xmm12, xmmword [0x140202780]
movdqa xmm13, xmmword [0x140202790]
movdqa xmm14, xmmword [str.....]
movdqa xmm15, xmmword [0x1402027b0]
mov r10, r11
nop dword [rax]
sub rax, 3
jb 0x1400e626b
mov r11, qword [rsp + 0x30]
movd xmm0, dword [r11 + r9]
punpcklbw xmm0, xmmword [0x1402027c0]
movdqa xmm1, xmm0
paddw xmm1, xmmword [0x1402026e0]
movdqa xmm2, xmm3
psubw xmm2, xmm0
pand xmm2, xmm1
psraw xmm2, 8
movdqa xmm1, xmm0
paddw xmm1, xmmword [0x140202700]
pand xmm1, xmm2
movdqa xmm2, xmm0
paddw xmm2, xmmword [0x140202710]
movdqa xmm5, xmm4
psubw xmm5, xmm0
pand xmm5, xmm2
psraw xmm5, 8
movdqa xmm2, xmm0
paddw xmm2, xmmword [0x140202730]
pand xmm2, xmm5
paddw xmm2, xmm1
movdqa xmm1, xmm0
paddw xmm1, xmm8
movdqa xmm5, xmm9
psubw xmm5, xmm0
pand xmm5, xmm1
psraw xmm5, 8
movdqa xmm6, xmm0
paddw xmm6, xmm10
pand xmm6, xmm5
paddw xmm6, xmm2
movdqa xmm2, xmm11
psubw xmm2, xmm0
movdqa xmm1, xmm0
paddw xmm1, xmm12
pand xmm1, xmm2
paddw xmm6, xmm7
psrlw xmm1, 8
pand xmm1, xmm13
paddw xmm1, xmm6
movdqa xmm2, xmm14
psubw xmm2, xmm0
paddw xmm0, xmm15
pand xmm0, xmm2
psrlw xmm0, 8
pand xmm0, xmm3
paddw xmm0, xmm1
pextrw r11d, xmm0, 1
pextrw edi, xmm1, 1
pextrw r13d, xmm0, 2
pextrw r12d, xmm1, 2
pextrw ebx, xmm0, 3
movd esi, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movd r14d, xmm0
shl esi, 2
shr r11d, 4
or r11d, esi
mov byte [r10], r11b
shl edi, 4
shr r13d, 2
or r13d, edi
mov byte [r10 + 1], r13b
shl r12d, 6
or ebx, r12d
mov byte [r10 + 2], bl
shr r14d, 8
and r14d, 1
or ebp, r14d
add r9, 4
add r10, 3
cmp rcx, r9
jne 0x1400e6100
xor r13d, r13d
cmp r8, 1
sete r13b
mov dword [rsp + 0x38], 0x41414141
lea rcx, [rsp + 0x38]
call sym.memcpy
movd xmm0, dword [rsp + 0x38]
pxor xmm1, xmm1
punpcklbw xmm0, xmm1
movdqa xmm2, xmmword [0x1402026e0]
paddw xmm2, xmm0
movdqa xmm1, xmmword [0x1402026f0]
movdqa xmm3, xmm1
psubw xmm3, xmm0
pand xmm3, xmm2
psraw xmm3, 8
movdqa xmm2, xmmword [0x140202700]
paddw xmm2, xmm0
pand xmm2, xmm3
movdqa xmm3, xmmword [0x140202710]
paddw xmm3, xmm0
movdqa xmm4, xmmword [0x140202720]
psubw xmm4, xmm0
pand xmm4, xmm3
psraw xmm4, 8
movdqa xmm3, xmmword [0x140202730]
paddw xmm3, xmm0
pand xmm3, xmm4
paddw xmm3, xmm2
pcmpeqd xmm2, xmm2
movdqa xmm4, xmmword [0x140202740]
paddw xmm4, xmm0
movdqa xmm5, xmmword [0x140202750]
psubw xmm5, xmm0
pand xmm5, xmm4
psraw xmm5, 8
movdqa xmm4, xmmword [0x140202760]
paddw xmm4, xmm0
pand xmm4, xmm5
paddw xmm4, xmm3
paddw xmm4, xmm2
movdqa xmm3, xmmword [0x140202770]
psubw xmm3, xmm0
movdqa xmm2, xmmword [0x140202780]
paddw xmm2, xmm0
pand xmm2, xmm3
psrlw xmm2, 8
pand xmm2, xmmword [0x140202790]
movdqa xmm3, xmmword [str.....]
psubw xmm3, xmm0
paddw xmm0, xmmword [0x1402027b0]
paddw xmm2, xmm4
pand xmm0, xmm3
psrlw xmm0, 8
pand xmm0, xmm1
paddw xmm0, xmm2
movd eax, xmm2
pextrw ecx, xmm0, 1
shl eax, 2
shr ecx, 4
or ecx, eax
mov byte [rsp + 0x25], cl
pextrw eax, xmm2, 1
pextrw ecx, xmm0, 2
shl eax, 4
shr ecx, 2
or ecx, eax
mov byte [rsp + 0x26], cl
pextrw eax, xmm2, 2
pextrw ecx, xmm0, 3
shl eax, 6
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 edi, xmm0
shr edi, 8
and edi, 1
or ebp, r13d
lea rdx, [rsp + 0x25]
mov rcx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
call sym.memcpy
or bp, di
je 0x1400e6413
mov r10, qword [rsp + 0x28]
jmp 0x1400e5f00
mov rdi, qword [rsp + 0x48]
mov rax, rdi
or rax, r15
je 0x1400e65fa
mov r8d, 4
mov rcx, qword [rsp + 0x30]
mov rdx, r15
call sym.base64ct::encoding::validate_last_block::last_block_start::hf8a28b5ef9267de0
xor r13d, r13d
sub r15, rax
cmovae r13, r15
jae 0x1400e644c
and r13b, 1
jmp 0x1400e65ec
mov r12, rax
mov r8d, 3
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
mov rdx, rdi
call sym.base64ct::encoding::validate_last_block::last_block_start::hf8a28b5ef9267de0
xor edx, edx
mov rcx, rdi
sub rcx, rax
cmovae rdx, rcx
jae 0x1400e647e
and dl, 1
mov r13d, edx
jmp 0x1400e65ec
add rax, rsi
mov dword [rsp + 0x3c], 0
lea r8, [rsp + 0x3c]
mov r9d, 4
mov rcx, rax
call sym.__T_as_base64ct::encoding::Encoding_::encode::hb68772c48055b3b7
test rax, rax
je 0x1400e64c9
cmp rdx, r13
cmovb r13, rdx
test r13, r13
je 0x1400e65fa
mov rcx, qword [rsp + 0x30]
add rcx, r12
cmp r13, 8
jae 0x1400e64d1
xor r8d, r8d
xor edx, edx
jmp 0x1400e65cc
mov r13b, 1
jmp 0x1400e65ec
cmp r13, 0x20
jae 0x1400e64e1
xor r8d, r8d
xor edx, edx
jmp 0x1400e6572
mov rdx, r13
and rdx, 0xffffffffffffffe0
mov r8, qword [rsp + 0x30]
add r8, r12
add r8, 0x10
pxor xmm0, xmm0
xor r9d, r9d
pxor xmm1, xmm1
movdqu xmm2, xmmword [rax + r9]
movdqu xmm3, xmmword [rax + r9 + 0x10]
movdqu xmm4, xmmword [r8 + r9 - 0x10]
pxor xmm4, xmm2
por xmm0, xmm4
movdqu xmm2, xmmword [r8 + r9]
pxor xmm2, xmm3
por xmm1, xmm2
add r9, 0x20
cmp rdx, r9
jne 0x1400e64ff
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 r8d, xmm1
cmp r13, rdx
je 0x1400e65e4
test r13b, 0x18
je 0x1400e65cc
mov r9, rdx
mov rdx, r13
and rdx, 0xfffffffffffffff8
movzx r8d, r8b
movd xmm0, r8d
mov r8, qword [rcx + r9]
xor r8, qword [rax + r9]
movq xmm1, r8
por xmm0, xmm1
add r9, 8
cmp rdx, r9
jne 0x1400e6585
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 r8d, xmm1
cmp r13, rdx
je 0x1400e65e4
movzx r9d, byte [rcx + rdx]
xor r9b, byte [rax + rdx]
lea r10, [rdx + 1]
or r8b, r9b
mov rdx, r10
cmp r13, r10
jne 0x1400e65cc
test r8b, r8b
je 0x1400e65fa
xor r13d, r13d
mov r10, qword [rsp + 0x28]
mov byte [r10 + 8], r13b
jmp 0x1400e5f05
mov r10, qword [rsp + 0x28]
mov rax, qword [rsp + 0x40]
mov qword [r10], rax
mov qword [r10 + 8], rdi
jmp 0x1400e5f0c