Function at 0x14003d020
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, [0x140075f00]
lea r13, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov r12, rcx
cmove r13, rax
xor eax, eax
test rcx, rcx
je 0x14003d051
mov rax, qword [rcx]
imul rbx, rax, 4
jo 0x14003d60a
movabs rax, 0x5555555555555556
imul rbx
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
mov rbx, rdx
add rbx, 6
js 0x14003d370
mov rdx, rbx
xor ecx, ecx
xor esi, esi
call fcn.14000c4f0
mov rdi, rax
test r12, r12
je 0x14003d2ae
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 0x14003d2d0
test r15, r15
je 0x14003d2e2
xor esi, esi
xor ebx, ebx
jmp 0x14003d245
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.14000d730
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 0x10
add rbx, 1
jo 0x14003d5d8
mov rdx, qword [r12]
test rbx, rbx
js 0x14003d10d
cmp rbx, rdx
jl 0x14003d119
sub rdx, 1
mov rcx, rbx
call fcn.14000d730
movzx r14d, byte [r12 + rbx + 0x10]
shl r14d, 8
or r14d, ebp
add rbx, 1
jo 0x14003d5e2
mov rdx, qword [r12]
test rbx, rbx
js 0x14003d13e
cmp rbx, rdx
jl 0x14003d14a
sub rdx, 1
mov rcx, rbx
call fcn.14000d730
movzx ebp, byte [r12 + rbx + 0x10]
or ebp, r14d
add rbx, 1
mov r14, rbx
jo 0x14003d350
test rsi, rsi
js 0x14003d328
test rdi, rdi
je 0x14003d360
mov rdx, qword [rdi]
cmp rsi, rdx
jl 0x14003d186
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d5f6
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d1ac
cmp rsi, rdx
jl 0x14003d1b8
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d600
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d1e1
cmp rsi, rdx
jl 0x14003d1ed
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
mov eax, ebp
shr eax, 6
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d5ec
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d216
cmp rsi, rdx
jl 0x14003d222
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
and ebp, 0x3f
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
mov rbp, rsi
jo 0x14003d340
mov rcx, qword [r12]
cmp r14, r15
je 0x14003d260
test rbx, rbx
js 0x14003d0e0
cmp rcx, rbx
jg 0x14003d0ec
jmp 0x14003d0e0
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 0x14003d390
cmp rdx, 2
je 0x14003d480
test rsi, rsi
jns 0x14003d2ae
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000d590
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.14000c4f0
call fcn.140008e90
mov rcx, qword [r12]
test r15, r15
jne 0x14003d0d6
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 0x14003d5b8
xor esi, esi
cmp rdx, 2
jne 0x14003d2ae
mov qword [rsp + 0x28], 0
jmp 0x14003d496
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003d17e
mov rdx, qword [rdi]
jmp 0x14003d17a
call fcn.140008e90
jmp 0x14003d23c
call fcn.140008e90
jmp 0x14003d160
mov rdx, 0xffffffffffffffff
jmp 0x14003d17e
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d590
jmp 0x14003d07f
test r15, r15
js 0x14003d39a
cmp rcx, r15
jg 0x14003d3a6
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000d730
movzx ebx, byte [r12 + r15 + 0x10]
shl ebx, 0x10
add r15, 1
jo 0x14003d628
test rbp, rbp
js 0x14003d5b0
mov rax, qword [rdi]
cmp rax, rsi
jg 0x14003d3d6
lea rdx, [rax - 1]
mov rcx, rsi
call fcn.14000d730
mov eax, ebx
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d61e
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d3fc
cmp rsi, rdx
jl 0x14003d408
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
shr ebx, 0xc
and ebx, 0x30
movzx eax, byte [r13 + rbx]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d614
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d42f
cmp rsi, rdx
jl 0x14003d43b
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jo 0x14003d589
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d457
cmp rsi, rdx
jl 0x14003d463
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jno 0x14003d295
call fcn.140008e90
jmp 0x14003d295
test r15, r15
js 0x14003d48a
cmp rcx, r15
jg 0x14003d496
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000d730
mov rax, qword [rsp + 0x28]
movzx r14d, byte [r12 + rax + 0x10]
shl r14d, 0x10
add rax, 1
mov rbx, rax
jo 0x14003d650
mov rdx, qword [r12]
test rbx, rbx
js 0x14003d4c0
cmp rbx, rdx
jl 0x14003d4cc
sub rdx, 1
mov rcx, rbx
call fcn.14000d730
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 8
or ebp, r14d
add rbx, 1
jo 0x14003d646
test rsi, rsi
js 0x14003d598
test rdi, rdi
je 0x14003d598
mov rdx, qword [rdi]
cmp rdx, rsi
jg 0x14003d508
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d63c
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d52e
cmp rsi, rdx
jl 0x14003d53a
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d632
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d563
cmp rsi, rdx
jl 0x14003d56f
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jno 0x14003d44a
call fcn.140008e90
jmp 0x14003d44a
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003d500
mov rdx, qword [rdi]
jmp 0x14003d4fc
mov rax, qword [rdi]
jmp 0x14003d3ca
movzx ebx, byte [r12 + 0x10]
xor esi, esi
mov rdx, 0xffffffffffffffff
shl ebx, 0x10
test rdi, rdi
je 0x14003d3ce
jmp 0x14003d3c2
call fcn.140008e90
jmp 0x14003d0ff
call fcn.140008e90
jmp 0x14003d130
call fcn.140008e90
jmp 0x14003d209
call fcn.140008e90
jmp 0x14003d19f
call fcn.140008e90
jmp 0x14003d1d4
call fcn.140008e90
jmp 0x14003d05b
call fcn.140008e90
jmp 0x14003d422
call fcn.140008e90
jmp 0x14003d3ef
call fcn.140008e90
jmp 0x14003d3b9
call fcn.140008e90
jmp 0x14003d556
call fcn.140008e90
jmp 0x14003d521
call fcn.140008e90
jmp 0x14003d4e2
call fcn.140008e90
jmp 0x14003d4b2