Function at 0x14003a810
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rax, [0x14006d660]
lea r13, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov r12, rcx
cmove r13, rax
xor eax, eax
test rcx, rcx
je 0x14003a841
mov rax, qword [rcx]
imul rbx, rax, 4
jo 0x14003adfa
movabs rax, 0x5555555555555556
imul rbx
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
mov rbx, rdx
add rbx, 6
js 0x14003ab60
mov rdx, rbx
xor ecx, ecx
xor esi, esi
call fcn.14000c2a0
mov rdi, rax
test r12, r12
je 0x14003aa9e
movabs rax, 0x5555555555555556
mov rcx, qword [r12]
imul rcx
mov rax, rcx
mov r15, rcx
sar rax, 0x3f
sub rdx, rax
mov rax, rcx
lea rdx, [rdx + rdx*2]
sub rax, rdx
sub r15, rax
mov qword [rsp + 0x28], r15
jo 0x14003aac0
test r15, r15
je 0x14003aad2
xor esi, esi
xor ebx, ebx
jmp 0x14003aa35
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.14000e210
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 0x10
add rbx, 1
jo 0x14003adc8
mov rdx, qword [r12]
test rbx, rbx
js 0x14003a8fd
cmp rbx, rdx
jl 0x14003a909
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
movzx r14d, byte [r12 + rbx + 0x10]
shl r14d, 8
or r14d, ebp
add rbx, 1
jo 0x14003add2
mov rdx, qword [r12]
test rbx, rbx
js 0x14003a92e
cmp rbx, rdx
jl 0x14003a93a
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
movzx ebp, byte [r12 + rbx + 0x10]
or ebp, r14d
add rbx, 1
mov r14, rbx
jo 0x14003ab40
test rsi, rsi
js 0x14003ab18
test rdi, rdi
je 0x14003ab50
mov rdx, qword [rdi]
cmp rsi, rdx
jl 0x14003a976
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003ade6
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003a99c
cmp rsi, rdx
jl 0x14003a9a8
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003adf0
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003a9d1
cmp rsi, rdx
jl 0x14003a9dd
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 6
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003addc
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003aa06
cmp rsi, rdx
jl 0x14003aa12
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
and ebp, 0x3f
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
mov rbp, rsi
jo 0x14003ab30
mov rcx, qword [r12]
cmp r14, r15
je 0x14003aa50
test rbx, rbx
js 0x14003a8d0
cmp rcx, rbx
jg 0x14003a8dc
jmp 0x14003a8d0
movabs rax, 0x5555555555555556
imul rcx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
mov rdx, rcx
sub rdx, rax
cmp rdx, 1
je 0x14003ab80
cmp rdx, 2
je 0x14003ac70
test rsi, rsi
jns 0x14003aa9e
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000e070
mov rdx, rsi
mov rcx, rdi
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14000c2a0
call fcn.140008da0
mov rcx, qword [r12]
test r15, r15
jne 0x14003a8c6
movabs rax, 0x5555555555555556
imul rcx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rcx, rax
mov rdx, rcx
cmp rcx, 1
je 0x14003ada8
xor esi, esi
cmp rdx, 2
jne 0x14003aa9e
mov qword [rsp + 0x28], 0
jmp 0x14003ac86
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003a96e
mov rdx, qword [rdi]
jmp 0x14003a96a
call fcn.140008da0
jmp 0x14003aa2c
call fcn.140008da0
jmp 0x14003a950
mov rdx, 0xffffffffffffffff
jmp 0x14003a96e
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000e070
jmp 0x14003a86f
test r15, r15
js 0x14003ab8a
cmp rcx, r15
jg 0x14003ab96
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000e210
movzx ebx, byte [r12 + r15 + 0x10]
shl ebx, 0x10
add r15, 1
jo 0x14003ae18
test rbp, rbp
js 0x14003ada0
mov rax, qword [rdi]
cmp rax, rsi
jg 0x14003abc6
lea rdx, [rax - 1]
mov rcx, rsi
call fcn.14000e210
mov eax, ebx
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003ae0e
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003abec
cmp rsi, rdx
jl 0x14003abf8
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
shr ebx, 0xc
and ebx, 0x30
movzx eax, byte [r13 + rbx]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003ae04
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003ac1f
cmp rsi, rdx
jl 0x14003ac2b
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jo 0x14003ad79
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003ac47
cmp rsi, rdx
jl 0x14003ac53
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jno 0x14003aa85
call fcn.140008da0
jmp 0x14003aa85
test r15, r15
js 0x14003ac7a
cmp rcx, r15
jg 0x14003ac86
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000e210
mov rax, qword [rsp + 0x28]
movzx r14d, byte [r12 + rax + 0x10]
shl r14d, 0x10
add rax, 1
mov rbx, rax
jo 0x14003ae40
mov rdx, qword [r12]
test rbx, rbx
js 0x14003acb0
cmp rbx, rdx
jl 0x14003acbc
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 8
or ebp, r14d
add rbx, 1
jo 0x14003ae36
test rsi, rsi
js 0x14003ad88
test rdi, rdi
je 0x14003ad88
mov rdx, qword [rdi]
cmp rdx, rsi
jg 0x14003acf8
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003ae2c
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003ad1e
cmp rsi, rdx
jl 0x14003ad2a
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003ae22
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003ad53
cmp rsi, rdx
jl 0x14003ad5f
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jno 0x14003ac3a
call fcn.140008da0
jmp 0x14003ac3a
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003acf0
mov rdx, qword [rdi]
jmp 0x14003acec
mov rax, qword [rdi]
jmp 0x14003abba
movzx ebx, byte [r12 + 0x10]
xor esi, esi
mov rdx, 0xffffffffffffffff
shl ebx, 0x10
test rdi, rdi
je 0x14003abbe
jmp 0x14003abb2
call fcn.140008da0
jmp 0x14003a8ef
call fcn.140008da0
jmp 0x14003a920
call fcn.140008da0
jmp 0x14003a9f9
call fcn.140008da0
jmp 0x14003a98f
call fcn.140008da0
jmp 0x14003a9c4
call fcn.140008da0
jmp 0x14003a84b
call fcn.140008da0
jmp 0x14003ac12
call fcn.140008da0
jmp 0x14003abdf
call fcn.140008da0
jmp 0x14003aba9
call fcn.140008da0
jmp 0x14003ad46
call fcn.140008da0
jmp 0x14003ad11
call fcn.140008da0
jmp 0x14003acd2
call fcn.140008da0
jmp 0x14003aca2