Function at 0x14021e650
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0xc30
mov rax, qword [0x1403dd7c0]
xor rax, rsp
mov qword [rsp + 0xc20], rax
xor edi, edi
lea r11, [rsp + 0x30]
mov ebx, edi
mov rbp, r8
mov r14, rdx
mov rsi, rcx
nop dword [rax]
lea r10d, [rbx*8]
movzx ecx, byte [r10 + r14 + 7]
lea rdx, [r10 + rbp]
movzx eax, byte [rdx + 6]
lea r8, [r10 + r14]
movzx r9d, byte [rdx + 7]
shl rcx, 8
shl r9, 8
or r9, rax
movzx eax, byte [rdx + 5]
shl r9, 8
or r9, rax
movzx eax, byte [rdx + 4]
shl r9, 8
or r9, rax
movzx eax, byte [rdx + 3]
shl r9, 8
or r9, rax
movzx eax, byte [rdx + 2]
shl r9, 8
or r9, rax
movzx eax, byte [rdx + 1]
shl r9, 8
or r9, rax
movzx eax, byte [rdx]
shl r9, 8
or r9, rax
movzx eax, byte [r8 + 6]
or rcx, rax
movzx eax, byte [r8 + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8]
shl rcx, 8
or rcx, rax
lea eax, [r10 + 8]
lea rdx, [rax + r14]
xor r9, rcx
movzx r8d, byte [rax + rbp + 7]
shl r8, 8
mov ecx, eax
movzx eax, byte [rax + rbp + 6]
or r8, rax
mov qword [r11 - 0x10], r9
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, [rbx*8 + 0x10]
xor r8, rcx
lea rdx, [rax + r14]
mov qword [r11 - 8], 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, [rbx*8 + 0x18]
xor r8, rcx
mov ecx, eax
mov qword [r11], r8
lea rdx, [rax + r14]
movzx r8d, byte [rax + rbp + 7]
movzx eax, byte [rax + rbp + 6]
shl r8, 8
or r8, rax
movzx eax, byte [rcx + rbp + 5]
shl r8, 8
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
lea r11, [r11 + 0x20]
movzx eax, byte [rcx + rbp + 2]
add ebx, 4
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
xor r8, rcx
mov qword [r11 - 0x18], r8
cmp ebx, 0x80
jb 0x14021e690
mov ebx, edi
nop dword [rax]
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.14021ed40
inc ebx
cmp ebx, 8
jb 0x14021e9a0
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.14021ed40
inc ebx
cmp ebx, 8
jb 0x14021e9d0
mov r9, rdi
nop dword [rax]
nop dword [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 + 0x428]
xor rcx, qword [rsp + r9 + 0x28]
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 + 0x430]
xor rcx, qword [rsp + r9 + 0x30]
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 + 0x418]
xor rcx, qword [rsp + r9 + 0x18]
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 0x14021ea10
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x400
call fcn.1400b5b30
xor edx, edx
lea rcx, [rsp + 0x820]
mov r8d, 0x400
call fcn.1400b5b30
xor edx, edx
lea rcx, [rsp + 0x420]
mov r8d, 0x400
call fcn.1400b5b30
mov rcx, qword [rsp + 0xc20]
xor rcx, rsp
call fcn.140278f40
lea r11, [rsp + 0xc30]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret