Function at 0x14002d960
Capabilities:
Encode data using base64
Encode data using xor
Hash data with md5

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x47]
sub rsp, 0xc0
mov rax, qword [0x140116008]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov r8d, dword [0x140117130]
lea r9, [rbp - 0x59]
mov rdi, rdx
mov dword [rbp - 0x59], 0
mov rbx, rcx
lea r11, [0x140158c40]
mov r10d, 4
nop dword [rax]
movzx eax, byte [r9]
lea r9, [r9 + 1]
movzx ecx, r8w
xor rcx, rax
mov eax, r8d
shr eax, 8
movzx edx, cl
mov r8d, dword [r11 + rdx*4]
xor r8d, eax
sub r10, 1
jne 0x14002d9b0
mov dword [0x140117130], r8d
lea r14d, [r8 - 1]
call fcn.140009a00
mov rsi, rax
mov dword [rbp - 0x59], reloc.WS2_32.dll_recv
mov eax, dword [rbx + 4]
xor esi, r14d
mov ecx, 0xf1
cmp ax, cx
je 0x14002da2d
mov ecx, 0xf0
cmp ax, cx
je 0x14002da2d
movzx ecx, ax
call fcn.1400475c0
lea r8, [rbp - 0x59]
xor ebx, ebx
lea rdx, [rbp + 0x17]
mov rcx, qword [rax]
call qword [sym.imp.WS2_32.dll_getpeername]
test eax, eax
js 0x14002da3a
mov ebx, dword [rbp + 0x1b]
jmp 0x14002da3a
mov ecx, 0x7f000001
call qword [sym.imp.WS2_32.dll_htonl]
mov ebx, eax
mov eax, r14d
mov byte [rbp + 0x27], r14b
shr eax, 8
lea rdx, [rbp + 0x27]
mov byte [rbp + 0x2a], al
lea rcx, [rbp - 0x49]
mov eax, r14d
mov byte [rbp + 0x2c], sil
shr eax, 0x10
mov r8d, recv
mov byte [rbp + 0x29], al
mov eax, esi
shr eax, 8
mov byte [rbp + 0x28], al
mov eax, esi
shr eax, 0x10
mov byte [rbp + 0x2e], al
mov eax, ebx
shr eax, 8
mov byte [rbp + 0x30], al
mov eax, ebx
mov byte [rbp + 0x32], bl
shr eax, 0x10
shr r14d, 0x18
shr esi, 0x18
shr ebx, 0x18
mov byte [rbp + 0x2f], al
mov byte [rbp + 0x2d], r14b
mov byte [rbp + 0x2b], sil
mov byte [rbp + 0x31], bl
mov dword [rbp - 0x49], 0x67452301
mov dword [rbp - 0x45], 0xefcdab89
mov dword [rbp - 0x41], 0x98badcfe
mov qword [rbp - 0x3d], 0x10325476
mov dword [rbp - 0x35], 0
call fcn.140016c10
mov edx, dword [rbp - 0x39]
lea rcx, [rbp - 0x31]
shr edx, 3
and edx, 0x3f
mov eax, edx
add rcx, rax
mov eax, 0x3f
sub eax, edx
xor edx, edx
mov byte [rcx], 0x80
inc rcx
cmp eax, 8
jae 0x14002db1e
mov r8d, eax
call fcn.1400500b0
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x49]
call fcn.140016420
xor eax, eax
mov qword [rbp - 0x31], rax
mov qword [rbp - 0x29], rax
mov qword [rbp - 0x21], rax
mov qword [rbp - 0x19], rax
mov qword [rbp - 0x11], rax
mov qword [rbp - 9], rax
mov qword [rbp - 1], rax
jmp 0x14002db29
add eax, 0xfffffff8
mov r8d, eax
call fcn.1400500b0
mov eax, dword [rbp - 0x39]
lea rdx, [rbp - 0x31]
mov dword [rbp + 7], eax
lea rcx, [rbp - 0x49]
mov eax, dword [rbp - 0x35]
mov dword [rbp + 0xb], eax
call fcn.140016420
movaps xmm0, xmmword [rbp - 0x49]
lea r10, [rbp + 0x17]
mov r11d, 0x20
mov esi, 0xffff
movups xmmword [rbp + 0x17], xmm0
lea r9d, [r11 - 8]
lea ebx, [r11 + 0xf]
lea r14d, [rsi - 3]
nop word [rax + rax]
mov word [rbp - 0x57], si
test r9w, r9w
je 0x14002dc31
movzx ecx, byte [r10]
inc r10
movzx eax, cl
and cl, 3
shl cl, 4
shr al, 2
mov byte [rbp - 0x59], al
mov byte [rbp - 0x58], cl
add r9w, si
je 0x14002dbda
movzx edx, byte [r10]
inc r10
movzx eax, dl
and dl, 0xf
shr al, 4
or al, cl
shl dl, 2
mov byte [rbp - 0x58], al
mov byte [rbp - 0x57], dl
add r9w, si
je 0x14002dbda
movzx ecx, byte [r10]
add r9w, si
movzx eax, cl
inc r10
shr al, 6
or al, dl
and cl, 0x3f
mov byte [rbp - 0x57], al
mov byte [rbp - 0x56], cl
lea rdx, [rbp - 0x59]
mov r8d, 4
movzx eax, byte [rdx]
cmp al, 0x19
ja 0x14002dbef
add al, 0x41
jmp 0x14002dc14
cmp al, 0x33
ja 0x14002dbf7
add al, 0x47
jmp 0x14002dc14
cmp al, 0x3d
ja 0x14002dbff
add al, 0xfc
jmp 0x14002dc14
cmp al, 0x3e
jne 0x14002dc07
mov al, 0x2b
jmp 0x14002dc14
cmp al, 0x3f
mov ecx, 0x3d
cmove ecx, ebx
movzx eax, cl
mov byte [rdi], al
inc rdx
inc rdi
sub r8, 1
jne 0x14002dbe4
add r11w, r14w
cmp r11w, 4
jae 0x14002db70
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.14004ee60
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret