Function at 0x14001d220
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
lea r13, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_scheme
lea rax, [0x14003abc0]
test dl, dl
mov r12, rcx
cmove r13, rax
test rcx, rcx
je 0x14001d618
movabs rax, 0x5555555555555556
xor r8d, r8d
imul rcx, qword [rcx], 4
seto r8b
imul rcx
sar rcx, 0x3f
sub rdx, rcx
lea rbx, [rdx + 6]
test r8, r8
jne 0x14001d4f8
test rbx, rbx
js 0x14001d506
xor ecx, ecx
mov rdx, rbx
call sym.setLengthStr
mov rcx, qword [r12]
mov rdi, rax
movabs rax, 0x5555555555555556
imul rcx
mov rax, rcx
mov r15, rcx
sar rax, 0x3f
sub rdx, rax
mov rax, rcx
lea rdx, [rdx + rdx*2]
sub rax, rdx
sub r15, rax
jo 0x14001d830
test r15, r15
je 0x14001d790
xor ebx, ebx
xor esi, esi
jmp 0x14001d439
lea rdx, [rcx - 1]
mov rcx, rsi
call sym.raiseIndexError2
movzx ebp, byte [r12 + rsi + 0x10]
shl ebp, 0x10
add rsi, 1
jo 0x14001d81c
mov rdx, qword [r12]
test rsi, rsi
js 0x14001d305
cmp rsi, rdx
jl 0x14001d311
sub rdx, 1
mov rcx, rsi
call sym.raiseIndexError2
movzx r14d, byte [r12 + rsi + 0x10]
shl r14d, 8
or r14d, ebp
add rsi, 1
jo 0x14001d812
mov rdx, qword [r12]
test rsi, rsi
js 0x14001d336
cmp rsi, rdx
jl 0x14001d342
sub rdx, 1
mov rcx, rsi
call sym.raiseIndexError2
movzx ebp, byte [r12 + rsi + 0x10]
or ebp, r14d
add rsi, 1
mov r14, rsi
jo 0x14001d470
test rbx, rbx
js 0x14001d450
test rdi, rdi
je 0x14001d4e8
mov rdx, qword [rdi]
cmp rdx, rbx
jg 0x14001d37e
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14001d808
mov rdx, qword [rdi]
test rbx, rbx
js 0x14001d3a4
cmp rbx, rdx
jl 0x14001d3b0
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14001d7fe
mov rdx, qword [rdi]
test rbx, rbx
js 0x14001d3d9
cmp rbx, rdx
jl 0x14001d3e5
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
mov eax, ebp
shr eax, 6
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14001d7f4
mov rdx, qword [rdi]
test rbx, rbx
js 0x14001d40e
cmp rbx, rdx
jl 0x14001d41a
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
and ebp, 0x3f
movzx eax, byte [r13 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
mov rbp, rbx
jo 0x14001d480
mov rcx, qword [r12]
cmp r15, r14
je 0x14001d48e
test rsi, rsi
js 0x14001d2d8
cmp rcx, rsi
jg 0x14001d2e4
jmp 0x14001d2d8
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14001d376
mov rdx, qword [rdi]
jmp 0x14001d372
call sym.raiseOverflow
jmp 0x14001d358
call sym.raiseOverflow
mov rcx, qword [r12]
cmp r15, r14
jne 0x14001d439
movabs rax, 0x5555555555555556
imul rcx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
mov rdx, rcx
sub rdx, rax
cmp rdx, 1
je 0x14001d520
cmp rdx, 2
je 0x14001d668
test rbx, rbx
js 0x14001d630
mov rdx, rbx
mov rcx, rdi
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.setLengthStr
mov rdx, 0xffffffffffffffff
jmp 0x14001d376
call sym.raiseOverflow
test rbx, rbx
jns 0x14001d285
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call sym.raiseRangeErrorI
jmp 0x14001d285
test r14, r14
js 0x14001d650
cmp r14, rcx
jge 0x14001d650
movzx esi, byte [r12 + r14 + 0x10]
shl esi, 0x10
add r14, 1
jo 0x14001d826
test rbp, rbp
js 0x14001d7d0
test rdi, rdi
je 0x14001d7d8
mov rax, qword [rdi]
cmp rax, rbx
jg 0x14001d56b
lea rdx, [rax - 1]
mov rcx, rbx
call sym.raiseIndexError2
mov eax, esi
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14001d870
mov rdx, qword [rdi]
test rbx, rbx
js 0x14001d591
cmp rbx, rdx
jl 0x14001d59d
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
shr esi, 0xc
and esi, 0x30
movzx eax, byte [r13 + rsi]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14001d866
mov rdx, qword [rdi]
test rbx, rbx
js 0x14001d5c4
cmp rbx, rdx
jl 0x14001d5d0
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14001d769
mov rdx, qword [rdi]
test rbx, rbx
js 0x14001d5ec
cmp rbx, rdx
jl 0x14001d5f8
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jno 0x14001d4bf
call sym.raiseOverflow
jmp 0x14001d4bf
mov edx, 6
xor ecx, ecx
xor ebx, ebx
call sym.setLengthStr
mov rdi, rax
jmp 0x14001d4c8
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call sym.raiseRangeErrorI
jmp 0x14001d4c8
lea rdx, [rcx - 1]
mov rcx, r14
call sym.raiseIndexError2
jmp 0x14001d532
test r14, r14
js 0x14001d672
cmp r14, rcx
jl 0x14001d67e
lea rdx, [rcx - 1]
mov rcx, r14
call sym.raiseIndexError2
movzx r14d, byte [r12 + rsi + 0x10]
shl r14d, 0x10
add rsi, 1
jo 0x14001d85c
mov rdx, qword [r12]
test rsi, rsi
js 0x14001d6a0
cmp rsi, rdx
jl 0x14001d6ac
sub rdx, 1
mov rcx, rsi
call sym.raiseIndexError2
movzx ebp, byte [r12 + rsi + 0x10]
shl ebp, 8
or ebp, r14d
add rsi, 1
jo 0x14001d852
test rbx, rbx
js 0x14001d778
test rdi, rdi
je 0x14001d778
mov rdx, qword [rdi]
cmp rdx, rbx
jg 0x14001d6e8
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
mov eax, ebp
shr eax, 0x12
movzx eax, byte [r13 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14001d848
mov rdx, qword [rdi]
test rbx, rbx
js 0x14001d70e
cmp rbx, rdx
jl 0x14001d71a
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r13 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14001d83e
mov rdx, qword [rdi]
test rbx, rbx
js 0x14001d743
cmp rbx, rdx
jl 0x14001d74f
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r13 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jno 0x14001d5df
call sym.raiseOverflow
jmp 0x14001d5df
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14001d6e0
mov rdx, qword [rdi]
jmp 0x14001d6dc
movabs rax, 0x5555555555555556
imul rcx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rcx, rax
cmp rcx, 1
je 0x14001d7e4
xor ebx, ebx
xor esi, esi
cmp rcx, 2
jne 0x14001d4c8
jmp 0x14001d67e
mov rax, qword [rdi]
jmp 0x14001d55f
mov rdx, 0xffffffffffffffff
jmp 0x14001d563
movzx esi, byte [r12 + 0x10]
xor ebx, ebx
shl esi, 0x10
jmp 0x14001d54e
call sym.raiseOverflow
jmp 0x14001d401
call sym.raiseOverflow
jmp 0x14001d3cc
call sym.raiseOverflow
jmp 0x14001d397
call sym.raiseOverflow
jmp 0x14001d328
call sym.raiseOverflow
jmp 0x14001d2f7
call sym.raiseOverflow
jmp 0x14001d545
call sym.raiseOverflow
mov rcx, qword [r12]
jmp 0x14001d2c3
call sym.raiseOverflow
jmp 0x14001d736
call sym.raiseOverflow
jmp 0x14001d701
call sym.raiseOverflow
jmp 0x14001d6c2
call sym.raiseOverflow
jmp 0x14001d692
call sym.raiseOverflow
jmp 0x14001d5b7
call sym.raiseOverflow
jmp 0x14001d584