Function at 0x14014fcb4
Capabilities:
Encode data using xor
Encrypt data using aes

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
mov r10, r8
mov r9, rcx
test rcx, rcx
je 0x140150223
test r8, r8
je 0x140150223
lea eax, [rdx - 0x80]
test eax, 0xffffff3f
jne 0x14015021c
cmp edx, 0x140
je 0x14015021c
mov r8d, 0xc0
lea r14d, [r8 - 0x40]
cmp edx, r14d
jne 0x14014fd1b
mov dword [r10 + 0xf0], 0xa
jmp 0x14014fd30
mov eax, reloc.WS2_32.dll_ntohl
cmp edx, r8d
lea ecx, [rax - 2]
cmove eax, ecx
mov dword [r10 + 0xf0], eax
movzx eax, byte [r9 + 1]
lea rbx, [r10 + 4]
movzx esi, byte [r9]
shl esi, 8
xor esi, eax
movzx eax, byte [r9 + 2]
shl esi, 8
xor esi, eax
movzx eax, byte [r9 + 3]
shl esi, 8
xor esi, eax
mov dword [r10], esi
movzx eax, byte [r9 + 5]
movzx ebp, byte [r9 + 4]
shl ebp, 8
xor ebp, eax
movzx eax, byte [r9 + 6]
shl ebp, 8
xor ebp, eax
movzx eax, byte [r9 + 7]
shl ebp, 8
xor ebp, eax
mov dword [rbx], ebp
movzx eax, byte [r9 + 9]
movzx r11d, byte [r9 + 8]
shl r11d, 8
xor r11d, eax
movzx eax, byte [r9 + 0xa]
shl r11d, 8
xor r11d, eax
movzx eax, byte [r9 + 0xb]
shl r11d, 8
xor r11d, eax
mov dword [r10 + 8], r11d
movzx eax, byte [r9 + 0xd]
movzx edi, byte [r9 + 0xc]
shl edi, 8
xor edi, eax
movzx eax, byte [r9 + 0xe]
shl edi, 8
xor edi, eax
movzx eax, byte [r9 + 0xf]
shl edi, 8
xor edi, eax
mov dword [r10 + 0xc], edi
cmp edx, r14d
jne 0x14014fed3
lea r9, str.ccccwwww
mov eax, edi
shr rax, 0x10
mov r14d, 0xff000000
movzx ecx, al
mov r15d, 0xff0000
mov eax, edi
mov r12d, 0xff00
shr rax, 8
mov r8d, dword [r9 + rcx*4]
btc r8d, 0x18
movzx ecx, al
and r8d, r14d
mov eax, dword [r9 + rcx*4]
and eax, r15d
xor r8d, eax
mov eax, edi
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dil
mov ecx, dword [r9 + rax*4]
and ecx, r12d
xor r8d, ecx
xor r8d, esi
mov dword [r10 + 0x10], r8d
xor r8d, ebp
mov dword [r10 + 0x14], r8d
xor r8d, r11d
mov dword [r10 + 0x18], r8d
lea r11, [0x1401565d4]
xor r8d, edi
mov dword [r10 + 0x1c], r8d
lea rbx, [rbx + 0x10]
mov r8d, dword [rbx + 8]
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r8d
shr rax, 0x10
mov edx, dword [r9 + rcx*4]
movzx ecx, al
and edx, r15d
mov eax, dword [r9 + rcx*4]
and eax, r14d
xor edx, eax
mov eax, r8d
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor edx, eax
movzx eax, r8b
mov ecx, dword [r9 + rax*4]
and ecx, r12d
xor edx, ecx
xor edx, dword [rbx - 4]
xor edx, dword [r11]
add r11, 4
mov dword [rbx + 0xc], edx
xor edx, dword [rbx]
mov dword [rbx + 0x10], edx
mov eax, dword [rbx + 4]
xor eax, edx
mov dword [rbx + 0x14], eax
xor eax, r8d
mov dword [rbx + 0x18], eax
lea rax, [0x1401565f8]
cmp r11, rax
jne 0x14014fe5b
jmp 0x140150218
movzx eax, byte [r9 + 0x11]
movzx ecx, byte [r9 + 0x10]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x12]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x13]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x10], ecx
movzx eax, byte [r9 + 0x15]
movzx ecx, byte [r9 + 0x14]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x16]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x17]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x14], ecx
cmp edx, r8d
jne 0x14015004d
mov edx, ecx
lea r9, str.ccccwwww
mov eax, ecx
mov r14d, 0xff000000
shr rax, 0x10
mov r15d, 0xff0000
movzx ecx, al
mov r12d, 0xff00
mov eax, edx
shr rax, 8
mov r8d, dword [r9 + rcx*4]
btc r8d, 0x18
movzx ecx, al
and r8d, r14d
mov eax, dword [r9 + rcx*4]
and eax, r15d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [r9 + rax*4]
and ecx, r12d
xor r8d, ecx
xor r8d, esi
mov dword [r10 + 0x18], r8d
xor r8d, ebp
mov dword [r10 + 0x1c], r8d
xor r8d, r11d
mov dword [r10 + 0x20], r8d
lea r11, [0x1401565d4]
xor r8d, edi
mov dword [r10 + 0x24], r8d
add r10, 0x28
mov ecx, dword [r10 - 0x18]
xor ecx, dword [r10 - 4]
mov eax, dword [r10 - 0x14]
xor eax, ecx
mov dword [r10], ecx
mov dword [r10 + 4], eax
lea r10, [r10 + 0x18]
mov edx, dword [r10 - 0x14]
mov eax, edx
shr rax, 8
movzx ecx, al
mov eax, edx
shr rax, 0x10
mov r8d, dword [r9 + rcx*4]
movzx ecx, al
and r8d, r15d
mov eax, dword [r9 + rcx*4]
and eax, r14d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [r9 + rax*4]
and ecx, r12d
xor r8d, ecx
xor r8d, dword [r10 - 0x28]
xor r8d, dword [r11]
add r11, 4
mov dword [r10 - 0x10], r8d
mov eax, dword [r10 - 0x24]
xor eax, r8d
mov dword [r10 - 0xc], eax
mov ecx, dword [r10 - 0x20]
xor ecx, eax
mov dword [r10 - 8], ecx
mov eax, dword [r10 - 0x1c]
xor eax, ecx
mov dword [r10 - 4], eax
lea rax, [0x1401565f0]
cmp r11, rax
jne 0x14014ffaf
jmp 0x140150218
movzx eax, byte [r9 + 0x19]
movzx ecx, byte [r9 + 0x18]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1a]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1b]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x18], ecx
movzx eax, byte [r9 + 0x1d]
movzx ecx, byte [r9 + 0x1c]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1e]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1f]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x1c], ecx
cmp edx, 0x100
jne 0x140150218
mov edx, ecx
lea r9, str.ccccwwww
mov eax, ecx
mov r14d, 0xff000000
shr rax, 0x10
mov r15d, 0xff0000
movzx ecx, al
mov r12d, 0xff00
mov eax, edx
shr rax, 8
mov r8d, dword [r9 + rcx*4]
movzx ecx, al
btc r8d, 0x18
and r8d, r14d
mov eax, dword [r9 + rcx*4]
and eax, r15d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [r9 + rax*4]
and ecx, r12d
xor r8d, ecx
xor r8d, esi
mov dword [r10 + 0x20], r8d
xor r8d, ebp
xor r11d, r8d
mov dword [r10 + 0x24], r8d
mov dword [r10 + 0x28], r11d
xor r11d, edi
mov dword [r10 + 0x2c], r11d
add r10, 0x30
lea r11, [0x1401565d4]
mov edx, dword [r10 - 4]
mov eax, edx
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 8
mov r8d, dword [r9 + rcx*4]
movzx ecx, al
and r8d, r15d
mov eax, dword [r9 + rcx*4]
and eax, r12d
xor r8d, eax
mov eax, edx
shr rax, 0x18
mov ecx, dword [r9 + rax*4]
and ecx, r14d
movzx eax, dl
xor r8d, ecx
movzx ecx, byte [r9 + rax*4]
mov eax, dword [r10 - 0x1c]
xor r8d, ecx
xor r8d, dword [r10 - 0x20]
mov ecx, dword [r10 - 0x18]
xor eax, r8d
mov dword [r10 + 4], eax
xor ecx, eax
mov eax, dword [r10 - 0x14]
xor eax, ecx
mov dword [r10], r8d
mov dword [r10 + 0xc], eax
mov dword [r10 + 8], ecx
lea r10, [r10 + 0x20]
mov edx, dword [r10 - 0x14]
mov eax, edx
shr rax, 8
movzx ecx, al
mov eax, edx
shr rax, 0x10
mov r8d, dword [r9 + rcx*4]
movzx ecx, al
and r8d, r15d
mov eax, dword [r9 + rcx*4]
and eax, r14d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [r9 + rax*4]
and ecx, r12d
xor r8d, ecx
xor r8d, dword [r10 - 0x30]
xor r8d, dword [r11]
add r11, 4
mov dword [r10 - 0x10], r8d
mov eax, dword [r10 - 0x2c]
xor eax, r8d
mov dword [r10 - 0xc], eax
mov ecx, dword [r10 - 0x28]
xor ecx, eax
mov dword [r10 - 8], ecx
mov eax, dword [r10 - 0x24]
xor eax, ecx
mov dword [r10 - 4], eax
lea rax, [0x1401565ec]
cmp r11, rax
jne 0x14015012c
xor eax, eax
jmp 0x140150226
mov eax, 0xfffffffe
jmp 0x140150226
or eax, 0xffffffff
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
pop r15
pop r14
pop r12
ret