Function at 0x2ba3608c0
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 r15, [0x2ba3c0d20]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov rbp, qword [rdx]
mov rdi, qword [rdx + 8]
mov qword [rsp + 0x30], 0
test r8b, r8b
mov r12, rcx
mov qword [rsp + 0x38], 0
cmovne r15, rax
imul rcx, rbp, 4
jo 0x2ba360b30
movabs rsi, 0x5555555555555556
mov rax, rcx
sar rcx, 0x3f
imul rsi
sub rdx, rcx
add rdx, 6
mov r9, rdx
js 0x2ba360b58
lea r13, [rsp + 0x30]
mov rcx, r13
call fcn.2ba3271c0
mov rax, rbp
imul rsi
mov rax, rbp
sar rax, 0x3f
mov rsi, rdx
sub rsi, rax
lea rax, [rsi + rsi*2]
mov rsi, rbp
sub rsi, rax
mov rax, rbp
sub rax, rsi
mov qword [rsp + 0x28], rsi
seto r14b
mov qword [rsp + 0x20], rax
movzx r14d, r14b
jo 0x2ba360b30
xor ebx, ebx
cmp qword [rsp + 0x20], r14
je 0x2ba360bc8
cmp r14, rbp
jge 0x2ba360b98
movzx eax, byte [rdi + r14 + 8]
mov rcx, r14
shl eax, 0x10
mov edx, eax
add rcx, 1
js 0x2ba360b30
cmp rcx, r14
jb 0x2ba360b30
test rcx, rcx
js 0x2ba360b88
cmp rcx, rbp
jge 0x2ba360b88
movzx eax, byte [rdi + rcx + 8]
lea rcx, [r14 + 2]
shl eax, 8
or eax, edx
cmp rbp, rcx
jle 0x2ba360b88
movzx edx, byte [rdi + rcx + 8]
add r14, 3
mov esi, edx
mov rdx, qword [rsp + 0x30]
or esi, eax
test rbx, rbx
js 0x2ba360bb0
cmp rbx, rdx
jge 0x2ba360bb0
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x2ba360a18
test byte [rdx + 7], 0x40
je 0x2ba360a18
mov rcx, r13
call fcn.2ba3272d0
mov rdx, qword [rsp + 0x38]
mov r8d, esi
shr r8d, 0x12
movzx r8d, byte [r15 + r8]
mov byte [rdx + rbx + 8], r8b
add rbx, 1
mov rcx, rbx
jo 0x2ba360b30
mov rdx, qword [rsp + 0x30]
test rbx, rbx
js 0x2ba360b70
cmp rbx, rdx
jge 0x2ba360b7a
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x2ba360a6a
test byte [rdx + 7], 0x40
je 0x2ba360a6a
mov rcx, r13
call fcn.2ba3272d0
mov rdx, qword [rsp + 0x38]
mov r8d, esi
shr r8d, 0xc
and r8d, 0x3f
movzx r8d, byte [r15 + r8]
mov byte [rdx + rbx + 8], r8b
add rbx, 1
mov rcx, rbx
jo 0x2ba360b30
mov rdx, qword [rsp + 0x30]
test rbx, rbx
js 0x2ba360b70
cmp rbx, rdx
jge 0x2ba360b7a
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x2ba360ac0
test byte [rdx + 7], 0x40
je 0x2ba360ac0
mov rcx, r13
call fcn.2ba3272d0
mov rdx, qword [rsp + 0x38]
mov r8d, esi
shr r8d, 6
and r8d, 0x3f
movzx r8d, byte [r15 + r8]
mov byte [rdx + rbx + 8], r8b
add rbx, 1
mov rcx, rbx
jo 0x2ba360b30
mov rdx, qword [rsp + 0x30]
test rbx, rbx
js 0x2ba360b70
cmp rbx, rdx
jge 0x2ba360b7a
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x2ba360b12
test byte [rdx + 7], 0x40
je 0x2ba360b12
mov rcx, r13
call fcn.2ba3272d0
mov rdx, qword [rsp + 0x38]
mov eax, esi
and eax, 0x3f
movzx eax, byte [r15 + rax]
mov byte [rdx + rbx + 8], al
add rbx, 1
jno 0x2ba360979
nop word [rax + rax]
call fcn.2ba326290
movdqu xmm0, xmmword [rsp + 0x30]
mov rax, r12
movups xmmword [r12], xmm0
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r9
call fcn.2ba326850
jmp 0x2ba360b35
movabs rcx, 0x8000000000000000
sub rdx, 1
call fcn.2ba32b450
jmp 0x2ba360b35
lea rdx, [rbp - 1]
call fcn.2ba32b450
jmp 0x2ba360b35
lea rdx, [rbp - 1]
mov rcx, r14
call fcn.2ba32b450
jmp 0x2ba360b35
sub rdx, 1
mov rcx, rbx
call fcn.2ba32b450
jmp 0x2ba360b35
cmp qword [rsp + 0x28], 1
je 0x2ba360bf8
cmp qword [rsp + 0x28], 2
je 0x2ba360d28
test rbx, rbx
js 0x2ba360e4a
mov rdx, rbx
mov rcx, r13
call fcn.2ba3271c0
jmp 0x2ba360b35
mov rcx, qword [rsp + 0x20]
cmp rcx, rbp
jge 0x2ba360b88
mov rax, rcx
add rax, 1
js 0x2ba360b30
cmp rax, rcx
jb 0x2ba360b30
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x2ba360e28
cmp rbx, rax
jge 0x2ba360e28
mov rdx, qword [rsp + 0x38]
movzx esi, byte [rcx + rdi + 8]
test rdx, rdx
je 0x2ba360c51
test byte [rdx + 7], 0x40
je 0x2ba360c51
mov rcx, r13
call fcn.2ba3272d0
mov rdx, qword [rsp + 0x38]
movzx eax, sil
mov esi, eax
shr eax, 2
movzx eax, byte [r15 + rax]
shl esi, 0x10
mov byte [rdx + rbx + 8], al
add rbx, 1
mov r14, rbx
jo 0x2ba360b30
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x2ba360e39
cmp rbx, rax
jge 0x2ba360e39
mov rcx, r13
call fcn.2ba360820
mov eax, esi
shr eax, 0xc
and eax, 0x30
add r14, 1
movzx edx, byte [r15 + rax]
mov rax, qword [rsp + 0x38]
mov byte [rax + rbx + 8], dl
jo 0x2ba360b30
mov rax, qword [rsp + 0x30]
test r14, r14
js 0x2ba360e39
cmp r14, rax
jge 0x2ba360e39
mov rcx, r13
call fcn.2ba360820
mov rax, qword [rsp + 0x38]
mov byte [rax + r14 + 8], 0x3d
add r14, 1
jo 0x2ba360b30
mov rax, qword [rsp + 0x30]
test r14, r14
js 0x2ba360e39
cmp r14, rax
jge 0x2ba360e39
mov rcx, r13
mov rbx, r14
call fcn.2ba360820
mov rax, qword [rsp + 0x38]
add rbx, 1
mov byte [rax + r14 + 8], 0x3d
jno 0x2ba360bdc
jmp 0x2ba360b30
mov rcx, qword [rsp + 0x20]
cmp rcx, rbp
jge 0x2ba360b88
mov rcx, r14
add rcx, 1
js 0x2ba360b30
cmp rcx, r14
jb 0x2ba360b30
test rcx, rcx
js 0x2ba360b88
cmp rcx, rbp
jge 0x2ba360b88
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x2ba360e28
cmp rbx, rax
jge 0x2ba360e28
movzx eax, byte [r14 + rdi + 8]
movzx esi, byte [rcx + rdi + 8]
mov rcx, r13
shl eax, 0x10
shl esi, 8
or esi, eax
call fcn.2ba360820
mov eax, esi
shr eax, 0x12
movzx edx, byte [r15 + rax]
mov rax, qword [rsp + 0x38]
mov byte [rax + rbx + 8], dl
add rbx, 1
mov r14, rbx
jo 0x2ba360b30
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x2ba360e39
cmp rbx, rax
jge 0x2ba360e39
mov rcx, r13
call fcn.2ba360820
mov eax, esi
shr eax, 0xc
and eax, 0x3f
add r14, 1
movzx edx, byte [r15 + rax]
mov rax, qword [rsp + 0x38]
mov byte [rax + rbx + 8], dl
jo 0x2ba360b30
mov rax, qword [rsp + 0x30]
test r14, r14
js 0x2ba360e39
cmp r14, rax
jge 0x2ba360e39
mov rcx, r13
call fcn.2ba360820
mov eax, esi
shr eax, 6
and eax, 0x3c
movzx edx, byte [r15 + rax]
mov rax, qword [rsp + 0x38]
mov byte [rax + r14 + 8], dl
add r14, 1
jno 0x2ba360ce6
jmp 0x2ba360b30
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.2ba32b450
jmp 0x2ba360b35
lea rdx, [rax - 1]
mov rcx, r14
call fcn.2ba32b450
jmp 0x2ba360b35
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.2ba326850
jmp 0x2ba360b35