Function at 0x1400e57a0
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 r10, r9
mov rsi, r8
mov r9, rcx
mov rax, r8
shr rax, 2
and r8d, 3
lea rax, [rax + rax*2]
lea r11d, [r8 + r8*2]
shr r11d, 2
add r11, rax
cmp r11, qword [rsp + 0x170]
jbe 0x1400e5846
mov byte [r9 + 8], 1
jmp 0x1400e5df9
mov r14, rdx
mov rcx, rsi
and rcx, 0xfffffffffffffffc
movabs rdx, 0xaaaaaaaaaaaaaaab
mov rax, r11
mul rdx
mov rax, rdx
lea rdx, [r14 + rcx]
shr rax, 1
lea rax, [rax + rax*2]
mov rdi, r11
sub rdi, rax
lea rbx, [r10 + rax]
test rcx, rcx
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], rbx
je 0x1400e5a66
xor r9d, r9d
movdqa xmm3, xmmword [0x140202600]
movdqa xmm4, xmmword [0x140202630]
pcmpeqd xmm7, xmm7
movdqa xmm8, xmmword [0x140202650]
movdqa xmm9, xmmword [0x140202660]
movdqa xmm10, xmmword [0x140202670]
movdqa xmm11, xmmword [0x140202680]
movdqa xmm12, xmmword [0x140202690]
movdqa xmm13, xmmword [0x1402026a0]
movdqa xmm14, xmmword [0x1402026b0]
movdqa xmm15, xmmword [0x1402026c0]
xor ebp, ebp
sub rax, 3
jb 0x1400e5a68
movd xmm0, dword [r14 + r9]
punpcklbw xmm0, xmmword [0x1402026d0]
movdqa xmm1, xmm0
paddw xmm1, xmmword [0x1402025f0]
movdqa xmm2, xmm3
psubw xmm2, xmm0
pand xmm2, xmm1
psraw xmm2, 8
movdqa xmm1, xmm0
paddw xmm1, xmmword [0x140202610]
pand xmm1, xmm2
movdqa xmm2, xmm0
paddw xmm2, xmmword [0x140202620]
movdqa xmm5, xmm4
psubw xmm5, xmm0
pand xmm5, xmm2
psraw xmm5, 8
movdqa xmm2, xmm0
paddw xmm2, xmmword [0x140202640]
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 esi, xmm0, 3
movd r15d, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movd ebx, xmm0
shl r15d, 2
shr r11d, 4
or r11d, r15d
mov byte [r10], r11b
shl edi, 4
shr r13d, 2
or r13d, edi
mov byte [r10 + 1], r13b
shl r12d, 6
or esi, r12d
mov byte [r10 + 2], sil
shr ebx, 8
and ebx, 1
or ebp, ebx
add r9, 4
add r10, 3
cmp rcx, r9
jne 0x1400e5900
jmp 0x1400e5a68
xor ebp, ebp
xor r13d, r13d
cmp r8, 1
sete r13b
mov dword [rsp + 0x30], 0x41414141
lea rcx, [rsp + 0x30]
call sym.memcpy
movd xmm0, dword [rsp + 0x30]
pxor xmm1, xmm1
punpcklbw xmm0, xmm1
movdqa xmm2, xmmword [0x1402025f0]
paddw xmm2, xmm0
movdqa xmm1, xmmword [0x140202600]
movdqa xmm3, xmm1
psubw xmm3, xmm0
pand xmm3, xmm2
psraw xmm3, 8
movdqa xmm2, xmmword [0x140202610]
paddw xmm2, xmm0
pand xmm2, xmm3
movdqa xmm3, xmmword [0x140202620]
paddw xmm3, xmm0
movdqa xmm4, xmmword [0x140202630]
psubw xmm4, xmm0
pand xmm4, xmm3
psraw xmm4, 8
movdqa xmm3, xmmword [0x140202640]
paddw xmm3, xmm0
pand xmm3, xmm4
paddw xmm3, xmm2
pcmpeqd xmm2, xmm2
movdqa xmm4, xmmword [0x140202650]
paddw xmm4, xmm0
movdqa xmm5, xmmword [0x140202660]
psubw xmm5, xmm0
pand xmm5, xmm4
psraw xmm5, 8
movdqa xmm4, xmmword [0x140202670]
paddw xmm4, xmm0
pand xmm4, xmm5
paddw xmm4, xmm3
paddw xmm4, xmm2
movdqa xmm3, xmmword [0x140202680]
psubw xmm3, xmm0
movdqa xmm2, xmmword [0x140202690]
paddw xmm2, xmm0
pand xmm2, xmm3
psrlw xmm2, 8
pand xmm2, xmmword [0x1402026a0]
movdqa xmm3, xmmword [0x1402026b0]
psubw xmm3, xmm0
paddw xmm0, xmmword [0x1402026c0]
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 0x1400e5c15
mov r9, qword [rsp + 0x28]
mov byte [r9 + 8], 0
jmp 0x1400e5df9
mov rdi, qword [rsp + 0x40]
mov rax, rdi
mov rbx, qword [rsp + 0x38]
or rax, rbx
mov rsi, qword [rsp + 0x48]
je 0x1400e5e69
mov r8d, 4
mov rcx, r14
mov rdx, rbx
call sym.base64ct::encoding::validate_last_block::last_block_start::hf8a28b5ef9267de0
xor r13d, r13d
sub rbx, rax
cmovae r13, rbx
jae 0x1400e5c56
and r13b, 1
jmp 0x1400e5df0
mov r12, rax
mov r8d, 3
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 0x1400e5c83
and dl, 1
mov r13d, edx
jmp 0x1400e5df0
add rax, rsi
mov dword [rsp + 0x34], 0
lea r8, [rsp + 0x34]
mov r9d, 4
mov rcx, rax
call sym.__T_as_base64ct::encoding::Encoding_::encode::h6eb2774e3d42e47c
test rax, rax
je 0x1400e5cca
cmp rdx, r13
cmovb r13, rdx
test r13, r13
je 0x1400e5e69
lea rcx, [r14 + r12]
cmp r13, 8
jae 0x1400e5cd2
xor r8d, r8d
xor edx, edx
jmp 0x1400e5dd0
mov r13b, 1
jmp 0x1400e5df0
cmp r13, 0x20
jae 0x1400e5ce2
xor r8d, r8d
xor edx, edx
jmp 0x1400e5d73
mov rdx, r13
and rdx, 0xffffffffffffffe0
lea r8, [r12 + r14]
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 0x1400e5cfc
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 0x1400e5de8
test r13b, 0x18
je 0x1400e5dd0
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 0x1400e5d86
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 0x1400e5de8
nop dword [rax]
movzx r9d, byte [rcx + rdx]
xor r9b, byte [rax + rdx]
lea r10, [rdx + 1]
or r8b, r9b
mov rdx, r10
cmp r13, r10
jne 0x1400e5dd0
test r8b, r8b
je 0x1400e5e69
xor r13d, r13d
mov r9, qword [rsp + 0x28]
mov byte [r9 + 8], r13b
mov qword [r9], 0
mov rax, r9
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 r9, qword [rsp + 0x28]
mov qword [r9], rsi
mov qword [r9 + 8], rdi
jmp 0x1400e5e00