Function at 0x1400aeb50
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
movaps xmmword [rsp + 0x50], xmm7
movapd xmmword [rsp + 0x40], xmm6
mov rdi, rcx
mov qword [rsp + 0x20], 0
mov rbp, qword [rcx + 0x28]
mov rbx, qword [rcx + 0x158]
and ebx, 0x3f
mov r13, rbp
mov ecx, ebx
shr r13, cl
test r13, r13
je 0x1400aee78
mov rax, r13
shr rax, 0x3d
jne 0x1400aee78
lea rdx, [r13*4]
movzx eax, byte [0x141af8129]
xor ecx, ecx
mov qword [rsp + 0x38], rdx
call fcn.140146820
test rax, rax
je 0x1400aee78
mov rsi, rax
cmp r13, 8
jb 0x1400aebf5
lea rax, [rsi + r13*4]
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x20]
cmp rdx, rax
setb al
cmp rcx, rsi
jbe 0x1400aec9d
test al, al
je 0x1400aec9d
xor eax, eax
mov r8, r13
mov rdx, rax
and r8, 3
je 0x1400aec2b
mov r9, rax
nop word cs:[rax + rax]
movzx ecx, byte [rsp + 0x20]
mov r10, r9
shl r10, cl
lea rdx, [r9 + 1]
mov dword [rsi + r9*4], r10d
mov r9, rdx
dec r8
jne 0x1400aec10
sub rax, r13
cmp rax, 0xfffffffffffffffc
jbe 0x1400aec50
test r13, r13
jne 0x1400aed2a
jmp 0x1400aee78
movzx ecx, byte [rsp + 0x20]
mov rax, rdx
shl rax, cl
mov dword [rsi + rdx*4], eax
movzx ecx, byte [rsp + 0x20]
lea eax, [rdx + 1]
shl rax, cl
mov dword [rsi + rdx*4 + 4], eax
movzx ecx, byte [rsp + 0x20]
lea rax, [rdx + 2]
mov r8, rax
shl r8, cl
mov dword [rsi + rdx*4 + 8], r8d
movzx ecx, byte [rsp + 0x20]
inc eax
shl rax, cl
mov dword [rsi + rdx*4 + 0xc], eax
add rdx, 4
cmp rdx, r13
jne 0x1400aec50
jmp 0x1400aed2a
mov rax, r13
and rax, 0xfffffffffffffffc
movq xmm0, qword [rsp + 0x20]
pshufd xmm0, xmm0, 0x44
pand xmm0, xmmword [0x1402163f0]
movdqa xmm1, xmmword [0x140216400]
xor ecx, ecx
movdqa xmm2, xmmword [0x140216410]
pshufd xmm3, xmm0, 0xee
movdqa xmm4, xmmword [0x140216420]
nop word cs:[rax + rax]
movdqa xmm5, xmm1
movdqa xmm6, xmm1
psllq xmm6, xmm0
paddq xmm5, xmm2
movdqa xmm7, xmm1
psllq xmm7, xmm3
movsd xmm7, xmm6
movdqa xmm6, xmm5
psllq xmm6, xmm0
psllq xmm5, xmm3
movsd xmm5, xmm6
shufps xmm7, xmm5, 0x88
movups xmmword [rsi + rcx*4], xmm7
add rcx, 4
paddq xmm1, xmm4
cmp rax, rcx
jne 0x1400aece0
cmp r13, rax
jne 0x1400aebf7
mov r15, qword [rsp + 0x20]
movabs r11, 0x1fffffffffffffff
mov r14, qword [rdi + 0x20]
mov rdx, qword [rdi + 0x160]
and r15d, 0x3f
mov r8, r13
mov r12d, r13d
mov qword [rsp + 0x28], rdi
dec r12d
lea rax, [r8 - 0x80000000]
nop dword [rax]
sub r8, 1
jb 0x1400aee50
cmp rax, 0xffffffff80000001
jb 0x1400aee78
mov r10, r8
mov ecx, ebx
shl r10, cl
add r10, rdx
cmp r10, rbp
jae 0x1400aee78
mov rcx, qword [r14 + r10*8]
shr rcx, 0x2a
cmp ecx, 0x3ffffe
ja 0x1400aed60
cmp r12d, r8d
je 0x1400aee3e
mov dword [rsp + 0x34], r12d
mov r10d, r12d
mov r12, r10
mov ecx, ebx
shl r12, cl
mov eax, r8d
mov r11, rax
shl r11, cl
mov edi, 1
nop word cs:[rax + rax]
cmp r12, rbp
jae 0x1400aee78
cmp r11, rbp
jae 0x1400aee78
mov rcx, qword [r14 + r12*8]
mov r9, qword [r14 + r11*8]
mov qword [r14 + r12*8], r9
mov qword [r14 + r11*8], rcx
mov r9, rdi
mov ecx, ebx
shr r9, cl
inc r11
inc r12
inc rdi
test r9, r9
je 0x1400aedd0
mov ecx, r15d
shr r10, cl
shr rax, cl
cmp r10, r13
jae 0x1400aee78
cmp rax, r13
mov rdi, qword [rsp + 0x28]
movabs r11, 0x1fffffffffffffff
mov r12d, dword [rsp + 0x34]
jae 0x1400aee78
mov ecx, dword [rsi + r10*4]
mov r9d, dword [rsi + rax*4]
mov dword [rsi + r10*4], r9d
mov dword [rsi + rax*4], ecx
mov dword [rdi + 0x170], r12d
test r12d, r12d
jne 0x1400aed53
jmp 0x1400aee78
test r13, r13
je 0x1400aee7a
cmp r13, r11
mov rdi, qword [rsp + 0x38]
ja 0x1400aee78
movzx eax, byte [0x141af8129]
xor ecx, ecx
mov rdx, rdi
call fcn.140146820
mov r12, rax
test rax, rax
jne 0x1400aee82
ud2
mov r12d, 4
xor edi, edi
mov rcx, r12
mov rdx, rsi
mov r8, rdi
call sub.msvcrt.dll_memcpy
xor eax, eax
jmp 0x1400aeeac
mov dword [rsi + rax*4], r8d
inc rax
cmp rax, r13
je 0x1400aeeeb
mov rdx, rax
mov ecx, r15d
shl rdx, cl
cmp rax, r13
je 0x1400aee78
mov ecx, dword [r12 + rax*4]
cmp ecx, edx
je 0x1400aeea4
nop word cs:[rax + rax]
mov r8d, ecx
mov r9d, ecx
mov ecx, r15d
shr r9, cl
cmp r9, r13
jae 0x1400aee78
mov ecx, dword [r12 + r9*4]
cmp ecx, edx
jne 0x1400aeed0
jmp 0x1400aeea0
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x150]
test rax, rax
je 0x1400aef61
xor edx, edx
movabs r8, 0x7ffffffffff
nop dword [rax + rax]
mov r9, rdx
inc rdx
mov ecx, ebx
shl r9, cl
mov r10, rax
nop
cmp r9, rbp
jae 0x1400aee78
mov r11, qword [r14 + r9*8]
mov rdi, r11
shr rdi, 0x2b
mov ecx, r15d
shr rdi, cl
cmp rdi, r13
jae 0x1400aee78
mov ecx, dword [rsi + rdi*4]
shl rcx, 0x2b
and r11, r8
or r11, rcx
mov qword [r14 + r9*8], r11
inc r9
dec r10
jne 0x1400aef20
cmp rdx, r13
jne 0x1400aef10
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx + 0x40]
test rax, rax
je 0x1400aefa5
mov rdx, qword [rcx + 0x38]
xor r8d, r8d
nop word cs:[rax + rax]
mov r9d, dword [rdx + r8*4]
mov ecx, r15d
shr r9, cl
cmp r9, r13
jae 0x1400aee78
mov ecx, dword [rsi + r9*4]
mov dword [rdx + r8*4], ecx
inc r8
cmp rax, r8
jne 0x1400aef80
jmp 0x1400aefaa
test r13, r13
je 0x1400aefbb
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, r12
call sub.KERNEL32.dll_HeapFree
test r13, r13
je 0x1400aefd1
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret