Function at 0x140017670
Capabilities:
Encode data using base64

Disassembly:
push rbp
sub rsp, 0x90
lea rbp, [rsp + 0x80]
mov qword [rbp + 8], 0xfffffffffffffffe
mov qword [rbp - 0x50], rcx
mov rax, rcx
mov qword [rbp - 0x48], rax
mov qword [rbp], rcx
mov dword [rbp - 4], r8d
mov qword [rbp - 0x10], rdx
mov qword [rbp - 0x18], 0
mov eax, dword [rbp - 4]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov ecx, 3
xor edx, edx
div rcx
cmp rdx, 0
je 0x1400176e3
mov rax, qword [rbp - 0x20]
add rax, 1
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x18]
add rax, 1
mov qword [rbp - 0x18], rax
jmp 0x1400176ae
mov rcx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x20]
shl rax, 2
movabs rdx, 0xaaaaaaaaaaaaaaab
mul rdx
shr rdx, 1
mov qword [rbp - 0x20], rdx
mov byte [rbp - 0x21], 0
call fcn.140004b80
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x20]
call fcn.1400074c0
jmp 0x14001771e
mov dword [rbp - 0x28], 0
mov eax, dword [rbp - 0x28]
mov rcx, qword [rbp - 0x20]
shr rcx, 2
cmp rax, rcx
jae 0x1400178aa
imul eax, dword [rbp - 0x28], 3
mov eax, eax
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x30]
mov ecx, dword [rbp - 4]
cmp rax, rcx
jae 0x140017767
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x30]
movzx eax, byte [rax + rcx]
mov dword [rbp - 0x54], eax
jmp 0x140017771
xor eax, eax
mov dword [rbp - 0x54], eax
jmp 0x140017771
mov eax, dword [rbp - 0x54]
mov byte [rbp - 0x33], al
mov rax, qword [rbp - 0x30]
add rax, 1
mov ecx, dword [rbp - 4]
cmp rax, rcx
jae 0x1400177a0
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x30]
movzx eax, byte [rax + rcx + 1]
mov dword [rbp - 0x58], eax
jmp 0x1400177aa
xor eax, eax
mov dword [rbp - 0x58], eax
jmp 0x1400177aa
mov eax, dword [rbp - 0x58]
mov byte [rbp - 0x32], al
mov rax, qword [rbp - 0x30]
add rax, 2
mov ecx, dword [rbp - 4]
cmp rax, rcx
jae 0x1400177d9
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x30]
movzx eax, byte [rax + rcx + 2]
mov dword [rbp - 0x5c], eax
jmp 0x1400177e3
xor eax, eax
mov dword [rbp - 0x5c], eax
jmp 0x1400177e3
mov rcx, qword [rbp - 0x50]
mov eax, dword [rbp - 0x5c]
mov byte [rbp - 0x31], al
movzx eax, byte [rbp - 0x33]
shr eax, 2
mov byte [rbp - 0x37], al
movzx eax, byte [rbp - 0x33]
and eax, 3
shl eax, 4
movzx edx, byte [rbp - 0x32]
shr edx, 4
or eax, edx
mov byte [rbp - 0x36], al
movzx eax, byte [rbp - 0x32]
and eax, 0xf
movzx r8d, byte [rbp - 0x31]
shr r8d, 6
mov edx, eax
mov eax, r8d
lea eax, [rax + rdx*4]
mov byte [rbp - 0x35], al
mov al, byte [rbp - 0x31]
and al, 0x3f
mov byte [rbp - 0x34], al
movzx eax, byte [rbp - 0x37]
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov dl, byte [rax + rdx]
call fcn.140007590
jmp 0x140017848
mov rcx, qword [rbp - 0x50]
movzx eax, byte [rbp - 0x36]
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov dl, byte [rax + rdx]
call fcn.140007590
jmp 0x140017864
mov rcx, qword [rbp - 0x50]
movzx eax, byte [rbp - 0x35]
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov dl, byte [rax + rdx]
call fcn.140007590
jmp 0x140017880
mov rcx, qword [rbp - 0x50]
movzx eax, byte [rbp - 0x34]
lea rdx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov dl, byte [rax + rdx]
call fcn.140007590
jmp 0x14001789c
mov eax, dword [rbp - 0x28]
add eax, 1
mov dword [rbp - 0x28], eax
jmp 0x140017725
mov qword [rbp - 0x40], 0
mov rax, qword [rbp - 0x40]
cmp rax, qword [rbp - 0x18]
jae 0x1400178e9
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x20]
sub rdx, qword [rbp - 0x40]
sub rdx, 1
call fcn.140004f30
mov byte [rax], 0x3d
mov rax, qword [rbp - 0x40]
add rax, 1
mov qword [rbp - 0x40], rax
jmp 0x1400178b2
mov byte [rbp - 0x21], 1
test byte [rbp - 0x21], 1
jne 0x140017900
mov rcx, qword [rbp - 0x50]
call fcn.140004f90
mov rax, qword [rbp - 0x48]
add rsp, 0x90
pop rbp
ret