Function at 0x14028ec00
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0xc30
mov rax, qword [0x14040f040]
xor rax, rsp
mov qword [rsp + 0xc20], rax
xor edi, edi
lea r10, [rsp + 0x30]
mov r11d, edi
mov rbx, r8
mov rbp, rdx
mov rsi, rcx
nop dword [rax]
lea r9d, [r11*8]
movzx eax, byte [r9 + rbx + 6]
lea rcx, [r9 + rbx]
movzx r8d, byte [rcx + 7]
lea rdx, [r9 + rbp]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 5]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 4]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 3]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 2]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + 1]
shl r8, 8
or r8, rax
movzx eax, byte [rcx]
movzx ecx, byte [rdx + 7]
shl rcx, 8
shl r8, 8
or r8, rax
movzx eax, byte [rdx + 6]
or rcx, rax
movzx eax, byte [rdx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx]
shl rcx, 8
or rcx, rax
lea eax, [r9 + 8]
xor r8, rcx
lea rdx, [rax + rbx]
mov qword [r10 - 0x10], r8
movzx r8d, byte [rax + rbp + 7]
shl r8, 8
mov ecx, eax
movzx eax, byte [rax + rbp + 6]
or r8, rax
shl r8, 8
movzx eax, byte [rcx + rbp + 5]
or r8, rax
movzx eax, byte [rcx + rbp + 4]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbp + 3]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbp + 2]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbp + 1]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbp]
movzx ecx, byte [rdx + 7]
shl rcx, 8
shl r8, 8
or r8, rax
movzx eax, byte [rdx + 6]
or rcx, rax
movzx eax, byte [rdx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx]
shl rcx, 8
or rcx, rax
lea eax, [r11*8 + 0x10]
xor r8, rcx
lea rdx, [rax + rbp]
mov qword [r10 - 8], r8
movzx r8d, byte [rax + rbx + 7]
shl r8, 8
mov ecx, eax
movzx eax, byte [rax + rbx + 6]
or r8, rax
shl r8, 8
movzx eax, byte [rcx + rbx + 5]
or r8, rax
movzx eax, byte [rcx + rbx + 4]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbx + 3]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbx + 2]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbx + 1]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbx]
movzx ecx, byte [rdx + 7]
shl rcx, 8
shl r8, 8
or r8, rax
movzx eax, byte [rdx + 6]
or rcx, rax
movzx eax, byte [rdx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx]
shl rcx, 8
or rcx, rax
lea eax, [r11*8 + 0x18]
xor r8, rcx
mov ecx, eax
mov qword [r10], r8
lea rdx, [rax + rbp]
movzx r8d, byte [rax + rbx + 7]
movzx eax, byte [rax + rbx + 6]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbx + 5]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbx + 4]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbx + 3]
shl r8, 8
or r8, rax
lea r10, [r10 + 0x20]
movzx eax, byte [rcx + rbx + 2]
add r11d, 4
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbx + 1]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbx]
movzx ecx, byte [rdx + 7]
shl rcx, 8
shl r8, 8
or r8, rax
movzx eax, byte [rdx + 6]
or rcx, rax
movzx eax, byte [rdx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx]
shl rcx, 8
or rcx, rax
xor r8, rcx
mov qword [r10 - 0x18], r8
cmp r11d, 0x80
jb 0x14028ec40
mov ebx, edi
mov eax, ebx
lea r8, [rsp + 0x20]
shl eax, 4
lea rcx, [rsp + 0x820]
mov edx, 2
mov r9d, edx
lea r8, [r8 + rax*8]
lea rcx, [rcx + rax*8]
call fcn.14028f2e0
inc ebx
cmp ebx, 8
jb 0x14028ef46
mov ebx, edi
lea eax, [rbx + rbx]
mov edx, reloc.WS2_32.dll_recv
mov ecx, eax
lea r8, [rsp + 0x820]
lea r8, [r8 + rax*8]
mov r9d, edx
lea rax, [rsp + 0x420]
lea rcx, [rax + rcx*8]
call fcn.14028f2e0
inc ebx
cmp ebx, 8
jb 0x14028ef76
mov r9, rdi
nop word [rax + rax]
lea r8d, [rdi*8]
mov edx, r8d
add rdx, rsi
movzx eax, byte [rdx + 6]
movzx ecx, byte [rdx + 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx]
shl rcx, 8
or rcx, rax
xor rcx, qword [rsp + r9 + 0x420]
xor rcx, qword [rsp + r9 + 0x20]
mov byte [rdx], cl
mov rax, rcx
shr rax, 8
mov byte [rdx + 1], al
mov rax, rcx
shr rax, 0x10
mov byte [rdx + 2], al
mov rax, rcx
shr rax, 0x18
mov byte [rdx + 3], al
mov rax, rcx
shr rax, 0x20
mov byte [rdx + 4], al
mov rax, rcx
shr rax, 0x28
mov byte [rdx + 5], al
mov rax, rcx
shr rcx, 0x38
mov byte [rdx + 7], cl
shr rax, 0x30
mov byte [rdx + 6], al
lea edx, [r8 + 8]
add rdx, rsi
movzx eax, byte [rdx + 6]
movzx ecx, byte [rdx + 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx]
shl rcx, 8
or rcx, rax
xor rcx, qword [rsp + r9 + 0x28]
xor rcx, qword [rsp + r9 + 0x428]
mov byte [rdx], cl
mov rax, rcx
shr rax, 8
mov byte [rdx + 1], al
mov rax, rcx
shr rax, 0x10
mov byte [rdx + 2], al
mov rax, rcx
shr rax, 0x18
mov byte [rdx + 3], al
mov rax, rcx
shr rax, 0x20
mov byte [rdx + 4], al
mov rax, rcx
shr rax, 0x28
mov byte [rdx + 5], al
mov rax, rcx
shr rcx, 0x38
shr rax, 0x30
mov byte [rdx + 6], al
mov byte [rdx + 7], cl
lea edx, [rdi*8 + 0x10]
add rdx, rsi
movzx eax, byte [rdx + 6]
movzx ecx, byte [rdx + 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx]
shl rcx, 8
or rcx, rax
xor rcx, qword [rsp + r9 + 0x30]
xor rcx, qword [rsp + r9 + 0x430]
mov byte [rdx], cl
mov rax, rcx
shr rax, 8
mov byte [rdx + 1], al
mov rax, rcx
shr rax, 0x10
mov byte [rdx + 2], al
mov rax, rcx
shr rax, 0x18
mov byte [rdx + 3], al
mov rax, rcx
shr rax, 0x20
mov byte [rdx + 4], al
mov rax, rcx
shr rax, 0x28
mov byte [rdx + 5], al
mov rax, rcx
shr rcx, 0x38
shr rax, 0x30
mov byte [rdx + 6], al
mov byte [rdx + 7], cl
lea edx, [rdi*8 + 0x18]
add rdx, rsi
movzx eax, byte [rdx + 6]
movzx ecx, byte [rdx + 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 1]
shl rcx, 8
or rcx, rax
lea r9, [r9 + 0x20]
movzx eax, byte [rdx]
add edi, 4
shl rcx, 8
or rcx, rax
xor rcx, qword [rsp + r9 + 0x18]
xor rcx, qword [rsp + r9 + 0x418]
mov byte [rdx], cl
mov rax, rcx
shr rax, 8
mov byte [rdx + 1], al
mov rax, rcx
shr rax, 0x10
mov byte [rdx + 2], al
mov rax, rcx
shr rax, 0x18
mov byte [rdx + 3], al
mov rax, rcx
shr rax, 0x20
mov byte [rdx + 4], al
mov rax, rcx
shr rax, 0x28
mov byte [rdx + 5], al
mov rax, rcx
shr rax, 0x30
shr rcx, 0x38
mov byte [rdx + 6], al
mov byte [rdx + 7], cl
cmp edi, 0x80
jb 0x14028efb0
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x400
call fcn.14011a700
xor edx, edx
lea rcx, [rsp + 0x820]
mov r8d, 0x400
call fcn.14011a700
xor edx, edx
lea rcx, [rsp + 0x420]
mov r8d, 0x400
call fcn.14011a700
mov rcx, qword [rsp + 0xc20]
xor rcx, rsp
call fcn.140109210
lea r11, [rsp + 0xc30]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret