Function at 0x140015ab0
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
sub rsp, 8
mov r9, rcx
test rcx, rcx
jg 0x140015ac5
or rax, 0xffffffffffffffff
add rsp, 8
ret
mov qword [rsp + 0x18], rbp
mov rdx, rcx
mov eax, 0xffffffff
mov qword [rsp + 0x28], rdi
xor edi, edi
cmp rcx, rax
mov r8d, edi
setg r8b
mov qword [rsp], r14
shl r8d, 5
lea r14, [0x140000000]
mov ecx, r8d
or r8d, 1
sar rdx, cl
lea ebp, [r8 - 1]
mov eax, edx
shr eax, 1
or edx, eax
mov eax, edx
shr eax, 2
or edx, eax
mov eax, edx
shr eax, 4
or edx, eax
mov eax, edx
shr eax, 8
or edx, eax
mov eax, edx
shr eax, 0x10
or eax, edx
shr eax, 1
inc eax
imul ecx, eax, 0x77cb531
shr rcx, 0x1b
movzx eax, byte [rcx + r14 + 0xd87f0]
add ebp, eax
cmp ebp, 0x3d
jle 0x140015b48
lea ecx, [rbp - 0x3d]
sar r9, cl
jmp 0x140015b52
mov ecx, VarI4FromDisp
sub ecx, ebp
shl r9, cl
lea rax, [r9 - 1]
test r9, rax
je 0x140015dfa
mov qword [rsp + 0x10], rbx
mov eax, edi
movabs r11, 0x2000000000000000
add r11, r9
movabs r10, 0xe000000000000000
movabs rbx, 0x32b803473f7ad0f4
add r10, r9
mov rcx, r11
mov qword [rsp + 0x20], rsi
sets al
sar rcx, 1
lea rsi, [0x1400d8828]
neg eax
movsxd rdx, eax
mov rax, r10
sar rax, 1
add rbx, rdx
add rax, rdx
xor rbx, rdx
xor rax, rdx
sub r11, rax
lea rax, [rcx + rdx]
xor rax, rdx
mov rcx, r11
sub r10, rax
mov eax, edi
sets al
sar rcx, 2
neg eax
movsxd rdx, eax
movabs rax, 0x179538dea712f48b
add rax, rdx
xor rax, rdx
add rbx, rax
mov rax, r10
sar rax, 2
add rax, rdx
xor rax, rdx
sub r11, rax
lea rax, [rcx + rdx]
xor rax, rdx
mov rcx, r11
sub r10, rax
mov eax, edi
sets al
sar rcx, 3
neg eax
movsxd rdx, eax
movabs rax, 0xb9a2c912ee4ee81
add rax, rdx
xor rax, rdx
add rbx, rax
mov rax, r10
sar rax, 3
add rax, rdx
xor rax, rdx
sub r11, rax
lea rax, [rcx + rdx]
xor rax, rdx
mov rcx, r11
sub r10, rax
mov eax, edi
sets al
sar rcx, 4
neg eax
movsxd rdx, eax
movabs rax, 0x5c73f723319cc5c
add rax, rdx
xor rax, rdx
add rbx, rax
mov rax, r10
sar rax, 4
add rax, rdx
xor rax, rdx
sub r11, rax
lea rax, [rcx + rdx]
xor rax, rdx
sub r10, rax
mov eax, 3
mov rdx, qword [rsi]
test r10, r10
mov ecx, edi
sets cl
mov r8, r11
lea rsi, [rsi + 8]
neg ecx
movsxd r9, ecx
mov ecx, eax
sar rdx, cl
add rdx, r9
xor rdx, r9
add rbx, rdx
inc eax
mov rdx, r10
mov ecx, eax
sar rdx, cl
sar r8, cl
add rdx, r9
lea rcx, [r8 + r9]
xor rcx, r9
xor rdx, r9
sub r10, rcx
sub r11, rdx
cmp eax, 0xd
jl 0x140015c82
dec eax
cmp eax, 0x20
jge 0x140015d3c
movsxd rcx, eax
lea esi, [rax + 1]
lea r14, [r14 + rcx*8]
lea r14, [r14 + 0xd8810]
nop dword [rax]
nop dword [rax + rax]
mov rdx, qword [r14]
test r10, r10
mov ecx, edi
sets cl
mov r8, r11
lea r14, [r14 + 8]
neg ecx
movsxd r9, ecx
mov ecx, eax
inc eax
sar rdx, cl
mov ecx, esi
inc esi
add rdx, r9
sar r8, cl
xor rdx, r9
add rbx, rdx
mov rdx, r10
sar rdx, cl
lea rcx, [r8 + r9]
add rdx, r9
xor rcx, r9
xor rdx, r9
sub r10, rcx
sub r11, rdx
cmp esi, 0x21
jl 0x140015cf0
movabs r14, 0x2e2a8eca5705fc2f
cmp eax, 0x28
jge 0x140015d96
nop dword [rax + rax]
test r10, r10
mov ecx, edi
mov r8, r11
sets cl
mov rdx, r14
neg ecx
movsxd r9, ecx
mov ecx, eax
sar rdx, cl
add rdx, r9
xor rdx, r9
add rbx, rdx
inc eax
mov rdx, r10
mov ecx, eax
sar rdx, cl
sar r8, cl
add rdx, r9
lea rcx, [r8 + r9]
xor rcx, r9
xor rdx, r9
sub r10, rcx
sub r11, rdx
cmp eax, 0x28
jl 0x140015d50
dec eax
cmp eax, 0x3e
jge 0x140015de8
lea esi, [rax + 1]
test r10, r10
mov ecx, edi
mov r8, r11
sets cl
mov rdx, r14
neg ecx
movsxd r9, ecx
mov ecx, eax
inc eax
sar rdx, cl
mov ecx, esi
inc esi
add rdx, r9
sar r8, cl
xor rdx, r9
add rbx, rdx
mov rdx, r10
sar rdx, cl
lea rcx, [r8 + r9]
add rdx, r9
xor rcx, r9
xor rdx, r9
sub r10, rcx
sub r11, rdx
cmp esi, 0x3f
jl 0x140015da0
mov rsi, qword [rsp + 0x20]
lea rdi, [rbx + 8]
mov rbx, qword [rsp + 0x10]
sar rdi, 4
mov r14, qword [rsp]
movsxd rax, ebp
mov rbp, qword [rsp + 0x18]
shl rax, 0x39
add rax, rdi
mov rdi, qword [rsp + 0x28]
add rsp, 8
ret