Function at 0x140014de0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
lea rax, [0x14002d120]
mov rsi, r8
test r9b, r9b
mov r13, rdx
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0x50], 0
lea r8, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov qword [rsp + 0x58], 0
cmovne rax, r8
imul rcx, rsi, 4
mov r15, rax
jo 0x1400150b0
movabs r12, 0x5555555555555556
mov rax, rcx
sar rcx, 0x3f
imul r12
sub rdx, rcx
add rdx, 6
mov rcx, rdx
js 0x140015110
lea rax, [rsp + 0x50]
mov rcx, rax
mov qword [rsp + 0x20], rax
call sym.setLengthStrV2
mov rax, rsi
mov r11, rsi
imul r12
mov rax, rsi
sar rax, 0x3f
mov r12, rdx
sub r12, rax
lea rax, [r12 + r12*2]
mov r12, rsi
sub r12, rax
sub r11, r12
seto dil
mov rbp, r11
movzx edi, dil
jo 0x1400150b0
test r11, r11
je 0x1400152c8
test rsi, rsi
jle 0x140015170
movzx eax, byte [r13]
shl eax, 0x10
cmp rsi, 1
je 0x140015181
movzx ebx, byte [r13 + 1]
shl ebx, 8
or ebx, eax
cmp rsi, 2
je 0x1400152e3
mov qword [rsp + 0x28], r11
xor ebp, ebp
mov qword [rsp + 0x48], r12
mov r12, rbp
mov rbp, r15
movzx eax, byte [r13 + rdi + 2]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x30], rdi
mov r14, rdi
add rdi, 3
or ebx, eax
cmp rdx, r12
jle 0x140015140
mov r9d, ebx
mov rcx, qword [rsp + 0x58]
lea r15, [r12 + 1]
shr r9d, 0x12
add r9, rbp
test rcx, rcx
je 0x1400150e0
test byte [rcx + 7], 0x40
je 0x1400150e0
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x38], r9
call sym.nimPrepareStrMutationImpl__system_u2390
mov r9, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x58]
movzx ecx, byte [r9]
mov byte [rdx + r12 + 8], cl
mov rdx, qword [rsp + 0x50]
cmp r15, rdx
jge 0x140015128
mov r10d, ebx
mov rcx, qword [rsp + 0x58]
lea r9, [r12 + 2]
shr r10d, 0xc
and r10d, 0x3f
add r10, rbp
test rcx, rcx
je 0x1400150f0
test byte [rcx + 7], 0x40
je 0x1400150f0
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x38], r10
call sym.nimPrepareStrMutationImpl__system_u2390
mov r10, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x40]
movzx ecx, byte [r10]
mov byte [rdx + r15 + 8], cl
mov rdx, qword [rsp + 0x50]
cmp r9, rdx
jge 0x140015158
mov r10d, ebx
mov rcx, qword [rsp + 0x58]
lea r15, [r12 + 3]
shr r10d, 6
and r10d, 0x3f
add r10, rbp
test rcx, rcx
je 0x140015100
test byte [rcx + 7], 0x40
je 0x140015100
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x38], r10
call sym.nimPrepareStrMutationImpl__system_u2390
mov r10, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x40]
movzx ecx, byte [r10]
mov byte [rdx + r9 + 8], cl
mov rdx, qword [rsp + 0x50]
cmp r15, rdx
jge 0x140015128
mov rdx, qword [rsp + 0x58]
test rdx, rdx
je 0x140015048
test byte [rdx + 7], 0x40
je 0x140015048
mov rcx, qword [rsp + 0x20]
call sym.nimPrepareStrMutationImpl__system_u2390
mov rdx, qword [rsp + 0x58]
and ebx, 0x3f
add r12, 4
movzx ecx, byte [rbp + rbx]
mov byte [rdx + r15 + 8], cl
cmp qword [rsp + 0x28], rdi
je 0x140015198
cmp rsi, rdi
jle 0x140015170
movzx eax, byte [r13 + rdi]
lea rcx, [r14 + 4]
shl eax, 0x10
cmp rsi, rcx
jle 0x140015186
movzx ebx, byte [r13 + rdi + 1]
add r14, 5
shl ebx, 8
or ebx, eax
cmp rsi, r14
jg 0x140014ee6
lea rdx, [rsi - 1]
mov rcx, r14
call sym.raiseIndexError2
jmp 0x1400150b5
call sym.raiseOverflow
mov rax, qword [rsp + 0xb0]
movdqu xmm0, xmmword [rsp + 0x50]
movups xmmword [rax], xmm0
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx r9d, byte [r9]
mov byte [rcx + r12 + 8], r9b
jmp 0x140014f56
movzx r10d, byte [r10]
mov byte [rcx + r15 + 8], r10b
jmp 0x140014fbb
movzx r10d, byte [r10]
mov byte [rcx + r9 + 8], r10b
jmp 0x140015020
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x1400150b5
sub rdx, 1
mov rcx, r15
call sym.raiseIndexError2
jmp 0x1400150b5
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x1400150b5
sub rdx, 1
mov rcx, r9
call sym.raiseIndexError2
jmp 0x1400150b5
lea rdx, [rsi - 1]
mov rcx, rdi
call sym.raiseIndexError2
jmp 0x1400150b5
mov ecx, 1
lea rdx, [rsi - 1]
call sym.raiseIndexError2
jmp 0x1400150b5
mov r15, rbp
mov rbp, r12
mov r12, qword [rsp + 0x48]
mov r11, qword [rsp + 0x28]
cmp r12, 1
je 0x1400151ca
cmp r12, 2
je 0x1400152ff
mov rcx, qword [rsp + 0x20]
mov rdx, rbp
call sym.setLengthStrV2
jmp 0x1400150b5
cmp rsi, r11
jle 0x1400153e3
add r13, r11
mov rax, qword [rsp + 0x50]
movzx edx, byte [r13]
cmp rax, rbp
jle 0x1400152ee
mov esi, edx
mov rcx, qword [rsp + 0x58]
shr edx, 2
mov ebx, edx
shl esi, 0x10
add rbx, r15
test rcx, rcx
je 0x140015405
test byte [rcx + 7], 0x40
je 0x140015405
mov rcx, qword [rsp + 0x20]
call sym.nimPrepareStrMutationImpl__system_u2390
mov rax, qword [rsp + 0x58]
movzx edx, byte [rbx]
mov byte [rax + rbp + 8], dl
mov rax, qword [rsp + 0x50]
lea rdi, [rbp + 1]
cmp rax, rdi
jle 0x140015411
shr esi, 0xc
mov rdx, qword [rsp + 0x58]
mov ebx, esi
and ebx, 0x30
add rbx, r15
test rdx, rdx
je 0x140015444
test byte [rdx + 7], 0x40
je 0x140015444
mov rcx, qword [rsp + 0x20]
call sym.nimPrepareStrMutationImpl__system_u2390
mov rax, qword [rsp + 0x58]
movzx edx, byte [rbx]
mov byte [rax + rdi + 8], dl
mov rax, qword [rsp + 0x50]
lea rbx, [rbp + 2]
cmp rax, rbx
jle 0x1400153d2
mov rcx, qword [rsp + 0x20]
call sym.nimPrepareStrMutationV2
mov rax, qword [rsp + 0x58]
mov byte [rax + rbx + 8], 0x3d
mov rax, qword [rsp + 0x50]
lea rbx, [rbp + 3]
cmp rax, rbx
jle 0x1400153d2
mov rcx, qword [rsp + 0x20]
add rbp, 4
call sym.nimPrepareStrMutationV2
mov rax, qword [rsp + 0x58]
mov byte [rax + rbx + 8], 0x3d
jmp 0x1400151b8
cmp r12, 1
je 0x1400151d6
cmp r12, 2
je 0x1400153f4
xor ebp, ebp
jmp 0x1400151b8
mov r14d, 2
jmp 0x14001509b
lea rdx, [rax - 1]
mov rcx, rbp
call sym.raiseIndexError2
jmp 0x1400150b5
cmp rsi, r11
jle 0x1400153e3
mov rcx, qword [rsp + 0x30]
movzx eax, byte [r13 + r11]
add rcx, 4
cmp rsi, rcx
jle 0x140015186
movzx edx, byte [r13 + rcx]
mov rcx, qword [rsp + 0x50]
cmp rcx, rbp
jle 0x140015422
movzx ebx, dl
shl eax, 0x10
mov rcx, qword [rsp + 0x20]
lea rsi, [rbp + 1]
shl ebx, 8
or ebx, eax
call sym.nimPrepareStrMutationV2
mov eax, ebx
shr eax, 0x12
movzx edx, byte [r15 + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + rbp + 8], dl
mov rax, qword [rsp + 0x50]
cmp rsi, rax
jge 0x140015433
mov rcx, qword [rsp + 0x20]
call sym.nimPrepareStrMutationV2
mov eax, ebx
shr eax, 0xc
and eax, 0x3f
movzx edx, byte [r15 + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + rsi + 8], dl
mov rax, qword [rsp + 0x50]
lea rsi, [rbp + 2]
cmp rax, rsi
jle 0x140015433
mov rcx, qword [rsp + 0x20]
call sym.nimPrepareStrMutationV2
mov eax, ebx
lea rbx, [rbp + 3]
shr eax, 6
and eax, 0x3c
movzx edx, byte [r15 + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + rsi + 8], dl
mov rax, qword [rsp + 0x50]
cmp rax, rbx
jg 0x1400152a7
lea rdx, [rax - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x1400150b5
lea rdx, [rsi - 1]
mov rcx, r11
call sym.raiseIndexError2
jmp 0x1400150b5
movzx eax, byte [r13]
xor ebp, ebp
mov ecx, 1
jmp 0x140015320
movzx edx, byte [rbx]
mov byte [rcx + rbp + 8], dl
jmp 0x140015229
lea rdx, [rax - 1]
mov rcx, rdi
call sym.raiseIndexError2
jmp 0x1400150b5
lea rdx, [rcx - 1]
mov rcx, rbp
call sym.raiseIndexError2
jmp 0x1400150b5
lea rdx, [rax - 1]
mov rcx, rsi
call sym.raiseIndexError2
jmp 0x1400150b5
movzx ecx, byte [rbx]
mov byte [rdx + rdi + 8], cl
jmp 0x140015274