Function at 0x14012d160
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x28
mov rax, qword [rsp + 0x90]
mov rbp, qword [rcx + 0x20]
mov r15d, dword [rcx + 0xc]
mov rsi, qword [rsp + 0xa8]
mov r13, qword [rax]
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xc0]
mov r12, qword [r8]
mov rsi, qword [rsi]
mov rax, qword [rax]
mov ecx, dword [rcx]
mov qword [rsp + 0x78], rax
movabs rax, 0x5555555555555555
mov qword [rsp + 0x70], r12
mov qword [rsp + 0xb8], rsi
test ecx, ecx
je 0x14012d26d
mov edi, ecx
mov qword [rsi], rax
imul edi, r15d
lea r12d, [rcx - 2]
shr r12d, 1
mov r14d, r12d
add rdi, rsi
lea esi, [r15 + r15]
shr r14d, 1
je 0x14012d22e
nop dword [rax + rax]
mov rbx, rdi
mov r8d, 1
sub rbx, rsi
mov rcx, rdi
mov rdx, rbx
call rbp
mov rdi, rbx
mov r8d, 1
sub rdi, rsi
mov rcx, rbx
mov rdx, rdi
call rbp
add r14d, 0xffffffff
jne 0x14012d200
test r12b, 1
je 0x14012d24b
mov rbx, rdi
mov r8d, 1
sub rbx, rsi
mov rcx, rdi
mov rdx, rbx
call rbp
mov rdi, rbx
mov r14, qword [rsp + 0x78]
mov r8d, 1
mov rdx, r14
mov rcx, rdi
call rbp
mov rsi, qword [rsp + 0xb8]
mov r12, qword [rsp + 0x70]
jmp 0x14012d272
mov r14, qword [rsp + 0x78]
imul eax, r15d, 0x3e
mov r8d, 1
mov rcx, r14
mov ebx, eax
lea rdi, [rax + r12]
mov rdx, rdi
call rbp
movabs rax, 0x1555555555555555
mov ecx, r15d
mov qword [r12], rax
mov r12d, 0x3e
mov rax, qword [rsp + 0x88]
shl ecx, 6
test rax, rax
jns 0x14012d2c2
mov r9, qword [rcx + r13 + 0x1e8]
mov r8d, r12d
lea rcx, [rbx + r13]
jmp 0x14012d2ec
bt rax, 0x3d
mov r8d, 0x3d
jae 0x14012d2dd
mov r9, qword [rcx + r13 + 0x1e0]
imul ecx, r15d, 0x3d
jmp 0x14012d2e9
mov r9, qword [rcx + r13 + 0x1d8]
imul ecx, r15d, 0x3c
add rcx, r13
mov rdx, qword [r9]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], r9
mov qword [rsp + 0x78], rcx
and rdx, rax
je 0x14012d6ed
mov rax, rdx
movabs rcx, 0x3333333333333333
shr rax, 1
sub rdx, rax
mov rax, rdx
and rdx, rcx
shr rax, 2
and rax, rcx
add rax, rdx
mov rcx, rax
shr rcx, 4
add rcx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rcx, rax
mov rax, rcx
shr rax, 8
add rcx, rax
mov rax, rcx
shr rax, 0x10
add rcx, rax
mov rax, rcx
shr rax, 0x20
add eax, ecx
movzx eax, al
imul r14d, eax, 0xaaa
shr r14d, 0xc
test r14d, r14d
jne 0x14012d381
mov r14d, 1
jmp 0x14012d387
cmp r14d, 4
jae 0x14012d3e2
mov esi, 0xf
lea r13d, [r15 + r15]
mov rbx, rdi
mov r8d, 1
sub rbx, r13
mov rcx, rdi
mov rdx, rbx
call rbp
mov rdi, rbx
mov r8d, 1
sub rdi, r13
mov rcx, rbx
mov rdx, rdi
call rbp
add esi, 0xffffffff
jne 0x14012d390
cmp r14d, 1
jne 0x14012d47d
mov rdx, qword [rsp + 0x70]
lea edi, [r15 + r15]
add rdi, rdx
movabs rax, 0x5555555555555555
jmp 0x14012d4ac
lea esi, [r14 - 3]
mov eax, 0x1e
sub eax, esi
mov r13d, eax
mov dword [rsp + 0x88], eax
shr r13d, 1
je 0x14012d432
lea r12d, [r15 + r15]
mov rbx, rdi
mov r8d, 1
sub rbx, r12
mov rcx, rdi
mov rdx, rbx
call rbp
mov rdi, rbx
mov r8d, 1
sub rdi, r12
mov rcx, rbx
mov rdx, rdi
call rbp
add r13d, 0xffffffff
jne 0x14012d400
lea r12d, [r13 + 0x3e]
test byte [rsp + 0x88], 1
lea r13d, [r15 + r15]
mov rbx, rdi
je 0x14012d456
sub rbx, r13
mov r8d, 1
mov rdx, rbx
mov rcx, rdi
call rbp
jmp 0x14012d459
add rdi, r13
test esi, esi
je 0x14012d47d
nop dword [rax]
sub rbx, r13
sub rdi, r15
mov rdx, rbx
mov rcx, rdi
mov r8d, 1
call rbp
add esi, 0xffffffff
jne 0x14012d460
lea r12d, [rsi + 0x3e]
mov rdx, qword [rsp + 0x70]
lea ecx, [r14*2 - 2]
mov edi, r14d
mov eax, 1
shl rax, cl
movabs rcx, 0x5555555555555555
imul edi, r15d
dec rax
add rdi, rdx
or rax, rcx
mov qword [rdx], rax
mov r8d, 1
mov r13, qword [rsp + 0x78]
mov rcx, rdi
mov rdx, r13
call rbp
mov rcx, qword [rsp + 0x90]
mov ebx, r15d
shl ebx, 6
sub rdi, r15
add rbx, rcx
dec r14d
mov rsi, qword [rcx]
test r14d, 0xfffffffe
je 0x14012d558
lea eax, [r15 + r15]
mov qword [rsp + 0x88], rax
mov r13, rdi
mov r8d, 1
sub r13, r15
mov rcx, rdi
test rsi, rsi
jns 0x14012d52a
sub rbx, r15
mov rdx, rbx
call rbp
sub rbx, r15
mov r8d, 1
mov rdx, rbx
mov rcx, r13
mov rdi, r13
call rbp
sub rdi, r15
add r14d, 0xfffffffe
jmp 0x14012d538
sub rbx, rax
dec r14d
mov rdx, rbx
call rbp
mov rdi, r13
mov rax, qword [rsp + 0x88]
shl rsi, 2
test r14d, 0xfffffffe
jne 0x14012d4f1
mov r13, qword [rsp + 0x78]
mov r12d, 0x3e
test r14d, r14d
je 0x14012d5e9
mov r8d, 1
test rsi, rsi
jns 0x14012d58d
sub rbx, r15
mov rcx, rdi
mov rdx, rbx
call rbp
sub rbx, r15
mov r8d, 1
mov rdx, rbx
mov rcx, r13
call rbp
xor r14d, r14d
jmp 0x14012d59c
lea ecx, [r15 + r15]
sub rbx, rcx
mov rcx, rdi
mov rdx, rbx
call rbp
imul edi, r15d, 0x3e
mov rcx, r15
shl rsi, 2
add rdi, qword [rsp + 0x90]
test r14d, r14d
jne 0x14012d5f8
sub rbx, rcx
cmp rbx, rdi
jae 0x14012d6c8
test rsi, rsi
jns 0x14012d5dc
lea r8d, [r14 + 1]
mov rdx, rbx
mov rcx, rdi
call rbp
lea ecx, [r15 + r15]
sub rdi, rcx
lea r12d, [r14 + 0x3c]
sub rbx, r15
lea rsi, [rsi*2]
jmp 0x14012d655
imul edi, r15d, 0x3e
mov rcx, r15
add rdi, qword [rsp + 0x90]
mov r8d, 1
test rsi, rsi
jns 0x14012d612
sub rbx, rcx
mov rcx, qword [rsp + 0x78]
mov rdx, rbx
call rbp
jmp 0x14012d64f
mov rcx, qword [rsp + 0x78]
lea r14d, [r15 + r15]
sub rbx, r14
mov rdx, rbx
call rbp
sub rbx, r15
shl rsi, 2
cmp rbx, rdi
jae 0x14012d6c8
test rsi, rsi
jns 0x14012d64f
mov r8d, 1
mov rdx, rbx
mov rcx, rdi
call rbp
sub rdi, r14
mov r12d, 0x3c
sub rbx, r15
add rsi, rsi
cmp rbx, rdi
jae 0x14012d6c8
lea r13d, [r15 + r15]
movabs rax, 0x4000000000000000
nop dword [rax + rax]
mov r14, rdi
mov r8d, 1
sub r14, r13
mov rdx, rbx
mov rcx, rdi
test rax, rsi
je 0x14012d6a9
call rbp
sub rbx, r15
mov r8d, 1
mov rdx, rbx
mov rcx, r14
mov rdi, r14
call rbp
sub rdi, r13
sub rbx, r15
add r12d, 0xfffffffc
jmp 0x14012d6b5
call rbp
sub rbx, r13
mov rdi, r14
add r12d, 0xfffffffe
shl rsi, 2
movabs rax, 0x4000000000000000
cmp rbx, rdi
jb 0x14012d670
mov ecx, 0x3f
movabs rax, 0x5555555555555555
sub ecx, r12d
shr rsi, cl
mov rcx, qword [rsp + 0x90]
or rsi, rax
mov qword [rcx], rsi
jmp 0x14012d734
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x70]
mov dword [rax], r12d
mov rax, qword [rsp + 0x98]
mov dword [rax], r8d
mov rax, qword [rsp + 0xb0]
mov qword [rax], rsi
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdx
mov rax, qword [rsp + 0xa0]
mov qword [rax], rcx
mov rax, qword [rsp + 0x80]
mov qword [rax], r9
xor eax, eax
add rsp, 0x28
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret