Function at 0x14003e290
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, [0x14007ff00]
lea r13, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov r12, rcx
cmove r13, rax
xor eax, eax
test rcx, rcx
je 0x14003e2c1
mov rax, qword [rcx]
imul rbx, rax, 4
jo 0x14003e87a
movabs rax, 0x5555555555555556
imul rbx
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
mov rbx, rdx
add rbx, 6
js 0x14003e5e0
mov rdx, rbx
xor ecx, ecx
xor esi, esi
call fcn.14000c790
mov rdi, rax
test r12, r12
je 0x14003e51e
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 0x14003e540
test r15, r15
je 0x14003e552
xor esi, esi
xor ebx, ebx
jmp 0x14003e4b5
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.14000d9c0
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 0x10
add rbx, 1
jo 0x14003e848
mov rdx, qword [r12]
test rbx, rbx
js 0x14003e37d
cmp rbx, rdx
jl 0x14003e389
sub rdx, 1
mov rcx, rbx
call fcn.14000d9c0
movzx r14d, byte [r12 + rbx + 0x10]
shl r14d, 8
or r14d, ebp
add rbx, 1
jo 0x14003e852
mov rdx, qword [r12]
test rbx, rbx
js 0x14003e3ae
cmp rbx, rdx
jl 0x14003e3ba
sub rdx, 1
mov rcx, rbx
call fcn.14000d9c0
movzx ebp, byte [r12 + rbx + 0x10]
or ebp, r14d
add rbx, 1
mov r14, rbx
jo 0x14003e5c0
test rsi, rsi
js 0x14003e598
test rdi, rdi
je 0x14003e5d0
mov rdx, qword [rdi]
cmp rsi, rdx
jl 0x14003e3f6
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003e866
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003e41c
cmp rsi, rdx
jl 0x14003e428
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003e870
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003e451
cmp rsi, rdx
jl 0x14003e45d
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
mov eax, ebp
shr eax, 6
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003e85c
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003e486
cmp rsi, rdx
jl 0x14003e492
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
and ebp, 0x3f
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
mov rbp, rsi
jo 0x14003e5b0
mov rcx, qword [r12]
cmp r14, r15
je 0x14003e4d0
test rbx, rbx
js 0x14003e350
cmp rcx, rbx
jg 0x14003e35c
jmp 0x14003e350
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 0x14003e600
cmp rdx, 2
je 0x14003e6f0
test rsi, rsi
jns 0x14003e51e
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000d820
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.14000c790
call fcn.140009130
mov rcx, qword [r12]
test r15, r15
jne 0x14003e346
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 0x14003e828
xor esi, esi
cmp rdx, 2
jne 0x14003e51e
mov qword [rsp + 0x28], 0
jmp 0x14003e706
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003e3ee
mov rdx, qword [rdi]
jmp 0x14003e3ea
call fcn.140009130
jmp 0x14003e4ac
call fcn.140009130
jmp 0x14003e3d0
mov rdx, 0xffffffffffffffff
jmp 0x14003e3ee
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d820
jmp 0x14003e2ef
test r15, r15
js 0x14003e60a
cmp rcx, r15
jg 0x14003e616
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000d9c0
movzx ebx, byte [r12 + r15 + 0x10]
shl ebx, 0x10
add r15, 1
jo 0x14003e898
test rbp, rbp
js 0x14003e820
mov rax, qword [rdi]
cmp rax, rsi
jg 0x14003e646
lea rdx, [rax - 1]
mov rcx, rsi
call fcn.14000d9c0
mov eax, ebx
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003e88e
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003e66c
cmp rsi, rdx
jl 0x14003e678
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
shr ebx, 0xc
and ebx, 0x30
movzx eax, byte [r13 + rbx]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003e884
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003e69f
cmp rsi, rdx
jl 0x14003e6ab
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jo 0x14003e7f9
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003e6c7
cmp rsi, rdx
jl 0x14003e6d3
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jno 0x14003e505
call fcn.140009130
jmp 0x14003e505
test r15, r15
js 0x14003e6fa
cmp rcx, r15
jg 0x14003e706
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000d9c0
mov rax, qword [rsp + 0x28]
movzx r14d, byte [r12 + rax + 0x10]
shl r14d, 0x10
add rax, 1
mov rbx, rax
jo 0x14003e8c0
mov rdx, qword [r12]
test rbx, rbx
js 0x14003e730
cmp rbx, rdx
jl 0x14003e73c
sub rdx, 1
mov rcx, rbx
call fcn.14000d9c0
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 8
or ebp, r14d
add rbx, 1
jo 0x14003e8b6
test rsi, rsi
js 0x14003e808
test rdi, rdi
je 0x14003e808
mov rdx, qword [rdi]
cmp rdx, rsi
jg 0x14003e778
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003e8ac
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003e79e
cmp rsi, rdx
jl 0x14003e7aa
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003e8a2
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003e7d3
cmp rsi, rdx
jl 0x14003e7df
sub rdx, 1
mov rcx, rsi
call fcn.14000d9c0
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jno 0x14003e6ba
call fcn.140009130
jmp 0x14003e6ba
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003e770
mov rdx, qword [rdi]
jmp 0x14003e76c
mov rax, qword [rdi]
jmp 0x14003e63a
movzx ebx, byte [r12 + 0x10]
xor esi, esi
mov rdx, 0xffffffffffffffff
shl ebx, 0x10
test rdi, rdi
je 0x14003e63e
jmp 0x14003e632
call fcn.140009130
jmp 0x14003e36f
call fcn.140009130
jmp 0x14003e3a0
call fcn.140009130
jmp 0x14003e479
call fcn.140009130
jmp 0x14003e40f
call fcn.140009130
jmp 0x14003e444
call fcn.140009130
jmp 0x14003e2cb
call fcn.140009130
jmp 0x14003e692
call fcn.140009130
jmp 0x14003e65f
call fcn.140009130
jmp 0x14003e629
call fcn.140009130
jmp 0x14003e7c6
call fcn.140009130
jmp 0x14003e791
call fcn.140009130
jmp 0x14003e752
call fcn.140009130
jmp 0x14003e722