Function at 0x140011340
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
mov rsi, rcx
push rbx
sub rsp, 0x28
mov ecx, dword [rsp + 0x90]
mov eax, ecx
and eax, 0xfffffff9
cmp eax, 1
jne 0x1400117f1
movabs rax, 0xaaaaaaaaaaaaaaab
mov rdi, rdx
mov rbx, r9
mul r9
shr rdx, 1
lea rax, [rdx + rdx*2]
lea rbp, [rdx*4]
mov rdx, r9
sub rdx, rax
je 0x1400115d8
test cl, 2
jne 0x1400117e0
add rbp, 4
cmp rbp, rdi
jae 0x1400117f1
and ecx, 4
je 0x1400115ef
lea r13, [r8 + rbx]
xor r10d, r10d
xor ebx, ebx
xor ecx, ecx
jmp 0x140011446
mov eax, r10d
add r8, 1
add rbx, 2
and eax, 0x3f
lea r12d, [rax - 0x34]
lea edx, [rax - 0x3e]
shr r12d, 8
lea ecx, [rax - 4]
shr edx, 8
lea r9d, [rax - 0x1a]
and edx, ecx
mov ecx, r12d
shr r9d, 8
not ecx
and edx, ecx
lea ecx, [rax + 0x47]
and ecx, r12d
mov r12d, r9d
not r12d
and ecx, r12d
xor r12d, r12d
or edx, ecx
lea ecx, [rax + 0x41]
and ecx, r9d
or edx, ecx
mov ecx, eax
xor eax, 0x3f
xor ecx, 0x3e
neg eax
movzx edx, dl
neg ecx
shr eax, 8
shr ecx, 8
not eax
not ecx
and eax, 0x5f
and ecx, 0x2d
or ecx, eax
or edx, ecx
xor ecx, ecx
mov byte [rsi + r11], dl
cmp r13, r8
je 0x1400114f5
movzx eax, byte [r8]
shl r10d, 8
add rcx, 2
lea r11, [rbx + 1]
mov r12d, ecx
add r10d, eax
mov eax, r10d
shr eax, cl
and eax, 0x3f
lea r15d, [rax - 0x34]
lea edx, [rax - 0x3e]
shr r15d, 8
lea r9d, [rax - 4]
shr edx, 8
lea r14d, [rax - 0x1a]
and edx, r9d
mov r9d, r15d
shr r14d, 8
not r9d
and edx, r9d
lea r9d, [rax + 0x47]
and r9d, r15d
mov r15d, r14d
not r15d
and r9d, r15d
or edx, r9d
lea r9d, [rax + 0x41]
and r9d, r14d
or edx, r9d
mov r9d, eax
xor eax, 0x3f
xor r9d, 0x3e
neg eax
movzx edx, dl
neg r9d
shr eax, 8
shr r9d, 8
not eax
not r9d
and eax, 0x5f
and r9d, 0x2d
or r9d, eax
or edx, r9d
mov byte [rsi + rbx], dl
cmp rcx, 5
ja 0x1400113c8
mov rax, rbx
add r8, 1
mov rbx, r11
mov r11, rax
cmp r13, r8
jne 0x140011446
test rcx, rcx
je 0x1400117ae
mov ecx, 6
sub ecx, r12d
shl r10d, cl
and r10d, 0x3f
lea r8d, [r10 - 0x34]
lea edx, [r10 - 0x3e]
shr r8d, 8
lea eax, [r10 - 4]
shr edx, 8
lea ecx, [r10 - 0x1a]
and edx, eax
mov eax, r8d
shr ecx, 8
not eax
and edx, eax
lea eax, [r10 + 0x47]
and eax, r8d
mov r8d, ecx
not r8d
and eax, r8d
or edx, eax
lea eax, [r10 + 0x41]
and eax, ecx
or edx, eax
mov eax, r10d
xor eax, 0x3e
movzx edx, dl
neg eax
shr eax, 8
not eax
and eax, 0x2d
mov ecx, eax
mov eax, r10d
xor eax, 0x3f
neg eax
shr eax, 8
not eax
and eax, 0x5f
or eax, ecx
or edx, eax
mov byte [rsi + rbx], dl
lea rbx, [r11 + 2]
cmp rbp, rbx
jb 0x1400117b7
cmp rbx, rbp
jae 0x14001180e
mov r8, rbp
lea rcx, [rsi + rbx]
mov edx, 0x3d
sub r8, rbx
call sym.memset
lea rax, [rbp + 1]
mov r8, rdi
lea rcx, [rsi + rbp]
sub r8, rbp
cmp rdi, rax
mov eax, 1
cmovb r8, rax
xor edx, edx
call sym.memset
add rsp, 0x28
mov rax, rsi
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp rbp, rdi
jae 0x1400117f1
and ecx, 4
jne 0x140011800
test r9, r9
je 0x140011583
lea r13, [r8 + rbx]
xor r9d, r9d
xor ebx, ebx
xor ecx, ecx
jmp 0x14001167e
mov eax, r9d
add r8, 1
add rbx, 2
and eax, 0x3f
lea r12d, [rax - 0x34]
lea edx, [rax - 0x3e]
shr r12d, 8
lea ecx, [rax - 4]
shr edx, 8
lea r10d, [rax - 0x1a]
and edx, ecx
mov ecx, r12d
shr r10d, 8
not ecx
and edx, ecx
lea ecx, [rax + 0x47]
and ecx, r12d
mov r12d, r10d
not r12d
and ecx, r12d
xor r12d, r12d
or edx, ecx
lea ecx, [rax + 0x41]
and ecx, r10d
or edx, ecx
mov ecx, eax
xor eax, 0x3f
xor ecx, 0x3e
neg eax
movzx edx, dl
neg ecx
shr eax, 8
shr ecx, 8
not eax
not ecx
and eax, 0x2f
and ecx, 0x2b
or ecx, eax
or edx, ecx
xor ecx, ecx
mov byte [rsi + r11], dl
cmp r13, r8
je 0x14001172d
movzx eax, byte [r8]
shl r9d, 8
add rcx, 2
lea r11, [rbx + 1]
mov r12d, ecx
add r9d, eax
mov eax, r9d
shr eax, cl
and eax, 0x3f
lea r15d, [rax - 0x34]
lea edx, [rax - 0x3e]
shr r15d, 8
lea r10d, [rax - 4]
shr edx, 8
lea r14d, [rax - 0x1a]
and edx, r10d
mov r10d, r15d
shr r14d, 8
not r10d
and edx, r10d
lea r10d, [rax + 0x47]
and r10d, r15d
mov r15d, r14d
not r15d
and r10d, r15d
or edx, r10d
lea r10d, [rax + 0x41]
and r10d, r14d
or edx, r10d
mov r10d, eax
xor eax, 0x3f
xor r10d, 0x3e
neg eax
movzx edx, dl
neg r10d
shr eax, 8
shr r10d, 8
not eax
not r10d
and eax, 0x2f
and r10d, 0x2b
or r10d, eax
or edx, r10d
mov byte [rsi + rbx], dl
cmp rcx, 5
ja 0x140011600
mov rax, rbx
add r8, 1
mov rbx, r11
mov r11, rax
cmp r13, r8
jne 0x14001167e
test rcx, rcx
je 0x1400117ae
mov ecx, 6
sub ecx, r12d
shl r9d, cl
and r9d, 0x3f
lea r8d, [r9 - 0x34]
lea edx, [r9 - 0x3e]
shr r8d, 8
lea eax, [r9 - 4]
shr edx, 8
lea ecx, [r9 - 0x1a]
and edx, eax
mov eax, r8d
shr ecx, 8
not eax
and edx, eax
lea eax, [r9 + 0x47]
and eax, r8d
mov r8d, ecx
not r8d
and eax, r8d
or edx, eax
lea eax, [r9 + 0x41]
and eax, ecx
or edx, eax
mov eax, r9d
xor eax, 0x3e
movzx edx, dl
neg eax
shr eax, 8
not eax
and eax, 0x2b
mov ecx, eax
mov eax, r9d
xor eax, 0x3f
neg eax
shr eax, 8
not eax
and eax, 0x2f
or eax, ecx
or edx, eax
mov byte [rsi + rbx], dl
lea rbx, [r11 + 2]
cmp rbp, rbx
jae 0x140011583
mov r8d, 0xe7
lea rdx, str.sodium_codecs.c
lea rcx, str.b64_pos___b64_len
mov rbp, rbx
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x1400115a0
shr rdx, 1
lea rbp, [rbp + rdx + 2]
cmp rbp, rdi
jb 0x1400113ac
call sym.sodium_misuse
nop word cs:[rax + rax]
test r9, r9
jne 0x1400113b5
jmp 0x140011583
mov rbp, rbx
jmp 0x1400115a0