Function at 0x140010580
Capabilities:
Encode data using base64

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x40], rcx
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x28], rax
call fcn.140005900
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x48]
mov ecx, 3
xor edx, edx
div rcx
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
mov rcx, rax
add rcx, 0xffffffffffffffff
mov qword [rsp + 0x38], rcx
cmp rax, 0
je 0x1400106d1
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movsx ecx, byte [rcx]
and ecx, 0xfc
shr ecx, 2
movsxd rcx, ecx
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x20], rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movsx ecx, byte [rcx]
and ecx, 3
shl ecx, 4
mov rdx, qword [rsp + 0x28]
movsx edx, byte [rdx + 1]
and edx, 0xf0
shr edx, 4
add ecx, edx
mov ecx, ecx
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x20], rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movsx ecx, byte [rcx + 2]
and ecx, 0xc0
shr ecx, 6
mov rdx, qword [rsp + 0x28]
movsx edx, byte [rdx + 1]
and edx, 0xf
shl edx, 2
add ecx, edx
mov ecx, ecx
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x20], rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movsx ecx, byte [rcx + 2]
and ecx, 0x3f
mov ecx, ecx
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x20], rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x28]
add rax, 3
mov qword [rsp + 0x28], rax
jmp 0x1400105cc
mov rcx, qword [rsp + 0x48]
movabs rdx, 0xaaaaaaaaaaaaaaab
mov rax, rcx
mul rdx
shr rdx, 1
lea rax, [rdx + rdx*2]
sub rcx, rax
je 0x14001084a
jmp 0x1400106f8
mov rax, rcx
sub rax, 1
je 0x1400107c6
jmp 0x140010707
sub rcx, 2
jne 0x14001084c
jmp 0x140010713
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movsx ecx, byte [rcx]
and ecx, 0xfc
shr ecx, 2
movsxd rcx, ecx
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x20], rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movsx ecx, byte [rcx]
and ecx, 3
shl ecx, 4
mov rdx, qword [rsp + 0x28]
movsx edx, byte [rdx + 1]
and edx, 0xf0
shr edx, 4
add ecx, edx
mov ecx, ecx
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x20], rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movsx ecx, byte [rcx + 1]
and ecx, 0xf
shl ecx, 2
mov ecx, ecx
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x20], rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x20]
mov rcx, rax
add rcx, 1
mov qword [rsp + 0x20], rcx
mov byte [rax], 0x3d
jmp 0x14001084c
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movsx ecx, byte [rcx]
and ecx, 0xfc
shr ecx, 2
movsxd rcx, ecx
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x20], rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movsx ecx, byte [rcx]
and ecx, 3
shl ecx, 4
mov ecx, ecx
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
add rdx, 1
mov qword [rsp + 0x20], rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x20]
mov rcx, rax
add rcx, 1
mov qword [rsp + 0x20], rcx
mov byte [rax], 0x3d
mov rax, qword [rsp + 0x20]
mov rcx, rax
add rcx, 1
mov qword [rsp + 0x20], rcx
mov byte [rax], 0x3d
jmp 0x14001084c
jmp 0x14001084c
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x40]
sub rax, rcx
add rsp, 0x58
ret