Function at 0x18010e850
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
lea rbp, [rsp - 0x80]
mov eax, 0x180
call fcn.180188f30
sub rsp, rax
mov rax, qword [0x180237160]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov rax, r8
mov r13, rcx
mov r15, rdx
lea r8, [0x1801eb210]
lea rcx, [rbp - 0x10]
mov rdx, rax
call fcn.18015f270
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x10]
call fcn.18015f780
mov r14d, reloc.WS2_32.dll_select
nop
cmp r14d, 0x12
je 0x18010e8c4
xor r8d, r8d
mov rdx, r13
mov rcx, r13
call fcn.18010da70
xor r12d, r12d
nop word [rax + rax]
mov eax, r12d
xor r10d, r10d
xor r9d, r9d
imul eax, eax, 0x5a
lea r8d, [rax + r14 - 1]
cmp r8d, 0x1be
jae 0x18010e90b
mov ecx, r8d
mov eax, r8d
shr rcx, 5
and eax, 0x1f
mov edx, dword [rbp + rcx*4 - 0x10]
movzx ecx, al
shr edx, cl
mov ecx, r9d
and edx, 1
shl edx, cl
or r10d, edx
inc r9d
add r8d, 0x12
cmp r9d, 5
jb 0x18010e8e1
mov esi, r10d
lea rcx, [rsp + 0x30]
xor edx, edx
sar esi, 4
mov r8d, 0xc0
dec esi
mov eax, esi
xor eax, r10d
and eax, 0xf
movsxd rdi, eax
mov eax, r12d
shl eax, 4
lea rbx, [rax + rax*2]
shl rbx, 6
add rbx, r15
call fcn.180189610
lea r11, [rdi - 1]
mov r10d, reloc.WS2_32.dll_recv
nop dword [rax + rax]
mov rcx, rdi
mov rax, r11
not rcx
shr rax, 0x3f
shr rcx, 0x3f
and cl, al
neg cl
xor edx, edx
movzx r9d, cl
mov r8d, r9d
not r8d
movzx ecx, byte [rbx]
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x24], r8d
mov eax, dword [rsp + 0x24]
mov eax, dword [rsp + 0x20]
inc rdx
and al, cl
inc rbx
or byte [rsp + rdx + 0x2f], al
cmp rdx, 0xc0
jb 0x18010e981
dec rdi
dec r11
dec r10
jne 0x18010e960
xor r8d, r8d
nop dword [rax]
mov ecx, dword [rsp + r8*4 + 0x30]
mov edx, dword [rsp + r8*4 + 0x70]
add r8, 4
xor edx, ecx
and edx, esi
mov eax, edx
xor eax, ecx
mov dword [rsp + r8*4 + 0x20], eax
xor dword [rsp + r8*4 + 0x60], edx
mov ecx, dword [rsp + r8*4 + 0x24]
mov eax, dword [rsp + r8*4 + 0x64]
xor eax, ecx
and eax, esi
xor ecx, eax
mov dword [rsp + r8*4 + 0x24], ecx
xor dword [rsp + r8*4 + 0x64], eax
mov ecx, dword [rsp + r8*4 + 0x28]
mov eax, dword [rsp + r8*4 + 0x68]
xor eax, ecx
and eax, esi
xor ecx, eax
mov dword [rsp + r8*4 + 0x28], ecx
xor dword [rsp + r8*4 + 0x68], eax
mov ecx, dword [rsp + r8*4 + 0x2c]
mov eax, dword [rsp + r8*4 + 0x6c]
xor eax, ecx
and eax, esi
xor ecx, eax
mov dword [rsp + r8*4 + 0x2c], ecx
xor dword [rsp + r8*4 + 0x6c], eax
cmp r8, 0x10
jb 0x18010e9c0
lea r8, [rbp - 0x50]
lea rdx, [0x1801eb190]
lea rcx, [rbp + 0x30]
call fcn.18015df00
mov r11d, esi
xor edx, edx
not r11d
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x24], r11d
add rdx, 4
mov eax, dword [rsp + 0x20]
mov ecx, dword [rbp + rdx + 0x2c]
and ecx, eax
mov eax, dword [rsp + 0x24]
and eax, dword [rbp + rdx - 0x54]
or ecx, eax
mov dword [rbp + rdx - 0x54], ecx
cmp rdx, 0x40
jb 0x18010ea50
cmp r14d, 0x12
jne 0x18010eafc
test r12d, r12d
jne 0x18010eafc
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x70]
lea rcx, [r13 + 0x40]
call fcn.18015dfd0
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x70]
mov rcx, r13
call fcn.18015df00
lea rcx, [r13 + 0xc0]
lea rdx, [r13 + 0x40]
mov r8, r13
call fcn.18015e850
movaps xmm0, xmmword [0x1801eb1d0]
movups xmmword [r13 + 0x80], xmm0
movaps xmm1, xmmword [0x1801eb1e0]
movups xmmword [r13 + 0x90], xmm1
movaps xmm0, xmmword [0x1801eb1f0]
movups xmmword [r13 + 0xa0], xmm0
movaps xmm1, xmmword [0x1801eb200]
movups xmmword [r13 + 0xb0], xmm1
jmp 0x18010eb1f
cmp r12d, 4
jne 0x18010eb0f
cmp r14d, 1
je 0x18010eb0f
lea r8d, [r12 - 3]
jmp 0x18010eb12
xor r8d, r8d
lea rdx, [rsp + 0x30]
mov rcx, r13
call fcn.18010dff0
inc r12d
cmp r12d, 5
jb 0x18010e8d0
dec r14d
jne 0x18010e8b0
lea rcx, [rsp + 0x30]
mov edx, 0xc0
call fcn.1800b6ec0
lea edx, [r14 + 0x38]
lea rcx, [rbp - 0x10]
call fcn.1800b6ec0
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.180183a50
mov rbx, qword [rsp + 0x1c8]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret