Function at 0x14003a780
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, r8
mov rdi, rdx
mov r10, rcx
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], 0
mov rax, r8
sub rax, rdx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x140376f40]
mov qword [rcx + 0x18], reloc.WS2_32.dll_ntohs
cvttsd2si rax, xmm0
mov rcx, rax
subsd xmm0, qword [0x140376f48]
cvttsd2si rdx, xmm0
sar rcx, 0x3f
and rdx, rcx
or rdx, rax
cmp rdx, 0x10
mov qword [rbp - 8], r10
jb 0x14003a80f
mov rcx, r10
call fcn.14000dac0
mov r10, qword [rbp - 8]
mov qword [r10 + 0x10], 0
xor ebx, ebx
movabs r12, 0xaaaaaaaaaaaaaaab
lea r15, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
xor r8d, r8d
xor r14d, r14d
jmp 0x14003a84d
mov edx, 1
mov rcx, r10
call fcn.14000bb10
nop word [rax + rax]
inc r14
inc rdi
mov r8d, r13d
mov r10, qword [rbp - 8]
cmp rdi, rsi
je 0x14003a9b4
movzx r13d, byte [rdi]
mov rax, r14
mul r12
shr rdx, 1
lea rcx, [rdx + rdx*2]
mov rax, r14
sub rax, rcx
lea rcx, [rax*8]
mov ebx, reloc.WS2_32.dll_recv
sub rbx, rcx
mov ecx, ebx
shl r13d, cl
add r13d, r8d
cmp rax, 1
je 0x14003a8c0
test rax, rax
jne 0x14003a910
mov eax, r13d
shr eax, 0x12
and eax, 0x3f
movzx r9d, byte [rax + r15]
mov rax, qword [r10 + 0x10]
mov rcx, qword [r10 + 0x18]
cmp rax, rcx
jb 0x14003a8df
mov edx, 1
mov rcx, r10
call fcn.14000bb10
jmp 0x14003a840
mov eax, r13d
shr eax, 0xc
and eax, 0x3f
movzx r9d, byte [rax + r15]
mov rax, qword [r10 + 0x10]
mov rcx, qword [r10 + 0x18]
cmp rax, rcx
jae 0x14003a82a
lea rdx, [rax + 1]
mov qword [r10 + 0x10], rdx
mov rdx, r10
cmp rcx, 0x10
jb 0x14003a8f3
mov rdx, qword [r10]
mov byte [rdx + rax], r9b
add rax, rdx
inc rax
mov byte [rax], 0
jmp 0x14003a840
cmp r14, 3
je 0x14003a840
mov eax, r13d
shr eax, 6
and eax, 0x3f
movzx r9d, byte [rax + r15]
mov rax, qword [r10 + 0x10]
mov rcx, qword [r10 + 0x18]
cmp rax, rcx
jae 0x14003a954
lea rdx, [rax + 1]
mov qword [r10 + 0x10], rdx
mov rdx, r10
cmp rcx, 0x10
jb 0x14003a949
mov rdx, qword [r10]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14003a961
mov edx, 1
mov rcx, r10
call fcn.14000bb10
and r13d, 0x3f
movzx r9d, byte [r13 + r15]
mov rcx, qword [rbp - 8]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14003a9a2
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
mov rdx, rcx
cmp r8, 0x10
jb 0x14003a990
mov rdx, qword [rcx]
mov byte [rdx + rax], r9b
add rax, rdx
inc rax
xor r13d, r13d
jmp 0x14003a8fd
xor r13d, r13d
mov edx, 1
call fcn.14000bb10
jmp 0x14003a840
cmp rbx, 8
je 0x14003aa01
cmp rbx, 0x10
jne 0x14003aae9
shr r8d, 0xc
and r8d, 0x3f
movzx r9d, byte [r8 + r15]
mov rcx, qword [rbp - 8]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14003aa3a
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
mov rdx, rcx
cmp r8, 0x10
jb 0x14003a9f6
mov rdx, qword [rcx]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14003aa44
shr r8d, 6
and r8d, 0x3f
movzx r9d, byte [r8 + r15]
mov rax, qword [r10 + 0x10]
mov rcx, qword [r10 + 0x18]
cmp rax, rcx
jae 0x14003aa71
lea rdx, [rax + 1]
mov qword [r10 + 0x10], rdx
mov rdx, r10
cmp rcx, 0x10
jb 0x14003aa2f
mov rdx, qword [r10]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14003aa7e
mov edx, 1
call fcn.14000bb10
mov rcx, qword [rbp - 8]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14003aa9e
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
mov rdx, rcx
cmp r8, 0x10
jb 0x14003aa69
mov rdx, qword [rcx]
mov word [rdx + rax], 0x3d
jmp 0x14003aaab
mov edx, 1
mov rcx, r10
call fcn.14000bb10
mov rcx, qword [rbp - 8]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jb 0x14003aabc
mov edx, 1
mov r9b, 0x3d
call fcn.14000bb10
jmp 0x14003aae9
mov edx, 1
mov r9b, 0x3d
call fcn.14000bb10
mov rcx, qword [rbp - 8]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14003aadc
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
cmp r8, 0x10
jb 0x14003aacd
mov rcx, qword [rcx]
mov byte [rcx + rax], 0x3d
add rax, rcx
inc rax
mov byte [rax], 0
jmp 0x14003aae9
mov edx, 1
mov r9b, 0x3d
call fcn.14000bb10
mov rax, qword [rbp - 8]
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret