Function at 0x180104990
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], r8
push rsi
push rdi
push r13
sub rsp, 0x20
xor esi, esi
mov rdi, r8
mov qword [rsp + 0x40], rsi
mov r13, rcx
test r8, r8
je 0x180104e50
mov qword [rsp + 0x48], rbx
inc rdx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x10], r12
mov qword [rsp + 8], r14
mov qword [rsp], r15
mov qword [rsp + 0x58], rdx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx - 1]
cmp rdi, 3
jb 0x180104c4e
movzx ecx, byte [rdx]
shl eax, 8
or eax, ecx
movzx ecx, byte [rdx + 1]
shl eax, 8
or eax, ecx
mov ebx, eax
shr ebx, 0x12
and bl, 0x3f
movzx ecx, bl
mov edx, ecx
xor rdx, 0x3e
dec rdx
lea r8, [rcx - 0x3e]
shr rdx, 0x3f
lea r9, [rcx - 0x34]
shr r8, 0x3f
lea r11, [rcx - 0x1a]
shr r9, 0x3f
neg dl
shr r11, 0x3f
movzx r10d, dl
neg r8b
and r10b, 0xfb
not dl
or r10b, dl
movzx ecx, r8b
not cl
neg r9b
and r10b, cl
neg r11b
and r10b, 0x2f
lea ecx, [rbx - 4]
and cl, r8b
or r10b, cl
movzx ecx, r9b
not cl
and r10b, cl
lea ecx, [rbx + 0x47]
and cl, r9b
add bl, 0x41
or r10b, cl
and bl, r11b
movzx ecx, r11b
not cl
and r10b, cl
or r10b, bl
mov ebx, eax
mov byte [r13], r10b
shr ebx, 0xc
and bl, 0x3f
movzx ecx, bl
mov edx, ecx
xor rdx, 0x3e
dec rdx
lea r8, [rcx - 0x3e]
shr rdx, 0x3f
lea r9, [rcx - 0x34]
shr r8, 0x3f
lea r11, [rcx - 0x1a]
shr r9, 0x3f
neg dl
shr r11, 0x3f
neg r8b
movzx r10d, dl
and r10b, 0xfb
movzx ecx, r8b
not cl
neg r9b
not dl
neg r11b
or r10b, dl
and r10b, cl
lea ecx, [rbx - 4]
and cl, r8b
and r10b, 0x2f
or r10b, cl
movzx ecx, r9b
not cl
and r10b, cl
lea ecx, [rbx + 0x47]
add qword [rsp + 0x50], 0xfffffffffffffffd
lea r12, [r13 + 2]
and cl, r9b
lea r14, [r13 + 3]
or r10b, cl
mov r15d, eax
movzx ecx, r11b
shr r15d, 6
not cl
and al, 0x3f
and r10b, cl
add bl, 0x41
and bl, r11b
and r15b, 0x3f
or r10b, bl
movzx ecx, r15b
mov ebx, ecx
mov byte [r13 + 1], r10b
xor rbx, 0x3e
add r13, 4
dec rbx
lea rdi, [rcx - 0x3e]
shr rbx, 0x3f
lea rsi, [rcx - 0x34]
shr rdi, 0x3f
lea rbp, [rcx - 0x1a]
shr rsi, 0x3f
movzx ecx, al
neg bl
mov edx, ecx
shr rbp, 0x3f
xor rdx, 0x3e
neg dil
dec rdx
neg sil
lea r8, [rcx - 0x3e]
shr rdx, 0x3f
lea r9, [rcx - 0x34]
shr r8, 0x3f
lea r10, [rcx - 0x1a]
shr r9, 0x3f
neg dl
shr r10, 0x3f
neg r8b
neg r9b
neg r10b
movzx r11d, dl
and r11b, 0xfb
movzx ecx, r8b
not cl
not dl
or r11b, dl
neg bpl
and r11b, cl
lea ecx, [rax - 4]
and cl, r8b
and r11b, 0x2f
or r11b, cl
movzx ecx, r9b
not cl
and r11b, cl
lea ecx, [rax + 0x47]
and cl, r9b
add al, 0x41
or r11b, cl
and al, r10b
movzx ecx, r10b
not cl
and r11b, cl
movzx ecx, bl
or r11b, al
and cl, 0xfb
movzx eax, dil
not bl
or cl, bl
not al
and cl, al
lea eax, [r15 - 4]
and al, dil
and cl, 0x2f
or cl, al
mov rdx, qword [rsp + 0x58]
movzx eax, sil
not al
add rdx, 3
and cl, al
mov qword [rsp + 0x58], rdx
lea eax, [r15 + 0x47]
add r15b, 0x41
and al, sil
and r15b, bpl
mov rsi, qword [rsp + 0x40]
or cl, al
add rsi, 4
movzx eax, bpl
not al
mov qword [rsp + 0x40], rsi
and cl, al
or cl, r15b
mov byte [r12], cl
mov byte [r14], r11b
mov rdi, qword [rsp + 0x50]
test rdi, rdi
jne 0x1801049e0
jmp 0x180104e27
shl eax, 0x10
cmp rdi, 2
jne 0x180104c5f
movzx ecx, byte [rdx]
shl ecx, 8
or eax, ecx
mov ebx, eax
shr ebx, 0x12
and bl, 0x3f
movzx ecx, bl
mov edx, ecx
xor rdx, 0x3e
dec rdx
lea r8, [rcx - 0x3e]
shr rdx, 0x3f
lea r9, [rcx - 0x34]
shr r8, 0x3f
lea r11, [rcx - 0x1a]
shr r9, 0x3f
neg dl
shr r11, 0x3f
movzx r10d, dl
neg r8b
and r10b, 0xfb
not dl
or r10b, dl
movzx ecx, r8b
not cl
neg r9b
and r10b, cl
neg r11b
and r10b, 0x2f
lea ecx, [rbx - 4]
and cl, r8b
or r10b, cl
movzx ecx, r9b
not cl
and r10b, cl
lea ecx, [rbx + 0x47]
and cl, r9b
add bl, 0x41
or r10b, cl
and bl, r11b
movzx ecx, r11b
not cl
and r10b, cl
or r10b, bl
mov ebx, eax
mov byte [r13], r10b
shr ebx, 0xc
and bl, 0x3f
movzx ecx, bl
mov edx, ecx
xor rdx, 0x3e
dec rdx
lea r8, [rcx - 0x3e]
shr rdx, 0x3f
lea r9, [rcx - 0x34]
shr r8, 0x3f
lea r11, [rcx - 0x1a]
shr r9, 0x3f
neg dl
shr r11, 0x3f
neg r8b
neg r9b
movzx r10d, dl
movzx ecx, r8b
not cl
and r10b, 0xfb
neg r11b
not dl
or r10b, dl
and r10b, cl
lea ecx, [rbx - 4]
and cl, r8b
and r10b, 0x2f
or r10b, cl
movzx ecx, r9b
not cl
and r10b, cl
lea ecx, [rbx + 0x47]
and cl, r9b
or r10b, cl
movzx ecx, r11b
not cl
and r10b, cl
add bl, 0x41
and bl, r11b
or r10b, bl
mov byte [r13 + 1], r10b
cmp rdi, 1
jne 0x180104d7a
lea r11d, [rdi + 0x3c]
jmp 0x180104e16
shr eax, 6
and al, 0x3f
movzx r8d, al
mov ecx, r8d
xor rcx, 0x3e
dec rcx
shr rcx, 0x3f
neg cl
movzx edx, cl
lea rcx, [r8 - 0x3e]
shr rcx, 0x3f
mov r11d, edx
neg cl
not dl
movzx r9d, cl
and r11d, 0xfffffffb
lea rcx, [r8 - 0x34]
shr rcx, 0x3f
neg cl
movzx r10d, cl
lea rcx, [r8 - 0x1a]
shr rcx, 0x3f
neg cl
movzx r8d, cl
movzx ecx, dl
or r11d, ecx
movzx ecx, r9b
not cl
and ecx, 0x2f
and r11d, ecx
lea ecx, [rax - 4]
movzx edx, cl
movzx ecx, r10b
and edx, r9d
not cl
or r11d, edx
movzx edx, cl
and r11d, edx
lea ecx, [rax + 0x47]
movzx edx, cl
add al, 0x41
and edx, r10d
movzx ecx, r8b
not cl
or r11d, edx
movzx edx, cl
movzx ecx, al
and r11d, edx
and ecx, r8d
or r11d, ecx
mov byte [r13 + 2], r11b
mov byte [r13 + 3], 0x3d
add r13, 4
add rsi, 4
mov r15, qword [rsp]
mov rax, rsi
mov r14, qword [rsp + 8]
mov r12, qword [rsp + 0x10]
mov rbp, qword [rsp + 0x18]
mov rbx, qword [rsp + 0x48]
mov byte [r13], 0
add rsp, 0x20
pop r13
pop rdi
pop rsi
ret
mov byte [rcx], sil
mov rax, rsi
add rsp, 0x20
pop r13
pop rdi
pop rsi
ret