Function at 0x140038e40
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, [0x14005f4c0]
lea r13, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test dl, dl
mov r12, rcx
cmove r13, rax
xor eax, eax
test rcx, rcx
je 0x140038e71
mov rax, qword [rcx]
imul rbx, rax, 4
jo 0x14003942a
movabs rax, 0x5555555555555556
imul rbx
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
mov rbx, rdx
add rbx, 6
js 0x140039190
mov rdx, rbx
xor ecx, ecx
xor esi, esi
call fcn.14000bef0
mov rdi, rax
test r12, r12
je 0x1400390ce
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 0x1400390f0
test r15, r15
je 0x140039102
xor esi, esi
xor ebx, ebx
jmp 0x140039065
lea rdx, [rcx - 1]
mov rcx, rbx
call fcn.14000dfd0
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 0x10
add rbx, 1
jo 0x1400393f8
mov rdx, qword [r12]
test rbx, rbx
js 0x140038f2d
cmp rbx, rdx
jl 0x140038f39
sub rdx, 1
mov rcx, rbx
call fcn.14000dfd0
movzx r14d, byte [r12 + rbx + 0x10]
shl r14d, 8
or r14d, ebp
add rbx, 1
jo 0x140039402
mov rdx, qword [r12]
test rbx, rbx
js 0x140038f5e
cmp rbx, rdx
jl 0x140038f6a
sub rdx, 1
mov rcx, rbx
call fcn.14000dfd0
movzx ebp, byte [r12 + rbx + 0x10]
or ebp, r14d
add rbx, 1
mov r14, rbx
jo 0x140039170
test rsi, rsi
js 0x140039148
test rdi, rdi
je 0x140039180
mov rdx, qword [rdi]
cmp rsi, rdx
jl 0x140038fa6
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039416
mov rdx, qword [rdi]
test rsi, rsi
js 0x140038fcc
cmp rsi, rdx
jl 0x140038fd8
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039420
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039001
cmp rsi, rdx
jl 0x14003900d
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
mov eax, ebp
shr eax, 6
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003940c
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039036
cmp rsi, rdx
jl 0x140039042
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
and ebp, 0x3f
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
mov rbp, rsi
jo 0x140039160
mov rcx, qword [r12]
cmp r14, r15
je 0x140039080
test rbx, rbx
js 0x140038f00
cmp rcx, rbx
jg 0x140038f0c
jmp 0x140038f00
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 0x1400391b0
cmp rdx, 2
je 0x1400392a0
test rsi, rsi
jns 0x1400390ce
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000de30
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.14000bef0
call fcn.140008a30
mov rcx, qword [r12]
test r15, r15
jne 0x140038ef6
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 0x1400393d8
xor esi, esi
cmp rdx, 2
jne 0x1400390ce
mov qword [rsp + 0x28], 0
jmp 0x1400392b6
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x140038f9e
mov rdx, qword [rdi]
jmp 0x140038f9a
call fcn.140008a30
jmp 0x14003905c
call fcn.140008a30
jmp 0x140038f80
mov rdx, 0xffffffffffffffff
jmp 0x140038f9e
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000de30
jmp 0x140038e9f
test r15, r15
js 0x1400391ba
cmp rcx, r15
jg 0x1400391c6
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000dfd0
movzx ebx, byte [r12 + r15 + 0x10]
shl ebx, 0x10
add r15, 1
jo 0x140039448
test rbp, rbp
js 0x1400393d0
mov rax, qword [rdi]
cmp rax, rsi
jg 0x1400391f6
lea rdx, [rax - 1]
mov rcx, rsi
call fcn.14000dfd0
mov eax, ebx
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003943e
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003921c
cmp rsi, rdx
jl 0x140039228
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
shr ebx, 0xc
and ebx, 0x30
movzx eax, byte [r13 + rbx]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039434
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003924f
cmp rsi, rdx
jl 0x14003925b
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jo 0x1400393a9
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039277
cmp rsi, rdx
jl 0x140039283
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
mov byte [rdi + rsi + 0x10], 0x3d
add rsi, 1
jno 0x1400390b5
call fcn.140008a30
jmp 0x1400390b5
test r15, r15
js 0x1400392aa
cmp rcx, r15
jg 0x1400392b6
lea rdx, [rcx - 1]
mov rcx, r15
call fcn.14000dfd0
mov rax, qword [rsp + 0x28]
movzx r14d, byte [r12 + rax + 0x10]
shl r14d, 0x10
add rax, 1
mov rbx, rax
jo 0x140039470
mov rdx, qword [r12]
test rbx, rbx
js 0x1400392e0
cmp rbx, rdx
jl 0x1400392ec
sub rdx, 1
mov rcx, rbx
call fcn.14000dfd0
movzx ebp, byte [r12 + rbx + 0x10]
shl ebp, 8
or ebp, r14d
add rbx, 1
jo 0x140039466
test rsi, rsi
js 0x1400393b8
test rdi, rdi
je 0x1400393b8
mov rdx, qword [rdi]
cmp rdx, rsi
jg 0x140039328
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x14003945c
mov rdx, qword [rdi]
test rsi, rsi
js 0x14003934e
cmp rsi, rdx
jl 0x14003935a
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jo 0x140039452
mov rdx, qword [rdi]
test rsi, rsi
js 0x140039383
cmp rsi, rdx
jl 0x14003938f
sub rdx, 1
mov rcx, rsi
call fcn.14000dfd0
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r13 + rbp]
mov byte [rdi + rsi + 0x10], al
add rsi, 1
jno 0x14003926a
call fcn.140008a30
jmp 0x14003926a
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x140039320
mov rdx, qword [rdi]
jmp 0x14003931c
mov rax, qword [rdi]
jmp 0x1400391ea
movzx ebx, byte [r12 + 0x10]
xor esi, esi
mov rdx, 0xffffffffffffffff
shl ebx, 0x10
test rdi, rdi
je 0x1400391ee
jmp 0x1400391e2
call fcn.140008a30
jmp 0x140038f1f
call fcn.140008a30
jmp 0x140038f50
call fcn.140008a30
jmp 0x140039029
call fcn.140008a30
jmp 0x140038fbf
call fcn.140008a30
jmp 0x140038ff4
call fcn.140008a30
jmp 0x140038e7b
call fcn.140008a30
jmp 0x140039242
call fcn.140008a30
jmp 0x14003920f
call fcn.140008a30
jmp 0x1400391d9
call fcn.140008a30
jmp 0x140039376
call fcn.140008a30
jmp 0x140039341
call fcn.140008a30
jmp 0x140039302
call fcn.140008a30
jmp 0x1400392d2