Function at 0x14000d210
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 [0x14009b010]
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 0x14000d29f
lfence
lea rcx, [rbp - 0x30]
call fcn.14000d770
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 0x14000d482
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 0x14000d30d
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 0x14000d32a
movzx r9d, cl
movzx r8d, sil
mov edx, 1
lea rcx, [rbp - 0x30]
call fcn.14000d8c0
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp rbx, r12
je 0x14000d337
movzx ecx, byte [rbx]
inc rbx
jmp 0x14000d339
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 0x14000d383
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 0x14000d39f
movzx r8d, r15b
mov edx, 1
lea rcx, [rbp - 0x30]
call fcn.14000d8c0
mov ecx, dword [rbp - 0x50]
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp qword [rbp - 0x38], r12
je 0x14000d607
cmp rbx, r12
je 0x14000d3b7
movzx r13d, byte [rbx]
inc rbx
jmp 0x14000d3ba
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 0x14000d3f8
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 0x14000d411
movzx r8d, r14b
mov edx, 1
lea rcx, [rbp - 0x30]
call fcn.14000d8c0
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp qword [rbp - 0x40], r12
je 0x14000d4be
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 0x14000d453
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 0x14000d46c
movzx r8d, dil
mov edx, 1
lea rcx, [rbp - 0x30]
call fcn.14000d8c0
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmp rbx, r12
je 0x14000d47e
mov r9, qword [rbp - 0x18]
mov r8, qword [rbp - 0x20]
jmp 0x14000d2d0
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.140045000
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 0x14000d759
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 0x14000d5a4
mov rax, r15
or rax, 0xf
cmp rax, rcx
jbe 0x14000d528
mov rax, rcx
jmp 0x14000d534
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 0x14000d58e
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000d75f
lfence
mov rcx, rax
call fcn.140045020
test rax, rax
je 0x14000d74d
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 0x14000d5a0
test rcx, rcx
je 0x14000d59d
call fcn.140045020
mov rbx, rax
jmp 0x14000d5a0
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.14004a640
mov byte [rsi + rbx], 0x3d
mov byte [rbx + r15], 0
cmp byte [rbp - 0x60], 0
je 0x14000d494
lea rdx, [r14 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14000d5fa
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000d753
mov rcx, rdi
call fcn.1400452ac
jmp 0x14000d494
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
mov rsi, qword [rbp - 0x20]
sub rax, rsi
cmp rax, 2
jb 0x14000d759
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 0x14000d6ed
mov rax, r15
or rax, 0xf
cmp rax, rcx
jbe 0x14000d671
mov rax, rcx
jmp 0x14000d67d
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 0x14000d6d7
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000d75f
lfence
mov rcx, rax
call fcn.140045020
test rax, rax
je 0x14000d74d
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 0x14000d6e9
test rcx, rcx
je 0x14000d6e6
call fcn.140045020
mov rbx, rax
jmp 0x14000d6e9
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.14004a640
mov eax, 0x3d3d
mov word [rsi + rbx], ax
mov byte [rbx + r15], 0
cmp byte [rbp - 0x60], 0
je 0x14000d494
lea rdx, [r14 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14000d5fa
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000d753
jmp 0x14000d5fa
call fcn.14004eb2c
nop
call fcn.14004eb2c
nop
call fcn.1400019c0
int3
call fcn.140001920
int3