Function at 0x15f58
Capabilities:
Encode data using base64

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x3f0
mov rax, qword [0x0001d100]
xor rax, rsp
mov qword [rsp + 0x3e0], rax
mov rbx, rcx
mov edi, 0xff
lea rcx, [r11 - 0x237]
xor r14d, r14d
xor edx, edx
mov r8, rdi
mov byte [r11 - 0x238], r14b
call fcn.0001a460
lea r8d, [r14 + 0x3f]
lea rcx, [rsp + 0x1a1]
xor edx, edx
mov byte [rsp + 0x1a0], r14b
call fcn.0001a460
xor eax, eax
lea rcx, [rsp + 0x2e1]
mov r8, rdi
xor edx, edx
mov word [rsp + 0x60], r14w
mov qword [rsp + 0x62], rax
mov dword [rsp + 0x6a], eax
mov word [rsp + 0x6e], ax
mov byte [rsp + 0x190], r14b
mov qword [rsp + 0x191], rax
mov dword [rsp + 0x199], eax
mov word [rsp + 0x19d], ax
mov byte [rsp + 0x19f], al
mov byte [rsp + 0x2e0], r14b
call fcn.0001a460
lea rdx, [0x0001ae90]
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea r8, [rsp + 0x1a0]
lea rdx, [0x0001af10]
lea rcx, [rsp + 0x60]
call fcn.00011f60
lea rcx, [rsp + 0x70]
call qword [sym.imp.ntoskrnl.exe_RtlGetVersion]
mov ecx, dword [rsp + 0x7c]
mov r9d, dword [rsp + 0x74]
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0x78]
lea r8, [0x0001af30]
mov dword [rsp + 0x20], ecx
lea edx, [r14 + 0x10]
lea rcx, [rsp + 0x190]
mov r13d, eax
call fcn.00011ef4
mov dword [rsp + 0x50], 0xbbb
mov dword [rsp + 0x48], 1
lea rax, [rsp + 0x190]
lea r9, [0x000fffd0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x1a0]
lea r8, [0x0001af40]
mov qword [rsp + 0x38], rax
lea rax, [0x00100020]
lea edx, [rdi + 1]
mov qword [rsp + 0x30], rax
lea rax, [0x00100010]
lea rcx, [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
lea rax, [0x000fffb8]
mov qword [rsp + 0x20], rax
call fcn.00011ef4
or rdx, 0xffffffffffffffff
mov rcx, rdx
xor eax, eax
lea rdi, [rsp + 0x1e0]
repne scasb al, byte [rdi]
not rcx
lea rbp, [rcx - 1]
mov rcx, rdx
lea rdx, str.oblSElw9KO
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x2e0]
call fcn.00015bd0
mov r8d, ebp
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x2e0]
call fcn.00015cc0
xor edx, edx
mov r8d, 0x100
mov rcx, rbx
lea rsi, [rsp + 0x1e0]
mov rdi, rbx
mov r12d, r14d
call fcn.0001a460
cmp rbx, r14
je 0x162ab
lea r9, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jmp 0x1620e
add r12d, 4
cmp r12d, 0x100
jge 0x16261
movzx edx, byte [rsi]
mov rax, rdx
shr rax, 2
movsx ecx, byte [rax + r9]
mov byte [rdi], cl
cmp cl, 0xff
je 0x16261
movzx r8d, byte [rsi + 1]
movsx eax, dl
and eax, 3
shl eax, 4
movsxd rcx, eax
mov rax, r8
shr rax, 4
or rcx, rax
movsx eax, byte [rcx + r9]
mov byte [rdi + 1], al
cmp al, 0xff
je 0x16261
movzx edx, byte [rsi + 2]
movsx eax, r8b
and eax, 0xf
shl eax, 2
movsxd rcx, eax
mov rax, rdx
shr rax, 6
or rcx, rax
movsx eax, byte [rcx + r9]
mov byte [rdi + 2], al
cmp al, 0xff
je 0x16261
movsx rax, dl
add rdi, 4
and eax, 0x3f
movsx ecx, byte [rax + r9]
mov byte [rdi - 1], cl
cmp cl, 0xff
je 0x16261
sub ebp, 3
add rsi, 3
cmp ebp, 3
jge 0x16172
cmp ebp, r14d
jle 0x162a8
lea eax, [r12 + 4]
cmp eax, 0x100
jge 0x16261
movzx edx, byte [rsi]
mov rax, rdx
shr rax, 2
movsx ecx, byte [rax + r9]
mov byte [rdi], cl
cmp cl, 0xff
je 0x16261
and dl, 3
shl dl, 4
cmp ebp, 1
jle 0x16257
mov al, byte [rsi + 1]
sar al, 4
and al, 0xf
or dl, al
test dl, 0xc0
je 0x16266
or eax, 0xffffffff
jmp 0x1626f
mov byte [rbx], r14b
jmp 0x162ab
movsx rax, dl
movsx eax, byte [rax + r9]
mov byte [rdi + 1], al
cmp al, 0xff
je 0x16261
cmp ebp, 2
jge 0x16285
mov byte [rdi + 2], 0x3d
add rdi, 3
jmp 0x162a2
movsx eax, byte [rsi + 1]
add rdi, 3
and eax, 0xf
shl eax, 2
cdqe
movsx ecx, byte [rax + r9]
mov byte [rdi - 1], cl
cmp cl, 0xff
je 0x16261
mov byte [rdi], 0x3d
inc rdi
mov byte [rdi], r14b
mov eax, r13d
mov rcx, qword [rsp + 0x3e0]
xor rcx, rsp
call fcn.0001a090
lea r11, [rsp + 0x3f0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret