Function at 0x140039760
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, [0x140068640]
lea r13, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov r12, rcx
cmove r13, rax
xor eax, eax
test rcx, rcx
je 0x140039791
mov rax, qword [rcx]
imul rbx, rax, 4
jo 0x140039d4a
movabs rax, 0x5555555555555556
imul rbx
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
mov rbx, rdx
add rbx, 6
js 0x140039ab0
mov rdx, rbx
xor ecx, ecx
xor esi, esi
call fcn.14000c2a0
mov rdi, rax
test r12, r12
je 0x1400399ee
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 0x140039a10
test r15, r15
je 0x140039a22
xor esi, esi
xor ebx, ebx
jmp 0x140039985
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.14000e210
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 0x10
add rbx, 1
jo 0x140039d18
mov rdx, qword [r12]
test rbx, rbx
js 0x14003984d
cmp rbx, rdx
jl 0x140039859
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
movzx r14d, byte [r12 + rbx + 0x10]
shl r14d, 8
or r14d, ebp
add rbx, 1
jo 0x140039d22
mov rdx, qword [r12]
test rbx, rbx
js 0x14003987e
cmp rbx, rdx
jl 0x14003988a
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
movzx ebp, byte [r12 + rbx + 0x10]
or ebp, r14d
add rbx, 1
mov r14, rbx
jo 0x140039a90
test rsi, rsi
js 0x140039a68
test rdi, rdi
je 0x140039aa0
mov rdx, qword [rdi]
cmp rsi, rdx
jl 0x1400398c6
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039d36
mov rdx, qword [rdi]
test rsi, rsi
js 0x1400398ec
cmp rsi, rdx
jl 0x1400398f8
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039d40
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039921
cmp rsi, rdx
jl 0x14003992d
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 6
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039d2c
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039956
cmp rsi, rdx
jl 0x140039962
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
and ebp, 0x3f
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
mov rbp, rsi
jo 0x140039a80
mov rcx, qword [r12]
cmp r14, r15
je 0x1400399a0
test rbx, rbx
js 0x140039820
cmp rcx, rbx
jg 0x14003982c
jmp 0x140039820
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 0x140039ad0
cmp rdx, 2
je 0x140039bc0
test rsi, rsi
jns 0x1400399ee
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000e070
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.14000c2a0
call fcn.140008da0
mov rcx, qword [r12]
test r15, r15
jne 0x140039816
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 0x140039cf8
xor esi, esi
cmp rdx, 2
jne 0x1400399ee
mov qword [rsp + 0x28], 0
jmp 0x140039bd6
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x1400398be
mov rdx, qword [rdi]
jmp 0x1400398ba
call fcn.140008da0
jmp 0x14003997c
call fcn.140008da0
jmp 0x1400398a0
mov rdx, 0xffffffffffffffff
jmp 0x1400398be
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000e070
jmp 0x1400397bf
test r15, r15
js 0x140039ada
cmp rcx, r15
jg 0x140039ae6
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000e210
movzx ebx, byte [r12 + r15 + 0x10]
shl ebx, 0x10
add r15, 1
jo 0x140039d68
test rbp, rbp
js 0x140039cf0
mov rax, qword [rdi]
cmp rax, rsi
jg 0x140039b16
lea rdx, [rax - 1]
mov rcx, rsi
call fcn.14000e210
mov eax, ebx
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039d5e
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039b3c
cmp rsi, rdx
jl 0x140039b48
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
shr ebx, 0xc
and ebx, 0x30
movzx eax, byte [r13 + rbx]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039d54
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039b6f
cmp rsi, rdx
jl 0x140039b7b
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jo 0x140039cc9
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039b97
cmp rsi, rdx
jl 0x140039ba3
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jno 0x1400399d5
call fcn.140008da0
jmp 0x1400399d5
test r15, r15
js 0x140039bca
cmp rcx, r15
jg 0x140039bd6
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000e210
mov rax, qword [rsp + 0x28]
movzx r14d, byte [r12 + rax + 0x10]
shl r14d, 0x10
add rax, 1
mov rbx, rax
jo 0x140039d90
mov rdx, qword [r12]
test rbx, rbx
js 0x140039c00
cmp rbx, rdx
jl 0x140039c0c
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 8
or ebp, r14d
add rbx, 1
jo 0x140039d86
test rsi, rsi
js 0x140039cd8
test rdi, rdi
je 0x140039cd8
mov rdx, qword [rdi]
cmp rdx, rsi
jg 0x140039c48
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039d7c
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039c6e
cmp rsi, rdx
jl 0x140039c7a
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039d72
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039ca3
cmp rsi, rdx
jl 0x140039caf
sub rdx, 1
mov rcx, rsi
call fcn.14000e210
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jno 0x140039b8a
call fcn.140008da0
jmp 0x140039b8a
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x140039c40
mov rdx, qword [rdi]
jmp 0x140039c3c
mov rax, qword [rdi]
jmp 0x140039b0a
movzx ebx, byte [r12 + 0x10]
xor esi, esi
mov rdx, 0xffffffffffffffff
shl ebx, 0x10
test rdi, rdi
je 0x140039b0e
jmp 0x140039b02
call fcn.140008da0
jmp 0x14003983f
call fcn.140008da0
jmp 0x140039870
call fcn.140008da0
jmp 0x140039949
call fcn.140008da0
jmp 0x1400398df
call fcn.140008da0
jmp 0x140039914
call fcn.140008da0
jmp 0x14003979b
call fcn.140008da0
jmp 0x140039b62
call fcn.140008da0
jmp 0x140039b2f
call fcn.140008da0
jmp 0x140039af9
call fcn.140008da0
jmp 0x140039c96
call fcn.140008da0
jmp 0x140039c61
call fcn.140008da0
jmp 0x140039c22
call fcn.140008da0
jmp 0x140039bf2