Function at 0x1400354d0
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x90
mov rsi, rdx
mov r10, rcx
cmp rdx, 0x10
ja 0x14002d3aa
cmp rdx, 8
jbe 0x14002d267
mov r8, qword [0x140086598]
xor r8, qword [0x1400865a0]
xor r8, qword [rcx]
mov rcx, qword [0x1400865a8]
xor rcx, qword [r10 + rdx - 8]
xor rcx, qword [0x1400865b0]
mov rax, rcx
mul r8
bswap r8
xor rdx, rax
lea rax, [rcx + r8]
add rdx, rax
add rdx, rsi
mov rax, rdx
shr rax, 0x25
xor rax, rdx
movabs rdx, 0x165667919e3779f9
imul rax, rdx
mov rcx, rax
shr rcx, 0x20
xor rcx, rax
mov rax, rcx
add rsp, 0x90
pop rsi
ret
cmp rsi, 4
jb 0x14002d2d2
mov ecx, dword [rcx + rdx - 4]
mov eax, dword [r10]
shl rax, 0x20
add rcx, rax
xor rcx, qword [0x140086588]
xor rcx, qword [0x140086590]
mov rdx, rcx
mov rax, rcx
rol rax, 0x18
rol rdx, 0x31
xor rdx, rax
xor rdx, rcx
movabs rcx, 0x9fb21c651e98df25
imul rdx, rcx
mov rax, rdx
shr rax, 0x23
add rax, rsi
xor rax, rdx
imul rax, rcx
mov rcx, rax
shr rcx, 0x1c
xor rcx, rax
mov rax, rcx
add rsp, 0x90
pop rsi
ret
test rsi, rsi
je 0x14002d356
mov rax, rsi
shr rax, 1
movzx ecx, byte [rax + rcx]
movzx eax, byte [r10]
shl rcx, 8
or rcx, rax
mov rax, rsi
and eax, 0xffffff
shl rcx, 8
or rcx, rax
movzx eax, byte [r10 + rdx - 1]
shl rcx, 8
or rcx, rax
mov eax, dword [0x140086580]
xor rcx, rax
mov eax, dword [0x140086584]
xor rcx, rax
movabs rax, 0xc2b2ae3d27d4eb4f
imul rcx, rax
mov rax, rcx
shr rax, 0x1d
xor rax, rcx
movabs rcx, 0x165667b19e3779f9
imul rax, rcx
mov rcx, rax
shr rcx, 0x20
xor rcx, rax
mov rax, rcx
add rsp, 0x90
pop rsi
ret
mov rax, qword [0x1400865b8]
xor rax, qword [0x1400865c0]
mov rcx, rax
shr rcx, 0x21
xor rcx, rax
movabs rax, 0xc2b2ae3d27d4eb4f
imul rcx, rax
mov rdx, rcx
shr rdx, 0x1d
xor rdx, rcx
movabs rcx, 0x165667b19e3779f9
imul rdx, rcx
mov rcx, rdx
shr rcx, 0x20
xor rcx, rdx
mov rax, rcx
add rsp, 0x90
pop rsi
ret
mov qword [rsp + 0xb0], rbx
cmp rsi, 0x80
ja 0x14002d51e
movabs rax, 0x9e3779b185ebca87
mov rbx, rsi
imul rbx, rax
cmp rsi, 0x20
jbe 0x14002d4c8
cmp rsi, 0x40
jbe 0x14002d47e
cmp rsi, 0x60
jbe 0x14002d434
mov rax, qword [0x1400865e8]
lea r11, [r10 + rsi]
xor rax, qword [rcx + 0x38]
mov rcx, qword [0x1400865e0]
xor rcx, qword [r10 + 0x30]
mul rcx
mov rcx, qword [0x1400865f0]
xor rcx, qword [r11 - 0x40]
mov r8, rax
mov rax, qword [0x1400865f8]
mov r9, rdx
xor rax, qword [r11 - 0x38]
xor r9, r8
mul rcx
add rbx, r9
xor rdx, rax
add rbx, rdx
jmp 0x14002d438
lea r11, [rcx + rdx]
mov rax, qword [0x1400865c8]
xor rax, qword [r10 + 0x28]
mov rcx, qword [0x1400865c0]
xor rcx, qword [r10 + 0x20]
mul rcx
mov rcx, qword [0x1400865d0]
xor rcx, qword [r11 - 0x30]
mov r8, rax
mov rax, qword [0x1400865d8]
mov r9, rdx
xor rax, qword [r11 - 0x28]
xor r9, r8
mul rcx
add rbx, r9
xor rdx, rax
add rbx, rdx
jmp 0x14002d482
lea r11, [rcx + rdx]
mov rax, qword [0x1400865a8]
xor rax, qword [r10 + 0x18]
mov rcx, qword [0x1400865a0]
xor rcx, qword [r10 + 0x10]
mul rcx
mov rcx, qword [0x1400865b0]
xor rcx, qword [r11 - 0x20]
mov r8, rax
mov rax, qword [0x1400865b8]
mov r9, rdx
xor rax, qword [r11 - 0x18]
xor r9, r8
mul rcx
add rbx, r9
xor rdx, rax
add rbx, rdx
jmp 0x14002d4cc
lea r11, [rdx + rcx]
mov rax, qword [0x140086588]
xor rax, qword [r10 + 8]
mov rcx, qword [0x140086580]
xor rcx, qword [r10]
mul rcx
mov rcx, qword [0x140086590]
xor rcx, qword [r11 - 0x10]
mov r8, rax
mov rax, qword [0x140086598]
mov r9, rdx
xor rax, qword [r11 - 8]
xor r9, r8
mul rcx
xor rax, rdx
add rax, rbx
add r9, rax
mov rcx, r9
shr rcx, 0x25
xor rcx, r9
jmp 0x14002d9f5
cmp rsi, 0xf0
ja 0x14002d53c
mov rbx, qword [rsp + 0xb0]
add rsp, 0x90
pop rsi
jmp 0x1400354d0
movdqu xmm4, xmmword [0x140086540]
lea r9, [rdx - 1]
movdqu xmm5, xmmword [0x140086550]
lea r8, [0x1400865a0]
mov qword [rsp + 0xb8], rdi
movaps xmmword [rsp + 0x80], xmm6
movdqu xmm6, xmmword [0x140086560]
shr r9, 0xa
movaps xmmword [rsp + 0x70], xmm7
movdqu xmm7, xmmword [0x140086570]
test r9, r9
je 0x14002d780
movaps xmmword [rsp + 0x60], xmm8
lea rax, [rcx + 0x10]
movdqa xmm8, xmmword [0x14008bef0]
mov r11, r9
movaps xmmword [rsp + 0x50], xmm9
movdqa xmm9, xmmword [0x140086630]
movaps xmmword [rsp + 0x40], xmm10
movdqa xmm10, xmmword [0x140086620]
movaps xmmword [rsp + 0x30], xmm11
movdqa xmm11, xmmword [0x140086610]
movaps xmmword [rsp + 0x20], xmm12
movdqa xmm12, xmmword [0x140086600]
nop dword [rax + rax]
mov rcx, r8
mov edx, reloc.WS2_32.dll_recv
nop dword [rax + rax]
prefetcht0 byte [rax + 0x170]
movdqu xmm2, xmmword [rax - 0x10]
movdqu xmm0, xmmword [rcx - 0x20]
lea rcx, [rcx + 8]
movdqu xmm3, xmmword [rax + 0x10]
xorps xmm0, xmm2
pshufd xmm1, xmm0, 0x31
pmuludq xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
movdqu xmm2, xmmword [rax]
paddq xmm0, xmm4
movdqa xmm4, xmm1
paddq xmm4, xmm0
movdqu xmm0, xmmword [rcx - 0x18]
xorps xmm0, xmm2
pshufd xmm1, xmm0, 0x31
pmuludq xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
paddq xmm0, xmm5
movdqa xmm5, xmm1
movdqa xmm1, xmm3
paddq xmm5, xmm0
movdqu xmm0, xmmword [rcx - 8]
xorps xmm1, xmm0
pshufd xmm0, xmm3, 0x4e
paddq xmm0, xmm6
pshufd xmm2, xmm1, 0x31
pmuludq xmm2, xmm1
movdqa xmm6, xmm2
movdqu xmm2, xmmword [rax + 0x20]
add rax, 0x40
paddq xmm6, xmm0
movdqu xmm0, xmmword [rcx + 8]
xorps xmm0, xmm2
pshufd xmm1, xmm0, 0x31
pmuludq xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
paddq xmm0, xmm7
movdqa xmm7, xmm1
paddq xmm7, xmm0
sub rdx, 1
jne 0x14002d5f0
movdqa xmm1, xmm4
movdqa xmm0, xmm8
psrlq xmm1, 0x2f
xorps xmm1, xmm4
xorps xmm1, xmm12
pmuludq xmm0, xmm1
pshufd xmm4, xmm1, 0x31
movdqa xmm1, xmm5
psrlq xmm1, 0x2f
pmuludq xmm4, xmm8
xorps xmm1, xmm5
xorps xmm1, xmm11
pshufd xmm5, xmm1, 0x31
pmuludq xmm5, xmm8
psllq xmm4, 0x20
paddq xmm4, xmm0
movdqa xmm0, xmm8
pmuludq xmm0, xmm1
movdqa xmm1, xmm6
psrlq xmm1, 0x2f
psllq xmm5, 0x20
xorps xmm1, xmm6
xorps xmm1, xmm10
pshufd xmm6, xmm1, 0x31
pmuludq xmm6, xmm8
paddq xmm5, xmm0
movdqa xmm0, xmm8
pmuludq xmm0, xmm1
movdqa xmm1, xmm7
psrlq xmm1, 0x2f
xorps xmm1, xmm7
psllq xmm6, 0x20
xorps xmm1, xmm9
pshufd xmm7, xmm1, 0x31
pmuludq xmm7, xmm8
paddq xmm6, xmm0
movdqa xmm0, xmm8
pmuludq xmm0, xmm1
psllq xmm7, 0x20
paddq xmm7, xmm0
sub r11, 1
jne 0x14002d5e0
movaps xmm12, xmmword [rsp + 0x20]
movaps xmm11, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
shl r9, 0xa
mov rcx, rsi
sub rcx, r9
dec rcx
shr rcx, 6
test rcx, rcx
je 0x14002d85e
lea rax, [r10 + 0x10]
add rax, r9
prefetcht0 byte [rax + 0x170]
movdqu xmm2, xmmword [rax - 0x10]
movdqu xmm0, xmmword [r8 - 0x20]
lea r8, [r8 + 8]
movdqu xmm3, xmmword [rax + 0x10]
lea rax, [rax + 0x40]
xorps xmm0, xmm2
pshufd xmm1, xmm0, 0x31
pmuludq xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
paddq xmm0, xmm4
movdqu xmm2, xmmword [rax - 0x40]
movdqa xmm4, xmm1
paddq xmm4, xmm0
movdqu xmm0, xmmword [r8 - 0x18]
xorps xmm0, xmm2
pshufd xmm1, xmm0, 0x31
pmuludq xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
paddq xmm0, xmm5
movdqa xmm5, xmm1
movdqa xmm1, xmm3
paddq xmm5, xmm0
movdqu xmm0, xmmword [r8 - 8]
xorps xmm1, xmm0
pshufd xmm0, xmm3, 0x4e
pshufd xmm2, xmm1, 0x31
paddq xmm0, xmm6
pmuludq xmm2, xmm1
movdqa xmm6, xmm2
paddq xmm6, xmm0
movdqu xmm2, xmmword [rax - 0x20]
movdqu xmm0, xmmword [r8 + 8]
xorps xmm0, xmm2
pshufd xmm1, xmm0, 0x31
pmuludq xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
paddq xmm0, xmm7
movdqa xmm7, xmm1
paddq xmm7, xmm0
sub rcx, 1
jne 0x14002d7a1
movdqu xmm2, xmmword [r10 + rsi - 0x40]
movdqu xmm0, xmmword [0x1400865f9]
movdqa xmm1, xmm2
xorps xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
movdqu xmm2, xmmword [r10 + rsi - 0x30]
paddq xmm0, xmm4
pshufd xmm3, xmm1, 0x31
pmuludq xmm3, xmm1
movdqa xmm1, xmm2
paddq xmm3, xmm0
movdqu xmm0, xmmword [0x140086609]
movq rcx, xmm3
xor rcx, qword [0x14008658b]
xorps xmm1, xmm0
pshufd xmm4, xmm1, 0x31
pmuludq xmm4, xmm1
pshufd xmm0, xmm2, 0x4e
movdqu xmm2, xmmword [r10 + rsi - 0x20]
paddq xmm0, xmm5
paddq xmm4, xmm0
movdqa xmm1, xmm2
movdqu xmm0, xmmword [0x140086619]
xorps xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
movdqu xmm2, xmmword [r10 + rsi - 0x10]
paddq xmm0, xmm6
pshufd xmm5, xmm1, 0x31
pmuludq xmm5, xmm1
movdqa xmm1, xmm2
paddq xmm5, xmm0
movdqu xmm0, xmmword [0x140086629]
xorps xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
paddq xmm0, xmm7
pshufd xmm6, xmm1, 0x31
pmuludq xmm6, xmm1
paddq xmm6, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 8
movq rax, xmm0
movdqa xmm0, xmm4
xor rax, qword [0x140086593]
mul rcx
psrldq xmm0, 8
movq rcx, xmm4
xor rcx, qword [0x14008659b]
mov rbx, rax
mov rdi, rdx
movq rax, xmm0
xor rdi, rbx
xor rax, qword [0x1400865a3]
movdqa xmm0, xmm5
mul rcx
psrldq xmm0, 8
movq rcx, xmm5
xor rcx, qword [0x1400865ab]
mov r10, rax
mov r11, rdx
movq rax, xmm0
xor r11, r10
xor rax, qword [0x1400865b3]
movdqa xmm0, xmm6
mul rcx
psrldq xmm0, 8
movq rcx, xmm6
xor rcx, qword [0x1400865bb]
mov r9, rdx
mov r8, rax
xor r9, r8
movq rax, xmm0
xor rax, qword [0x1400865c3]
mul rcx
xor rdx, rax
movabs rax, 0x9e3779b185ebca87
add rdx, r9
add rdx, r11
imul rsi, rax
add rdx, rdi
add rdx, rsi
mov rcx, rdx
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
mov rdi, qword [rsp + 0xb8]
shr rcx, 0x25
xor rcx, rdx
mov rbx, qword [rsp + 0xb0]
movabs rdx, 0x165667919e3779f9
imul rcx, rdx
mov rax, rcx
shr rax, 0x20
xor rax, rcx
add rsp, 0x90
pop rsi
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
mov r8, qword [0x140086580]
mov rbx, rcx
xor r8, qword [rcx]
mov r9, rdx
mov rdi, rdx
mov rsi, rdx
movabs rax, 0x9e3779b185ebca87
shr rdi, 4
imul r9, rax
mov rax, qword [0x140086588]
movabs r14, 0x165667919e3779f9
xor rax, qword [rcx + 8]
mul r8
xor rdx, rax
mov rax, qword [0x140086598]
xor rax, qword [rcx + 0x18]
add r9, rdx
mov rcx, qword [0x140086590]
xor rcx, qword [rbx + 0x10]
mul rcx
mov rcx, qword [0x1400865a0]
xor rcx, qword [rbx + 0x20]
xor rdx, rax
mov rax, qword [0x1400865a8]
add r9, rdx
xor rax, qword [rbx + 0x28]
mul rcx
mov rcx, qword [0x1400865b0]
xor rcx, qword [rbx + 0x30]
xor rdx, rax
mov rax, qword [0x1400865b8]
add r9, rdx
xor rax, qword [rbx + 0x38]
mul rcx
mov rcx, qword [0x1400865c0]
xor rcx, qword [rbx + 0x40]
xor rdx, rax
mov rax, qword [0x1400865c8]
add r9, rdx
xor rax, qword [rbx + 0x48]
mul rcx
mov rcx, qword [0x1400865d0]
xor rcx, qword [rbx + 0x50]
xor rdx, rax
mov rax, qword [0x1400865d8]
add r9, rdx
xor rax, qword [rbx + 0x58]
mul rcx
mov rcx, qword [0x1400865e0]
xor rcx, qword [rbx + 0x60]
xor rdx, rax
mov rax, qword [0x1400865e8]
add r9, rdx
xor rax, qword [rbx + 0x68]
mul rcx
mov rcx, qword [0x1400865f0]
xor rcx, qword [rbx + 0x70]
xor rdx, rax
mov rax, qword [0x1400865f8]
add r9, rdx
xor rax, qword [rbx + 0x78]
mul rcx
xor rdx, rax
add r9, rdx
mov rax, r9
shr rax, 0x25
xor rax, r9
imul rax, r14
mov r8, rax
shr r8, 0x20
xor r8, rax
cmp rdi, 8
jbe 0x140035662
lea rcx, [0x140086583]
mov rax, rbx
sub rax, rcx
lea r9, [rdi - 8]
lea r10, [rax + 0x88]
lea r11, [rax + 0x80]
mov rax, qword [r10 + rcx]
xor rax, qword [rcx + 8]
mov rdx, qword [r11 + rcx]
xor rdx, qword [rcx]
lea rcx, [rcx + 0x10]
mul rdx
xor rdx, rax
add r8, rdx
sub r9, 1
jne 0x140035640
mov rax, qword [0x1400865ff]
xor rax, qword [rbx + rsi - 8]
mov rcx, qword [0x1400865f7]
xor rcx, qword [rbx + rsi - 0x10]
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
mul rcx
xor rdx, rax
add rdx, r8
mov rcx, rdx
shr rcx, 0x25
xor rcx, rdx
imul rcx, r14
mov r14, qword [rsp + 0x20]
mov rax, rcx
shr rax, 0x20
xor rax, rcx
ret