Function at 0x140023840
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov eax, 0x58bf
mov esi, r8d
xor r15d, r15d
mov word [rsp + 0x34], ax
mov dword [rsp + 0x38], r15d
mov rbx, r9
mov r12, rdx
mov dword [rsp + 0x30], 0xce6dd971
mov r13, rcx
call fcn.14002c720
lea r8d, [rsi + 5]
mov dword [rsp + 0x90], eax
and r8b, 0xf
mov edi, reloc.WS2_32.dll_ntohs
sub dil, r8b
call fcn.14002c720
mov ebp, eax
movzx r14d, dil
shl bpl, 4
mov r8d, esi
or bpl, dil
mov rdx, r12
lea eax, [r14 + rsi]
lea ecx, [rax + 6]
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0xa0]
mov dword [rax], ecx
movzx ecx, dil
add rcx, 6
add rcx, rbx
cmp r12, rbx
jne 0x1400238dd
call sub.VCRUNTIME140.dll_memmove
jmp 0x1400238e2
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsp + 0x90]
mov byte [rbx + 4], al
mov byte [rbx + 5], bpl
test dil, dil
je 0x140023911
lea rdi, [rbx + 6]
mov rsi, r14
nop dword [rax]
call fcn.14002c720
mov byte [rdi], al
lea rdi, [rdi + 1]
sub rsi, 1
jne 0x140023900
mov r8d, dword [rsp + 0x80]
lea rdx, [rbx + 4]
add r8d, 2
lea rcx, [rsp + 0x30]
call fcn.14002f1a0
mov eax, dword [rsp + 0x38]
lea rcx, [r13 + 0x240]
mov r9d, sendto
mov dword [rbx], eax
mov r8, rbx
mov qword [rsp + 0x20], rbx
mov rdx, r13
call fcn.14002def0
mov rax, qword [rsp + 0xa0]
mov edi, dword [rax]
sub edi, 0x10
cmp edi, 0x10
jb 0x140023a7b
lea esi, [rdi + 2]
nop word [rax + rax]
mov eax, r15d
lea edx, [rsi - 1]
mov r8d, edi
mov r9d, sendto
add r8, rbx
mov qword [rsp + 0x20], r8
movzx ecx, byte [rax + rbx]
lea eax, [r15 + 1]
xor byte [r8], cl
lea rcx, [r13 + 0x240]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 2]
lea edx, [rsi + 1]
movzx eax, byte [rax + rbx]
xor byte [rsi + rbx], al
lea eax, [r15 + 3]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 4]
lea edx, [rsi + 2]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 5]
lea edx, [rsi + 3]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 6]
lea edx, [rsi + 4]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 7]
lea edx, [rsi + 5]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 8]
lea edx, [rsi + 6]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 9]
lea edx, [rsi + 7]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 0xa]
lea edx, [rsi + 8]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 0xb]
lea edx, [rsi + 9]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 0xc]
lea edx, [rsi + 0xa]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 0xd]
lea edx, [rsi + 0xb]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 0xe]
lea edx, [rsi + 0xc]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
lea eax, [r15 + 0xf]
lea edx, [rsi + 0xd]
movzx eax, byte [rax + rbx]
xor byte [rdx + rbx], al
mov rdx, r13
call fcn.14002def0
mov r15d, edi
lea esi, [rsi - 0x10]
add edi, 0xfffffff0
cmp edi, 0x10
jae 0x140023970
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret