Function at 0x14003d4b0
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 rbp, [0x140083780]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov rdi, rcx
cmovne rbp, rax
test rcx, rcx
je 0x14003d988
imul rbx, qword [rcx], 4
jo 0x14003db09
movabs rdx, 0x5555555555555556
mov rax, rbx
sar rbx, 0x3f
imul rdx
sub rdx, rbx
lea r12, [rdx + 6]
test r12, r12
js 0x14003d968
xor ecx, ecx
mov rdx, r12
call fcn.14000bac0
mov rcx, qword [rdi]
movabs rdx, 0x5555555555555556
mov r13, rax
mov rax, rcx
mov r15, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
mov rax, rcx
lea rdx, [rdx + rdx*2]
sub rax, rdx
sub r15, rax
jo 0x14003dafc
test r15, r15
je 0x14003dab9
test r13, r13
setne byte [rsp + 0x2f]
xor r12d, r12d
xor ebx, ebx
jmp 0x14003d6c4
cmp rcx, rbx
jle 0x14003d6cd
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
jo 0x14003da4b
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003d598
cmp rbx, rdx
jl 0x14003d5a4
sub rdx, 1
mov rcx, rbx
call fcn.14000d860
movzx r14d, byte [rdi + rbx + 0x10]
shl r14d, 8
or r14d, esi
add rbx, 1
jo 0x14003da73
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003d5c8
cmp rbx, rdx
jl 0x14003d5d4
sub rdx, 1
mov rcx, rbx
call fcn.14000d860
movzx esi, byte [rdi + rbx + 0x10]
or esi, r14d
add rbx, 1
mov r14, rbx
jo 0x14003d708
test r12, r12
js 0x14003d6e0
cmp byte [rsp + 0x2f], 0
je 0x14003d6e0
mov rdx, qword [r13]
cmp r12, rdx
jge 0x14003d6f0
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x14003da69
mov rdx, qword [r13]
test r12, r12
js 0x14003d631
cmp r12, rdx
jl 0x14003d63d
sub rdx, 1
mov rcx, r12
call fcn.14000d860
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x14003da5f
mov rdx, qword [r13]
test r12, r12
js 0x14003d667
cmp r12, rdx
jl 0x14003d673
sub rdx, 1
mov rcx, r12
call fcn.14000d860
mov eax, esi
shr eax, 6
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x14003da55
mov rdx, qword [r13]
test r12, r12
js 0x14003d69d
cmp r12, rdx
jl 0x14003d6a9
sub rdx, 1
mov rcx, r12
call fcn.14000d860
and esi, 0x3f
movzx eax, byte [rbp + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x14003d718
cmp r15, r14
je 0x14003d722
mov rcx, qword [rdi]
test rbx, rbx
jns 0x14003d570
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.14000d860
jmp 0x14003d579
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x14003d6f4
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call fcn.14000d860
jmp 0x14003d60a
call fcn.1400091f0
jmp 0x14003d5e9
call fcn.1400091f0
cmp r15, r14
jne 0x14003d6c1
movabs rdx, 0x5555555555555556
mov r8, qword [rdi]
mov rax, r8
imul rdx
mov rax, r8
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
mov rdx, r8
sub rdx, rax
cmp rdx, 1
je 0x14003d860
cmp rdx, 2
jne 0x14003d945
test r15, r15
js 0x14003d9c0
cmp r15, r8
jge 0x14003d9c0
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
mov r14, rbx
jo 0x14003da41
mov rcx, qword [rdi]
test rbx, rbx
js 0x14003d791
cmp rcx, r14
jg 0x14003d79d
lea rdx, [rcx - 1]
mov rcx, r14
call fcn.14000d860
movzx ebx, byte [rdi + r14 + 0x10]
shl ebx, 8
or ebx, esi
add r14, 1
jo 0x14003da91
test r13, r13
je 0x14003da20
test r12, r12
js 0x14003da20
mov rdx, qword [r13]
cmp r12, rdx
jge 0x14003da30
mov eax, ebx
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x14003da87
mov rdx, qword [r13]
test r12, r12
js 0x14003d7f8
cmp r12, rdx
jl 0x14003d804
sub rdx, 1
mov rcx, r12
call fcn.14000d860
mov eax, ebx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x14003da7d
mov rdx, qword [r13]
test r12, r12
js 0x14003d82e
cmp r12, rdx
jl 0x14003d83a
sub rdx, 1
mov rcx, r12
call fcn.14000d860
shr ebx, 6
and ebx, 0x3c
movzx eax, byte [rbp + rbx]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jno 0x14003d91a
call fcn.1400091f0
jmp 0x14003d91a
test r15, r15
js 0x14003d9e0
cmp r15, r8
jge 0x14003d9e0
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
jo 0x14003daaf
test r13, r13
je 0x14003d9f8
test r12, r12
js 0x14003d9f8
mov rdx, qword [r13]
cmp rdx, r12
jle 0x14003da08
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x14003daa5
mov rdx, qword [r13]
test r12, r12
js 0x14003d8ca
cmp r12, rdx
jl 0x14003d8d6
sub rdx, 1
mov rcx, r12
call fcn.14000d860
shr esi, 0xc
and esi, 0x30
movzx eax, byte [rbp + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x14003da9b
mov rdx, qword [r13]
test r12, r12
js 0x14003d8fe
cmp r12, rdx
jl 0x14003d90a
sub rdx, 1
mov rcx, r12
call fcn.14000d860
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jo 0x14003d854
mov rdx, qword [r13]
test r12, r12
js 0x14003d928
cmp r12, rdx
jl 0x14003d934
sub rdx, 1
mov rcx, r12
call fcn.14000d860
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jno 0x14003d945
call fcn.1400091f0
test r12, r12
js 0x14003d9a0
mov rdx, r12
mov rcx, r13
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14000bac0
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call fcn.14000d6c0
jmp 0x14003d50e
mov edx, 6
xor ecx, ecx
xor r12d, r12d
call fcn.14000bac0
mov r13, rax
jmp 0x14003d94a
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call fcn.14000d6c0
jmp 0x14003d94a
xor ebx, ebx
nop dword [rax + rax]
lea rdx, [r8 - 1]
mov rcx, rbx
call fcn.14000d860
jmp 0x14003d76f
test rcx, rcx
jg 0x14003db13
xor ebx, ebx
xor r12d, r12d
nop
lea rdx, [r8 - 1]
mov rcx, rbx
call fcn.14000d860
jmp 0x14003d872
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x14003da0c
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call fcn.14000d860
jmp 0x14003d8a3
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x14003da34
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call fcn.14000d860
jmp 0x14003d7d1
call fcn.1400091f0
jmp 0x14003d784
call fcn.1400091f0
jmp 0x14003d58b
call fcn.1400091f0
jmp 0x14003d68f
call fcn.1400091f0
jmp 0x14003d659
call fcn.1400091f0
jmp 0x14003d623
call fcn.1400091f0
jmp 0x14003d5bb
call fcn.1400091f0
jmp 0x14003d820
call fcn.1400091f0
jmp 0x14003d7ea
call fcn.1400091f0
jmp 0x14003d7b2
call fcn.1400091f0
jmp 0x14003d8f0
call fcn.1400091f0
jmp 0x14003d8bc
call fcn.1400091f0
jmp 0x14003d884
mov rax, rcx
mov r9d, 3
mov r8, rcx
cqo
idiv r9
cmp rdx, 1
je 0x14003d9d1
xor r12d, r12d
cmp rdx, 2
jne 0x14003d94a
test rcx, rcx
jle 0x14003d9b6
movzx esi, byte [rdi + 0x10]
mov r14d, 1
shl esi, 0x10
jmp 0x14003d78c
call fcn.1400091f0
mov rcx, qword [rdi]
jmp 0x14003d54e
call fcn.1400091f0
jmp 0x14003d4ea
movzx esi, byte [rdi + 0x10]
xor r12d, r12d
shl esi, 0x10
jmp 0x14003d884