Function at 0x14018b660
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov rbx, rdx
mov rdi, rcx
xor ebp, ebp
mov dword [rsp + 0x20], ebp
mov qword [rcx], rbp
mov qword [rcx + 0x10], rbp
mov qword [rcx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rcx], bpl
mov dword [rsp + 0x20], 1
lea rsi, [rdx + 0x10]
mov rdx, qword [rsi]
call fcn.14019d110
lea r15d, [rbp - 6]
mov rcx, rbx
mov qword [rsp + 0x88], rbx
cmp qword [rbx + 0x18], 0x10
jb 0x14018b6cb
mov rcx, qword [rbx]
mov qword [rsp + 0x88], rcx
mov rbx, rcx
mov rax, qword [rsi]
add rax, rbx
mov qword [rsp + 0x28], rax
movabs r8, 0x7fffffffffffffff
cmp rcx, rax
je 0x14018b97a
lea r9, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
shl ebp, 8
movzx eax, byte [rcx]
add ebp, eax
mov qword [rsp + 0x98], rbp
add r15d, 8
js 0x14018b853
movsxd rax, ebp
mov qword [rsp + 0x90], rax
nop word [rax + rax]
mov ecx, r15d
sar rax, cl
and eax, 0x3f
movzx r12d, byte [rax + r9]
mov rsi, qword [rdi + 0x10]
mov rbp, qword [rdi + 0x18]
cmp rsi, rbp
jae 0x14018b75d
lea rax, [rsi + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rbp, 0x10
jb 0x14018b74f
mov rax, qword [rdi]
mov byte [rax + rsi], r12b
mov byte [rax + rsi + 1], 0
jmp 0x14018b831
mov rax, r8
sub rax, rsi
cmp rax, 1
jb 0x14018ba9f
lea r13, [rsi + 1]
mov rbx, r13
or rbx, 0xf
cmp rbx, r8
jbe 0x14018b782
mov rbx, r8
jmp 0x14018b7a3
mov rcx, rbp
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rbp, rax
jbe 0x14018b798
mov rbx, r8
jmp 0x14018b7a3
lea rax, [rcx + rbp]
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
call fcn.140003e30
mov r14, rax
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], rbx
mov r8, rsi
mov rcx, rax
cmp rbp, 0x10
jb 0x14018b80b
mov rbx, qword [rdi]
mov rdx, rbx
call fcn.140363790
mov byte [r14 + rsi], r12b
mov byte [r14 + rsi + 1], 0
lea rdx, [rbp + 1]
cmp rdx, 0x1000
jb 0x14018b801
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x14018ba99
mov rbx, rcx
mov rcx, rbx
call fcn.14036115c
jmp 0x14018b81d
mov rdx, rdi
call fcn.140363790
mov byte [r14 + rsi], r12b
mov byte [r14 + rsi + 1], 0
lea r9, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movabs r8, 0x7fffffffffffffff
mov qword [rdi], r14
sub r15d, 6
mov rax, qword [rsp + 0x90]
jns 0x14018b720
mov rbp, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x88]
inc rcx
mov qword [rsp + 0x88], rcx
cmp rcx, qword [rsp + 0x28]
jne 0x14018b6f0
cmp r15d, 0xfffffffa
jle 0x14018b97a
lea ecx, [r15 + 8]
shl ebp, 8
movsxd rdx, ebp
sar rdx, cl
and edx, 0x3f
movzx r15d, byte [rdx + r9]
mov rsi, qword [rdi + 0x10]
mov rbp, qword [rdi + 0x18]
cmp rsi, rbp
jae 0x14018b8b7
lea rax, [rsi + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rbp, 0x10
jb 0x14018b8a9
mov rax, qword [rdi]
mov byte [rax + rsi], r15b
mov byte [rax + rsi + 1], 0
jmp 0x14018b97a
mov rax, r8
sub rax, rsi
cmp rax, 1
jb 0x14018ba9f
lea r12, [rsi + 1]
mov rbx, r12
or rbx, 0xf
cmp rbx, r8
jbe 0x14018b8dc
mov rbx, r8
jmp 0x14018b8fd
mov rcx, rbp
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rbp, rax
jbe 0x14018b8f2
mov rbx, r8
jmp 0x14018b8fd
lea rax, [rcx + rbp]
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
call fcn.140003e30
mov r14, rax
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], rbx
mov r8, rsi
mov rcx, rax
cmp rbp, 0x10
jb 0x14018b965
mov rbx, qword [rdi]
mov rdx, rbx
call fcn.140363790
mov byte [r14 + rsi], r15b
mov byte [r14 + rsi + 1], 0
lea rdx, [rbp + 1]
cmp rdx, 0x1000
jb 0x14018b95b
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x14018ba99
mov rbx, rcx
mov rcx, rbx
call fcn.14036115c
jmp 0x14018b977
mov rdx, rdi
call fcn.140363790
mov byte [r14 + rsi], r15b
mov byte [r14 + rsi + 1], 0
mov qword [rdi], r14
mov rcx, qword [rdi + 0x10]
test cl, 3
je 0x14018ba85
mov rbp, rcx
movabs r12, 0x7fffffffffffffff
mov rsi, qword [rdi + 0x18]
cmp rcx, rsi
jae 0x14018b9bc
lea rax, [rcx + 1]
mov qword [rdi + 0x10], rax
mov rax, rdi
cmp rsi, 0x10
jb 0x14018b9b1
mov rax, qword [rdi]
mov word [rax + rcx], 0x3d
jmp 0x14018ba75
mov rax, r12
sub rax, rbp
cmp rax, 1
jb 0x14018ba9f
lea r15, [rbp + 1]
mov rbx, r15
or rbx, 0xf
cmp rbx, r12
jbe 0x14018b9e1
mov rbx, r12
jmp 0x14018ba02
mov rcx, rsi
shr rcx, 1
mov rax, r12
sub rax, rcx
cmp rsi, rax
jbe 0x14018b9f7
mov rbx, r12
jmp 0x14018ba02
lea rax, [rcx + rsi]
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
call fcn.140003e30
mov r14, rax
mov qword [rdi + 0x10], r15
mov qword [rdi + 0x18], rbx
mov r8, rbp
mov rcx, rax
cmp rsi, 0x10
jb 0x14018ba63
mov rbx, qword [rdi]
mov rdx, rbx
call fcn.140363790
mov word [r14 + rbp], 0x3d
lea rdx, [rsi + 1]
cmp rdx, 0x1000
jb 0x14018ba59
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x14018ba99
mov rbx, rcx
mov rcx, rbx
call fcn.14036115c
jmp 0x14018ba72
mov rdx, rdi
call fcn.140363790
mov word [r14 + rbp], 0x3d
mov qword [rdi], r14
mov rcx, qword [rdi + 0x10]
mov rbp, rcx
test cl, 3
jne 0x14018b994
mov rax, rdi
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.140367fdc
int3
call fcn.140004000
int3