Function at 0x1400035ac
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x120
mov ebx, edx
mov edi, edx
lea rax, [0x1400083e0]
shl ebx, 0xe
mov r15, r9
mov rbp, rcx
or ebx, 0xff803fff
cmp word [r8 + 2], 5
mov r14, r8
seta r12b
xor esi, esi
lea rdx, [0x1400083f0]
test r12b, r12b
lea r9d, [rsi + 0x10]
lea rcx, [rsp + 0x50]
mov r8b, r12b
cmovne rdx, rax
mov byte [rsp + 0x158], r12b
call fcn.14000135c
lea eax, [rdi - 4]
lea r8, [r14 + 4]
lea rcx, [rsp + 0x50]
movsxd r9, eax
call fcn.140001818
mov eax, ebx
lea rdx, [r14 - 1]
shr rax, 0xe
and eax, 0x1ff
add rdx, rax
mov r8b, byte [rdx]
lea eax, [r8 - 1]
cmp al, 0xf
ja 0x140003888
movzx eax, r8b
mov rcx, rdx
sub rcx, rax
jmp 0x140003665
cmp byte [rcx], r8b
jne 0x140003888
inc rcx
cmp rcx, rdx
jb 0x14000365c
mov ecx, 0x80
mov rdx, r14
cmp dword [r14 + 0x18], ecx
mov eax, ecx
mov rcx, rbp
cmovbe eax, dword [r14 + 0x18]
add eax, 0x1c
movsxd rdi, eax
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov al, r12b
lea r13, [rbp + 0x9c]
neg al
lea rdx, [rdi + r14]
mov rcx, r13
sbb r8, r8
mov word [rbp + 0x9a], si
and r8d, 0x28
add r8, 0x54
call sub.msvcrt.dll_memcpy
lea r12, [r15 + 4]
lea rcx, [rsp + 0x50]
mov r8, r12
mov r9d, 0x100
call fcn.140001818
mov eax, dword [r15]
cmp eax, dword [rbp + 0x14]
jne 0x1400036ea
cmp eax, dword [rbp]
jne 0x1400036ea
cmp eax, dword [r15 + 0x14]
mov eax, 1
je 0x1400036ec
mov eax, esi
mov edx, dword [r14 + 0x18]
shl eax, 3
xor eax, ebx
and eax, 8
xor ebx, eax
cmp edx, 0x80
jbe 0x140003707
mov cl, sil
jmp 0x140003732
shr edx, 1
lea eax, [rdx - 1]
mov ecx, eax
cmp word [r14 + rax*2 + 0x1c], si
jne 0x140003702
mov ecx, esi
add edx, 0xfffffffe
je 0x140003730
lea rax, [r14 + 0x1c]
cmp word [rax], si
je 0x140003702
inc ecx
add rax, 2
cmp ecx, edx
jb 0x140003721
mov cl, 1
mov rax, qword [r13]
sub rax, qword [r15 + 0x54]
jne 0x140003744
mov rax, qword [r13 + 8]
sub rax, qword [r15 + 0x5c]
movups xmm0, xmmword [r12]
test rax, rax
movzx eax, cl
mov ecx, esi
mov edi, esi
sete dil
and edi, 1
and eax, 1
mov r9, rbp
shl eax, 5
movdqu xmmword [rsp + 0x20], xmm0
or edi, eax
mov rax, qword [rbp + 0xac]
add edi, edi
cmp rax, qword [r15 + 0x68]
lea rax, [rsp + 0x20]
sete cl
and ebx, 0xffffff79
and ecx, 1
or edi, ecx
lea rcx, [rsp + 0x20]
add edi, edi
or edi, ebx
mov ebx, 4
sub r9, rax
mov r8d, ebx
mov eax, dword [r9 + rcx + 0xc0]
xor dword [rcx], eax
add rcx, rbx
dec r8
jne 0x14000379f
lea r8, [rsp + 0x30]
lea rcx, [rsp + 0x20]
mov edx, reloc.WS2_32.dll_recv
call fcn.140001880
lea rcx, [rbp + 0xd0]
lea rdx, [rsp + 0x30]
mov r8d, 0x20
call sub.msvcrt.dll_memcmp
mov r8b, byte [rsp + 0x158]
mov ecx, esi
test eax, eax
mov al, r8b
sete cl
and ecx, 1
neg al
mov eax, dword [rbp + 0x18]
sbb edx, edx
add eax, 0xffffff80
and edi, 0x7ffffe
and edx, 0x28
add edx, 0xf0
add edx, eax
shl edx, 0x17
or ecx, edx
or ecx, edi
test r8b, r8b
je 0x14000383c
mov rdx, qword [rbp + 0xf0]
mov rax, qword [rsp + 0x170]
mov r9, r14
mov qword [rax], rdx
mov rdx, rbp
mov r8, r15
call fcn.1400034c8
mov esi, eax
jmp 0x140003863
mov rax, qword [r12]
sub rax, qword [rbp + 4]
jne 0x14000384f
mov rax, qword [r12 + 8]
sub rax, qword [rbp + 0xc]
test rax, rax
sete sil
and ecx, 0xffffffef
and esi, 1
or esi, ebx
shl esi, 4
or esi, ecx
mov eax, esi
mov ecx, esi
and esi, 0x7fffff
shr eax, 0x17
and ecx, 0xff800000
sub eax, ebx
not eax
and eax, 0xf
inc eax
shl eax, 0x17
add eax, ecx
xor eax, esi
jmp 0x14000388d
and ebx, 0xffffffdf
mov eax, ebx
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret