Function at 0x1400126a0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
movdqa xmm1, xmmword [0x140021b70]
movabs rax, 0x5555555555555556
mov r13, qword [rdx]
mov rbx, qword [rdx + 8]
imul r13
mov rax, r13
mov rdi, rcx
movaps xmmword [rsp + 0x50], xmm1
lea r15, [rsp + 0x60]
sar rax, 0x3f
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x38], r15
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rax, r13
lea rcx, [rax + 3]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
mov r12, rdx
and rdx, 0xfffffffffffffffe
shr r12, 1
add rdx, r12
sub rcx, rdx
lea rdx, [rsp + 0x50]
mov r8, rcx
mov r12, rcx
mov rcx, r15
call sym.nsuRepeatStr
mov rax, qword [rsp + 0x68]
mov rcx, qword [0x1400225f0]
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x40], rax
call dbg.__emutls_get_address
cmp byte [rax], 0
mov qword [rsp + 0x28], rax
jne 0x140012bc8
lea rdx, [r13 + rsi]
mov rcx, r15
call sym.rawNewString
test r13, r13
mov r15, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
jle 0x140012b91
mov rcx, r13
add rcx, 1
jo 0x140012bf4
test rcx, rcx
js 0x140012b80
lea rax, [r15 + rbp + 8]
mov r8, rcx
lea rdx, [rbx + 8]
mov rcx, rax
call sym.memcpy
add r13, r15
jo 0x140012bf4
test rsi, rsi
jle 0x140012ba0
mov rcx, rsi
add rcx, 1
jo 0x140012bed
test rcx, rcx
js 0x140012bb0
mov rbx, qword [rsp + 0x40]
lea rax, [r13 + rbp + 8]
mov r8, rcx
mov rcx, rax
lea rdx, [rbx + 8]
call sym.memcpy
add rsi, r13
mov r14, rsi
jo 0x140012bed
movabs rax, 0x5555555555555556
imul r14
mov rax, r14
sar rax, 0x3f
sub rdx, rax
cmp r14, 2
mov qword [rsp + 0x30], rdx
jle 0x140012c08
mov eax, 2
mov qword [rsp + 0x48], r12
xor r15d, r15d
xor ebx, ebx
lea r13, [0x140021b20]
mov r12, rax
mov qword [rsp + 0xe0], rdi
sub r12, rbx
jo 0x140012ab0
xor edi, edi
add r12, 1
seto dil
jo 0x140012ab0
test r12, r12
js 0x140012ad0
mov rcx, qword [rsp + 0x38]
mov rdx, r12
call sym.mnewString
movdqu xmm0, xmmword [rsp + 0x60]
test r12, r12
movaps xmmword [rsp + 0x80], xmm0
je 0x140012908
lea rsi, [rsp + 0x80]
jmp 0x1400128ec
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x1400128ab
test byte [rax + 7], 0x40
je 0x1400128ab
mov rcx, rsi
call sym.nimPrepareStrMutationImpl__system_u2414
mov rcx, rbx
add rcx, rdi
js 0x140012ab0
cmp rcx, rdi
jb 0x140012ab0
cmp r14, rcx
jle 0x140012af0
test rcx, rcx
js 0x140012af0
movzx edx, byte [rbp + rcx + 8]
mov rax, qword [rsp + 0x88]
mov byte [rax + rdi + 8], dl
add rdi, 1
cmp r12, rdi
jle 0x140012908
mov rdx, qword [rsp + 0x80]
cmp rdx, rdi
jg 0x140012890
sub rdx, 1
mov rcx, rdi
call sym.raiseIndexError2
nop dword [rax]
mov rsi, qword [rsp + 0x28]
mov rax, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x88]
cmp byte [rsi], 0
jne 0x140012b00
test rax, rax
jle 0x140012cc9
cmp rax, 1
je 0x140012ce1
cmp rax, 2
je 0x140012cfa
movzx eax, byte [rdi + 8]
lea r12, [rsp + 0x70]
movzx edx, byte [rdi + 9]
mov rcx, r12
movzx esi, byte [rdi + 0xa]
shl rax, 0x10
shl rdx, 8
or rax, rdx
mov edx, 1
or rsi, rax
shr rax, 0x12
movzx r8d, byte [r13 + rax + 8]
mov byte [rsp + 0x27], r8b
call sym.prepareAdd
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
movzx r8d, byte [rsp + 0x27]
mov byte [rdx + rax + 8], r8b
add rax, 1
jo 0x140012da8
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x70], rax
mov byte [rdx + rax + 8], 0
mov rax, rsi
mov edx, 1
mov rcx, r12
sar rax, 0xc
and eax, 0x3f
movzx r8d, byte [r13 + rax + 8]
mov byte [rsp + 0x27], r8b
call sym.prepareAdd
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
movzx r8d, byte [rsp + 0x27]
mov byte [rdx + rax + 8], r8b
add rax, 1
jo 0x140012db2
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x70], rax
mov byte [rdx + rax + 8], 0
mov rax, rsi
mov edx, 1
mov rcx, r12
sar rax, 6
and eax, 0x3f
movzx r8d, byte [r13 + rax + 8]
mov byte [rsp + 0x27], r8b
call sym.prepareAdd
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
movzx r8d, byte [rsp + 0x27]
mov byte [rdx + rax + 8], r8b
add rax, 1
jo 0x140012dbc
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x70], rax
mov byte [rdx + rax + 8], 0
and esi, 0x3f
mov edx, 1
mov rcx, r12
movzx esi, byte [r13 + rsi + 8]
call sym.prepareAdd
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov byte [rdx + rax + 8], sil
add rax, 1
jo 0x140012d9e
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x70], rax
mov byte [rdx + rax + 8], 0
add r15, 1
test byte [rdi + 7], 0x40
je 0x140012ac0
cmp qword [rsp + 0x30], r15
jle 0x140012bfb
mov r12, rbx
add rbx, 3
add r12, 5
jmp 0x14001283f
call sym.raiseOverflow
jmp 0x140012908
mov rcx, rdi
call sym.deallocShared
jmp 0x140012a94
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call sym.raiseRangeErrorI
jmp 0x140012908
lea rdx, [r14 - 1]
call sym.raiseIndexError2
jmp 0x140012908
mov rdi, qword [rsp + 0xe0]
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x140012b20
test byte [rax + 7], 0x40
jne 0x140012b20
mov rcx, rax
call sym.deallocShared
test rbp, rbp
je 0x140012b2b
test byte [rbp + 7], 0x40
je 0x140012b70
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140012b3b
test byte [rcx + 7], 0x40
je 0x140012b60
xor esi, esi
xor ebx, ebx
mov rax, rdi
mov qword [rdi], rbx
mov qword [rdi + 8], rsi
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call sym.deallocShared
jmp 0x140012b3b
mov rcx, rbp
call sym.deallocShared
jmp 0x140012b2b
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
test rsi, rsi
mov r13, r15
jg 0x1400127bd
nop dword [rax]
mov r14, r13
jmp 0x1400127f8
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x140012ba0
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x140012b2b
test byte [rax + 7], 0x40
jne 0x140012b2b
mov rcx, rax
call sym.deallocShared
jmp 0x140012b2b
call sym.raiseOverflow
jmp 0x140012ba0
call sym.raiseOverflow
jmp 0x140012b91
mov r12, qword [rsp + 0x48]
mov rdi, qword [rsp + 0xe0]
test r12, r12
mov rbx, qword [rsp + 0x70]
je 0x140012c72
mov rsi, rbx
add rsi, 0xffffffffffffffff
jo 0x140012dcd
cmp rsi, rbx
jge 0x140012d16
test rsi, rsi
js 0x140012d16
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140012c50
test byte [rax + 7], 0x40
je 0x140012c50
lea rcx, [rsp + 0x70]
call sym.nimPrepareStrMutationImpl__system_u2414
mov rax, qword [rsp + 0x78]
mov byte [rax + rsi + 8], 0x3d
mov rax, qword [rsp + 0x28]
cmp byte [rax], 0
jne 0x140012b08
cmp r12, 2
mov rbx, qword [rsp + 0x70]
je 0x140012d41
lea rcx, [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
call sym.eqwasMoved___stdZassertions_u27
cmp qword [rsp + 0x40], 0
je 0x140012c98
mov rax, qword [rsp + 0x40]
test byte [rax + 7], 0x40
je 0x140012d27
test rbp, rbp
je 0x140012ca7
test byte [rbp + 7], 0x40
je 0x140012d34
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140012b3f
test byte [rcx + 7], 0x40
jne 0x140012b3f
call sym.deallocShared
jmp 0x140012b3f
lea rdx, [rax - 1]
xor ecx, ecx
mov rdi, qword [rsp + 0xe0]
call sym.raiseIndexError2
jmp 0x140012b08
xor edx, edx
mov ecx, 1
mov rdi, qword [rsp + 0xe0]
call sym.raiseIndexError2
jmp 0x140012b08
mov edx, 1
mov ecx, 2
mov rdi, qword [rsp + 0xe0]
call sym.raiseIndexError2
jmp 0x140012b08
lea rdx, [rbx - 1]
mov rcx, rsi
call sym.raiseIndexError2
jmp 0x140012c55
mov rcx, rax
call sym.deallocShared
jmp 0x140012c98
mov rcx, rbp
call sym.deallocShared
jmp 0x140012ca7
mov rsi, rbx
add rsi, 0xfffffffffffffffe
jo 0x140012dc6
cmp rsi, rbx
jge 0x140012d90
test rsi, rsi
js 0x140012d90
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x140012d73
test byte [rax + 7], 0x40
je 0x140012d73
lea rcx, [rsp + 0x70]
call sym.nimPrepareStrMutationImpl__system_u2414
mov rax, qword [rsp + 0x78]
mov byte [rax + rsi + 8], 0x3d
mov rax, qword [rsp + 0x28]
cmp byte [rax], 0
jne 0x140012b08
mov rbx, qword [rsp + 0x70]
jmp 0x140012c72
lea rdx, [rbx - 1]
mov rcx, rsi
call sym.raiseIndexError2
jmp 0x140012d78
call sym.raiseOverflow
jmp 0x140012a8a
call sym.raiseOverflow
jmp 0x1400129ac
call sym.raiseOverflow
jmp 0x1400129fc
call sym.raiseOverflow
jmp 0x140012a4c
call sym.raiseOverflow
jmp 0x140012d78
call sym.raiseOverflow
jmp 0x140012c55