Function at 0x140046530
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 r15, [0x1400f4a60]
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test r9b, r9b
mov r12, rcx
mov rdi, rdx
mov rbp, r8
mov qword [rsp + 0x30], 0
cmovne r15, rax
imul rcx, r8, 4
mov qword [rsp + 0x38], 0
jo 0x1400467a0
movabs rsi, 0x5555555555555556
mov rax, rcx
sar rcx, 0x3f
imul rsi
sub rdx, rcx
add rdx, 6
mov r9, rdx
js 0x1400467c8
lea r13, [rsp + 0x30]
mov rcx, r13
call sym.setLengthStrV2
mov rax, rbp
imul rsi
mov rax, rbp
sar rax, 0x3f
mov rsi, rdx
sub rsi, rax
lea rax, [rsi + rsi*2]
mov rsi, rbp
sub rsi, rax
mov rax, rbp
sub rax, rsi
mov qword [rsp + 0x28], rsi
seto r14b
mov qword [rsp + 0x20], rax
movzx r14d, r14b
jo 0x1400467a0
xor ebx, ebx
cmp qword [rsp + 0x20], r14
je 0x140046820
cmp rbp, r14
jle 0x140046850
movzx eax, byte [rdi + r14]
mov rcx, r14
shl eax, 0x10
mov r9d, eax
add rcx, 1
js 0x1400467a0
cmp rcx, r14
jb 0x1400467a0
test rcx, rcx
js 0x1400467f8
cmp rcx, rbp
jge 0x1400467f8
movzx eax, byte [rdi + rcx]
lea rcx, [r14 + 2]
shl eax, 8
cmp rcx, rbp
jge 0x1400467f8
movzx edx, byte [rdi + r14 + 2]
add r14, 3
or eax, edx
mov rdx, qword [rsp + 0x30]
or eax, r9d
mov esi, eax
test rbx, rbx
js 0x140046808
cmp rdx, rbx
jle 0x140046808
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x140046688
test byte [rdx + 7], 0x40
je 0x140046688
mov rcx, r13
call sym.nimPrepareStrMutationImpl__system_u2386
mov rdx, qword [rsp + 0x38]
mov r8d, esi
shr r8d, 0x12
movzx r8d, byte [r15 + r8]
mov byte [rdx + rbx + 8], r8b
add rbx, 1
mov rcx, rbx
jo 0x1400467a0
mov rdx, qword [rsp + 0x30]
test rbx, rbx
js 0x1400467e0
cmp rbx, rdx
jge 0x1400467ea
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x1400466da
test byte [rdx + 7], 0x40
je 0x1400466da
mov rcx, r13
call sym.nimPrepareStrMutationImpl__system_u2386
mov rdx, qword [rsp + 0x38]
mov r8d, esi
shr r8d, 0xc
and r8d, 0x3f
movzx r8d, byte [r15 + r8]
mov byte [rdx + rbx + 8], r8b
add rbx, 1
mov rcx, rbx
jo 0x1400467a0
mov rdx, qword [rsp + 0x30]
test rbx, rbx
js 0x1400467e0
cmp rbx, rdx
jge 0x1400467ea
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x140046730
test byte [rdx + 7], 0x40
je 0x140046730
mov rcx, r13
call sym.nimPrepareStrMutationImpl__system_u2386
mov rdx, qword [rsp + 0x38]
mov r8d, esi
shr r8d, 6
and r8d, 0x3f
movzx r8d, byte [r15 + r8]
mov byte [rdx + rbx + 8], r8b
add rbx, 1
mov rcx, rbx
jo 0x1400467a0
mov rdx, qword [rsp + 0x30]
test rbx, rbx
js 0x1400467e0
cmp rbx, rdx
jge 0x1400467ea
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x140046782
test byte [rdx + 7], 0x40
je 0x140046782
mov rcx, r13
call sym.nimPrepareStrMutationImpl__system_u2386
mov rdx, qword [rsp + 0x38]
mov eax, esi
and eax, 0x3f
movzx eax, byte [r15 + rax]
mov byte [rdx + rbx + 8], al
add rbx, 1
jno 0x1400465e8
nop word [rax + rax]
call sym.raiseOverflow
movdqa xmm0, xmmword [rsp + 0x30]
mov rax, r12
movups xmmword [r12], xmm0
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r9
call sym.raiseRangeErrorI
jmp 0x1400467a5
movabs rcx, 0x8000000000000000
sub rdx, 1
call sym.raiseIndexError2
jmp 0x1400467a5
lea rdx, [rbp - 1]
call sym.raiseIndexError2
jmp 0x1400467a5
sub rdx, 1
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x1400467a5
cmp qword [rsp + 0x28], 1
je 0x140046868
cmp qword [rsp + 0x28], 2
je 0x1400469b1
test rbx, rbx
js 0x140046aed
mov rdx, rbx
mov rcx, r13
call sym.setLengthStrV2
jmp 0x1400467a5
lea rdx, [rbp - 1]
mov rcx, r14
call sym.raiseIndexError2
jmp 0x1400467a5
cmp rbp, qword [rsp + 0x20]
jle 0x140046ada
mov rax, qword [rsp + 0x20]
movzx esi, byte [rdi + rax]
mov rdi, rax
add rax, 1
js 0x1400467a0
cmp rax, rdi
jb 0x1400467a0
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x1400469a0
cmp rax, rbx
jle 0x1400469a0
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x1400468c6
test byte [rdx + 7], 0x40
je 0x1400468c6
mov rcx, r13
call sym.nimPrepareStrMutationImpl__system_u2386
mov rdx, qword [rsp + 0x38]
mov edi, esi
shr esi, 2
mov eax, esi
shl edi, 0x10
movzx eax, byte [r15 + rax]
mov byte [rdx + rbx + 8], al
add rbx, 1
jo 0x1400467a0
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x1400469a0
cmp rbx, rax
jge 0x1400469a0
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x140046917
test byte [rdx + 7], 0x40
je 0x140046917
mov rcx, r13
call sym.nimPrepareStrMutationImpl__system_u2386
mov rdx, qword [rsp + 0x38]
mov eax, edi
shr eax, 0xc
and eax, 0x30
movzx eax, byte [r15 + rax]
mov byte [rdx + rbx + 8], al
add rbx, 1
jo 0x1400467a0
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x1400469a0
cmp rax, rbx
jle 0x1400469a0
mov rcx, r13
call sym.nimPrepareStrMutationV2
mov rax, qword [rsp + 0x38]
mov byte [rax + rbx + 8], 0x3d
add rbx, 1
mov r14, rbx
jo 0x1400467a0
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x140046ac9
cmp rax, rbx
jle 0x140046ac9
mov rcx, r13
mov rbx, r14
call sym.nimPrepareStrMutationV2
mov rax, qword [rsp + 0x38]
add rbx, 1
mov byte [rax + r14 + 8], 0x3d
jno 0x140046834
jmp 0x1400467a0
lea rdx, [rax - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x1400467a5
cmp rbp, qword [rsp + 0x20]
jle 0x140046ada
mov rax, qword [rsp + 0x20]
mov rcx, rax
movzx esi, byte [rdi + rax]
add rcx, 1
js 0x1400467a0
cmp rcx, rax
jb 0x1400467a0
test rcx, rcx
js 0x1400467f8
cmp rbp, rcx
jle 0x1400467f8
movzx edi, byte [rdi + rax + 1]
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x1400469a0
cmp rax, rbx
jle 0x1400469a0
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x140046a1e
test byte [rdx + 7], 0x40
je 0x140046a1e
mov rcx, r13
call sym.nimPrepareStrMutationImpl__system_u2386
mov rdx, qword [rsp + 0x38]
movzx eax, sil
movzx esi, dil
shl eax, 0x10
shl esi, 8
or esi, eax
shr eax, 0x12
movzx eax, byte [r15 + rax]
mov byte [rdx + rbx + 8], al
add rbx, 1
mov r14, rbx
jo 0x1400467a0
mov rax, qword [rsp + 0x30]
test rbx, rbx
js 0x140046ac9
cmp rbx, rax
jge 0x140046ac9
mov rcx, r13
call sym.nimPrepareStrMutationV2
mov eax, esi
shr eax, 0xc
and eax, 0x3f
add r14, 1
movzx edx, byte [r15 + rax]
mov rax, qword [rsp + 0x38]
mov byte [rax + rbx + 8], dl
jo 0x1400467a0
mov rax, qword [rsp + 0x30]
test r14, r14
js 0x140046ac9
cmp r14, rax
jge 0x140046ac9
mov rcx, r13
call sym.nimPrepareStrMutationV2
mov eax, esi
shr eax, 6
and eax, 0x3c
movzx edx, byte [r15 + rax]
mov rax, qword [rsp + 0x38]
mov byte [rax + r14 + 8], dl
add r14, 1
jo 0x1400467a0
mov rax, qword [rsp + 0x30]
test r14, r14
js 0x140046ac9
cmp r14, rax
jl 0x140046977
lea rdx, [rax - 1]
mov rcx, r14
call sym.raiseIndexError2
jmp 0x1400467a5
mov rcx, qword [rsp + 0x20]
lea rdx, [rbp - 1]
call sym.raiseIndexError2
jmp 0x1400467a5
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call sym.raiseRangeErrorI
jmp 0x1400467a5