Function at 0x140087c20
Capabilities:
Encode data using base64

Disassembly:
push rsi
mov qword [rsp + 0x18], rbp
movabs rbp, 0xaaaaaaaaaaaaaaab
lea rsi, [0x1401c5110]
mov r10, rdx
mov r11, rcx
mov r9, rcx
cmp rdx, 0x10
jb 0x140087de7
mov qword [rsp + 0x10], rbx
mov rax, rbp
mul r10
mov qword [rsp + 0x20], rdi
lea rbx, [rcx + 5]
shr rdx, 3
lea rax, [rdx + rdx*2]
lea rdi, [rcx + rax*4]
lea rdx, [r8 + 6]
nop
movzx eax, byte [rbx - 4]
movzx ecx, byte [r9]
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx - 3]
shl rcx, 8
add rcx, rax
mov rax, rcx
shr rax, 0x12
movzx eax, byte [rax + rsi]
mov byte [r8], al
mov rax, rcx
shr rax, 0xc
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [rdx - 5], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [rdx - 4], al
movzx eax, byte [rcx + rsi]
mov byte [rdx - 3], al
movzx eax, byte [rbx - 1]
movzx ecx, byte [rbx - 2]
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx]
shl rcx, 8
add rcx, rax
mov rax, rcx
shr rax, 0x12
movzx eax, byte [rax + rsi]
mov byte [rdx - 2], al
mov rax, rcx
shr rax, 0xc
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [rdx - 1], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [rdx], al
movzx eax, byte [rcx + rsi]
mov byte [rdx + 1], al
movzx eax, byte [rbx + 2]
movzx ecx, byte [rbx + 1]
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx + 3]
shl rcx, 8
add rcx, rax
mov rax, rcx
shr rax, 0x12
movzx eax, byte [rax + rsi]
mov byte [rdx + 2], al
mov rax, rcx
shr rax, 0xc
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [rdx + 3], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [rdx + 4], al
movzx eax, byte [rcx + rsi]
mov byte [rdx + 5], al
movzx eax, byte [rbx + 5]
movzx ecx, byte [rbx + 4]
shl rcx, 8
add rcx, rax
movzx eax, byte [rbx + 6]
shl rcx, 8
add rcx, rax
mov rax, rcx
shr rax, 0x12
movzx eax, byte [rax + rsi]
add r9, 0xc
mov byte [rdx + 6], al
lea rdx, [rdx + 0x10]
mov rax, rcx
lea rbx, [rbx + 0xc]
shr rax, 0xc
add r8, 0x10
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [rdx - 9], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [rdx - 8], al
movzx eax, byte [rcx + rsi]
mov byte [rdx - 7], al
cmp r9, rdi
jne 0x140087c70
mov rdi, qword [rsp + 0x20]
sub r11, r9
mov rbx, qword [rsp + 0x10]
add r10, r11
cmp r10, 3
jb 0x140087e67
mov rax, rbp
mul r10
shr rdx, 1
imul rax, rdx, 0xfffffffffffffffd
add r10, rax
nop dword [rax]
movzx eax, byte [r9 + 1]
movzx ecx, byte [r9]
shl rcx, 8
add rcx, rax
movzx eax, byte [r9 + 2]
shl rcx, 8
add r9, 3
add rcx, rax
mov rax, rcx
shr rax, 0x12
movzx eax, byte [rax + rsi]
mov byte [r8], al
mov rax, rcx
shr rax, 0xc
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [r8 + 1], al
mov rax, rcx
shr rax, 6
and ecx, 0x3f
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [r8 + 2], al
movzx eax, byte [rcx + rsi]
mov byte [r8 + 3], al
add r8, 4
sub rdx, 1
jne 0x140087e00
mov rbp, qword [rsp + 0x18]
cmp r10, 1
jne 0x140087e9a
movzx ecx, byte [r9]
mov eax, ecx
mov word [r8 + 2], 0x3d3d
shr rax, 2
and ecx, 3
shl ecx, 4
movzx eax, byte [rax + rsi]
mov byte [r8], al
movzx eax, byte [rcx + rsi]
mov byte [r8 + 1], al
pop rsi
ret
cmp r10, 2
jne 0x140087edf
movzx edx, byte [r9]
movzx eax, byte [r9 + 1]
shl edx, 8
add edx, eax
mov byte [r8 + 3], 0x3d
mov eax, edx
shr rax, 0xa
mov ecx, edx
and edx, 0xf
shr rcx, 4
and ecx, 0x3f
movzx eax, byte [rax + rsi]
mov byte [r8], al
shl edx, 2
movzx eax, byte [rcx + rsi]
mov byte [r8 + 1], al
movzx eax, byte [rdx + rsi]
mov byte [r8 + 2], al
pop rsi
ret