Function at 0x14011bc10
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x170
lea rdi, [rsp + 0x20]
mov ecx, 0x54
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x180]
cmp dword [rsp + 0x190], 0
je 0x14011bfec
cmp qword [rsp + 0x188], 0
je 0x14011bfec
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x1a0]
add eax, dword [rsp + 0x190]
mov rcx, qword [rsp + 0x180]
mov dword [rcx + 0x1a0], eax
mov rax, qword [rsp + 0x180]
movzx eax, byte [rax + 0x1a9]
test eax, eax
jle 0x14011be64
mov rax, qword [rsp + 0x180]
movzx eax, byte [rax + 0x1a9]
mov ecx, reloc.WS2_32.dll_recv
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0x28], al
movzx eax, byte [rsp + 0x28]
cmp eax, dword [rsp + 0x190]
jbe 0x14011bcd2
movzx eax, byte [rsp + 0x190]
mov byte [rsp + 0x28], al
movzx eax, byte [rsp + 0x28]
mov rcx, qword [rsp + 0x180]
movzx ecx, byte [rcx + 0x1a9]
mov rdx, qword [rsp + 0x180]
lea rcx, [rdx + rcx + 0x180]
mov r8d, eax
mov rdx, qword [rsp + 0x188]
call sub.VCRUNTIME140.dll_memcpy
movzx eax, byte [rsp + 0x28]
mov rcx, qword [rsp + 0x180]
movzx ecx, byte [rcx + 0x1a9]
add ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x180]
mov byte [rcx + 0x1a9], al
mov rax, qword [rsp + 0x180]
movzx eax, byte [rax + 0x1a9]
cmp eax, 0x10
jne 0x14011be32
mov rax, qword [rsp + 0x180]
add rax, 0x170
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x180]
add rax, 0x124
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x180]
add rax, 0x180
mov r8d, reloc.WS2_32.dll_recv
mov rdx, rax
lea rcx, [rsp + 0x48]
call sub.VCRUNTIME140.dll_memcpy
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x48]
call fcn.140114b00
mov eax, 8
imul rax, rax, 0
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + rcx + 0x48]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x30]
mov qword [rdx + rcx], rax
mov eax, 8
imul rax, rax, 1
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + rcx + 0x48]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x30]
mov qword [rdx + rcx], rax
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.14011b8f0
xor eax, eax
test eax, eax
jne 0x14011bd44
mov rax, qword [rsp + 0x180]
mov byte [rax + 0x1a9], 0
movzx eax, byte [rsp + 0x28]
mov ecx, dword [rsp + 0x190]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x190], eax
movzx eax, byte [rsp + 0x28]
mov rcx, qword [rsp + 0x188]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x188], rax
xor edx, edx
mov eax, dword [rsp + 0x190]
mov ecx, reloc.WS2_32.dll_recv
div ecx
mov dword [rsp + 0x20], eax
xor edx, edx
mov eax, dword [rsp + 0x190]
mov ecx, reloc.WS2_32.dll_recv
div ecx
mov eax, edx
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x164], eax
mov eax, dword [rsp + 0x20]
dec eax
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x164], 0
je 0x14011bfaf
mov rax, qword [rsp + 0x180]
add rax, 0x170
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x180]
add rax, 0x124
mov qword [rsp + 0x70], rax
mov r8d, reloc.WS2_32.dll_recv
mov rdx, qword [rsp + 0x188]
lea rcx, [rsp + 0x88]
call sub.VCRUNTIME140.dll_memcpy
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x88]
call fcn.140114b00
mov eax, 8
imul rax, rax, 0
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + rcx + 0x88]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x68]
mov qword [rdx + rcx], rax
mov eax, 8
imul rax, rax, 1
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + rcx + 0x88]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x68]
mov qword [rdx + rcx], rax
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
call fcn.14011b8f0
xor eax, eax
test eax, eax
jne 0x14011beb1
mov rax, qword [rsp + 0x188]
add rax, 0x10
mov qword [rsp + 0x188], rax
jmp 0x14011be8e
cmp dword [rsp + 0x24], 0
je 0x14011bfec
mov eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x180]
add rcx, 0x180
mov r8d, eax
mov rdx, qword [rsp + 0x188]
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsp + 0x180]
movzx ecx, byte [rsp + 0x24]
mov byte [rax + 0x1a9], cl
mov rax, qword [rsp + 0x180]
movzx eax, byte [rax + 0x1a9]
test eax, eax
jle 0x14011c185
cmp dword [rsp + 0x1a0], 0
jbe 0x14011c185
cmp qword [rsp + 0x198], 0
je 0x14011c185
mov rax, qword [rsp + 0x180]
movzx eax, byte [rax + 0x1a9]
mov ecx, reloc.WS2_32.dll_recv
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0xa4], al
movzx eax, byte [rsp + 0xa4]
mov rcx, qword [rsp + 0x180]
movzx ecx, byte [rcx + 0x1a9]
mov rdx, qword [rsp + 0x180]
lea rcx, [rdx + rcx + 0x180]
mov r8d, eax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rax, qword [rsp + 0x180]
add rax, 0x170
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x180]
add rax, 0x124
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x180]
add rax, 0x180
mov r8d, reloc.WS2_32.dll_recv
mov rdx, rax
lea rcx, [rsp + 0xc8]
call sub.VCRUNTIME140.dll_memcpy
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0xc8]
call fcn.140114b00
mov eax, 8
imul rax, rax, 0
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + rcx + 0xc8]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0xa8]
mov qword [rdx + rcx], rax
mov eax, 8
imul rax, rax, 1
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + rcx + 0xc8]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0xa8]
mov qword [rdx + rcx], rax
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xa8]
call fcn.14011b8f0
xor eax, eax
test eax, eax
jne 0x14011c070
mov rax, qword [rsp + 0x180]
mov byte [rax + 0x1a9], 0
cmp dword [rsp + 0x1a0], 0
je 0x14011c580
cmp qword [rsp + 0x198], 0
je 0x14011c580
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x1a4]
add eax, dword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x180]
mov dword [rcx + 0x1a4], eax
mov rax, qword [rsp + 0x180]
movzx eax, byte [rax + 0x1aa]
test eax, eax
jle 0x14011c3e0
mov rax, qword [rsp + 0x180]
movzx eax, byte [rax + 0x1aa]
mov ecx, reloc.WS2_32.dll_recv
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0xe4], al
movzx eax, byte [rsp + 0xe4]
cmp eax, dword [rsp + 0x1a0]
jbe 0x14011c21b
movzx eax, byte [rsp + 0x1a0]
mov byte [rsp + 0xe4], al
movzx eax, byte [rsp + 0xe4]
mov rcx, qword [rsp + 0x180]
movzx ecx, byte [rcx + 0x1aa]
mov rdx, qword [rsp + 0x180]
lea rcx, [rdx + rcx + 0x180]
mov r8d, eax
mov rdx, qword [rsp + 0x198]
call sub.VCRUNTIME140.dll_memcpy
movzx eax, byte [rsp + 0xe4]
mov rcx, qword [rsp + 0x180]
movzx ecx, byte [rcx + 0x1aa]
add ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x180]
mov byte [rcx + 0x1aa], al
mov rax, qword [rsp + 0x180]
movzx eax, byte [rax + 0x1aa]
cmp eax, 0x10
jne 0x14011c3a8
mov rax, qword [rsp + 0x180]
add rax, 0x170
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x180]
add rax, 0x124
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x180]
add rax, 0x180
mov r8d, reloc.WS2_32.dll_recv
mov rdx, rax
lea rcx, [rsp + 0x108]
call sub.VCRUNTIME140.dll_memcpy
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0x108]
call fcn.140114b00
mov eax, 8
imul rax, rax, 0
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + rcx + 0x108]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0xe8]
mov qword [rdx + rcx], rax
mov eax, 8
imul rax, rax, 1
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + rcx + 0x108]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0xe8]
mov qword [rdx + rcx], rax
mov rdx, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xe8]
call fcn.14011b8f0
xor eax, eax
test eax, eax
jne 0x14011c293
mov rax, qword [rsp + 0x180]
mov byte [rax + 0x1aa], 0
movzx eax, byte [rsp + 0xe4]
mov ecx, dword [rsp + 0x1a0]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x1a0], eax
movzx eax, byte [rsp + 0xe4]
mov rcx, qword [rsp + 0x198]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x198], rax
xor edx, edx
mov eax, dword [rsp + 0x1a0]
mov ecx, reloc.WS2_32.dll_recv
div ecx
mov dword [rsp + 0x20], eax
xor edx, edx
mov eax, dword [rsp + 0x1a0]
mov ecx, reloc.WS2_32.dll_recv
div ecx
mov eax, edx
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x20]
dec eax
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x168], 0
je 0x14011c543
mov rax, qword [rsp + 0x180]
add rax, 0x170
mov qword [rsp + 0x128], rax
mov rax, qword [rsp + 0x180]
add rax, 0x124
mov qword [rsp + 0x130], rax
mov r8d, reloc.WS2_32.dll_recv
mov rdx, qword [rsp + 0x198]
lea rcx, [rsp + 0x148]
call sub.VCRUNTIME140.dll_memcpy
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x148]
lea rcx, [rsp + 0x148]
call fcn.140114b00
mov eax, 8
imul rax, rax, 0
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x128]
mov rcx, qword [rsp + rcx + 0x148]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x128]
mov qword [rdx + rcx], rax
mov eax, 8
imul rax, rax, 1
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x128]
mov rcx, qword [rsp + rcx + 0x148]
mov rax, qword [rdx + rax]
xor rax, rcx
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x128]
mov qword [rdx + rcx], rax
mov rdx, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x128]
call fcn.14011b8f0
xor eax, eax
test eax, eax
jne 0x14011c42d
mov rax, qword [rsp + 0x198]
add rax, 0x10
mov qword [rsp + 0x198], rax
jmp 0x14011c40a
cmp dword [rsp + 0x24], 0
je 0x14011c580
mov eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x180]
add rcx, 0x180
mov r8d, eax
mov rdx, qword [rsp + 0x198]
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsp + 0x180]
movzx ecx, byte [rsp + 0x24]
mov byte [rax + 0x1aa], cl
mov rcx, rsp
lea rdx, reloc.WS2_32.dll_getpeername
call fcn.140132900
add rsp, 0x170
pop rdi
ret