Function at 0x14003db30
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
lea rdi, [0x140083780]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test r8b, r8b
mov r12, rcx
mov rbp, rdx
cmovne rdi, rax
imul rbx, rdx, 4
jo 0x14003e16a
movabs rdx, 0x5555555555555556
mov rax, rbx
sar rbx, 0x3f
imul rdx
sub rdx, rbx
add rdx, 6
mov r13, rdx
js 0x14003df00
xor ecx, ecx
mov rdx, r13
call fcn.14000bac0
mov rcx, rbp
movabs rdx, 0x5555555555555556
mov r14, rax
mov rax, rbp
imul rdx
mov rax, rbp
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rcx, rax
mov rax, rbp
sub rax, rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x20], rax
jo 0x14003e174
cmp qword [rsp + 0x20], 0
je 0x14003e0d0
test r14, r14
lea rax, [rbp - 1]
setne byte [rsp + 0x37]
xor r15d, r15d
xor ebx, ebx
mov qword [rsp + 0x28], rax
jmp 0x14003dc03
cmp qword [rsp + 0x20], r13
je 0x14003dd5b
test rbx, rbx
js 0x14003ddc0
cmp rbx, rbp
jge 0x14003ddc0
movzx esi, byte [r12 + rbx]
shl esi, 0x10
add rbx, 1
jo 0x14003e160
test rbx, rbx
js 0x14003de00
cmp rbx, rbp
jge 0x14003de00
movzx r13d, byte [r12 + rbx]
shl r13d, 8
or r13d, esi
add rbx, 1
jo 0x14003e156
test rbx, rbx
js 0x14003dde8
cmp rbx, rbp
jge 0x14003dde8
movzx esi, byte [r12 + rbx]
or esi, r13d
add rbx, 1
mov r13, rbx
jo 0x14003ddd8
test r15, r15
js 0x14003dda0
cmp byte [rsp + 0x37], 0
je 0x14003dda0
mov rdx, qword [r14]
cmp rdx, r15
jle 0x14003ddaf
mov eax, esi
shr eax, 0x12
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
add r15, 1
jo 0x14003e14c
mov rdx, qword [r14]
test r15, r15
js 0x14003dcbb
cmp r15, rdx
jl 0x14003dcc7
sub rdx, 1
mov rcx, r15
call fcn.14000d860
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
add r15, 1
jo 0x14003e142
mov rdx, qword [r14]
test r15, r15
js 0x14003dcef
cmp r15, rdx
jl 0x14003dcfb
sub rdx, 1
mov rcx, r15
call fcn.14000d860
mov eax, esi
shr eax, 6
and eax, 0x3f
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
add r15, 1
jo 0x14003e138
mov rdx, qword [r14]
test r15, r15
js 0x14003dd23
cmp r15, rdx
jl 0x14003dd2f
sub rdx, 1
mov rcx, r15
call fcn.14000d860
and esi, 0x3f
mov r9, r15
movzx eax, byte [rdi + rsi]
add r9, 1
mov byte [r14 + r15 + 0x10], al
mov r15, r9
jno 0x14003dbf8
call fcn.1400091f0
cmp qword [rsp + 0x20], r13
jne 0x14003dc03
cmp qword [rsp + 0x38], 1
je 0x14003de18
cmp qword [rsp + 0x38], 2
je 0x14003df40
test r15, r15
js 0x14003df20
mov rdx, r15
mov rcx, r14
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14000bac0
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x14003ddb3
mov rdx, qword [r14]
sub rdx, 1
mov rcx, r15
call fcn.14000d860
jmp 0x14003dc96
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d860
jmp 0x14003dc15
call fcn.1400091f0
jmp 0x14003dc76
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d860
jmp 0x14003dc61
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d860
jmp 0x14003dc39
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x14003e0b8
cmp rax, rbp
jge 0x14003e0b8
movzx esi, byte [r12 + rbx]
shl esi, 0x10
add rbx, 1
jo 0x14003e188
test r15, r15
js 0x14003e068
test r14, r14
je 0x14003e068
mov rdx, qword [r14]
cmp rdx, r15
jle 0x14003e077
mov eax, esi
mov rbx, r15
shr eax, 0x12
add rbx, 1
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
jo 0x14003e19c
mov rdx, qword [r14]
test rbx, rbx
js 0x14003de87
cmp rbx, rdx
jl 0x14003de93
sub rdx, 1
mov rcx, rbx
call fcn.14000d860
shr esi, 0xc
and esi, 0x30
movzx eax, byte [rdi + rsi]
mov byte [r14 + rbx + 0x10], al
add rbx, 1
jo 0x14003e192
mov rdx, qword [r14]
test rbx, rbx
js 0x14003deb9
cmp rbx, rdx
jl 0x14003dec5
sub rdx, 1
mov rcx, rbx
call fcn.14000d860
mov byte [r14 + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003e17e
mov rdx, qword [r14]
test rbx, rbx
js 0x14003dee6
cmp rbx, rdx
jl 0x14003e048
sub rdx, 1
mov rcx, rbx
call fcn.14000d860
jmp 0x14003e048
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r13
call fcn.14000d6c0
jmp 0x14003db89
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.14000d6c0
jmp 0x14003dd7c
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x14003e112
cmp rax, rbp
jge 0x14003e112
movzx esi, byte [r12 + rbx]
shl esi, 0x10
add rbx, 1
jno 0x14003df6a
call fcn.1400091f0
test rbx, rbx
js 0x14003e0ff
cmp rbp, rbx
jle 0x14003e0ff
movzx eax, byte [r12 + rbx]
shl eax, 8
or esi, eax
add rbx, 1
jo 0x14003e1c4
test r14, r14
je 0x14003e090
test r15, r15
js 0x14003e090
mov rdx, qword [r14]
cmp rdx, r15
jle 0x14003e09f
mov eax, esi
mov rbx, r15
shr eax, 0x12
add rbx, 1
movzx eax, byte [rdi + rax]
mov byte [r14 + r15 + 0x10], al
jo 0x14003e1ba
mov rax, qword [r14]
test rbx, rbx
js 0x14003dfd6
cmp rbx, rax
jl 0x14003dfe2
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d860
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rdi + rax]
mov byte [r14 + rbx + 0x10], al
add rbx, 1
jo 0x14003e1b0
mov rax, qword [r14]
test rbx, rbx
js 0x14003e00a
cmp rbx, rax
jl 0x14003e016
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d860
shr esi, 6
and esi, 0x3c
movzx eax, byte [rdi + rsi]
mov byte [r14 + rbx + 0x10], al
add rbx, 1
jo 0x14003e1a6
mov rax, qword [r14]
test rbx, rbx
js 0x14003e03c
cmp rbx, rax
jl 0x14003e048
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d860
mov byte [r14 + rbx + 0x10], 0x3d
add rbx, 1
mov r15, rbx
jno 0x14003dd73
call fcn.1400091f0
jmp 0x14003dd73
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x14003e07b
mov rdx, qword [r14]
sub rdx, 1
mov rcx, r15
call fcn.14000d860
jmp 0x14003de5f
mov rdx, 0xffffffffffffffff
test r14, r14
je 0x14003e0a3
mov rdx, qword [r14]
sub rdx, 1
mov rcx, r15
call fcn.14000d860
jmp 0x14003dfae
xor r15d, r15d
xor ebx, ebx
nop dword [rax]
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.14000d860
jmp 0x14003de2f
mov rax, qword [rsp + 0x38]
cmp rax, 1
je 0x14003e123
xor r15d, r15d
cmp rax, 2
jne 0x14003dd7c
test rbp, rbp
jle 0x14003e110
movzx esi, byte [r12]
mov ebx, 1
shl esi, 0x10
jmp 0x14003df6a
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.14000d860
jmp 0x14003df7c
xor ebx, ebx
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.14000d860
jmp 0x14003df57
test rbp, rbp
jle 0x14003e0b0
movzx esi, byte [r12]
xor r15d, r15d
shl esi, 0x10
jmp 0x14003de41
call fcn.1400091f0
jmp 0x14003dd16
call fcn.1400091f0
jmp 0x14003dce2
call fcn.1400091f0
jmp 0x14003dcae
call fcn.1400091f0
jmp 0x14003dc4f
call fcn.1400091f0
jmp 0x14003dc27
call fcn.1400091f0
jmp 0x14003db65
call fcn.1400091f0
jmp 0x14003dbd0
call fcn.1400091f0
jmp 0x14003ded5
call fcn.1400091f0
jmp 0x14003de41
call fcn.1400091f0
jmp 0x14003deac
call fcn.1400091f0
jmp 0x14003de7a
call fcn.1400091f0
jmp 0x14003e02f
call fcn.1400091f0
jmp 0x14003dffd
call fcn.1400091f0
jmp 0x14003dfc9
call fcn.1400091f0
jmp 0x14003df90