Function at 0x1400205b0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [0x140032ce0]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_UsageError
test dl, dl
mov rdi, rcx
cmovne rbp, rax
test rcx, rcx
je 0x140020a88
imul rbx, qword [rcx], 4
jo 0x140020c09
movabs rdx, 0x5555555555555556
mov rax, rbx
sar rbx, 0x3f
imul rdx
sub rdx, rbx
lea r12, [rdx + 6]
test r12, r12
js 0x140020a68
xor ecx, ecx
mov rdx, r12
call sym.setLengthStr
mov rcx, qword [rdi]
movabs rdx, 0x5555555555555556
mov r13, rax
mov rax, rcx
mov r15, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
mov rax, rcx
lea rdx, [rdx + rdx*2]
sub rax, rdx
sub r15, rax
jo 0x140020bfc
test r15, r15
je 0x140020bb9
test r13, r13
setne byte [rsp + 0x2f]
xor r12d, r12d
xor ebx, ebx
jmp 0x1400207c4
cmp rcx, rbx
jle 0x1400207cd
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
jo 0x140020b4b
mov rdx, qword [rdi]
test rbx, rbx
js 0x140020698
cmp rbx, rdx
jl 0x1400206a4
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
movzx r14d, byte [rdi + rbx + 0x10]
shl r14d, 8
or r14d, esi
add rbx, 1
jo 0x140020b73
mov rdx, qword [rdi]
test rbx, rbx
js 0x1400206c8
cmp rbx, rdx
jl 0x1400206d4
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
movzx esi, byte [rdi + rbx + 0x10]
or esi, r14d
add rbx, 1
mov r14, rbx
jo 0x140020808
test r12, r12
js 0x1400207e0
cmp byte [rsp + 0x2f], 0
je 0x1400207e0
mov rdx, qword [r13]
cmp r12, rdx
jge 0x1400207f0
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140020b69
mov rdx, qword [r13]
test r12, r12
js 0x140020731
cmp r12, rdx
jl 0x14002073d
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140020b5f
mov rdx, qword [r13]
test r12, r12
js 0x140020767
cmp r12, rdx
jl 0x140020773
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
mov eax, esi
shr eax, 6
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140020b55
mov rdx, qword [r13]
test r12, r12
js 0x14002079d
cmp r12, rdx
jl 0x1400207a9
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
and esi, 0x3f
movzx eax, byte [rbp + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140020818
cmp r15, r14
je 0x140020822
mov rcx, qword [rdi]
test rbx, rbx
jns 0x140020670
lea rdx, [rcx - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x140020679
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x1400207f4
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x14002070a
call sym.raiseOverflow
jmp 0x1400206e9
call sym.raiseOverflow
cmp r15, r14
jne 0x1400207c1
movabs rdx, 0x5555555555555556
mov r8, qword [rdi]
mov rax, r8
imul rdx
mov rax, r8
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
mov rdx, r8
sub rdx, rax
cmp rdx, 1
je 0x140020960
cmp rdx, 2
jne 0x140020a45
test r15, r15
js 0x140020ac0
cmp r15, r8
jge 0x140020ac0
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
mov r14, rbx
jo 0x140020b41
mov rcx, qword [rdi]
test rbx, rbx
js 0x140020891
cmp rcx, r14
jg 0x14002089d
lea rdx, [rcx - 1]
mov rcx, r14
call sym.raiseIndexError2
movzx ebx, byte [rdi + r14 + 0x10]
shl ebx, 8
or ebx, esi
add r14, 1
jo 0x140020b91
test r13, r13
je 0x140020b20
test r12, r12
js 0x140020b20
mov rdx, qword [r13]
cmp r12, rdx
jge 0x140020b30
mov eax, ebx
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140020b87
mov rdx, qword [r13]
test r12, r12
js 0x1400208f8
cmp r12, rdx
jl 0x140020904
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
mov eax, ebx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140020b7d
mov rdx, qword [r13]
test r12, r12
js 0x14002092e
cmp r12, rdx
jl 0x14002093a
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
shr ebx, 6
and ebx, 0x3c
movzx eax, byte [rbp + rbx]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jno 0x140020a1a
call sym.raiseOverflow
jmp 0x140020a1a
test r15, r15
js 0x140020ae0
cmp r15, r8
jge 0x140020ae0
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
jo 0x140020baf
test r13, r13
je 0x140020af8
test r12, r12
js 0x140020af8
mov rdx, qword [r13]
cmp rdx, r12
jle 0x140020b08
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140020ba5
mov rdx, qword [r13]
test r12, r12
js 0x1400209ca
cmp r12, rdx
jl 0x1400209d6
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
shr esi, 0xc
and esi, 0x30
movzx eax, byte [rbp + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140020b9b
mov rdx, qword [r13]
test r12, r12
js 0x1400209fe
cmp r12, rdx
jl 0x140020a0a
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jo 0x140020954
mov rdx, qword [r13]
test r12, r12
js 0x140020a28
cmp r12, rdx
jl 0x140020a34
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jno 0x140020a45
call sym.raiseOverflow
test r12, r12
js 0x140020aa0
mov rdx, r12
mov rcx, r13
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.setLengthStr
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call sym.raiseRangeErrorI
jmp 0x14002060e
mov edx, 6
xor ecx, ecx
xor r12d, r12d
call sym.setLengthStr
mov r13, rax
jmp 0x140020a4a
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call sym.raiseRangeErrorI
jmp 0x140020a4a
xor ebx, ebx
nop dword [rax + rax]
lea rdx, [r8 - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x14002086f
test rcx, rcx
jg 0x140020c13
xor ebx, ebx
xor r12d, r12d
nop
lea rdx, [r8 - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x140020972
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x140020b0c
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x1400209a3
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x140020b34
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x1400208d1
call sym.raiseOverflow
jmp 0x140020884
call sym.raiseOverflow
jmp 0x14002068b
call sym.raiseOverflow
jmp 0x14002078f
call sym.raiseOverflow
jmp 0x140020759
call sym.raiseOverflow
jmp 0x140020723
call sym.raiseOverflow
jmp 0x1400206bb
call sym.raiseOverflow
jmp 0x140020920
call sym.raiseOverflow
jmp 0x1400208ea
call sym.raiseOverflow
jmp 0x1400208b2
call sym.raiseOverflow
jmp 0x1400209f0
call sym.raiseOverflow
jmp 0x1400209bc
call sym.raiseOverflow
jmp 0x140020984
mov rax, rcx
mov r9d, 3
mov r8, rcx
cqo
idiv r9
cmp rdx, 1
je 0x140020ad1
xor r12d, r12d
cmp rdx, 2
jne 0x140020a4a
test rcx, rcx
jle 0x140020ab6
movzx esi, byte [rdi + 0x10]
mov r14d, 1
shl esi, 0x10
jmp 0x14002088c
call sym.raiseOverflow
mov rcx, qword [rdi]
jmp 0x14002064e
call sym.raiseOverflow
jmp 0x1400205ea
movzx esi, byte [rdi + 0x10]
xor r12d, r12d
shl esi, 0x10
jmp 0x140020984