Function at 0x14003e4e0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
lea rbp, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea rax, [0x14008e840]
test r8b, r8b
mov r13, rcx
mov r12, rdx
cmove rbp, rax
imul rbx, rdx, 4
jo 0x14003eb59
movabs rax, 0x5555555555555556
imul rbx
sar rbx, 0x3f
sub rdx, rbx
mov rbx, rdx
add rbx, 6
js 0x14003e8b8
xor ecx, ecx
mov rdx, rbx
call fcn.14000c400
mov rcx, r12
mov r15, rax
movabs rax, 0x5555555555555556
imul r12
mov rax, r12
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rcx, rax
mov rax, r12
sub rax, rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x20], rax
jo 0x14003eb63
cmp qword [rsp + 0x20], 0
je 0x14003eaa8
test r15, r15
lea rax, [r12 - 1]
setne byte [rsp + 0x37]
xor r14d, r14d
xor edi, edi
mov qword [rsp + 0x28], rax
jmp 0x14003e5ab
cmp qword [rsp + 0x20], rbx
je 0x14003e70a
test rdi, rdi
js 0x14003e770
cmp r12, rdi
jle 0x14003e770
movzx esi, byte [r13 + rdi]
shl esi, 0x10
add rdi, 1
mov rbx, rdi
jo 0x14003eb4f
test rbx, rbx
js 0x14003e7b0
cmp rbx, r12
jge 0x14003e7b0
movzx edi, byte [r13 + rbx]
shl edi, 8
or edi, esi
add rbx, 1
jo 0x14003eb45
test rbx, rbx
js 0x14003e798
cmp rbx, r12
jge 0x14003e798
movzx esi, byte [r13 + rbx]
or esi, edi
add rbx, 1
mov rdi, rbx
jo 0x14003e788
test r14, r14
js 0x14003e750
cmp byte [rsp + 0x37], 0
je 0x14003e750
mov rdx, qword [r15]
cmp rdx, r14
jle 0x14003e75f
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r15 + r14 + 0x10], al
add r14, 1
jo 0x14003eb3b
mov rdx, qword [r15]
test r14, r14
js 0x14003e667
cmp r14, rdx
jl 0x14003e673
sub rdx, 1
mov rcx, r14
call fcn.14000d4c0
mov edx, esi
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [rbp + rdx]
mov byte [r15 + r14 + 0x10], dl
add r14, 1
jo 0x14003eb31
mov rdx, qword [r15]
test r14, r14
js 0x14003e69c
cmp r14, rdx
jl 0x14003e6a8
sub rdx, 1
mov rcx, r14
call fcn.14000d4c0
mov edx, esi
shr edx, 6
and edx, 0x3f
movzx edx, byte [rbp + rdx]
mov byte [r15 + r14 + 0x10], dl
add r14, 1
jo 0x14003eb27
mov rdx, qword [r15]
test r14, r14
js 0x14003e6d1
cmp r14, rdx
jl 0x14003e6dd
sub rdx, 1
mov rcx, r14
call fcn.14000d4c0
and esi, 0x3f
movzx edx, byte [rbp + rsi]
mov rsi, r14
add rsi, 1
mov byte [r15 + r14 + 0x10], dl
mov r14, rsi
jno 0x14003e5a0
call fcn.140008dc0
cmp qword [rsp + 0x20], rbx
jne 0x14003e5ab
cmp qword [rsp + 0x38], 1
je 0x14003e7c8
cmp qword [rsp + 0x38], 2
je 0x14003e8f8
test r14, r14
js 0x14003e8d8
mov rdx, r14
mov rcx, r15
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14000c400
mov rdx, 0xffffffffffffffff
test r15, r15
je 0x14003e763
mov rdx, qword [r15]
sub rdx, 1
mov rcx, r14
call fcn.14000d4c0
jmp 0x14003e641
mov rdx, qword [rsp + 0x28]
mov rcx, rdi
call fcn.14000d4c0
jmp 0x14003e5bd
call fcn.140008dc0
jmp 0x14003e621
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d4c0
jmp 0x14003e60c
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d4c0
jmp 0x14003e5e5
test rbx, rbx
js 0x14003ea90
cmp rbx, r12
jge 0x14003ea90
movzx edi, byte [r13 + rbx]
xor eax, eax
not rsi
shl edi, 0x10
add rbx, 1
seto al
shr rsi, 0x3f
and sil, byte [rsp + 0x37]
test rax, rax
jne 0x14003ea78
test sil, sil
jne 0x14003ea60
mov rdx, qword [r15]
sub rdx, 1
mov rcx, r14
call fcn.14000d4c0
mov eax, edi
mov rbx, r14
shr eax, 0x12
add rbx, 1
movzx eax, byte [rbp + rax]
mov byte [r15 + r14 + 0x10], al
jo 0x14003eb8b
mov rdx, qword [r15]
test rbx, rbx
js 0x14003e842
cmp rbx, rdx
jl 0x14003e84e
sub rdx, 1
mov rcx, rbx
call fcn.14000d4c0
shr edi, 0xc
and edi, 0x30
movzx eax, byte [rbp + rdi]
mov byte [r15 + rbx + 0x10], al
add rbx, 1
jo 0x14003eb81
mov rdx, qword [r15]
test rbx, rbx
js 0x14003e875
cmp rbx, rdx
jl 0x14003e881
sub rdx, 1
mov rcx, rbx
call fcn.14000d4c0
mov byte [r15 + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003eb77
mov rdx, qword [r15]
test rbx, rbx
js 0x14003e8a2
cmp rbx, rdx
jl 0x14003ea24
sub rdx, 1
mov rcx, rbx
call fcn.14000d4c0
jmp 0x14003ea24
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d320
jmp 0x14003e536
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r14
call fcn.14000d320
jmp 0x14003e72b
lea rdi, [r13 + rbx]
test rbx, rbx
js 0x14003eb15
cmp rbx, r12
jge 0x14003eb15
add rbx, 1
movzx edi, byte [rdi]
jo 0x14003eb6d
movzx eax, dil
not rsi
mov rdi, rbx
shl eax, 0x10
shr rsi, 0x3f
and sil, byte [rsp + 0x37]
mov r8d, eax
mov rax, rbx
shr rax, 0x3f
cmp r12, rbx
jle 0x14003eaf9
test al, al
jne 0x14003eaf9
movzx edi, byte [r13 + rdi]
shl edi, 8
or edi, r8d
add rbx, 1
jo 0x14003ebbd
test sil, sil
jne 0x14003eae8
mov rdx, 0xffffffffffffffff
test r15, r15
je 0x14003e97f
mov rdx, qword [r15]
sub rdx, 1
mov rcx, r14
call fcn.14000d4c0
mov eax, edi
mov rbx, r14
shr eax, 0x12
add rbx, 1
movzx eax, byte [rbp + rax]
mov byte [r15 + r14 + 0x10], al
jo 0x14003ebb3
mov rax, qword [r15]
test rbx, rbx
js 0x14003e9b0
cmp rbx, rax
jl 0x14003e9bc
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d4c0
mov eax, edi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r15 + rbx + 0x10], al
add rbx, 1
jo 0x14003eba9
mov rax, qword [r15]
test rbx, rbx
js 0x14003e9e5
cmp rbx, rax
jl 0x14003e9f1
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d4c0
shr edi, 6
and edi, 0x3c
movzx eax, byte [rbp + rdi]
mov byte [r15 + rbx + 0x10], al
add rbx, 1
jo 0x14003eb9f
mov rax, qword [r15]
test rbx, rbx
js 0x14003ea18
cmp rbx, rax
jl 0x14003ea24
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d4c0
mov byte [r15 + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003eb95
mov r14, rbx
jmp 0x14003e722
movzx edi, byte [r13]
xor r14d, r14d
mov rdx, 0xffffffffffffffff
shl edi, 0x10
test r15, r15
je 0x14003e811
nop word [rax + rax]
mov rdx, qword [r15]
cmp rdx, r14
jle 0x14003e80d
jmp 0x14003e819
call fcn.140008dc0
test sil, sil
je 0x14003e80a
jmp 0x14003ea60
lea rdx, [r12 - 1]
mov rcx, rbx
call fcn.14000d4c0
jmp 0x14003e7da
cmp qword [rsp + 0x38], 1
je 0x14003ea3c
xor r14d, r14d
cmp qword [rsp + 0x38], 2
jne 0x14003e72b
movzx eax, byte [r13]
test r15, r15
mov edi, 1
mov ebx, 1
setne sil
shl eax, 0x10
mov r8d, eax
xor eax, eax
jmp 0x14003e93c
mov rdx, qword [r15]
cmp rdx, r14
jle 0x14003e97b
jmp 0x14003e987
lea rdx, [r12 - 1]
mov rcx, rbx
mov dword [rsp + 0x20], r8d
call fcn.14000d4c0
mov r8d, dword [rsp + 0x20]
jmp 0x14003e94d
lea rdx, [r12 - 1]
mov rcx, rbx
call fcn.14000d4c0
jmp 0x14003e90f
call fcn.140008dc0
jmp 0x14003e6c4
call fcn.140008dc0
jmp 0x14003e68f
call fcn.140008dc0
jmp 0x14003e65a
call fcn.140008dc0
jmp 0x14003e5fa
call fcn.140008dc0
jmp 0x14003e5d3
call fcn.140008dc0
jmp 0x14003e515
call fcn.140008dc0
jmp 0x14003e57a
call fcn.140008dc0
jmp 0x14003e91c
call fcn.140008dc0
jmp 0x14003e891
call fcn.140008dc0
jmp 0x14003e868
call fcn.140008dc0
jmp 0x14003e835
call fcn.140008dc0
jmp 0x14003ea34
call fcn.140008dc0
jmp 0x14003ea0b
call fcn.140008dc0
jmp 0x14003e9d8
call fcn.140008dc0
jmp 0x14003e9a3
call fcn.140008dc0
jmp 0x14003e963