Function at 0x14011fe90
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push r14
push r15
mov eax, 0x128
call fcn.1401e5760
sub rsp, rax
mov rax, qword [0x1402c94a0]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rbp, qword [rcx + 0x70]
mov r15, r8
mov qword [rsp + 0x48], r9
mov r14, rdx
mov qword [rsp + 0x30], rcx
mov rdi, qword [rbp + 0xc8]
lea rax, [rdi + 0x10]
cmp r9, rax
je 0x14011fee4
mov eax, 0xffffffff
jmp 0x1401202aa
mov qword [rsp + 0x120], rbx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x118], rsi
lea rdx, [0x140225d90]
neg rax
mov qword [rsp + 0x110], r12
mov qword [rsp + 0x108], r13
lea r12, [rbp + 0x20]
and eax, 0xf
mov qword [rsp + 0x20], r12
xor esi, esi
lea r13, [rsp + 0x50]
add r13, rax
mov dword [r12], esi
mov r9, rbp
mov rcx, r13
lea rax, [r13 + 0x30]
mov qword [rsp + 0x38], rax
lea rbx, [r13 + 0x40]
cmp rdi, 0x40
ja 0x140120139
mov eax, 0x80
mov r8d, eax
mov qword [rsp + 0x40], rax
call fcn.14016d0d0
mov rdx, r13
lea rcx, [rbp + 0xd0]
call fcn.14016d720
movups xmm0, xmmword [rbp + 0x94]
mov rax, qword [rsp + 0x30]
mov dword [rbp + 0x70], esi
movups xmmword [r13 + 0x30], xmm0
mov qword [rbp + 0xa8], reloc.WS2_32.dll_listen
mov qword [rbp + 0xb0], rdi
cmp dword [rax + 0x10], esi
je 0x14011ffcb
test rdi, rdi
je 0x14012010e
mov rcx, r15
mov rdx, r14
sub rcx, rbx
mov rsi, rdi
sub rdx, rbx
nop
movzx eax, byte [rcx + rbx]
xor byte [rbx], al
movzx eax, byte [rbx]
mov byte [rdx + rbx], al
lea rbx, [rbx + 1]
sub rdi, 1
jne 0x14011ffb0
jmp 0x14012010e
test rdi, rdi
je 0x14012010e
cmp rdi, 0x40
jb 0x1401200cd
lea rcx, [rdi - 1]
lea rdx, [r14 - 1]
add rcx, rbx
add rdx, rdi
cmp rbx, rdx
ja 0x14011fffa
cmp rcx, r14
jae 0x1401200cd
lea rax, [r15 - 1]
add rax, rdi
cmp rbx, rax
ja 0x14012000f
cmp rcx, r15
jae 0x1401200cd
cmp r14, rax
ja 0x14012001d
cmp rdx, r15
jae 0x1401200cd
mov r8, rdi
and r8, 0xffffffffffffffc0
mov rax, r15
mov r9, r15
sub rax, rbx
sub r9, r14
mov rdx, r14
mov rcx, rbx
sub rdx, rbx
lea r10, [rax + 0x10]
lea r11, [rax + 0x20]
lea r12, [rax + 0x30]
nop word [rax + rax]
movdqu xmm0, xmmword [rcx]
lea rax, [rcx + rdx]
add rsi, 0x40
lea rcx, [rcx + 0x40]
movdqu xmm2, xmmword [rax + r9]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x40], xmm2
movdqu xmm0, xmmword [rcx - 0x30]
movdqu xmm2, xmmword [r11 + rcx - 0x40]
movdqu xmmword [rax], xmm1
movdqu xmm1, xmmword [r10 + rcx - 0x40]
pxor xmm0, xmm1
movdqu xmmword [rdx + rcx - 0x30], xmm0
movdqu xmmword [rcx - 0x30], xmm1
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm1, xmmword [r12 + rcx - 0x40]
pxor xmm0, xmm2
movdqu xmmword [rdx + rcx - 0x20], xmm0
movdqu xmmword [rcx - 0x20], xmm2
movdqu xmm0, xmmword [rcx - 0x10]
movdqu xmmword [rcx - 0x10], xmm1
pxor xmm0, xmm1
movdqu xmmword [rdx + rcx - 0x10], xmm0
cmp rsi, r8
jb 0x140120050
cmp rsi, rdi
jae 0x14012010e
lea r8, [r13 + 0x40]
mov r10, r15
add r8, rsi
mov r11, r14
sub r10, r14
sub r11, rbx
mov r9, rdi
sub r9, rsi
mov rsi, rdi
nop
movzx eax, byte [r8]
lea rcx, [r8 + r11]
movzx edx, byte [rcx + r10]
mov byte [r8], dl
lea r8, [r8 + 1]
xor al, dl
mov byte [rcx], al
sub r9, 1
jne 0x1401200f0
mov rbx, rsi
lea rcx, [r13 + 0x40]
neg rbx
add rcx, rsi
and ebx, 0xf
xor edx, edx
mov r8d, ebx
call sub.VCRUNTIME140.dll_memset
lea rax, [rbx + rsi]
lea r8, [rax + 0x20]
lea rcx, [rax + r13]
jmp 0x140120214
mov eax, 0x40
mov r8d, eax
mov qword [rsp + 0x40], rax
call fcn.14016d0d0
mov rdx, r13
lea rcx, [rbp + 0xd0]
call fcn.14016d720
mov dword [r12], 1
lea rdx, [rbp + 0x94]
mov r8d, reloc.WS2_32.dll_recv
mov dword [rbp + 0x70], esi
lea rcx, [rbp + 0xd0]
call fcn.14016d880
mov rax, qword [rsp + 0x30]
mov r8, rdi
mov qword [rbp + 0xa8], reloc.WS2_32.dll_listen
mov rdx, r15
mov qword [rbp + 0xb0], rdi
mov qword [rsp + 0x38], rbx
cmp dword [rax + 0x10], esi
je 0x1401201c9
mov r9, rbp
mov qword [rsp + 0x20], r12
mov rcx, r14
call fcn.14016d0d0
mov r8, rdi
lea rcx, [rbp + 0xd0]
mov rdx, r14
call fcn.14016d880
jmp 0x1401201eb
lea rcx, [rbp + 0xd0]
call fcn.14016d880
mov r9, rbp
mov qword [rsp + 0x20], r12
mov r8, rdi
mov rdx, r15
mov rcx, r14
call fcn.14016d0d0
mov r8, rdi
lea rdx, [0x140225d90]
neg r8
lea rcx, [rbp + 0xd0]
and r8d, 0xf
call fcn.14016d880
mov r8d, reloc.WS2_32.dll_recv
mov rcx, r13
mov rsi, rdi
movups xmm0, xmmword [rbp + 0xa8]
lea rbx, [r14 + rsi]
mov r14, qword [rsp + 0x38]
mov rdx, r14
lea r12, [r15 + rsi]
movups xmmword [rcx + 0x40], xmm0
lea rcx, [rbp + 0xd0]
call fcn.14016d880
mov rdx, qword [rsp + 0x40]
mov rcx, r13
call fcn.140112490
mov r15, qword [rsp + 0x30]
lea rdx, [rbp + 0x84]
lea rcx, [rbp + 0xd0]
cmp dword [r15 + 0x10], 0
cmove rdx, r14
call fcn.14016d680
mov r13, qword [rsp + 0x108]
mov qword [rbp + 0xc8], 0xffffffffffffffff
cmp dword [r15 + 0x10], 0
je 0x1401202c8
movups xmm0, xmmword [rbp + 0x84]
movups xmmword [rbx], xmm0
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x120]
mov r12, qword [rsp + 0x110]
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1401e4940
add rsp, 0x128
pop r15
pop r14
pop rdi
pop rbp
ret
mov r8d, reloc.WS2_32.dll_recv
mov rdx, r12
mov rcx, r14
call fcn.140120750
test eax, eax
je 0x14012028d
mov rax, qword [rsp + 0x48]
xor edx, edx
sub rbx, rax
lea r8, [rax - 0x10]
lea rcx, [rbx + 0x10]
call sub.VCRUNTIME140.dll_memset
mov eax, 0xffffffff
jmp 0x140120292