Function at 0x1400ab0f0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, rdx
mov rsi, rcx
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, r9
mul rcx
mov rax, r9
shr rax, 0x3e
cmp eax, 2
ja 0x1400ab728
mov r12, r9
mov r15, r8
mov rdi, rdx
movzx edx, byte [r14]
shr rdi, 1
lea rax, [rdi + rdi*2]
mov r13, r9
sub r13, rax
shl rdi, 2
test r13, r13
mov byte [rsp + 0x2f], dl
je 0x1400ab15b
test dl, dl
je 0x1400ab169
add rdi, 4
jb 0x1400ab728
test rdi, rdi
jne 0x1400ab179
mov ebx, 1
xor edi, edi
jmp 0x1400ab1bf
xor eax, eax
cmp r13, 1
sete al
xor rax, 3
or rdi, rax
test rdi, rdi
js 0x1400ab728
mov rcx, qword [0x140228110]
test rcx, rcx
jne 0x1400ab1a6
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1400ab728
mov rcx, rax
mov qword [0x140228110], rax
mov edx, 8
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov rbx, rax
test rax, rax
je 0x1400ab728
xor eax, eax
mov rdx, r12
mov ecx, 0
sub rdx, 0x1a
cmovb rdx, rax
jbe 0x1400ab4d7
mov eax, 0x20
xor ecx, ecx
nop
lea r8, [rcx + 0x1a]
cmp r8, r12
ja 0x1400ab728
test rax, rax
je 0x1400ab728
cmp rax, rdi
ja 0x1400ab728
mov r8, qword [r15 + rcx]
bswap r8
mov r9, r8
shr r9, 0x3a
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x20], r9b
mov r9, r8
shr r9, 0x34
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1f], r9b
mov r9, r8
shr r9, 0x2e
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1e], r9b
mov r9, r8
shr r9, 0x28
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1d], r9b
mov r9, r8
shr r9, 0x22
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1c], r9b
mov r9, r8
shr r9, 0x1c
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1b], r9b
mov r9d, r8d
shr r9d, 0x16
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x1a], r9b
shr r8d, 0x10
and r8d, 0x3f
movzx r8d, byte [r14 + r8 + 3]
mov byte [rbx + rax - 0x19], r8b
mov r8, qword [r15 + rcx + 6]
bswap r8
mov r9, r8
shr r9, 0x3a
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x18], r9b
mov r9, r8
shr r9, 0x34
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x17], r9b
mov r9, r8
shr r9, 0x2e
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x16], r9b
mov r9, r8
shr r9, 0x28
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x15], r9b
mov r9, r8
shr r9, 0x22
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x14], r9b
mov r9, r8
shr r9, 0x1c
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x13], r9b
mov r9d, r8d
shr r9d, 0x16
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x12], r9b
shr r8d, 0x10
and r8d, 0x3f
movzx r8d, byte [r14 + r8 + 3]
mov byte [rbx + rax - 0x11], r8b
mov r8, qword [r15 + rcx + 0xc]
bswap r8
mov r9, r8
shr r9, 0x3a
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0x10], r9b
mov r9, r8
shr r9, 0x34
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xf], r9b
mov r9, r8
shr r9, 0x2e
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xe], r9b
mov r9, r8
shr r9, 0x28
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xd], r9b
mov r9, r8
shr r9, 0x22
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xc], r9b
mov r9, r8
shr r9, 0x1c
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xb], r9b
mov r9d, r8d
shr r9d, 0x16
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 0xa], r9b
shr r8d, 0x10
and r8d, 0x3f
movzx r8d, byte [r14 + r8 + 3]
mov byte [rbx + rax - 9], r8b
mov r8, qword [r15 + rcx + 0x12]
bswap r8
mov r9, r8
shr r9, 0x3a
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 8], r9b
mov r9, r8
shr r9, 0x34
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 7], r9b
mov r9, r8
shr r9, 0x2e
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 6], r9b
mov r9, r8
shr r9, 0x28
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 5], r9b
mov r9, r8
shr r9, 0x22
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 4], r9b
mov r9, r8
shr r9, 0x1c
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 3], r9b
mov r9d, r8d
shr r9d, 0x16
and r9d, 0x3f
movzx r9d, byte [r14 + r9 + 3]
mov byte [rbx + rax - 2], r9b
shr r8d, 0x10
and r8d, 0x3f
movzx r8d, byte [r14 + r8 + 3]
mov byte [rbx + rax - 1], r8b
add rcx, 0x18
add rax, 0x20
cmp rcx, rdx
jbe 0x1400ab1e0
add rax, 0xffffffffffffffe0
mov r8, r12
sub r8, r13
cmp rcx, r8
jae 0x1400ab623
nop word cs:[rax + rax]
cmp rcx, 0xfffffffffffffffc
ja 0x1400ab728
lea r9, [rcx + 3]
cmp r9, r12
ja 0x1400ab728
cmp rax, 0xfffffffffffffffb
ja 0x1400ab728
lea rdx, [rax + 4]
cmp rdx, rdi
ja 0x1400ab728
movzx r10d, byte [r15 + rcx]
mov r11d, r10d
shr r11d, 2
movzx r11d, byte [r14 + r11 + 3]
mov byte [rbx + rax], r11b
movzx ebp, byte [r15 + rcx + 1]
shl r10b, 4
mov r11d, ebp
shr r11b, 4
or r11b, r10b
movzx r10d, r11b
and r10d, 0x3f
movzx r10d, byte [r14 + r10 + 3]
mov byte [rbx + rax + 1], r10b
movzx ecx, byte [r15 + rcx + 2]
shl bpl, 2
mov r10d, ecx
shr r10b, 6
or r10b, bpl
movzx r10d, r10b
and r10d, 0x3f
movzx r10d, byte [r14 + r10 + 3]
mov byte [rbx + rax + 2], r10b
and ecx, 0x3f
movzx ecx, byte [r14 + rcx + 3]
mov byte [rbx + rax + 3], cl
mov rcx, r9
mov rax, rdx
cmp r9, r8
jb 0x1400ab4f0
cmp r13, 1
je 0x1400ab630
cmp r13, 2
jne 0x1400ab673
cmp rdx, rdi
jae 0x1400ab728
movzx ecx, byte [r15 + r8]
mov eax, ecx
shr eax, 2
movzx eax, byte [r14 + rax + 3]
mov byte [rbx + rdx], al
inc r8
cmp r8, r12
jae 0x1400ab728
lea rax, [rdx + 1]
cmp rax, rdi
jae 0x1400ab728
movzx eax, byte [r15 + r8]
mov r8d, eax
shr r8b, 4
shl cl, 4
or cl, r8b
movzx ecx, cl
and ecx, 0x3f
movzx ecx, byte [r14 + rcx + 3]
mov byte [rbx + rdx + 1], cl
lea rcx, [rdx + 2]
cmp rcx, rdi
jae 0x1400ab728
shl al, 2
and al, 0x3c
mov r8d, 3
jmp 0x1400ab664
mov rdx, rax
cmp r13, 1
jne 0x1400ab5a8
cmp rdx, rdi
jae 0x1400ab728
movzx eax, byte [r15 + r8]
mov ecx, eax
shr ecx, 2
movzx ecx, byte [r14 + rcx + 3]
mov byte [rbx + rdx], cl
lea rcx, [rdx + 1]
cmp rcx, rdi
jae 0x1400ab728
shl al, 4
and al, 0x30
mov r8d, 2
movzx eax, al
movzx eax, byte [r14 + rax + 3]
mov byte [rbx + rcx], al
add rdx, r8
cmp byte [rsp + 0x2f], 0
je 0x1400ab6c7
mov rcx, rdi
sub rcx, rdx
jb 0x1400ab728
mov eax, edx
neg eax
and eax, 3
je 0x1400ab721
cmp rdi, rdx
je 0x1400ab728
mov byte [rbx + rdx], 0x3d
cmp eax, 1
je 0x1400ab6c9
cmp rcx, 1
je 0x1400ab728
mov byte [rbx + rdx + 1], 0x3d
cmp eax, 2
je 0x1400ab6c9
cmp rcx, 2
je 0x1400ab728
mov byte [rbx + rdx + 2], 0x3d
add rdx, rax
jae 0x1400ab6ce
jmp 0x1400ab728
xor eax, eax
add rdx, rax
jb 0x1400ab728
lea rcx, [rsp + 0x30]
mov rdx, rbx
mov r8, rdi
call fcn.14000e1c0
cmp qword [rsp + 0x30], 0
je 0x1400ab702
movabs rax, 0x8000000000000000
cmp rdi, rax
jne 0x1400ab728
mov rax, rbx
mov rbx, rdi
mov rdi, qword [rsp + 0x38]
jmp 0x1400ab705
mov rax, rdi
mov qword [rsi], rax
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], rdi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
add rdx, rax
jae 0x1400ab6ce
ud2