Function at 0x140027520
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, [0x140059dc0]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_scheme
test dl, dl
mov rdi, rcx
cmovne rbp, rax
test rcx, rcx
je 0x140027a18
imul rbx, qword [rcx], 4
jo 0x140027b9b
movabs rdx, 0x5555555555555556
mov rax, rbx
sar rbx, 0x3f
imul rdx
sub rdx, rbx
lea r12, [rdx + 6]
test r12, r12
js 0x1400279f8
xor ecx, ecx
mov rdx, r12
call sym.setLengthStr
mov rcx, qword [rdi]
movabs rdx, 0x5555555555555556
mov r13, rax
mov rax, rcx
mov rbx, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
mov rax, rcx
lea rdx, [rdx + rdx*2]
sub rax, rdx
sub rbx, rax
mov qword [rsp + 0x20], rbx
jo 0x140027b8e
cmp qword [rsp + 0x20], 0
je 0x140027b49
test r13, r13
setne byte [rsp + 0x2f]
xor r12d, r12d
xor ebx, ebx
jmp 0x140027743
cmp rcx, rbx
jle 0x14002774c
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
mov r15d, esi
mov r14, rbx
jo 0x140027adb
mov rdx, qword [rdi]
test r14, r14
js 0x140027616
cmp r14, rdx
jl 0x140027622
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
movzx esi, byte [rdi + r14 + 0x10]
shl esi, 8
or esi, r15d
add r14, 1
jo 0x140027b03
mov rdx, qword [rdi]
test r14, r14
js 0x140027645
cmp r14, rdx
jl 0x140027651
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
movzx eax, byte [rdi + r14 + 0x10]
or esi, eax
add r14, 1
mov rbx, r14
jo 0x140027788
test r12, r12
js 0x140027760
cmp byte [rsp + 0x2f], 0
je 0x140027760
mov rdx, qword [r13]
cmp r12, rdx
jge 0x140027770
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140027af9
mov rdx, qword [r13]
test r12, r12
js 0x1400276ae
cmp r12, rdx
jl 0x1400276ba
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 0x140027aef
mov rdx, qword [r13]
test r12, r12
js 0x1400276e4
cmp r12, rdx
jl 0x1400276f0
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 0x140027ae5
mov rdx, qword [r13]
test r12, r12
js 0x14002771a
cmp r12, rdx
jl 0x140027726
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 0x140027798
cmp qword [rsp + 0x20], r14
je 0x1400277a4
mov rcx, qword [rdi]
test rbx, rbx
jns 0x1400275e8
lea rdx, [rcx - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x1400275f1
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x140027774
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x140027687
call sym.raiseOverflow
jmp 0x140027666
call sym.raiseOverflow
cmp qword [rsp + 0x20], r14
jne 0x140027740
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 0x1400278e8
cmp rdx, 2
jne 0x1400279d2
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x140027a50
cmp rax, r8
jge 0x140027a50
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
mov r14, rbx
jo 0x140027ad1
mov rcx, qword [rdi]
test rbx, rbx
js 0x140027818
cmp r14, rcx
jl 0x140027824
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 0x140027b21
test r13, r13
je 0x140027ab0
test r12, r12
js 0x140027ab0
mov rdx, qword [r13]
cmp rdx, r12
jle 0x140027ac0
mov eax, ebx
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140027b17
mov rdx, qword [r13]
test r12, r12
js 0x14002787f
cmp r12, rdx
jl 0x14002788b
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 0x140027b0d
mov rdx, qword [r13]
test r12, r12
js 0x1400278b5
cmp r12, rdx
jl 0x1400278c1
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 0x1400279a7
call sym.raiseOverflow
jmp 0x1400279a7
mov rax, qword [rsp + 0x20]
test rax, rax
js 0x140027a70
cmp rax, r8
jge 0x140027a70
movzx esi, byte [rdi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
jo 0x140027b3f
test r13, r13
je 0x140027a88
test r12, r12
js 0x140027a88
mov rdx, qword [r13]
cmp rdx, r12
jle 0x140027a98
mov eax, esi
shr eax, 0x12
movzx eax, byte [rbp + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x140027b35
mov rdx, qword [r13]
test r12, r12
js 0x140027957
cmp r12, rdx
jl 0x140027963
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 0x140027b2b
mov rdx, qword [r13]
test r12, r12
js 0x14002798b
cmp r12, rdx
jl 0x140027997
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jo 0x1400278db
mov rdx, qword [r13]
test r12, r12
js 0x1400279b5
cmp r12, rdx
jl 0x1400279c1
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jno 0x1400279d2
call sym.raiseOverflow
test r12, r12
js 0x140027a30
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 0x14002757e
mov edx, 6
xor ecx, ecx
xor r12d, r12d
call sym.setLengthStr
mov r13, rax
jmp 0x1400279d7
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call sym.raiseRangeErrorI
jmp 0x1400279d7
xor ebx, ebx
nop dword [rax + rax]
lea rdx, [r8 - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x1400277f6
test rcx, rcx
jg 0x140027ba5
xor ebx, ebx
xor r12d, r12d
nop
lea rdx, [r8 - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x1400278ff
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x140027a9c
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x140027930
mov rdx, 0xffffffffffffffff
test r13, r13
je 0x140027ac4
mov rdx, qword [r13]
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x140027858
call sym.raiseOverflow
jmp 0x14002780b
call sym.raiseOverflow
jmp 0x140027609
call sym.raiseOverflow
jmp 0x14002770c
call sym.raiseOverflow
jmp 0x1400276d6
call sym.raiseOverflow
jmp 0x1400276a0
call sym.raiseOverflow
jmp 0x140027638
call sym.raiseOverflow
jmp 0x1400278a7
call sym.raiseOverflow
jmp 0x140027871
call sym.raiseOverflow
jmp 0x140027839
call sym.raiseOverflow
jmp 0x14002797d
call sym.raiseOverflow
jmp 0x140027949
call sym.raiseOverflow
jmp 0x140027911
mov rax, rcx
mov r9d, 3
mov r8, rcx
cqo
idiv r9
cmp rdx, 1
je 0x140027a61
xor r12d, r12d
cmp rdx, 2
jne 0x1400279d7
test rcx, rcx
jle 0x140027a46
movzx ebx, byte [rdi + 0x10]
mov r14d, 1
shl ebx, 0x10
mov esi, ebx
jmp 0x140027813
call sym.raiseOverflow
mov rcx, qword [rdi]
jmp 0x1400275c3
call sym.raiseOverflow
jmp 0x14002755a
movzx esi, byte [rdi + 0x10]
xor r12d, r12d
shl esi, 0x10
jmp 0x140027911