Function at 0x1401ace70
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, rdx
mov rsi, rcx
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, r9
mul rcx
mov rax, r9
shr rax, 0x3e
cmp eax, 2
ja 0x1401ad488
mov r12, r9
mov r15, r8
mov rdi, rdx
movzx ecx, byte [r14]
shr rdi, 1
lea rax, [rdi + rdi*2]
mov r13, r9
sub r13, rax
shl rdi, 2
test r13, r13
mov byte [rsp + 0x2f], cl
je 0x1401acedb
test cl, cl
je 0x1401acee9
add rdi, 4
jb 0x1401ad488
test rdi, rdi
jne 0x1401acef9
mov ebx, 1
xor edi, edi
jmp 0x1401acf1b
xor eax, eax
cmp r13, 1
sete al
xor rax, 3
or rdi, rax
test rdi, rdi
js 0x1401ad488
mov ecx, 8
mov rdx, rdi
call fcn.14014fee0
test rax, rax
je 0x1401ad488
mov rbx, rax
xor eax, eax
mov rdx, r12
mov ecx, 0
sub rdx, 0x1a
cmovb rdx, rax
jbe 0x1401ad237
mov eax, 0x20
xor ecx, ecx
nop word [rax + rax]
lea r8, [rcx + 0x1a]
cmp r8, r12
ja 0x1401ad488
test rax, rax
je 0x1401ad488
cmp rax, rdi
ja 0x1401ad488
mov r8, qword [r15 + rcx]
bswap r8
mov r9, r8
shr r9, 0x3a
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x20], r9b
mov r9, r8
shr r9, 0x34
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1f], r9b
mov r9, r8
shr r9, 0x2e
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1e], r9b
mov r9, r8
shr r9, 0x28
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1d], r9b
mov r9, r8
shr r9, 0x22
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1c], r9b
mov r9, r8
shr r9, 0x1c
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1b], r9b
mov r9d, r8d
shr r9d, 0x16
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1a], r9b
shr r8d, 0x10
and r8d, 0x3f
movzx r8d, byte [r14 + r8 + 3]
mov byte [rbx + rax - 0x19], r8b
mov r8, qword [r15 + rcx + 6]
bswap r8
mov r9, r8
shr r9, 0x3a
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x18], r9b
mov r9, r8
shr r9, 0x34
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x17], r9b
mov r9, r8
shr r9, 0x2e
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x16], r9b
mov r9, r8
shr r9, 0x28
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x15], r9b
mov r9, r8
shr r9, 0x22
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x14], r9b
mov r9, r8
shr r9, 0x1c
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x13], r9b
mov r9d, r8d
shr r9d, 0x16
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x12], r9b
shr r8d, 0x10
and r8d, 0x3f
movzx r8d, byte [r14 + r8 + 3]
mov byte [rbx + rax - 0x11], r8b
mov r8, qword [r15 + rcx + 0xc]
bswap r8
mov r9, r8
shr r9, 0x3a
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x10], r9b
mov r9, r8
shr r9, 0x34
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xf], r9b
mov r9, r8
shr r9, 0x2e
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xe], r9b
mov r9, r8
shr r9, 0x28
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xd], r9b
mov r9, r8
shr r9, 0x22
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xc], r9b
mov r9, r8
shr r9, 0x1c
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xb], r9b
mov r9d, r8d
shr r9d, 0x16
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xa], r9b
shr r8d, 0x10
and r8d, 0x3f
movzx r8d, byte [r14 + r8 + 3]
mov byte [rbx + rax - 9], r8b
mov r8, qword [r15 + rcx + 0x12]
bswap r8
mov r9, r8
shr r9, 0x3a
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 8], r9b
mov r9, r8
shr r9, 0x34
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 7], r9b
mov r9, r8
shr r9, 0x2e
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 6], r9b
mov r9, r8
shr r9, 0x28
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 5], r9b
mov r9, r8
shr r9, 0x22
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 4], r9b
mov r9, r8
shr r9, 0x1c
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 3], r9b
mov r9d, r8d
shr r9d, 0x16
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 2], r9b
shr r8d, 0x10
and r8d, 0x3f
movzx r8d, byte [r14 + r8 + 3]
mov byte [rbx + rax - 1], r8b
add rcx, 0x18
add rax, 0x20
cmp rcx, rdx
jbe 0x1401acf40
add rax, 0xffffffffffffffe0
mov r8, r12
sub r8, r13
cmp rcx, r8
jae 0x1401ad383
nop word cs:[rax + rax]
mov rdx, rax
cmp r13, 1
jne 0x1401ad308