Function at 0x1400ab810
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov r14, rdx
mov rsi, rcx
mov rcx, rdx
call fcn.1400a10b0
cmp eax, 0x70
je 0x1400ab847
mov rcx, r14
call fcn.1400a10b0
cmp eax, 0x50
jne 0x1400ac614
mov r12, qword [r14]
cmp qword [r12 + 0x80], 0
jne 0x1400ac5e5
mov qword [r12 + 0x80], 0xffffffffffffffff
mov qword [r12 + 0x98], 0
mov rcx, r14
call fcn.1400a10b0
mov r13d, eax
mov rcx, r14
call fcn.1400a18b0
test al, al
je 0x1400abb67
mov rcx, r14
call fcn.1400a0ce0
mov r15, qword [r12 + 0xa0]
mov rbx, qword [r14 + 0x10]
cmp r15, rbx
je 0x1400abb6b
lea rdi, [r12 + 0xa0]
mov rcx, r14
call fcn.1400a10b0
mov r15, qword [rdi]
cmp eax, 0x7b
jne 0x1400abc38
mov rcx, r14
call fcn.1400a10b0
mov ecx, 1
cmp eax, 0x80
jb 0x1400ab8f3
mov ecx, 2
cmp eax, 0x800
jb 0x1400ab8f3
cmp eax, 0x10000
mov ecx, 4
sbb rcx, 0
add r15, rcx
jb 0x1400ac654
mov qword [rsp + 0xf0], r15
mov dword [rsp + 0x4c], r13d
mov rax, qword [r12 + 0xb0]
cmp rax, 0xffffffffffffffff
je 0x1400ac660
lea rcx, [r12 + 0x88]
mov qword [rsp + 0x30], rcx
mov r13, qword [r12 + 0xa8]
inc rax
mov rcx, r14
mov rbp, rax
call fcn.1400a10b0
xor ecx, ecx
cmp eax, 0xa
sete cl
mov eax, 1
cmove rbp, rax
mov qword [rsp + 0xc8], rbp
add rcx, r13
mov qword [rsp + 0xc0], rcx
lea r15, [rsp + 0x50]
mov rcx, r14
call fcn.1400a18b0
test al, al
jne 0x1400aba07
cmp qword [rdi], rbx
jne 0x1400abd65
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x78], rax
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x68], xmm0
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rdi]
movaps xmmword [rsp + 0x50], xmm0
test rbx, rbx
js 0x1400ac66c
mov r14, qword [r14 + 8]
je 0x1400abf71
movzx eax, byte [0x140156100]
xor ecx, ecx
mov rdx, rbx
call fcn.1400d9a20
mov rdi, rax
mov r15, rbx
test rax, rax
jne 0x1400abf79
jmp 0x1400ac45f
mov rcx, qword [r12 + 0x90]
mov byte [rcx + r13], al
inc r13
mov qword [r12 + 0x98], r13
mov rcx, r14
call fcn.1400a18b0
test al, al
je 0x1400ab977
mov rcx, r14
call fcn.1400a0ce0
cmp qword [rdi], rbx
je 0x1400ab977
mov rcx, r14
call fcn.1400a10b0
cmp eax, 0x7d
je 0x1400ab977
mov rcx, r14
call fcn.1400a10b0
cmp eax, 0x80
jae 0x1400aba60
mov r13, qword [r12 + 0x98]
cmp r13, qword [r12 + 0x88]
jne 0x1400ab9e0
mov rcx, qword [rsp + 0x30]
mov ebp, eax
call fcn.1400408c0
mov eax, ebp
jmp 0x1400ab9e0
mov dword [rsp + 0x50], 0
mov ecx, eax
cmp eax, 0x800
jae 0x1400aba90
shr ecx, 6
or cl, 0xc0
mov byte [rsp + 0x50], cl
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
mov r13d, 2
jmp 0x1400abaf6
cmp eax, 0x10000
jae 0x1400abac0
shr ecx, 0xc
or cl, 0xe0
mov byte [rsp + 0x50], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x51], cl
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x52], al
mov r13d, 3
jmp 0x1400abaf6
shr ecx, 0x12
or cl, 0xf0
mov byte [rsp + 0x50], cl
mov ecx, eax
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x51], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x52], cl
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x53], al
mov r13d, 4
mov rax, qword [r12 + 0x88]
mov rdx, qword [r12 + 0x98]
sub rax, rdx
cmp rax, r13
jb 0x1400abb41
add rdx, qword [r12 + 0x90]
mov rcx, rdx
mov rdx, r15
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
add qword [r12 + 0x98], r13
mov rcx, r14
call fcn.1400a18b0
test al, al
jne 0x1400aba07
jmp 0x1400ab977
mov qword [rsp + 0x20], 1
mov r9d, 1
mov rcx, qword [rsp + 0x30]
mov r8, r13
call fcn.1400dfd40
mov rdx, qword [r12 + 0x98]
jmp 0x1400abb0e
mov r15, qword [r14 + 0x10]
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0x78], rax
movups xmm0, xmmword [r12 + 0xa0]
movups xmmword [rsp + 0x68], xmm0
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [r12 + 0xa0]
movaps xmmword [rsp + 0x50], xmm0
test r15, r15
js case.0x1400a5621.118
mov rbx, qword [r14 + 8]
je 0x1400abbd9
movzx eax, byte [0x140156100]
xor ecx, ecx
mov rdx, r15
call fcn.1400d9a20
mov rdi, rax
mov r14, r15
test rax, rax
jne 0x1400abbe1
mov qword [rsp + 0xe0], rdi
mov rcx, r14
call fcn.1400a10b0
mov dword [rsp + 0xec], eax
cmp eax, 0x7d
jne 0x1400ac690
mov rcx, r14
call fcn.1400a18b0
mov rdx, qword [r12 + 0x90]
mov qword [rsp + 0x30], rdx
mov r8, qword [r12 + 0x98]
mov qword [rsp + 0x20], 2
lea r9, [0x1400f1770]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x38], r8
call fcn.140037e10
test byte [rsp + 0x50], 1
mov qword [rsp + 0xe0], rdi
je 0x1400abe46
mov r14, qword [rsp + 0x88]
mov r8, qword [rsp + 0x98]
mov rax, qword [rsp + 0xb0]
lea rcx, [rax - 1]
mov rdx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
cmp r14, 0xffffffffffffffff
mov qword [rsp + 0x40], rcx
je 0x1400ac0d9
mov r10, qword [rsp + 0x78]
add rcx, r10
cmp rcx, rdx
jae 0x1400ac1da
mov r9, qword [rsp + 0x70]
mov r13, qword [rsp + 0x58]
mov r11, qword [rsp + 0x68]
mov r15, rax
mov qword [rsp + 0xd8], r11
sub r15, r11
mov qword [rsp + 0xd0], r15
mov qword [rsp + 0xb8], r9
jmp 0x1400ac028
cmp byte [rsp + 0x6a], 0
jne 0x1400ac1da
mov r10, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
mov r15, qword [rsp + 0xa0]
movzx eax, byte [rsp + 0x68]
mov rbx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
jmp 0x1400abe85
mov edi, 1
xor r15d, r15d
mov rcx, rdi
mov rdx, r14
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov qword [rsi], r15
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], rbx
jmp 0x1400abc15
mov r10, qword [rsp + 0x78]