Function at 0x29e85b9a640
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
xor r14d, r14d
mov rsi, r8
mov rdi, rcx
test r8, r8
je 0x29e85b9ab50
mov qword [rsp + 0x18], rbp
lea rbp, [rdx + 1]
mov qword [rsp + 0x10], rbx
nop dword [rax]
movzx ebx, byte [rbp - 1]
cmp rsi, 3
jb 0x29e85b9a915
movzx eax, byte [rbp]
shl ebx, 8
or ebx, eax
movzx eax, byte [rbp + 1]
shl ebx, 8
or ebx, eax
mov r11d, ebx
shr r11d, 0x12
and r11b, 0x3f
movzx r8d, r11b
mov eax, r8d
xor rax, 0x3e
lea rcx, [rax - 1]
not rax
shr rax, 0x3f
shr rcx, 0x3f
and cl, al
lea rax, [r8 - 0x3e]
shr rax, 0x3f
neg cl
neg al
movzx edx, cl
movzx ecx, al
lea rax, [r8 - 0x34]
movzx r10d, dl
shr rax, 0x3f
and r10b, 0xfb
not dl
neg al
or r10b, dl
movzx r9d, al
lea rax, [r8 - 0x1a]
shr rax, 0x3f
neg al
movzx r8d, al
movzx eax, cl
not al
and r10b, al
lea eax, [r11 - 4]
and al, cl
and r10b, 0x2f
or r10b, al
movzx eax, r9b
not al
and r10b, al
lea eax, [r11 + 0x47]
add r11b, 0x41
and al, r9b
and r11b, r8b
or r10b, al
movzx eax, r8b
not al
and r10b, al
or r10b, r11b
mov r11d, ebx
shr r11d, 0xc
mov byte [rdi], r10b
and r11b, 0x3f
movzx r8d, r11b
mov eax, r8d
xor rax, 0x3e
lea rcx, [rax - 1]
not rax
shr rax, 0x3f
shr rcx, 0x3f
and cl, al
lea rax, [r8 - 0x3e]
shr rax, 0x3f
neg cl
neg al
movzx edx, cl
movzx ecx, al
lea rax, [r8 - 0x34]
movzx r10d, dl
shr rax, 0x3f
neg al
movzx r9d, al
lea rax, [r8 - 0x1a]
shr rax, 0x3f
neg al
movzx r8d, al
and r10b, 0xfb
movzx eax, cl
not dl
not al
or r10b, dl
and r10b, al
lea eax, [r11 - 4]
and al, cl
and r10b, 0x2f
or r10b, al
movzx eax, r9b
not al
and r10b, al
lea eax, [r11 + 0x47]
add r11b, 0x41
and al, r9b
and r11b, r8b
or r10b, al
movzx eax, r8b
not al
and r10b, al
or r10b, r11b
mov r11d, ebx
and bl, 0x3f
mov byte [rdi + 1], r10b
shr r11d, 6
and r11b, 0x3f
movzx r8d, r11b
mov eax, r8d
xor rax, 0x3e
lea rcx, [rax - 1]
not rax
shr rax, 0x3f
shr rcx, 0x3f
and cl, al
lea rax, [r8 - 0x3e]
shr rax, 0x3f
neg cl
neg al
movzx edx, cl
movzx ecx, al
lea rax, [r8 - 0x34]
movzx r10d, dl
shr rax, 0x3f
and r10b, 0xfb
not dl
neg al
or r10b, dl
movzx r9d, al
lea rax, [r8 - 0x1a]
shr rax, 0x3f
neg al
movzx r8d, al
movzx eax, cl
not al
and r10b, al
lea eax, [r11 - 4]
and al, cl
and r10b, 0x2f
or r10b, al
movzx eax, r9b
not al
and r10b, al
lea eax, [r11 + 0x47]
add r11b, 0x41
and al, r9b
and r11b, r8b
or r10b, al
movzx eax, r8b
movzx r8d, bl
not al
and r10b, al
mov eax, r8d
xor rax, 0x3e
or r10b, r11b
lea rcx, [rax - 1]
not rax
mov byte [rdi + 2], r10b
shr rcx, 0x3f
shr rax, 0x3f
and cl, al
neg cl
lea rax, [r8 - 0x3e]
add rdi, 4
shr rax, 0x3f
movzx edx, cl
neg al
movzx r10d, dl
not dl
movzx ecx, al
and r10b, 0xfb
lea rax, [r8 - 0x34]
shr rax, 0x3f
or r10b, dl
neg al
movzx r9d, al
lea rax, [r8 - 0x1a]
shr rax, 0x3f
neg al
movzx r8d, al
movzx eax, cl
not al
and r10b, al
lea eax, [rbx - 4]
and al, cl
and r10b, 0x2f
or r10b, al
movzx eax, r9b
not al
and r10b, al
lea eax, [rbx + 0x47]
add bl, 0x41
and al, r9b
and bl, r8b
or r10b, al
movzx eax, r8b
not al
and r10b, al
or r10b, bl
sub rsi, 3
mov byte [rdi - 1], r10b
jmp 0x29e85b9ab22
shl ebx, 0x10
cmp rsi, 2
jne 0x29e85b9a927
movzx eax, byte [rbp]
shl eax, 8
or ebx, eax
mov r11d, ebx
shr r11d, 0x12
and r11b, 0x3f
movzx r8d, r11b
mov eax, r8d
xor rax, 0x3e
lea rcx, [rax - 1]
not rax
shr rax, 0x3f
shr rcx, 0x3f
and cl, al
lea rax, [r8 - 0x3e]
shr rax, 0x3f
neg cl
neg al
movzx edx, cl
movzx ecx, al
lea rax, [r8 - 0x34]
movzx r10d, dl
shr rax, 0x3f
and r10b, 0xfb
not dl
neg al
or r10b, dl
movzx r9d, al
lea rax, [r8 - 0x1a]
shr rax, 0x3f
neg al
movzx r8d, al
movzx eax, cl
not al
and r10b, al
lea eax, [r11 - 4]
and al, cl
and r10b, 0x2f
or r10b, al
movzx eax, r9b
not al
and r10b, al
lea eax, [r11 + 0x47]
add r11b, 0x41
and al, r9b
and r11b, r8b
or r10b, al
movzx eax, r8b
not al
and r10b, al
or r10b, r11b
mov r11d, ebx
mov byte [rdi], r10b
shr r11d, 0xc
and r11b, 0x3f
movzx r8d, r11b
mov eax, r8d
xor rax, 0x3e
lea rcx, [rax - 1]
not rax
shr rax, 0x3f
shr rcx, 0x3f
and cl, al
lea rax, [r8 - 0x3e]
shr rax, 0x3f
neg cl
neg al
movzx edx, cl
movzx ecx, al
lea rax, [r8 - 0x34]
movzx r10d, dl
shr rax, 0x3f
and r10b, 0xfb
not dl
neg al
or r10b, dl
movzx r9d, al
lea rax, [r8 - 0x1a]
shr rax, 0x3f
neg al
movzx r8d, al
movzx eax, cl
not al
and r10b, al
and r10b, 0x2f
lea eax, [r11 - 4]
and al, cl
or r10b, al
movzx eax, r9b
not al
and r10b, al
lea eax, [r11 + 0x47]
add r11b, 0x41
and al, r9b
and r11b, r8b
or r10b, al
movzx eax, r8b
not al
and r10b, al
or r10b, r11b
mov byte [rdi + 1], r10b
cmp rsi, 1
jne 0x29e85b9aa76
lea eax, [rsi + 0x3c]
jmp 0x29e85b9ab15
shr ebx, 6
and bl, 0x3f
movzx r8d, bl
mov eax, r8d
xor rax, 0x3e
lea rcx, [rax - 1]
not rax
shr rax, 0x3f
shr rcx, 0x3f
and cl, al
lea rax, [r8 - 0x3e]
shr rax, 0x3f
neg cl
neg al
movzx edx, cl
movzx r9d, al
lea rax, [r8 - 0x34]
shr rax, 0x3f
neg al
movzx r10d, al
lea rax, [r8 - 0x1a]
shr rax, 0x3f
neg al
movzx r8d, al
mov eax, edx
not dl
movzx ecx, dl
and eax, 0xfffffffb
or eax, ecx
movzx ecx, r9b
not cl
and ecx, 0x2f
and eax, ecx
lea ecx, [rbx - 4]
movzx edx, cl
movzx ecx, r10b
and edx, r9d
not cl
or eax, edx
movzx edx, cl
lea ecx, [rbx + 0x47]
and eax, edx
movzx edx, cl
add bl, 0x41
and edx, r10d
movzx ecx, r8b
or eax, edx
not cl
movzx edx, cl
and eax, edx
movzx edx, bl
and edx, r8d
or eax, edx
mov byte [rdi + 2], al
mov byte [rdi + 3], 0x3d
add rdi, 4
xor esi, esi
add r14, 4
add rbp, 3
test rsi, rsi
jne 0x29e85b9a670
mov rbp, qword [rsp + 0x18]
mov rbx, qword [rsp + 0x10]
mov byte [rdi], sil
mov rax, r14
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
pop r14
ret
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov byte [rcx], r14b
mov rax, r14
pop r14
ret