Function at 0x14002e0d0
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
xor eax, eax
mov rbx, rcx
mov r13, rdx
mov r12, r8
mov qword [rcx], 0
imul rsi, r8, 4
mov qword [rcx + 8], 0
seto al
test r9b, r9b
jne 0x14002e368
test rax, rax
jne 0x14002e880
movabs rax, 0x5555555555555556
imul rsi
sar rsi, 0x3f
sub rdx, rsi
mov rsi, rdx
add rsi, 6
js 0x14002e8a0
mov rdx, rsi
mov rcx, rbx
call fcn.14000d330
mov rcx, r12
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 + 0x28], rax
jo 0x14002eb16
cmp qword [rsp + 0x28], 0
je 0x14002e920
lea rax, [r12 - 1]
xor edi, edi
xor esi, esi
lea r14, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
mov qword [rsp + 0x30], rax
jmp 0x14002e2e2
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e1ad
cmp rdi, rdx
jl 0x14002e1b9
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e1d4
test byte [rax + 7], 0x40
je 0x14002e1d4
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r14 + rdx]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002eb2a
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e1f9
cmp rdi, rdx
jl 0x14002e205
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e220
test byte [rax + 7], 0x40
je 0x14002e220
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r14 + rdx]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002eb34
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e248
cmp rdi, rdx
jl 0x14002e254
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e26f
test byte [rax + 7], 0x40
je 0x14002e26f
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r14 + rdx]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002eb3e
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e297
cmp rdi, rdx
jl 0x14002e2a3
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e2be
test byte [rax + 7], 0x40
je 0x14002e2be
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
and ebp, 0x3f
movzx edx, byte [r14 + rbp]
mov byte [rax + rdi + 8], dl
add rdi, 1
mov rbp, rdi
jo 0x14002e610
cmp qword [rsp + 0x28], r15
je 0x14002e620
test rsi, rsi
js 0x14002e5f8
cmp r12, rsi
jle 0x14002e5f8
movzx ebp, byte [r13 + rsi]
shl ebp, 0x10
add rsi, 1
jo 0x14002eb66
test rsi, rsi
js 0x14002e5e0
cmp rsi, r12
jge 0x14002e5e0
movzx r15d, byte [r13 + rsi]
shl r15d, 8
or r15d, ebp
add rsi, 1
jo 0x14002eb20
test rsi, rsi
js 0x14002e5c8
cmp rsi, r12
jge 0x14002e5c8
movzx ebp, byte [r13 + rsi]
or ebp, r15d
add rsi, 1
mov r15, rsi
jno 0x14002e1a0
call fcn.14000bf40
jmp 0x14002e1a0
test rax, rax
jne 0x14002e890
movabs rax, 0x5555555555555556
imul rsi
sar rsi, 0x3f
sub rdx, rsi
mov rsi, rdx
add rsi, 6
js 0x14002e8c0
mov rdx, rsi
mov rcx, rbx
call fcn.14000d330
mov rcx, r12
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 + 0x28], rax
jo 0x14002eb0c
cmp qword [rsp + 0x28], 0
je 0x14002e8f8
lea rax, [r12 - 1]
xor edi, edi
xor esi, esi
lea r14, [0x1400648c0]
mov qword [rsp + 0x30], rax
jmp 0x14002e542
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e40d
cmp rdi, rdx
jl 0x14002e419
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e434
test byte [rax + 7], 0x40
je 0x14002e434
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r14 + rdx]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002eb48
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e459
cmp rdi, rdx
jl 0x14002e465
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e480
test byte [rax + 7], 0x40
je 0x14002e480
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r14 + rdx]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002eb52
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e4a8
cmp rdi, rdx
jl 0x14002e4b4
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e4cf
test byte [rax + 7], 0x40
je 0x14002e4cf
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r14 + rdx]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002eb5c
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e4f7
cmp rdi, rdx
jl 0x14002e503
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e51e
test byte [rax + 7], 0x40
je 0x14002e51e
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
and ebp, 0x3f
movzx edx, byte [r14 + rbp]
mov byte [rax + rdi + 8], dl
add rdi, 1
mov rbp, rdi
jo 0x14002e660
cmp qword [rsp + 0x28], r15
je 0x14002e620
test rsi, rsi
js 0x14002e6a0
cmp r12, rsi
jle 0x14002e6a0
movzx ebp, byte [r13 + rsi]
shl ebp, 0x10
add rsi, 1
jo 0x14002eb70
test rsi, rsi
js 0x14002e688
cmp rsi, r12
jge 0x14002e688
movzx r15d, byte [r13 + rsi]
shl r15d, 8
or r15d, ebp
add rsi, 1
jo 0x14002eb7a
test rsi, rsi
js 0x14002e670
cmp rsi, r12
jge 0x14002e670
movzx ebp, byte [r13 + rsi]
or ebp, r15d
add rsi, 1
mov r15, rsi
jno 0x14002e400
call fcn.14000bf40
jmp 0x14002e400
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
call fcn.14000eea0
jmp 0x14002e342
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
call fcn.14000eea0
jmp 0x14002e319
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
call fcn.14000eea0
jmp 0x14002e2f4
call fcn.14000bf40
cmp qword [rsp + 0x28], r15
jne 0x14002e2e2
cmp qword [rsp + 0x38], 1
je 0x14002e6b8
cmp qword [rsp + 0x38], 2
je 0x14002e950
test rdi, rdi
js 0x14002e860
mov rdx, rdi
mov rcx, rbx
call fcn.14000d330
mov rax, rbx
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14000bf40
jmp 0x14002e537
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
call fcn.14000eea0
jmp 0x14002e5a2
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
call fcn.14000eea0
jmp 0x14002e579
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
call fcn.14000eea0
jmp 0x14002e554
test r15, r15
js 0x14002e8e0
cmp r15, r12
jge 0x14002e8e0
movzx esi, byte [r13 + r15]
shl esi, 0x10
add r15, 1
jo 0x14002eb98
test rbp, rbp
mov rdx, qword [rbx]
js 0x14002e800
cmp rdx, rdi
jle 0x14002e800
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e70d
test byte [rax + 7], 0x40
je 0x14002e70d
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov edx, esi
shr edx, 0x12
movzx edx, byte [r14 + rdx]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002eba2
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e818
cmp rdi, rdx
jge 0x14002e818
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e755
test byte [rax + 7], 0x40
je 0x14002e755
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
shr esi, 0xc
and esi, 0x30
movzx edx, byte [r14 + rsi]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002eb8e
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e830
cmp rdi, rdx
jge 0x14002e830
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e79e
test byte [rax + 7], 0x40
je 0x14002e79e
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov byte [rax + rdi + 8], 0x3d
add rdi, 1
jo 0x14002ebac
test rdi, rdi
mov rdx, qword [rbx]
js 0x14002e848
cmp rdi, rdx
jge 0x14002e848
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e7dd
test byte [rax + 7], 0x40
je 0x14002e7dd
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov byte [rax + rdi + 8], 0x3d
add rdi, 1
jno 0x14002e638
call fcn.14000bf40
jmp 0x14002e638
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
jmp 0x14002e6f2
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
jmp 0x14002e73a
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
jmp 0x14002e783
sub rdx, 1
mov rcx, rdi
call fcn.14000eea0
jmp 0x14002e7c2
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rdi
call fcn.14000c7d0
jmp 0x14002e641
call fcn.14000bf40
jmp 0x14002e113
call fcn.14000bf40
jmp 0x14002e371
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000c7d0
jmp 0x14002e134
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000c7d0
jmp 0x14002e392
lea rdx, [r12 - 1]
mov rcx, r15
call fcn.14000eea0
jmp 0x14002e6ca
cmp qword [rsp + 0x38], 1
je 0x14002eada
xor edi, edi
xor esi, esi
cmp qword [rsp + 0x38], 2
mov r15, r13
lea r14, [0x1400648c0]
jne 0x14002e641
jmp 0x14002e965
mov rax, qword [rsp + 0x38]
cmp rax, 1
je 0x14002eaf3
xor edi, edi
xor esi, esi
cmp rax, 2
lea r14, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
mov r15, r13
jne 0x14002e641
jmp 0x14002e965
test r15, r15
js 0x14002eac8
cmp r15, r12
jge 0x14002eac8
add r15, r13
movzx r15d, byte [r15]
shl r15d, 0x10
add rsi, 1
jo 0x14002ebd4
test rsi, rsi
js 0x14002eab0
cmp rsi, r12
jge 0x14002eab0
movzx ebp, byte [r13 + rsi]
shl ebp, 8
or ebp, r15d
add rsi, 1
jo 0x14002ebca
test rdi, rdi
mov rax, qword [rbx]
js 0x14002e9ac
cmp rdi, rax
jl 0x14002e9b8
lea rdx, [rax - 1]
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002e9d3
test byte [rax + 7], 0x40
je 0x14002e9d3
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r14 + rdx]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002ebc0
test rdi, rdi
mov rax, qword [rbx]
js 0x14002e9f8
cmp rdi, rax
jl 0x14002ea04
lea rdx, [rax - 1]
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002ea1f
test byte [rax + 7], 0x40
je 0x14002ea1f
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r14 + rdx]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002ebb6
test rdi, rdi
mov rax, qword [rbx]
js 0x14002ea47
cmp rdi, rax
jl 0x14002ea53
lea rdx, [rax - 1]
mov rcx, rdi
call fcn.14000eea0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14002ea6e
test byte [rax + 7], 0x40
je 0x14002ea6e
mov rcx, rbx
call fcn.1400112b0
mov rax, qword [rbx + 8]
shr ebp, 6
and ebp, 0x3c
movzx edx, byte [r14 + rbp]
mov byte [rax + rdi + 8], dl
add rdi, 1
jo 0x14002eb84
test rdi, rdi
mov rax, qword [rbx]
js 0x14002ea98
cmp rdi, rax
jl 0x14002e7c2
lea rdx, [rax - 1]
mov rcx, rdi
call fcn.14000eea0
jmp 0x14002e7c2
lea rdx, [r12 - 1]
mov rcx, rsi
call fcn.14000eea0
jmp 0x14002e989
lea rdx, [r12 - 1]
mov rcx, r15
call fcn.14000eea0
jmp 0x14002e962
movzx esi, byte [r13]
lea r14, [0x1400648c0]
xor edi, edi
mov rdx, qword [rbx]
shl esi, 0x10
jmp 0x14002e6e9
movzx esi, byte [r13]
lea r14, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
xor edi, edi
mov rdx, qword [rbx]
shl esi, 0x10
jmp 0x14002e6e9
call fcn.14000bf40
jmp 0x14002e3d4
call fcn.14000bf40
jmp 0x14002e176
call fcn.14000bf40
jmp 0x14002e330
call fcn.14000bf40
jmp 0x14002e1ec
call fcn.14000bf40
jmp 0x14002e23b
call fcn.14000bf40
jmp 0x14002e28a
call fcn.14000bf40
jmp 0x14002e44c
call fcn.14000bf40
jmp 0x14002e49b
call fcn.14000bf40
jmp 0x14002e4ea
call fcn.14000bf40
jmp 0x14002e307
call fcn.14000bf40
jmp 0x14002e567
call fcn.14000bf40
jmp 0x14002e590
call fcn.14000bf40
jmp 0x14002ea87
call fcn.14000bf40
jmp 0x14002e76e
call fcn.14000bf40
jmp 0x14002e6dd
call fcn.14000bf40
jmp 0x14002e725
call fcn.14000bf40
jmp 0x14002e7ad
call fcn.14000bf40
jmp 0x14002ea3a
call fcn.14000bf40
jmp 0x14002e9eb
call fcn.14000bf40
jmp 0x14002e99f
call fcn.14000bf40
jmp 0x14002e977