Function at 0x435ce0
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 r14, [0x004b6de0]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_scheme
test dl, dl
mov rsi, rcx
cmovne r14, rax
test rcx, rcx
je 0x4360e0
imul rbx, qword [rcx], 4
jo 0x436361
movabs rdx, 0x5555555555555556
mov rax, rbx
sar rbx, 0x3f
imul rdx
sub rdx, rbx
lea r12, [rdx + 6]
test r12, r12
js 0x4360c0
xor ecx, ecx
mov rdx, r12
call sym.setLengthStr
mov rcx, qword [rsi]
movabs rdx, 0x5555555555555556
mov r13, rax
mov rax, rcx
mov rbx, rcx
mov rbp, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rbx, rax
sub rbp, rbx
jo 0x43631f
test rbp, rbp
je 0x4362fa
xor r12d, r12d
xor ebx, ebx
jmp 0x435e85
movzx r15d, byte [rsi + rdi + 0x10]
shl r15d, 8
or r15d, eax
add rdi, 1
jo 0x4362be
mov rdx, qword [rsi]
cmp rdi, rdx
jae 0x435f10
movzx eax, byte [rsi + rdi + 0x10]
or r15d, eax
add rdi, 1
mov rbx, rdi
jo 0x435ef0
test r13, r13
je 0x435efe
mov rdx, qword [r13]
cmp rdx, r12
jbe 0x435ed8
mov eax, r15d
shr eax, 0x12
movzx eax, byte [r14 + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x4362b4
mov rdx, qword [r13]
cmp r12, rdx
jae 0x4360a8
mov eax, r15d
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r14 + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x4362aa
mov rdx, qword [r13]
cmp r12, rdx
jae 0x436090
mov eax, r15d
shr eax, 6
and eax, 0x3f
movzx eax, byte [r14 + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x4362a0
mov rdx, qword [r13]
cmp r12, rdx
jae 0x436078
and r15d, 0x3f
movzx eax, byte [r14 + r15]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x435f28
mov rcx, qword [rsi]
cmp rbp, rdi
je 0x435f39
cmp rcx, rbx
ja 0x435e96
lea rdx, [rcx - 1]
mov rcx, rbx
call sym.raiseIndexError2
movzx r15d, byte [rsi + rbx + 0x10]
mov eax, r15d
shl eax, 0x10
add rbx, 1
mov rdi, rbx
jo 0x43628e
mov rdx, qword [rsi]
cmp rdi, rdx
jb 0x435d98
sub rdx, 1
mov rcx, rdi
mov dword [rsp + 0x2c], eax
call sym.raiseIndexError2
mov eax, dword [rsp + 0x2c]
jmp 0x435d98
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x435de6
call sym.raiseOverflow
test r13, r13
jne 0x435dd9
mov rdx, 0xffffffffffffffff
jmp 0x435edc
sub rdx, 1
mov rcx, rdi
call sym.raiseIndexError2
jmp 0x435dbb
call sym.raiseOverflow
mov rcx, qword [rsi]
cmp rbp, rdi
jne 0x435e85
movabs rdx, 0x5555555555555556
mov rax, rcx
imul rdx
mov rax, rcx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
mov rdx, rcx
sub rdx, rax
cmp rdx, 1
je 0x436100
cmp rdx, 2
jne 0x43604d
cmp rcx, rbp
jbe 0x436211
movzx edi, byte [rsi + rbx + 0x10]
shl edi, 0x10
add rbx, 1
jo 0x436273
mov rcx, qword [rsi]
cmp rbx, rcx
jae 0x43627d
movzx esi, byte [rsi + rbx + 0x10]
shl esi, 8
or esi, edi
add rbx, 1
jo 0x4362f0
test r13, r13
je 0x4361f9
mov rax, qword [r13]
lea rdx, [rax - 1]
cmp rax, r12
jbe 0x436200
mov eax, esi
shr eax, 0x12
movzx eax, byte [r14 + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x4362e6
mov rax, qword [r13]
cmp r12, rax
jae 0x436262
mov eax, esi
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r14 + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x4362dc
mov rax, qword [r13]
cmp r12, rax
jae 0x436251
shr esi, 6
and esi, 0x3c
movzx eax, byte [r14 + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x436192
mov rax, qword [r13]
cmp r12, rax
jae 0x4361e8
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jno 0x43604d
call sym.raiseOverflow
test r12, r12
js 0x4361a0
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
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x435e61
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x435e37
sub rdx, 1
mov rcx, r12
call sym.raiseIndexError2
jmp 0x435e0d
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call sym.raiseRangeErrorI
jmp 0x435d3e
mov edx, 6
xor ecx, ecx
xor r12d, r12d
call sym.setLengthStr
mov r13, rax
jmp 0x436056
cmp rbp, rcx
jae 0x4361c0
movzx esi, byte [rsi + rbx + 0x10]
shl esi, 0x10
add rbx, 1
jo 0x43636b
test r13, r13
je 0x4361d1
mov rax, qword [r13]
lea rdx, [rax - 1]
cmp rax, r12
jbe 0x4361d8
mov eax, esi
shr eax, 0x12
movzx eax, byte [r14 + rax]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x4362d2
mov rax, qword [r13]
cmp r12, rax
jae 0x436240
shr esi, 0xc
and esi, 0x30
movzx eax, byte [r14 + rsi]
mov byte [r13 + r12 + 0x10], al
add r12, 1
jo 0x4362c8
mov rax, qword [r13]
cmp r12, rax
jae 0x436228
mov byte [r13 + r12 + 0x10], 0x3d
add r12, 1
jno 0x43602f
call sym.raiseOverflow
jmp 0x43602f
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call sym.raiseRangeErrorI
jmp 0x436056
xor ebx, ebx
xor ecx, ecx
nop dword [rax]
lea rdx, [rcx - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x436109
mov rdx, 0xffffffffffffffff
mov rcx, r12
call sym.raiseIndexError2
jmp 0x436135
lea rdx, [rax - 1]
mov rcx, r12
call sym.raiseIndexError2
jmp 0x43603c
mov rdx, 0xffffffffffffffff
mov rcx, r12
call sym.raiseIndexError2
jmp 0x435fc6
xor ebx, ebx
xor ecx, ecx
lea rdx, [rcx - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x435f7a
lea rdx, [rax - 1]
mov rcx, r12
call sym.raiseIndexError2
jmp 0x436182
lea rdx, [rax - 1]
mov rcx, r12
call sym.raiseIndexError2
jmp 0x43615b
lea rdx, [rax - 1]
mov rcx, r12
call sym.raiseIndexError2
jmp 0x436015
lea rdx, [rax - 1]
mov rcx, r12
call sym.raiseIndexError2
jmp 0x435fec
call sym.raiseOverflow
jmp 0x435f8c
lea rdx, [rcx - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x435f98
mov dword [rsp + 0x2c], eax
call sym.raiseOverflow
mov eax, dword [rsp + 0x2c]
jmp 0x435eaf
call sym.raiseOverflow
jmp 0x435e54
call sym.raiseOverflow
jmp 0x435e2a
call sym.raiseOverflow
jmp 0x435e00
call sym.raiseOverflow
jmp 0x435daf
call sym.raiseOverflow
jmp 0x436175
call sym.raiseOverflow
jmp 0x43614e
call sym.raiseOverflow
jmp 0x436008
call sym.raiseOverflow
jmp 0x435fdf
call sym.raiseOverflow
jmp 0x435fac
mov rax, rcx
mov r8d, 3
mov r12, rcx
cqo
idiv r8
cmp rdx, 1
je 0x436349
cmp rdx, 2
je 0x43632c
xor r12d, r12d
jmp 0x436056
call sym.raiseOverflow
mov rcx, qword [rsi]
jmp 0x435d7e
test rcx, rcx
je 0x43620d
movzx edi, byte [rsi + 0x10]
xor r12d, r12d
mov ebx, 1
shl edi, 0x10
jmp 0x435f8f
test r12, r12
je 0x4361b9
movzx esi, byte [rsi + 0x10]
xor r12d, r12d
shl esi, 0x10
jmp 0x43611b
call sym.raiseOverflow
jmp 0x435d1a
call sym.raiseOverflow
jmp 0x43611b