Function at 0x140225270
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x70
mov r14d, dword [rsp + 0xa0]
xor ebp, ebp
movsxd rsi, dword [rdx + 0x504]
mov rdi, r9
movaps xmmword [rsp + 0x60], xmm6
mov rbx, r8
movd xmm6, r14d
pshufd xmm6, xmm6, 0
test r8, r8
je 0x14022552e
test r9, r9
je 0x14022552e
lea edx, [rsi*4]
call fcn.14022bea0
mov r9, rax
test esi, esi
jle 0x1402254b2
cmp esi, 8
jb 0x1402254b2
cmp dword [reloc.WS2_32.dll_accept], 2
jl 0x1402254b2
lea eax, [rsi - 1]
movsxd rcx, eax
lea rax, [rdi + rcx*4]
lea rdx, [r9 + rcx*4]
cmp r9, rax
ja 0x14022530b
cmp rdx, rdi
jae 0x1402254b2
lea rax, [rbx + rcx*4]
cmp r9, rax
ja 0x14022531d
cmp rdx, rbx
jae 0x1402254b2
movaps xmmword [rsp + 0x50], xmm7
mov eax, esi
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x30], xmm9
movaps xmmword [rsp + 0x20], xmm10
and eax, 0x80000007
jge 0x140225344
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm4, xmmword [0x140437a00]
lea r8, [rdi + 0x10]
movdqa xmm7, xmmword [0x1404379c0]
mov edx, esi
movdqa xmm10, xmmword [0x140437df0]
sub edx, eax
movdqa xmm5, xmmword [0x1404379d0]
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rcx, r9
psubd xmm4, xmm6
xorps xmm8, xmm8
movd xmm9, eax
mov rax, rbx
sub rax, rdi
sub rcx, rdi
nop dword [rax + rax]
movdqu xmm2, xmmword [r8 + rax - 0x10]
add ebp, 8
movdqu xmm0, xmmword [r8 - 0x10]
lea r8, [r8 + 0x20]
pand xmm2, xmm7
movdqa xmm3, xmm7
pand xmm0, xmm7
pmulld xmm0, xmm6
pmulld xmm2, xmm4
paddd xmm2, xmm0
paddd xmm2, xmm5
psrad xmm2, xmm9
movdqu xmmword [r8 + rcx - 0x30], xmm2
movdqu xmm0, xmmword [r8 + rax - 0x30]
movdqu xmm1, xmmword [r8 - 0x30]
pand xmm0, xmm5
pcmpeqd xmm0, xmm8
pand xmm1, xmm5
pxor xmm0, xmm10
pcmpeqd xmm1, xmm8
pandn xmm1, xmm0
movdqa xmm0, xmm5
por xmm0, xmm2
pand xmm0, xmm1
pandn xmm1, xmm2
por xmm0, xmm1
movdqa xmm1, xmm7
movdqa xmm2, xmm5
movdqu xmmword [r8 + rcx - 0x30], xmm0
movdqu xmm0, xmmword [r8 + rax - 0x20]
pand xmm3, xmm0
movdqu xmm0, xmmword [r8 - 0x20]
pmulld xmm3, xmm4
pand xmm1, xmm0
pmulld xmm1, xmm6
paddd xmm3, xmm1
movdqa xmm1, xmm5
paddd xmm3, xmm5
psrad xmm3, xmm9
movdqu xmmword [r8 + rcx - 0x20], xmm3
movdqu xmm0, xmmword [r8 - 0x20]
pand xmm2, xmm0
pcmpeqd xmm2, xmm8
movdqu xmm0, xmmword [r8 + rax - 0x20]
pand xmm1, xmm0
movdqa xmm0, xmm5
por xmm0, xmm3
pcmpeqd xmm1, xmm8
pxor xmm1, xmm10
pandn xmm2, xmm1
pand xmm0, xmm2
pandn xmm2, xmm3
por xmm0, xmm2
movdqu xmmword [r8 + rcx - 0x20], xmm0
cmp ebp, edx
jl 0x140225390
movaps xmm10, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
movsxd rax, ebp
mov r8, rsi
cmp rax, rsi
jge 0x140225529
mov r10d, 0x10000
lea rdx, [rdi + rax*4]
mov r11, r9
sub r10d, r14d
sub r11, rdi
sub rbx, rdi
sub r8, rax
nop word [rax + rax]
mov eax, dword [rdx]
mov ecx, dword [rdx + rbx]
and eax, 0x7fff
imul eax, r14d
and ecx, 0x7fff
imul ecx, r10d
add eax, 0x8000
add eax, ecx
sar eax, 0x10
mov dword [rdx + r11], eax
test dword [rdx + rbx], 0x8000
je 0x14022551f
test dword [rdx], 0x8000
je 0x14022551f
bts eax, 0xf
mov dword [rdx + r11], eax
add rdx, 4
sub r8, 1
jne 0x1402254e0
mov rax, r9
jmp 0x140225531
mov rax, rbp
movaps xmm6, xmmword [rsp + 0x60]
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret