Function at 0x14000ac40
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x14007f010]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rbx, rdx
mov r13, rcx
mov qword [rbp - 0x48], rcx
mov qword [rbp - 0x40], rcx
xor esi, esi
mov qword [rbp - 0x30], rsi
mov r8d, esi
mov qword [rbp - 0x20], rsi
mov eax, SafeArrayGetLBound
mov qword [rbp - 0x58], rax
mov r9d, eax
mov qword [rbp - 0x18], rax
mov byte [rbp - 0x30], r8b
mov rdi, qword [rdx + 8]
lea rcx, [rdi + 2]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 1
shl rdx, 2
cmp rdx, r9
jbe 0x14000accf
lfence
lea rcx, [rbp - 0x30]
call fcn.14000b200
mov r8d, esi
mov qword [rbp - 0x20], rsi
mov r9, qword [rbp - 0x18]
mov rbx, qword [rbx]
lea r12, [rbx + rdi]
cmp rbx, r12
je 0x14000aeb2
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movzx esi, byte [rbp - 0x60]
movzx r15d, byte [rbp - 0x60]
movzx r14d, byte [rbp - 0x60]
movzx edi, byte [rbp - 0x60]
nop dword [rax + rax]
movzx r13d, byte [rbx]
inc rbx
mov qword [rbp - 0x38], rbx
mov eax, r13d
shr rax, 2
movzx ecx, byte [rax + r10]
cmp r8, r9
jae 0x14000ad3d
lea rax, [r8 + 1]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x30]
cmp r9, 0x10
cmovae rax, qword [rbp - 0x30]
mov byte [rax + r8], cl
mov byte [rax + r8 + 1], 0
jmp 0x14000ad5a
movzx r9d, cl
movzx r8d, sil
mov edx, 1
lea rcx, [rbp - 0x30]
call fcn.14000b350
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp rbx, r12
je 0x14000ad67
movzx ecx, byte [rbx]
inc rbx
jmp 0x14000ad69
xor ecx, ecx
mov dword [rbp - 0x50], ecx
mov qword [rbp - 0x40], rbx
and r13d, 3
shl r13d, 4
mov eax, ecx
shr eax, 4
add r13d, eax
movzx r9d, byte [r13 + r10]
mov rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x18]
cmp rdx, r8
jae 0x14000adb3
lea rax, [rdx + 1]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x30]
cmp r8, 0x10
cmovae rax, qword [rbp - 0x30]
mov byte [rax + rdx], r9b
mov byte [rax + rdx + 1], 0
jmp 0x14000adcf
movzx r8d, r15b
mov edx, 1
lea rcx, [rbp - 0x30]
call fcn.14000b350
mov ecx, dword [rbp - 0x50]
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp qword [rbp - 0x38], r12
je 0x14000b037
cmp rbx, r12
je 0x14000ade7
movzx r13d, byte [rbx]
inc rbx
jmp 0x14000adea
xor r13d, r13d
and ecx, 0xf
mov eax, r13d
shr eax, 6
lea eax, [rax + rcx*4]
movzx r9d, byte [rax + r10]
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x18]
cmp rcx, rdx
jae 0x14000ae28
lea rax, [rcx + 1]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x30]
cmp rdx, 0x10
cmovae rax, qword [rbp - 0x30]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x14000ae41
movzx r8d, r14b
mov edx, 1
lea rcx, [rbp - 0x30]
call fcn.14000b350
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp qword [rbp - 0x40], r12
je 0x14000aeee
mov eax, r13d
and eax, 0x3f
movzx r9d, byte [rax + r10]
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x18]
cmp rcx, rdx
jae 0x14000ae83
lea rax, [rcx + 1]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x30]
cmp rdx, 0x10
cmovae rax, qword [rbp - 0x30]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x14000ae9c
movzx r8d, dil
mov edx, 1
lea rcx, [rbp - 0x30]
call fcn.14000b350
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp rbx, r12
je 0x14000aeae
mov r9, qword [rbp - 0x18]
mov r8, qword [rbp - 0x20]
jmp 0x14000ad00
mov r13, qword [rbp - 0x48]
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [r13], xmm0
movups xmm1, xmmword [rbp - 0x20]
movups xmmword [r13 + 0x10], xmm1
mov rax, r13
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.14002ec60
mov rbx, qword [rsp + 0xd0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
mov rsi, qword [rbp - 0x20]
sub rax, rsi
cmp rax, 1
jb 0x14000b189
lea r12, [rbp - 0x30]
mov r14, qword [rbp - 0x18]
cmp r14, 0x10
setae byte [rbp - 0x60]
mov rdi, qword [rbp - 0x30]
cmovae r12, rdi
mov r13, qword [rbp - 0x48]
xor edx, edx
mov qword [r13], rdx
mov qword [r13 + 0x10], rdx
mov qword [r13 + 0x18], rdx
lea r15, [rsi + 1]
mov rbx, r13
cmp r15, 0xf
jbe 0x14000afd4
mov rax, r15
or rax, 0xf
cmp rax, rcx
jbe 0x14000af58
mov rax, rcx
jmp 0x14000af64
mov ecx, SafeArrayPutElement
cmp rax, rcx
cmovb rax, rcx
mov qword [rbp - 0x58], rax
mov rcx, rax
add rcx, 1
mov rax, 0xffffffffffffffff
cmovb rcx, rax
cmp rcx, 0x1000
jb 0x14000afbe
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000b18f
lfence
mov rcx, rax
call fcn.14002ec80
test rax, rax
je 0x14000b17d
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
mov r14, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x20]
mov rdi, qword [rbp - 0x30]
jmp 0x14000afd0
test rcx, rcx
je 0x14000afcd
call fcn.14002ec80
mov rbx, rax
jmp 0x14000afd0
mov rbx, rdx
mov qword [r13], rbx
mov qword [r13 + 0x10], r15
mov rax, qword [rbp - 0x58]
mov qword [r13 + 0x18], rax
mov r8, rsi
mov rdx, r12
mov rcx, rbx
call fcn.140034100
mov byte [rsi + rbx], 0x3d
mov byte [rbx + r15], 0
cmp byte [rbp - 0x60], 0
je 0x14000aec4
lea rdx, [r14 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14000b02a
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000b183
mov rcx, rdi
call fcn.14002ef0c
jmp 0x14000aec4
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
mov rsi, qword [rbp - 0x20]
sub rax, rsi
cmp rax, 2
jb 0x14000b189
lea r12, [rbp - 0x30]
mov r14, qword [rbp - 0x18]
cmp r14, 0x10
setae byte [rbp - 0x60]
mov rdi, qword [rbp - 0x30]
cmovae r12, rdi
mov r13, qword [rbp - 0x48]
xor edx, edx
mov qword [r13], rdx
mov qword [r13 + 0x10], rdx
mov qword [r13 + 0x18], rdx
lea r15, [rsi + 2]
mov rbx, r13
cmp r15, 0xf
jbe 0x14000b11d
mov rax, r15
or rax, 0xf
cmp rax, rcx
jbe 0x14000b0a1
mov rax, rcx
jmp 0x14000b0ad
mov ecx, SafeArrayPutElement
cmp rax, rcx
cmovb rax, rcx
mov qword [rbp - 0x58], rax
mov rcx, rax
add rcx, 1
mov rax, 0xffffffffffffffff
cmovb rcx, rax
cmp rcx, 0x1000
jb 0x14000b107
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000b18f
lfence
mov rcx, rax
call fcn.14002ec80
test rax, rax
je 0x14000b17d
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
mov r14, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x20]
mov rdi, qword [rbp - 0x30]
jmp 0x14000b119
test rcx, rcx
je 0x14000b116
call fcn.14002ec80
mov rbx, rax
jmp 0x14000b119
mov rbx, rdx
mov qword [r13], rbx
mov qword [r13 + 0x10], r15
mov rax, qword [rbp - 0x58]
mov qword [r13 + 0x18], rax
mov r8, rsi
mov rdx, r12
mov rcx, rbx
call fcn.140034100
mov eax, 0x3d3d
mov word [rsi + rbx], ax
mov byte [rbx + r15], 0
cmp byte [rbp - 0x60], 0
je 0x14000aec4
lea rdx, [r14 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14000b02a
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000b183
jmp 0x14000b02a
call fcn.1400385e8
nop
call fcn.1400385e8
nop
call fcn.140001a00
int3
call fcn.140001960
int3