Function at 0x14003d320
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, [0x14006ff00]
lea r13, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov r12, rcx
cmove r13, rax
xor eax, eax
test rcx, rcx
je 0x14003d351
mov rax, qword [rcx]
imul rbx, rax, 4
jo 0x14003d90a
movabs rax, 0x5555555555555556
imul rbx
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
mov rbx, rdx
add rbx, 6
js 0x14003d670
mov rdx, rbx
xor ecx, ecx
xor esi, esi
call fcn.14000c870
mov rdi, rax
test r12, r12
je 0x14003d5ae
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 0x14003d5d0
test r15, r15
je 0x14003d5e2
xor esi, esi
xor ebx, ebx
jmp 0x14003d545
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.14000daa0
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 0x10
add rbx, 1
jo 0x14003d8d8
mov rdx, qword [r12]
test rbx, rbx
js 0x14003d40d
cmp rbx, rdx
jl 0x14003d419
sub rdx, 1
mov rcx, rbx
call fcn.14000daa0
movzx r14d, byte [r12 + rbx + 0x10]
shl r14d, 8
or r14d, ebp
add rbx, 1
jo 0x14003d8e2
mov rdx, qword [r12]
test rbx, rbx
js 0x14003d43e
cmp rbx, rdx
jl 0x14003d44a
sub rdx, 1
mov rcx, rbx
call fcn.14000daa0
movzx ebp, byte [r12 + rbx + 0x10]
or ebp, r14d
add rbx, 1
mov r14, rbx
jo 0x14003d650
test rsi, rsi
js 0x14003d628
test rdi, rdi
je 0x14003d660
mov rdx, qword [rdi]
cmp rsi, rdx
jl 0x14003d486
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d8f6
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d4ac
cmp rsi, rdx
jl 0x14003d4b8
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d900
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d4e1
cmp rsi, rdx
jl 0x14003d4ed
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
mov eax, ebp
shr eax, 6
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d8ec
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d516
cmp rsi, rdx
jl 0x14003d522
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
and ebp, 0x3f
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
mov rbp, rsi
jo 0x14003d640
mov rcx, qword [r12]
cmp r14, r15
je 0x14003d560
test rbx, rbx
js 0x14003d3e0
cmp rcx, rbx
jg 0x14003d3ec
jmp 0x14003d3e0
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 0x14003d690
cmp rdx, 2
je 0x14003d780
test rsi, rsi
jns 0x14003d5ae
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000d900
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.14000c870
call fcn.140009130
mov rcx, qword [r12]
test r15, r15
jne 0x14003d3d6
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 0x14003d8b8
xor esi, esi
cmp rdx, 2
jne 0x14003d5ae
mov qword [rsp + 0x28], 0
jmp 0x14003d796
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003d47e
mov rdx, qword [rdi]
jmp 0x14003d47a
call fcn.140009130
jmp 0x14003d53c
call fcn.140009130
jmp 0x14003d460
mov rdx, 0xffffffffffffffff
jmp 0x14003d47e
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d900
jmp 0x14003d37f
test r15, r15
js 0x14003d69a
cmp rcx, r15
jg 0x14003d6a6
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000daa0
movzx ebx, byte [r12 + r15 + 0x10]
shl ebx, 0x10
add r15, 1
jo 0x14003d928
test rbp, rbp
js 0x14003d8b0
mov rax, qword [rdi]
cmp rax, rsi
jg 0x14003d6d6
lea rdx, [rax - 1]
mov rcx, rsi
call fcn.14000daa0
mov eax, ebx
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d91e
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d6fc
cmp rsi, rdx
jl 0x14003d708
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
shr ebx, 0xc
and ebx, 0x30
movzx eax, byte [r13 + rbx]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d914
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d72f
cmp rsi, rdx
jl 0x14003d73b
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jo 0x14003d889
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d757
cmp rsi, rdx
jl 0x14003d763
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jno 0x14003d595
call fcn.140009130
jmp 0x14003d595
test r15, r15
js 0x14003d78a
cmp rcx, r15
jg 0x14003d796
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000daa0
mov rax, qword [rsp + 0x28]
movzx r14d, byte [r12 + rax + 0x10]
shl r14d, 0x10
add rax, 1
mov rbx, rax
jo 0x14003d950
mov rdx, qword [r12]
test rbx, rbx
js 0x14003d7c0
cmp rbx, rdx
jl 0x14003d7cc
sub rdx, 1
mov rcx, rbx
call fcn.14000daa0
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 8
or ebp, r14d
add rbx, 1
jo 0x14003d946
test rsi, rsi
js 0x14003d898
test rdi, rdi
je 0x14003d898
mov rdx, qword [rdi]
cmp rdx, rsi
jg 0x14003d808
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d93c
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d82e
cmp rsi, rdx
jl 0x14003d83a
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003d932
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003d863
cmp rsi, rdx
jl 0x14003d86f
sub rdx, 1
mov rcx, rsi
call fcn.14000daa0
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jno 0x14003d74a
call fcn.140009130
jmp 0x14003d74a
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003d800
mov rdx, qword [rdi]
jmp 0x14003d7fc
mov rax, qword [rdi]
jmp 0x14003d6ca
movzx ebx, byte [r12 + 0x10]
xor esi, esi
mov rdx, 0xffffffffffffffff
shl ebx, 0x10
test rdi, rdi
je 0x14003d6ce
jmp 0x14003d6c2
call fcn.140009130
jmp 0x14003d3ff
call fcn.140009130
jmp 0x14003d430
call fcn.140009130
jmp 0x14003d509
call fcn.140009130
jmp 0x14003d49f
call fcn.140009130
jmp 0x14003d4d4
call fcn.140009130
jmp 0x14003d35b
call fcn.140009130
jmp 0x14003d722
call fcn.140009130
jmp 0x14003d6ef
call fcn.140009130
jmp 0x14003d6b9
call fcn.140009130
jmp 0x14003d856
call fcn.140009130
jmp 0x14003d821
call fcn.140009130
jmp 0x14003d7e2
call fcn.140009130
jmp 0x14003d7b2