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

Disassembly:
push r14
sub rsp, 0x90
mov r14, rdx
mov r10, rcx
cmp rdx, 0x10
ja 0x1400382e2
cmp rdx, 8
jbe 0x140038198
mov r8, qword [0x140094920]
xor r8, qword [0x140094918]
xor r8, qword [rcx]
mov rcx, qword [0x140094930]
xor rcx, qword [rdx + r10 - 8]
xor rcx, qword [0x140094928]
mov rax, rcx
mul r8
bswap r8
xor rdx, rax
lea rax, [r14 + r8]
add rdx, rax
add rdx, rcx
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 r14
ret
cmp r14, 4
jb 0x140038204
mov ecx, dword [rdx + rcx - 4]
mov eax, dword [r10]
shl rax, 0x20
add rcx, rax
xor rcx, qword [0x140094910]
xor rcx, qword [0x140094908]
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, r14
xor rax, rdx
imul rax, rcx
mov rcx, rax
shr rcx, 0x1c
xor rcx, rax
mov rax, rcx
add rsp, 0x90
pop r14
ret
test r14, r14
je 0x14003828d
mov rax, r14
shr rax, 1
movzx ecx, byte [rax + rcx]
movzx eax, byte [r10]
shl rcx, 8
or rcx, rax
mov rax, r14
and eax, 0xffffff
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + r10 - 1]
shl rcx, 8
or rcx, rax
mov eax, dword [0x140094900]
xor rcx, rax
mov eax, dword [0x140094904]
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 r14
ret
mov rax, qword [0x140094940]
xor rax, qword [0x140094938]
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 r14
ret
cmp r14, 0x80
ja 0x140038440
movabs rax, 0x9e3779b185ebca87
mov r11, r14
imul r11, rax
cmp r14, 0x20
jbe 0x1400383ec
cmp r14, 0x40
jbe 0x1400383a6
cmp r14, 0x60
jbe 0x140038360
mov rax, qword [0x140094968]
xor rax, qword [rcx + 0x38]
mov rcx, qword [0x140094960]
xor rcx, qword [r10 + 0x30]
mul rcx
mov rcx, qword [0x140094970]
xor rcx, qword [r14 + r10 - 0x40]
mov r8, rax
mov rax, qword [0x140094978]
mov r9, rdx
xor rax, qword [r14 + r10 - 0x38]
xor r9, r8
mul rcx
add r11, r9
xor rdx, rax
add r11, rdx
mov rax, qword [0x140094948]
xor rax, qword [r10 + 0x28]
mov rcx, qword [0x140094940]
xor rcx, qword [r10 + 0x20]
mul rcx
mov rcx, qword [0x140094950]
xor rcx, qword [r14 + r10 - 0x30]
mov r8, rax
mov rax, qword [0x140094958]
mov r9, rdx
xor rax, qword [r14 + r10 - 0x28]
xor r9, r8
mul rcx
add r11, r9
xor rdx, rax
add r11, rdx
mov rax, qword [0x140094928]
xor rax, qword [r10 + 0x18]
mov rcx, qword [0x140094920]
xor rcx, qword [r10 + 0x10]
mul rcx
mov rcx, qword [0x140094930]
xor rcx, qword [r14 + r10 - 0x20]
mov r8, rax
mov rax, qword [0x140094938]
mov r9, rdx
xor rax, qword [r14 + r10 - 0x18]
xor r9, r8
mul rcx
xor rdx, rax
add r11, rdx
add r11, r9
mov rax, qword [0x140094908]
xor rax, qword [r10 + 8]
mov rcx, qword [0x140094900]
xor rcx, qword [r10]
mul rcx
mov rcx, qword [0x140094910]
xor rcx, qword [r14 + r10 - 0x10]
mov r8, rax
mov rax, qword [0x140094918]
mov r9, rdx
xor rax, qword [r14 + r10 - 8]
xor r9, r8
mul rcx
xor rax, rdx
add rax, r11
add r9, rax
mov rcx, r9
shr rcx, 0x25
xor rcx, r9
jmp 0x140038905
cmp r14, 0xf0
ja 0x140038457
add rsp, 0x90
pop r14
jmp 0x140040170
movdqu xmm4, xmmword [0x1400948c0]
lea r9, [rdx - 1]
movdqu xmm5, xmmword [0x1400948d0]
lea r8, [0x140094920]
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x80], rdi
movaps xmmword [rsp + 0x70], xmm6
movdqu xmm6, xmmword [0x1400948e0]
shr r9, 0xa
movaps xmmword [rsp + 0x60], xmm7
movdqu xmm7, xmmword [0x1400948f0]
test r9, r9
je 0x14003867e
movdqa xmm3, xmmword [0x14009abe0]
lea rax, [rcx + 0x10]
movaps xmmword [rsp + 0x50], xmm8
mov r11, r9
movdqa xmm8, xmmword [0x1400949b0]
movaps xmmword [rsp + 0x40], xmm9
movdqa xmm9, xmmword [0x1400949a0]
movaps xmmword [rsp + 0x30], xmm10
movdqa xmm10, xmmword [0x140094990]
movaps xmmword [rsp + 0x20], xmm11
movdqa xmm11, xmmword [0x140094980]
nop dword [rax]
mov rcx, r8
mov edx, reloc.WS2_32.dll_recv
nop dword [rax + rax]
prefetcht0 byte [rax + 0x170]
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm2, xmmword [rcx - 0x20]
lea rcx, [rcx + 8]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm4, xmm0
movdqu xmm0, xmmword [rax]
pmuludq xmm1, xmm2
movdqu xmm2, xmmword [rcx - 0x18]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
paddq xmm4, xmm1
paddq xmm5, xmm0
movdqu xmm0, xmmword [rax + 0x10]
pshufd xmm1, xmm2, 0x31
pmuludq xmm1, xmm2
movdqu xmm2, xmmword [rcx - 8]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
paddq xmm5, xmm1
paddq xmm6, xmm0
movdqu xmm0, xmmword [rax + 0x20]
add rax, 0x40
pshufd xmm1, xmm2, 0x31
pmuludq xmm1, xmm2
movdqu xmm2, xmmword [rcx + 8]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
paddq xmm6, xmm1
pshufd xmm1, xmm2, 0x31
pmuludq xmm1, xmm2
paddq xmm7, xmm0
paddq xmm7, xmm1
sub rdx, 1
jne 0x140038510
movdqa xmm1, xmm4
movdqa xmm0, xmm3
psrlq xmm1, 0x2f
xorps xmm1, xmm4
xorps xmm1, xmm11
pmuludq xmm0, xmm1
pshufd xmm4, xmm1, 0x31
movdqa xmm1, xmm5
psrlq xmm1, 0x2f
pmuludq xmm4, xmm3
xorps xmm1, xmm5
xorps xmm1, xmm10
pshufd xmm5, xmm1, 0x31
pmuludq xmm5, xmm3
psllq xmm4, 0x20
paddq xmm4, xmm0
movdqa xmm0, xmm3
pmuludq xmm0, xmm1
movdqa xmm1, xmm6
psrlq xmm1, 0x2f
psllq xmm5, 0x20
xorps xmm1, xmm6
xorps xmm1, xmm9
pshufd xmm6, xmm1, 0x31
pmuludq xmm6, xmm3
paddq xmm5, xmm0
movdqa xmm0, xmm3
pmuludq xmm0, xmm1
movdqa xmm1, xmm7
psrlq xmm1, 0x2f
xorps xmm1, xmm7
psllq xmm6, 0x20
xorps xmm1, xmm8
pshufd xmm7, xmm1, 0x31
pmuludq xmm7, xmm3
paddq xmm6, xmm0
movdqa xmm0, xmm3
pmuludq xmm0, xmm1
psllq xmm7, 0x20
paddq xmm7, xmm0
sub r11, 1
jne 0x140038500
movaps xmm11, xmmword [rsp + 0x20]
movaps xmm10, xmmword [rsp + 0x30]
movaps xmm9, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
shl r9, 0xa
mov rcx, r14
sub rcx, r9
dec rcx
shr rcx, 6
test rcx, rcx
je 0x140038749
lea rax, [r10 + 0x10]
add rax, r9
nop
prefetcht0 byte [rax + 0x170]
movdqu xmm0, xmmword [rax - 0x10]
lea rax, [rax + 0x40]
movdqu xmm2, xmmword [r8 - 0x20]
lea r8, [r8 + 8]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm4, xmm0
pmuludq xmm1, xmm2
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm2, xmmword [r8 - 0x18]
paddq xmm4, xmm1
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm5, xmm0
pmuludq xmm1, xmm2
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm2, xmmword [r8 - 8]
paddq xmm5, xmm1
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm6, xmm0
pmuludq xmm1, xmm2
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [r8 + 8]
paddq xmm6, xmm1
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm7, xmm0
pmuludq xmm1, xmm2
paddq xmm7, xmm1
sub rcx, 1
jne 0x1400386a0
movdqu xmm1, xmmword [r14 + r10 - 0x40]
mov rax, qword [0x140094913]
movdqu xmm0, xmmword [0x140094979]
mov rdx, qword [0x14009490b]
mov r8, qword [0x14009491b]
movdqa xmm2, xmm1
xorps xmm2, xmm0
pshufd xmm3, xmm1, 0x4e
movdqu xmm1, xmmword [r14 + r10 - 0x30]
pshufd xmm0, xmm2, 0x31
paddq xmm3, xmm4
pmuludq xmm0, xmm2
movdqa xmm2, xmm1
pshufd xmm4, xmm1, 0x4e
movdqu xmm1, xmmword [r14 + r10 - 0x20]
paddq xmm4, xmm5
paddq xmm3, xmm0
pshufd xmm5, xmm1, 0x4e
movdqu xmm0, xmmword [0x140094989]
paddq xmm5, xmm6
xorps xmm2, xmm0
pshufd xmm0, xmm2, 0x31
pmuludq xmm0, xmm2
movdqa xmm2, xmm1
movdqu xmm1, xmmword [r14 + r10 - 0x10]
paddq xmm4, xmm0
movdqu xmm0, xmmword [0x140094999]
xorps xmm2, xmm0
pshufd xmm0, xmm2, 0x31
pmuludq xmm0, xmm2
movdqa xmm2, xmm1
pshufd xmm1, xmm1, 0x4e
paddq xmm1, xmm7
paddq xmm5, xmm0
movdqu xmm0, xmmword [0x1400949a9]
xorps xmm2, xmm0
pshufd xmm0, xmm2, 0x31
pmuludq xmm0, xmm2
paddq xmm1, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 8
movq rcx, xmm0
movdqa xmm0, xmm4
xor rax, rcx
psrldq xmm0, 8
movq rcx, xmm3
xor rdx, rcx
movq rcx, xmm0
mul rdx
movdqa xmm0, xmm5
psrldq xmm0, 8
mov rdi, rax
mov rsi, rdx
mov rax, qword [0x140094923]
xor rax, rcx
movq rcx, xmm4
xor r8, rcx
movq rcx, xmm0
mul r8
movdqa xmm0, xmm1
psrldq xmm0, 8
mov r8, qword [0x14009492b]
mov r11, rax
mov rbx, rdx
mov rax, qword [0x140094933]
xor rax, rcx
movq rcx, xmm5
xor r8, rcx
movq rcx, xmm0
mul r8
mov r8, qword [0x14009493b]
mov r9, rax
mov r10, rdx
mov rax, qword [0x140094943]
xor r10, r9
xor rax, rcx
movq rcx, xmm1
xor r8, rcx
mul r8
xor rdx, rax
add rdx, r10
movaps xmm7, xmmword [rsp + 0x60]
xor rsi, rdi
movaps xmm6, xmmword [rsp + 0x70]
xor rbx, r11
mov rdi, qword [rsp + 0x80]
add rdx, rbx
mov rbx, qword [rsp + 0xb0]
add rdx, rsi
mov rsi, qword [rsp + 0x88]
movabs rax, 0x9e3779b185ebca87
imul r14, rax
add rdx, r14
mov rcx, rdx
shr rcx, 0x25
xor rcx, rdx
movabs rdx, 0x165667919e3779f9
imul rcx, rdx
mov rax, rcx
shr rax, 0x20
xor rax, rcx
add rsp, 0x90
pop r14
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov r8, qword [0x140094900]
mov r11, rcx
xor r8, qword [rcx]
mov r9, rdx
mov rbx, rdx
mov rdi, rdx
movabs rax, 0x9e3779b185ebca87
shr rbx, 4
imul r9, rax
mov rax, qword [0x140094908]
movabs rsi, 0x165667919e3779f9
xor rax, qword [rcx + 8]
mul r8
xor rdx, rax
mov rax, qword [0x140094918]
xor rax, qword [rcx + 0x18]
add r9, rdx
mov rcx, qword [0x140094910]
xor rcx, qword [r11 + 0x10]
mul rcx
mov rcx, qword [0x140094920]
xor rcx, qword [r11 + 0x20]
xor rdx, rax
mov rax, qword [0x140094928]
add r9, rdx
xor rax, qword [r11 + 0x28]
mul rcx
mov rcx, qword [0x140094930]
xor rcx, qword [r11 + 0x30]
xor rdx, rax
mov rax, qword [0x140094938]
add r9, rdx
xor rax, qword [r11 + 0x38]
mul rcx
mov rcx, qword [0x140094940]
xor rcx, qword [r11 + 0x40]
xor rdx, rax
mov rax, qword [0x140094948]
add r9, rdx
xor rax, qword [r11 + 0x48]
mul rcx
mov rcx, qword [0x140094950]
xor rcx, qword [r11 + 0x50]
xor rdx, rax
mov rax, qword [0x140094958]
add r9, rdx
xor rax, qword [r11 + 0x58]
mul rcx
mov rcx, qword [0x140094960]
xor rcx, qword [r11 + 0x60]
xor rdx, rax
mov rax, qword [0x140094968]
add r9, rdx
xor rax, qword [r11 + 0x68]
mul rcx
mov rcx, qword [0x140094970]
xor rcx, qword [r11 + 0x70]
xor rdx, rax
mov rax, qword [0x140094978]
add r9, rdx
xor rax, qword [r11 + 0x78]
mul rcx
xor rdx, rax
add r9, rdx
mov rax, r9
shr rax, 0x25
xor rax, r9
imul rax, rsi
mov r8, rax
shr r8, 0x20
xor r8, rax
cmp rbx, 8
jbe 0x1400402fa
lea rcx, [0x140094903]
mov r10, r11
sub r10, rcx
lea r9, [rbx - 8]
nop dword [rax]
mov rax, qword [rcx + 8]
xor rax, qword [rcx + r10 + 0x88]
mov rdx, qword [rcx + r10 + 0x80]
xor rdx, qword [rcx]
lea rcx, [rcx + 0x10]
mul rdx
xor rdx, rax
add r8, rdx
sub r9, 1
jne 0x1400402d0
mov rax, qword [0x14009497f]
xor rax, qword [r11 + rdi - 8]
mov rcx, qword [0x140094977]
xor rcx, qword [r11 + rdi - 0x10]
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x18]
mul rcx
xor rdx, rax
add rdx, r8
mov rcx, rdx
shr rcx, 0x25
xor rcx, rdx
imul rcx, rsi
mov rsi, qword [rsp + 0x10]
mov rax, rcx
shr rax, 0x20
xor rax, rcx
ret