Function at 0x14001d880
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
lea rbp, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_scheme
lea rax, [0x14003abc0]
test r8b, r8b
mov r13, rcx
mov r12, rdx
cmove rbp, rax
imul rbx, rdx, 4
jo 0x14001def9
movabs rax, 0x5555555555555556
imul rbx
sar rbx, 0x3f
sub rdx, rbx
mov rbx, rdx
add rbx, 6
js 0x14001dc58
xor ecx, ecx
mov rdx, rbx
call sym.setLengthStr
mov rcx, r12
mov r15, rax
movabs rax, 0x5555555555555556
imul r12
mov rax, r12
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rcx, rax
mov rax, r12
sub rax, rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x20], rax
jo 0x14001df03
cmp qword [rsp + 0x20], 0
je 0x14001de48
test r15, r15
lea rax, [r12 - 1]
setne byte [rsp + 0x37]
xor r14d, r14d
xor edi, edi
mov qword [rsp + 0x28], rax
jmp 0x14001d94b
cmp qword [rsp + 0x20], rbx
je 0x14001daaa
test rdi, rdi
js 0x14001db10
cmp r12, rdi
jle 0x14001db10
movzx esi, byte [r13 + rdi]
shl esi, 0x10
add rdi, 1
mov rbx, rdi
jo 0x14001deef
test rbx, rbx
js 0x14001db50
cmp rbx, r12
jge 0x14001db50
movzx edi, byte [r13 + rbx]
shl edi, 8
or edi, esi
add rbx, 1
jo 0x14001dee5
test rbx, rbx
js 0x14001db38
cmp rbx, r12
jge 0x14001db38
movzx esi, byte [r13 + rbx]
or esi, edi
add rbx, 1
mov rdi, rbx
jo 0x14001db28
test r14, r14
js 0x14001daf0
cmp byte [rsp + 0x37], 0
je 0x14001daf0
mov rdx, qword [r15]
cmp rdx, r14
jle 0x14001daff
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r15 + r14 + 0x10], al
add r14, 1
jo 0x14001dedb
mov rdx, qword [r15]
test r14, r14
js 0x14001da07
cmp r14, rdx
jl 0x14001da13
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
mov edx, esi
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [rbp + rdx]
mov byte [r15 + r14 + 0x10], dl
add r14, 1
jo 0x14001ded1
mov rdx, qword [r15]
test r14, r14
js 0x14001da3c
cmp r14, rdx
jl 0x14001da48
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
mov edx, esi
shr edx, 6
and edx, 0x3f
movzx edx, byte [rbp + rdx]
mov byte [r15 + r14 + 0x10], dl
add r14, 1
jo 0x14001dec7
mov rdx, qword [r15]
test r14, r14
js 0x14001da71
cmp r14, rdx
jl 0x14001da7d
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
and esi, 0x3f
movzx edx, byte [rbp + rsi]
mov rsi, r14
add rsi, 1
mov byte [r15 + r14 + 0x10], dl
mov r14, rsi
jno 0x14001d940
call sym.raiseOverflow
cmp qword [rsp + 0x20], rbx
jne 0x14001d94b
cmp qword [rsp + 0x38], 1
je 0x14001db68
cmp qword [rsp + 0x38], 2
je 0x14001dc98
test r14, r14
js 0x14001dc78
mov rdx, r14
mov rcx, r15
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.setLengthStr
mov rdx, 0xffffffffffffffff
test r15, r15
je 0x14001db03
mov rdx, qword [r15]
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
jmp 0x14001d9e1
mov rdx, qword [rsp + 0x28]
mov rcx, rdi
call sym.raiseIndexError2
jmp 0x14001d95d
call sym.raiseOverflow
jmp 0x14001d9c1
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x14001d9ac
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x14001d985
test rbx, rbx
js 0x14001de30
cmp rbx, r12
jge 0x14001de30
movzx edi, byte [r13 + rbx]
xor eax, eax
not rsi
shl edi, 0x10
add rbx, 1
seto al
shr rsi, 0x3f
and sil, byte [rsp + 0x37]
test rax, rax
jne 0x14001de18
test sil, sil
jne 0x14001de00
mov rdx, qword [r15]
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
mov eax, edi
mov rbx, r14
shr eax, 0x12
add rbx, 1
movzx eax, byte [rbp + rax]
mov byte [r15 + r14 + 0x10], al
jo 0x14001df2b
mov rdx, qword [r15]
test rbx, rbx
js 0x14001dbe2
cmp rbx, rdx
jl 0x14001dbee
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
shr edi, 0xc
and edi, 0x30
movzx eax, byte [rbp + rdi]
mov byte [r15 + rbx + 0x10], al
add rbx, 1
jo 0x14001df21
mov rdx, qword [r15]
test rbx, rbx
js 0x14001dc15
cmp rbx, rdx
jl 0x14001dc21
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
mov byte [r15 + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14001df17
mov rdx, qword [r15]
test rbx, rbx
js 0x14001dc42
cmp rbx, rdx
jl 0x14001ddc4
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x14001ddc4
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call sym.raiseRangeErrorI
jmp 0x14001d8d6
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r14
call sym.raiseRangeErrorI
jmp 0x14001dacb
lea rdi, [r13 + rbx]
test rbx, rbx
js 0x14001deb5
cmp rbx, r12
jge 0x14001deb5
add rbx, 1
movzx edi, byte [rdi]
jo 0x14001df0d
movzx eax, dil
not rsi
mov rdi, rbx
shl eax, 0x10
shr rsi, 0x3f
and sil, byte [rsp + 0x37]
mov r8d, eax
mov rax, rbx
shr rax, 0x3f
cmp r12, rbx
jle 0x14001de99
test al, al
jne 0x14001de99
movzx edi, byte [r13 + rdi]
shl edi, 8
or edi, r8d
add rbx, 1
jo 0x14001df5d
test sil, sil
jne 0x14001de88
mov rdx, 0xffffffffffffffff
test r15, r15
je 0x14001dd1f
mov rdx, qword [r15]
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
mov eax, edi
mov rbx, r14
shr eax, 0x12
add rbx, 1
movzx eax, byte [rbp + rax]
mov byte [r15 + r14 + 0x10], al
jo 0x14001df53
mov rax, qword [r15]
test rbx, rbx
js 0x14001dd50
cmp rbx, rax
jl 0x14001dd5c
lea rdx, [rax - 1]
mov rcx, rbx
call sym.raiseIndexError2
mov eax, edi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r15 + rbx + 0x10], al
add rbx, 1
jo 0x14001df49
mov rax, qword [r15]
test rbx, rbx
js 0x14001dd85
cmp rbx, rax
jl 0x14001dd91
lea rdx, [rax - 1]
mov rcx, rbx
call sym.raiseIndexError2
shr edi, 6
and edi, 0x3c
movzx eax, byte [rbp + rdi]
mov byte [r15 + rbx + 0x10], al
add rbx, 1
jo 0x14001df3f
mov rax, qword [r15]
test rbx, rbx
js 0x14001ddb8
cmp rbx, rax
jl 0x14001ddc4
lea rdx, [rax - 1]
mov rcx, rbx
call sym.raiseIndexError2
mov byte [r15 + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14001df35
mov r14, rbx
jmp 0x14001dac2
movzx edi, byte [r13]
xor r14d, r14d
mov rdx, 0xffffffffffffffff
shl edi, 0x10
test r15, r15
je 0x14001dbb1
nop word [rax + rax]
mov rdx, qword [r15]
cmp rdx, r14
jle 0x14001dbad
jmp 0x14001dbb9
call sym.raiseOverflow
test sil, sil
je 0x14001dbaa
jmp 0x14001de00
lea rdx, [r12 - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x14001db7a
cmp qword [rsp + 0x38], 1
je 0x14001dddc
xor r14d, r14d
cmp qword [rsp + 0x38], 2
jne 0x14001dacb
movzx eax, byte [r13]
test r15, r15
mov edi, 1
mov ebx, 1
setne sil
shl eax, 0x10
mov r8d, eax
xor eax, eax
jmp 0x14001dcdc
mov rdx, qword [r15]
cmp rdx, r14
jle 0x14001dd1b
jmp 0x14001dd27
lea rdx, [r12 - 1]
mov rcx, rbx
mov dword [rsp + 0x20], r8d
call sym.raiseIndexError2
mov r8d, dword [rsp + 0x20]
jmp 0x14001dced
lea rdx, [r12 - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x14001dcaf
call sym.raiseOverflow
jmp 0x14001da64
call sym.raiseOverflow
jmp 0x14001da2f
call sym.raiseOverflow
jmp 0x14001d9fa
call sym.raiseOverflow
jmp 0x14001d99a
call sym.raiseOverflow
jmp 0x14001d973
call sym.raiseOverflow
jmp 0x14001d8b5
call sym.raiseOverflow
jmp 0x14001d91a
call sym.raiseOverflow
jmp 0x14001dcbc
call sym.raiseOverflow
jmp 0x14001dc31
call sym.raiseOverflow
jmp 0x14001dc08
call sym.raiseOverflow
jmp 0x14001dbd5
call sym.raiseOverflow
jmp 0x14001ddd4
call sym.raiseOverflow
jmp 0x14001ddab
call sym.raiseOverflow
jmp 0x14001dd78
call sym.raiseOverflow
jmp 0x14001dd43
call sym.raiseOverflow
jmp 0x14001dd03