Function at 0x14001889c
Capabilities:
Encode data using base64

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
lea rsi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov r9, rdx
mov r11, rcx
mov r10, rcx
movabs r14, 0xaaaaaaaaaaaaaaab
cmp rdx, 0x10
jb 0x140018a4a
mov rax, r14
lea rbx, [rcx + 5]
mul r9
shr rdx, 3
lea rax, [rdx + rdx*2]
lea rdi, [rcx + rax*4]
lea rdx, [r8 + 6]
movzx eax, byte [rbx - 4]
movzx ecx, byte [r10]
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx - 3]
shl rcx, 8
add rcx, rax
mov rax, rcx
shr rax, 0x12
mov al, byte [rax + rsi]
mov byte [r8], al
mov rax, rcx
shr rax, 0xc
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [rdx - 5], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [rdx - 4], al
mov al, byte [rcx + rsi]
mov byte [rdx - 3], al
movzx eax, byte [rbx - 1]
movzx ecx, byte [rbx - 2]
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx]
shl rcx, 8
add rcx, rax
mov rax, rcx
shr rax, 0x12
mov al, byte [rax + rsi]
mov byte [rdx - 2], al
mov rax, rcx
shr rax, 0xc
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [rdx - 1], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [rdx], al
mov al, byte [rcx + rsi]
mov byte [rdx + 1], al
movzx eax, byte [rbx + 2]
movzx ecx, byte [rbx + 1]
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx + 3]
shl rcx, 8
add rcx, rax
mov rax, rcx
shr rax, 0x12
mov al, byte [rax + rsi]
mov byte [rdx + 2], al
mov rax, rcx
shr rax, 0xc
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [rdx + 3], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [rdx + 4], al
mov al, byte [rcx + rsi]
mov byte [rdx + 5], al
movzx eax, byte [rbx + 5]
movzx ecx, byte [rbx + 4]
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx + 6]
shl rcx, 8
add rcx, rax
mov rax, rcx
shr rax, 0x12
mov al, byte [rax + rsi]
add r10, 0xc
mov byte [rdx + 6], al
lea rdx, [rdx + 0x10]
mov rax, rcx
lea rbx, [rbx + 0xc]
shr rax, 0xc
add r8, 0x10
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [rdx - 9], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [rdx - 8], al
mov al, byte [rcx + rsi]
mov byte [rdx - 7], al
cmp r10, rdi
jne 0x1400188ed
sub r11, r10
add r9, r11
cmp r9, 3
jb 0x140018ac3
mov rax, r14
mul r9
shr rdx, 1
imul rax, rdx, 0xfffffffffffffffd
add r9, rax
movzx eax, byte [r10 + 1]
movzx ecx, byte [r10]
shl rcx, 8
add rcx, rax
movzx eax, byte [r10 + 2]
shl rcx, 8
add r10, 3
add rcx, rax
mov rax, rcx
shr rax, 0x12
mov al, byte [rax + rsi]
mov byte [r8], al
mov rax, rcx
shr rax, 0xc
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [r8 + 1], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
mov al, byte [rax + rsi]
mov byte [r8 + 2], al
mov al, byte [rcx + rsi]
mov byte [r8 + 3], al
add r8, 4
sub rdx, 1
jne 0x140018a60
cmp r9, 1
jne 0x140018aef
movzx ecx, byte [r10]
mov eax, ecx
mov word [r8 + 2], 0x3d3d
shr rax, 2
and ecx, 3
shl ecx, 4
mov al, byte [rax + rsi]
mov byte [r8], al
mov al, byte [rcx + rsi]
mov byte [r8 + 1], al
jmp 0x140018b31
cmp r9, 2
jne 0x140018b31
movzx edx, byte [r10]
movzx eax, byte [r10 + 1]
shl edx, 8
add edx, eax
mov byte [r8 + 3], 0x3d
mov eax, edx
shr rax, 0xa
mov ecx, edx
and edx, 0xf
shr rcx, 4
and ecx, 0x3f
mov al, byte [rax + rsi]
mov byte [r8], al
shl edx, 2
mov al, byte [rcx + rsi]
mov byte [r8 + 1], al
mov al, byte [rdx + rsi]
mov byte [r8 + 2], al
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
mov r14, qword [rsp + 0x20]
ret