Function at 0x100635720
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rsi, qword [r8 + 8]
mov r13, qword [r8]
mov r15, qword [rcx]
mov edi, esi
and edi, 0x3fffffff
mov rbp, rcx
test esi, 0x40000000
je 0x100635940
test dl, 1
jne 0x100635c18
test dl, 2
jne 0x100635c3a
test dl, 4
jne 0x100635c41
xor eax, eax
and edx, 8
jne 0x100635c48
mov dword [rsp + 0x20], eax
xor r8d, r8d
mov edx, 0x9d
mov rcx, r15
lea r9, str.52__c_
call sym.vim.exe_vterm_push_output_sprintf_str
mov dword [rbp + 0x1bc], 0
test esi, 0x3fffffff
je 0x100635b60
mov rcx, qword [rbp + 0x1d0]
xor ebx, ebx
xor r12d, r12d
cmp qword [rbp + 0x1d8], 3
jbe 0x100635b60
xor r8d, r8d
mov r14d, edi
jmp 0x100635821
mov edx, edi
and rax, 0xffffffffc0000000
mov r14d, edi
and edx, 0x3fffffff
or rax, rdx
mov rsi, rax
test rdx, rdx
je 0x1006357fc
mov rax, qword [rbp + 0x1d8]
sub rax, r8
cmp rax, 3
ja 0x10063581d
test r8, r8
jne 0x1006359d0
cmp qword [rbp + 0x1d8], 3
mov rcx, qword [rbp + 0x1d0]
jbe 0x100635988
xor r8d, r8d
add r13, 1
mov rax, rsi
mov rdx, r14
and edx, 0x3fffffff
and rax, 0xffffffffc0000000
or rax, rdx
mov rsi, rax
test eax, 0x3fffffff
je 0x100635988
movsx edx, byte [r13]
shl ebx, 8
add edi, 0x3fffffff
add r12d, 1
and edi, 0x3fffffff
or ebx, edx
cmp r12d, 3
jne 0x1006357d0
mov edx, ebx
shr edx, 0x12
and edx, 0x3f
cmp edx, 0x19
jle 0x100635a10
cmp edx, 0x33
jle 0x100635b28
cmp dl, 0x3d
jbe 0x100635b80
cmp dl, 0x3e
setne dl
lea edx, [rdx*4 + 0x2b]
mov byte [rcx], dl
mov edx, ebx
shr edx, 0xc
and edx, 0x3f
cmp edx, 0x19
jle 0x100635a00
cmp edx, 0x33
jle 0x100635b50
cmp dl, 0x3d
jbe 0x100635b70
cmp dl, 0x3e
setne dl
lea edx, [rdx*4 + 0x2b]
mov byte [rcx + 1], dl
mov edx, ebx
shr edx, 6
and edx, 0x3f
cmp edx, 0x19
jle 0x1006359f0
cmp edx, 0x33
jle 0x100635b40
cmp dl, 0x3d
jbe 0x100635ba0
cmp dl, 0x3e
setne dl
lea edx, [rdx*4 + 0x2b]
and ebx, 0x3f
mov byte [rcx + 2], dl
cmp ebx, 0x19
jle 0x1006359e8
cmp ebx, 0x33
jle 0x100635b30
cmp bl, 0x3d
jbe 0x100635b90
cmp bl, 0x3e
setne bl
lea ebx, [rbx*4 + 0x2b]
mov byte [rcx + 3], bl
add r8, 4
add rcx, 4
xor r12d, r12d
xor ebx, ebx
jmp 0x1006357d0
mov r14d, edi
test edi, edi
je 0x10063599b
mov ebx, dword [rbp + 0x1bc]
mov rcx, qword [rcx + 0x1d0]
test ebx, ebx
je 0x1006357af
mov dword [rbp + 0x1bc], 0
mov r12d, ebx
and ebx, 0xffffff
shr r12d, 0x18
cmp qword [rbp + 0x1d8], 3
ja 0x1006357c2
nop dword [rax]
test r12d, r12d
je 0x10063599b
shl r12d, 0x18
or r12d, ebx
mov dword [rbp + 0x1bc], r12d
and r14d, 0x3fffffff
and rsi, 0xffffffffc0000000
or rsi, r14
shr rsi, 0x18
test sil, sil
js 0x100635a20
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rbp + 0x1d0]
mov rcx, r15
call sym.vim.exe_vterm_push_output_bytes
jmp 0x100635805
add ebx, 0x41
jmp 0x10063592b
add edx, 0x41
jmp 0x1006358fd
add edx, 0x41
jmp 0x1006358ca
add edx, 0x41
jmp 0x100635898
mov eax, dword [rbp + 0x1bc]
test eax, eax
je 0x100635bc0
mov r9d, eax
xor ecx, ecx
and eax, 0xffffff
mov r8, qword [rbp + 0x1d0]
shr r9d, 0x18
cmp r9d, 1
sete cl
lea ecx, [rcx*8 + 8]
shl eax, cl
mov edx, eax
shr edx, 0x12
and edx, 0x3f
cmp edx, 0x19
jle 0x100635bb0
cmp edx, 0x33
jle 0x100635c00
cmp dl, 0x3d
jbe 0x100635c32
cmp dl, 0x3e
setne dl
lea edx, [rdx*4 + 0x2b]
mov byte [r8], dl
mov edx, eax
shr edx, 0xc
and edx, 0x3f
cmp edx, 0x19
jle 0x100635bf0
cmp edx, 0x33
jle 0x100635c10
cmp dl, 0x3d
jbe 0x100635c2a
cmp dl, 0x3e
setne dl
lea edx, [rdx*4 + 0x2b]
mov byte [r8 + 1], dl
mov edx, 0x3d
cmp r9d, 1
je 0x100635af0
shr eax, 6
and eax, 0x3f
lea edx, [rax + 0x41]
cmp eax, 0x19
jle 0x100635af0
lea edx, [rax + 0x47]
cmp eax, 0x33
jle 0x100635af0
lea edx, [rax - 4]
cmp al, 0x3d
jbe 0x100635af0
cmp al, 0x3e
setne dl
lea edx, [rdx*4 + 0x2b]
nop
mov byte [r8 + 2], dl
lea r9, str._.s
xor edx, edx
mov rcx, r15
mov byte [r8 + 3], 0x3d
mov qword [rsp + 0x28], r8
mov r8d, 1
mov dword [rsp + 0x20], 4
call sym.vim.exe_vterm_push_output_sprintf_str
jmp 0x1006359b5
add edx, 0x47
jmp 0x100635898
add ebx, 0x47
jmp 0x10063592b
add edx, 0x47
jmp 0x1006358fd
add edx, 0x47
jmp 0x1006358ca
mov r14d, edi
jmp 0x10063599b
sub edx, 4
jmp 0x1006358ca
sub edx, 4
jmp 0x100635898
sub ebx, 4
jmp 0x10063592b
sub edx, 4
jmp 0x1006358fd
add edx, 0x41
jmp 0x100635a83
lea r9, [0x1006e406e]
mov r8d, 1
xor edx, edx
mov rcx, r15
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.vim.exe_vterm_push_output_sprintf_str
add edx, 0x41
jmp 0x100635ab6
add edx, 0x47
jmp 0x100635a83
add edx, 0x47
jmp 0x100635ab6
xor eax, eax
lea rdx, str.cpqs
movsx eax, byte [rdx + rax]
jmp 0x100635777
sub edx, 4
jmp 0x100635ab6
sub edx, 4
jmp 0x100635a83
mov eax, 1
jmp 0x100635c1a
mov eax, 2
jmp 0x100635c1a
mov eax, 3
jmp 0x100635c1a