Function at 0x14007aa10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1d8
movdqa xmmword [rsp + 0x1c0], xmm15
movdqa xmmword [rsp + 0x1b0], xmm14
movdqa xmmword [rsp + 0x1a0], xmm13
movdqa xmmword [rsp + 0x190], xmm12
movdqa xmmword [rsp + 0x180], xmm11
movdqa xmmword [rsp + 0x170], xmm10
movdqa xmmword [rsp + 0x160], xmm9
movdqa xmmword [rsp + 0x150], xmm8
movdqa xmmword [rsp + 0x140], xmm7
movdqa xmmword [rsp + 0x130], xmm6
mov rsi, rdx
mov rbx, rcx
movsxd r14, dword [rsp + 0x240]
mov eax, dword [rsp + 0x248]
mov rcx, qword [0x1400f5980]
xor rcx, rsp
mov qword [rsp + 0x128], rcx
lea r13, [r14 - 1]
movzx ecx, byte [rdx + r14 - 1]
mov ebp, r9d
sub ebp, r14d
add ebp, ecx
shr ebp, 0x1f
dec bpl
cmp r14, 2
jl 0x14007b050
cmp r13d, 0xff
mov edx, 0xff
cmovl edx, r13d
xor r10d, r10d
cmp edx, 8
jae 0x14007aaee
xor r11d, r11d
jmp 0x14007b016
movq xmm6, rcx
cmp edx, 0x10
jae 0x14007ab00
xor r11d, r11d
jmp 0x14007ae21
mov r11d, edx
and r11d, 0xfffffff0
movzx edi, bpl
movd xmm1, edi
movdqa xmmword [rsp + 0x70], xmm6
pshufd xmm2, xmm6, 0x44
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [rsp + 0x60], xmm0
movsxd rdi, r14d
add rdi, rsi
add rdi, 0xfffffffffffffff0
mov r15, r11
neg r15
movdqa xmm4, xmmword [0x1400da640]
movdqa xmm5, xmmword [0x1400da650]
movdqa xmm6, xmmword [0x1400da660]
movdqa xmm7, xmmword [0x1400da670]
movdqa xmm8, xmmword [0x1400da680]
movdqa xmm9, xmmword [0x1400da690]
movdqa xmm10, xmmword [0x1400da6a0]
movdqa xmm11, xmmword [0x1400da6b0]
xor r12d, r12d
por xmm2, xmmword [0x1400cda00]
nop word cs:[rax + rax]
movdqa xmm0, xmm11
movdqa xmm14, xmmword [0x1400cda00]
pxor xmm0, xmm14
movdqa xmm15, xmm0
pcmpgtd xmm15, xmm2
pshufd xmm3, xmm15, 0xa0
pcmpeqd xmm0, xmm2
pshufd xmm0, xmm0, 0xf5
pand xmm0, xmm3
pshufd xmm15, xmm15, 0xf5
por xmm15, xmm0
movdqa xmm0, xmm10
pxor xmm0, xmm14
movdqa xmm3, xmm0
pcmpgtd xmm3, xmm2
pshufd xmm13, xmm3, 0xa0
pcmpeqd xmm0, xmm2
pshufd xmm0, xmm0, 0xf5
pand xmm0, xmm13
pshufd xmm3, xmm3, 0xf5
por xmm3, xmm0
packssdw xmm15, xmm3
movdqa xmm0, xmm9
pxor xmm0, xmm14
movdqa xmm3, xmm0
pcmpgtd xmm3, xmm2
pshufd xmm13, xmm3, 0xa0
pcmpeqd xmm0, xmm2
pshufd xmm0, xmm0, 0xf5
pand xmm0, xmm13
pshufd xmm3, xmm3, 0xf5
por xmm3, xmm0
movdqa xmm0, xmm8
pxor xmm0, xmm14
movdqa xmm13, xmm0
pcmpgtd xmm13, xmm2
pshufd xmm12, xmm13, 0xa0
pcmpeqd xmm0, xmm2
pshufd xmm0, xmm0, 0xf5
pand xmm0, xmm12
pshufd xmm12, xmm13, 0xf5
por xmm12, xmm0
packssdw xmm3, xmm12
packssdw xmm15, xmm3
movdqa xmm0, xmm7
pxor xmm0, xmm14
movdqa xmm3, xmm0
pcmpgtd xmm3, xmm2
pshufd xmm12, xmm3, 0xa0
pcmpeqd xmm0, xmm2
pshufd xmm13, xmm0, 0xf5
pand xmm13, xmm12
pshufd xmm0, xmm3, 0xf5
por xmm0, xmm13
movdqa xmm3, xmm6
pxor xmm3, xmm14
movdqa xmm12, xmm3
pcmpgtd xmm12, xmm2
pshufd xmm13, xmm12, 0xa0
pcmpeqd xmm3, xmm2
pshufd xmm3, xmm3, 0xf5
pand xmm3, xmm13
pshufd xmm12, xmm12, 0xf5
por xmm12, xmm3
packssdw xmm0, xmm12
movdqa xmm3, xmm5
pxor xmm3, xmm14
movdqa xmm12, xmm3
pcmpgtd xmm12, xmm2
pshufd xmm13, xmm12, 0xa0
pcmpeqd xmm3, xmm2
pshufd xmm3, xmm3, 0xf5
pand xmm3, xmm13
pshufd xmm12, xmm12, 0xf5
por xmm12, xmm3
movdqa xmm3, xmm4
pxor xmm3, xmm14
movdqa xmm13, xmm3
pcmpgtd xmm13, xmm2
pshufd xmm14, xmm13, 0xa0
pcmpeqd xmm3, xmm2
pshufd xmm3, xmm3, 0xf5
pand xmm3, xmm14
pshufd xmm13, xmm13, 0xf5
por xmm13, xmm3
packssdw xmm12, xmm13
packssdw xmm0, xmm12
packsswb xmm15, xmm0
movdqu xmm0, xmmword [rdi + r12]
movdqa xmm3, xmm0
pxor xmm12, xmm12
punpcklbw xmm3, xmm12
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpckhbw xmm0, xmm12
pshufd xmm0, xmm0, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm3
pxor xmm0, xmmword [rsp + 0x60]
pandn xmm15, xmm0
por xmm1, xmm15
movdqa xmm0, xmmword [reloc.WS2_32.dll_recv]
paddq xmm11, xmm0
paddq xmm10, xmm0
paddq xmm9, xmm0
paddq xmm8, xmm0
paddq xmm7, xmm0
paddq xmm6, xmm0
paddq xmm5, xmm0
paddq xmm4, xmm0
add r12, 0xfffffffffffffff0
cmp r15, r12
jne 0x14007aba0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd ebp, xmm1
cmp r11, rdx
je 0x14007b050
test dl, 8
movdqa xmm6, xmmword [rsp + 0x70]
je 0x14007b016
mov rdi, r11
mov r11d, edx
movq xmm0, rdi
pshufd xmm1, xmm0, 0x44
movdqa xmm2, xmmword [0x1400da680]
por xmm2, xmm1
movdqa xmm3, xmmword [0x1400da690]
por xmm3, xmm1
movdqa xmm4, xmmword [0x1400da6a0]
por xmm4, xmm1
por xmm1, xmmword [0x1400da6b0]
and r11d, 0xfffffff8
movzx ebp, bpl
movd xmm5, ebp
pshufd xmm0, xmm6, 0x44
movd xmm6, ecx
punpcklbw xmm6, xmm6
pshuflw xmm6, xmm6, 0
movsxd r15, r14d
add r15, rsi
add r15, 0xfffffffffffffff8
neg rdi
mov r12, r11
neg r12
movdqa xmm7, xmmword [0x1400cda00]
por xmm0, xmm7
pxor xmm8, xmm8
movdqa xmm9, xmmword [0x1400da6d0]
nop dword [rax + rax]
movdqa xmm10, xmm1
pxor xmm10, xmm7
movdqa xmm11, xmm10
pcmpgtd xmm11, xmm0
pshufd xmm12, xmm11, 0xa0
pcmpeqd xmm10, xmm0
pshufd xmm13, xmm10, 0xf5
pand xmm13, xmm12
pshufd xmm10, xmm11, 0xf5
por xmm10, xmm13
movdqa xmm11, xmm4
pxor xmm11, xmm7
movdqa xmm12, xmm11
pcmpgtd xmm12, xmm0
pshufd xmm13, xmm12, 0xa0
pcmpeqd xmm11, xmm0
pshufd xmm11, xmm11, 0xf5
pand xmm11, xmm13
pshufd xmm12, xmm12, 0xf5
por xmm12, xmm11
packssdw xmm10, xmm12
movdqa xmm11, xmm3
pxor xmm11, xmm7
movdqa xmm12, xmm11
pcmpgtd xmm12, xmm0
pshufd xmm13, xmm12, 0xa0
pcmpeqd xmm11, xmm0
pshufd xmm11, xmm11, 0xf5
pand xmm11, xmm13
pshufd xmm12, xmm12, 0xf5
por xmm12, xmm11
movdqa xmm11, xmm2
pxor xmm11, xmm7
movdqa xmm13, xmm11
pcmpgtd xmm13, xmm0
pshufd xmm14, xmm13, 0xa0
pcmpeqd xmm11, xmm0
pshufd xmm11, xmm11, 0xf5
pand xmm11, xmm14
pshufd xmm13, xmm13, 0xf5
por xmm13, xmm11
packssdw xmm12, xmm13
packssdw xmm10, xmm12
packsswb xmm10, xmm10
movq xmm11, qword [r15 + rdi]
punpcklbw xmm11, xmm8
pshufd xmm11, xmm11, 0x4e
pshuflw xmm11, xmm11, 0x1b
pshufhw xmm11, xmm11, 0x1b
packuswb xmm11, xmm11
pxor xmm11, xmm6
pandn xmm10, xmm11
por xmm5, xmm10
paddq xmm1, xmm9
paddq xmm4, xmm9
paddq xmm3, xmm9
paddq xmm2, xmm9
add rdi, 0xfffffffffffffff8
cmp r12, rdi
jne 0x14007aeb0
pshufd xmm0, xmm5, 0x55
por xmm0, xmm5
movdqa xmm1, xmm0
psrld xmm1, 0x10
por xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
por xmm0, xmm1
movd ebp, xmm0
cmp r11, rdx
je 0x14007b050
movsxd r15, r14d
mov rdi, r11
not rdi
add rdi, rsi
add rdi, r15
nop word cs:[rax + rax]
movzx r15d, byte [rdi]
xor r15b, cl
cmp r11, rcx
movzx r15d, r15b
cmova r15d, r10d
or bpl, r15b
inc r11
dec rdi
cmp rdx, r11
jne 0x14007b030
add r9d, r8d
not r9d
add r9d, r14d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r8d
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 1
lea rdx, [rsp + 0xa0]
mov rcx, rbx
mov r8, rsi
call qword [rbx + 0x110]
mov dword [rsp + 0x4c], eax
movzx ebx, byte [rbx + 0x319]
mov eax, r14d
sub eax, ebx
add eax, 0xffffff00
movzx r15d, byte [rsi + r13]
sub r13d, r15d
mov qword [rsp + 0x60], r13
mov ecx, r13d
sub ecx, ebx
mov edi, eax
shr edi, 0x1f
dec edi
and edi, eax
mov r13d, ecx
shr r13d, 0x1f
dec r13d
and r13d, ecx
lea r12, [rbx - 1]
mov eax, ebx
shr eax, 1
and eax, 0xffffffd5
mov ecx, ebx
sub ecx, eax
mov eax, ecx
and eax, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, eax
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
cmp eax, 1
mov dword [rsp + 0x5c], eax
ja 0x14007b113
mov eax, ebx
sub eax, edi
add eax, r13d
and eax, r12d
mov qword [rsp + 0x50], rax
jmp 0x14007b178
cmp rbx, 0x30
je 0x14007b14c
xor eax, eax
mov qword [rsp + 0x50], rax
cmp ebx, 0x14
jne 0x14007b178
mov eax, r13d
sub eax, edi
add eax, 0x14
movsxd rdx, eax
imul rax, rdx, 0x66666667
mov rcx, rax
shr rcx, 0x3f
sar rax, 0x23
add eax, ecx
shl eax, 2
lea eax, [rax + rax*4]
jmp 0x14007b171
mov eax, r13d
sub eax, edi
add eax, 0x30
movsxd rdx, eax
imul rax, rdx, 0x2aaaaaab
mov rcx, rax
shr rcx, 0x3f
shr rax, 0x23
add eax, ecx
shl eax, 4
lea eax, [rax + rax*2]
sub edx, eax
mov qword [rsp + 0x50], rdx
lea rcx, [rsp + 0xe0]
xor edx, edx
mov r8, rbx
call fcn.1400cae90
cmp edi, r14d
jge 0x14007b480
movsxd r10, r14d
movsxd r11, edi
movd xmm0, r13d
pshufd xmm1, xmm0, 0
movd xmm0, dword [rsp + 0x60]
pshufd xmm4, xmm0, 0
mov rdx, r11
neg rdx
lea r8, [rsi + r11]
sub r14d, edi
sub r14d, r15d
add r14d, 0xfffffffe
sub edi, r13d
xor r9d, r9d
mov qword [rsp + 0x88], r11
movdqa xmmword [rsp + 0x70], xmm4
movdqa xmmword [rsp + 0x90], xmm1
jmp 0x14007b20b
add r11, rbx
inc r9
sub rdx, rbx
add r8, rbx
sub r14d, ebx
add rdi, rbx
cmp r11, r10
jge 0x14007b480
cmp r11, r10
mov rax, r10
cmovg rax, r11
lea r15, [rax + rdx]
cmp r15, r12
cmovae r15, r12
mov rcx, r9
imul rcx, rbx
add rcx, qword [rsp + 0x88]
sub rax, rcx
cmp rax, r12
cmovae rax, r12
test ebx, ebx
je 0x14007b1f0
inc rax
cmp rax, 0x11
jae 0x14007b250
xor eax, eax
jmp 0x14007b43b
mov ecx, eax
and ecx, 0xf
mov r13d, reloc.WS2_32.dll_recv
cmove rcx, r13
sub rax, rcx
movq xmm0, r11
pshufd xmm12, xmm0, 0x44
sub r15, rcx
inc r15
xor r13d, r13d
movaps xmm9, xmmword [0x1400da6b0]
movdqa xmm14, xmmword [0x1400da6a0]
movdqa xmm8, xmmword [0x1400da690]
movdqa xmm6, xmmword [0x1400da680]
movdqa xmm11, xmmword [0x1400da670]
movdqa xmm1, xmmword [0x1400da660]
movdqa xmm10, xmmword [0x1400da650]
movdqa xmm2, xmmword [0x1400da640]
nop word [rax + rax]
movaps xmmword [rsp + 0x60], xmm9
movdqa xmm13, xmmword [rsp + 0x60]
paddq xmm13, xmm12
movdqa xmm0, xmm14
paddq xmm0, xmm12
movdqa xmm15, xmm8
paddq xmm15, xmm12
movdqa xmm3, xmm6
paddq xmm3, xmm12
shufps xmm15, xmm3, 0x88
movdqa xmm3, xmm10
paddq xmm3, xmm12
movdqa xmm5, xmm2
paddq xmm5, xmm12
shufps xmm3, xmm5, 0x88
movdqa xmm7, xmm11
paddq xmm7, xmm12
movdqa xmm4, xmm1
paddq xmm4, xmm12
shufps xmm7, xmm4, 0x88
movq rcx, xmm13
shufps xmm13, xmm0, 0x88
movd xmm0, ecx
movss xmm13, xmm0
movaps xmm0, xmm13
movdqa xmm9, xmmword [rsp + 0x90]
psubd xmm0, xmm9
movaps xmm4, xmm3
psubd xmm4, xmm9
movaps xmm5, xmm7
psubd xmm5, xmm9
psrld xmm5, 0x1f
psrld xmm4, 0x1f
packuswb xmm5, xmm4
movaps xmm4, xmm15
psubd xmm4, xmm9
psrld xmm4, 0x1f
psrld xmm0, 0x1f
packuswb xmm0, xmm4
movdqa xmm4, xmmword [rsp + 0x70]
packuswb xmm0, xmm5
pcmpeqd xmm5, xmm5
xorps xmm7, xmm5
xorps xmm3, xmm5
paddd xmm3, xmm4
paddd xmm7, xmm4
psrld xmm7, 0x1f
psrld xmm3, 0x1f
packuswb xmm7, xmm3
xorps xmm15, xmm5
xorps xmm13, xmm5
paddd xmm13, xmm4
paddd xmm15, xmm4
psrld xmm15, 0x1f
psrld xmm13, 0x1f
packuswb xmm13, xmm15
paddb xmm0, xmm5
packuswb xmm13, xmm7
movdqu xmm3, xmmword [rsi + rcx]
pand xmm3, xmm0
paddb xmm13, xmm5
pand xmm3, xmm13
movdqa xmm9, xmmword [rsp + 0x60]
por xmm3, xmmword [rsp + r13 + 0xe0]
movdqa xmmword [rsp + r13 + 0xe0], xmm3
movdqa xmm0, xmmword [reloc.WS2_32.dll_recv]
add r13, 0x10
paddq xmm9, xmm0
paddq xmm14, xmm0
paddq xmm8, xmm0
paddq xmm6, xmm0
paddq xmm11, xmm0
paddq xmm1, xmm0
paddq xmm10, xmm0
paddq xmm2, xmm0
cmp r15, r13
jne 0x14007b2c0
mov ecx, r14d
sub ecx, eax
lea r15, [r11 + rax]
cmp r15, r10
jge 0x14007b1f0
lea r15d, [rdi + rax]
shr r15d, 0x1f
dec r15b
mov r13d, ecx
shr r13d, 0x1f
dec r13b
and r13b, r15b
and r13b, byte [r8 + rax]
or byte [rsp + rax + 0xe0], r13b
inc rax
dec ecx
cmp rbx, rax
jne 0x14007b440
jmp 0x14007b1f0
cmp dword [rsp + 0x5c], 1
ja 0x14007b4a6
test rbx, rbx
je 0x14007b55c
cmp ebx, 1
jne 0x14007b613
xor ecx, ecx
xor eax, eax
mov edi, dword [rsp + 0x4c]
jmp 0x14007b672
cmp rbx, 0x14
je 0x14007b567
cmp ebx, 0x30
mov edi, dword [rsp + 0x4c]
jne 0x14007b60c
mov rax, qword [rsp + 0x50]
lea ecx, [rax + 1]
mov edx, eax
xor r8d, r8d
xor eax, eax
nop dword [rax]
lea r9d, [rdx + r8]
movsxd r9, r9d
imul r10, r9, 0x2aaaaaab
mov r11, r10
shr r11, 0x3f
shr r10, 0x23
add r10d, r11d
shl r10d, 4
lea r10d, [r10 + r10*2]
sub r9d, r10d
movsxd r9, r9d
movzx r9d, byte [rsp + r9 + 0xe0]
xor r9b, byte [rsp + r8 + 0xa0]
or r9b, al
lea eax, [rcx + r8]
cdqe
imul r10, rax, 0x2aaaaaab
mov r11, r10
shr r11, 0x3f
shr r10, 0x23
add r10d, r11d
shl r10d, 4
lea r10d, [r10 + r10*2]
sub eax, r10d
cdqe
movzx eax, byte [rsp + rax + 0xe0]
xor al, byte [rsp + r8 + 0xa1]
or al, r9b
add r8, 2
cmp r8, 0x30
jne 0x14007b4d0
jmp 0x14007b697
xor eax, eax
mov edi, dword [rsp + 0x4c]
jmp 0x14007b697
mov rax, qword [rsp + 0x50]
lea ecx, [rax + 1]
mov edx, eax
xor r8d, r8d
xor eax, eax
mov edi, dword [rsp + 0x4c]
nop word [rax + rax]
lea r9d, [rdx + r8]
movsxd r9, r9d
imul r10, r9, 0x66666667
mov r11, r10
shr r11, 0x3f
sar r10, 0x23
add r10d, r11d
shl r10d, 2
lea r10d, [r10 + r10*4]
sub r9d, r10d
movsxd r9, r9d
movzx r9d, byte [rsp + r9 + 0xe0]
xor r9b, byte [rsp + r8 + 0xa0]
or r9b, al
lea eax, [rcx + r8]
cdqe
imul r10, rax, 0x66666667
mov r11, r10
shr r11, 0x3f
sar r10, 0x23
add r10d, r11d
shl r10d, 2
lea r10d, [r10 + r10*4]
sub eax, r10d
cdqe
movzx eax, byte [rsp + rax + 0xe0]
xor al, byte [rsp + r8 + 0xa1]
or al, r9b
add r8, 2
cmp r8, 0x14
jne 0x14007b580
jmp 0x14007b697
xor eax, eax
jmp 0x14007b697
mov edx, ebx
and edx, 0xfffffffe
mov rax, qword [rsp + 0x50]
lea r8d, [rax + 1]
mov r9d, eax
xor ecx, ecx
xor eax, eax
mov edi, dword [rsp + 0x4c]
nop dword [rax]
lea r10d, [r9 + rcx]
movsxd r10, r10d
and r10, r12
movzx r10d, byte [rsp + r10 + 0xe0]
xor r10b, byte [rsp + rcx + 0xa0]
or r10b, al
lea eax, [r8 + rcx]
and eax, r12d
cdqe
movzx eax, byte [rsp + rax + 0xe0]
xor al, byte [rsp + rcx + 0xa1]
or al, r10b
add rcx, 2
cmp rdx, rcx
jne 0x14007b630
test bl, 1
je 0x14007b697
mov rdx, qword [rsp + 0x50]
add edx, ecx
and edx, r12d
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0xe0]
xor dl, byte [rsp + rcx + 0xa0]
or dl, al
mov eax, edx
or al, bpl
not al
mov ecx, eax
shr cl, 4
and cl, al
mov eax, ecx
shr al, 2
and al, cl
mov ecx, eax
shr cl, 1
and cl, al
xor cl, 1
movzx eax, cl
sub edi, eax
mov esi, 0xfffffecf
cmove esi, edi
mov rcx, qword [rsp + 0x128]
xor rcx, rsp
call fcn.14009adb0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x130]
movaps xmm7, xmmword [rsp + 0x140]
movaps xmm8, xmmword [rsp + 0x150]
movaps xmm9, xmmword [rsp + 0x160]
movaps xmm10, xmmword [rsp + 0x170]
movaps xmm11, xmmword [rsp + 0x180]
movaps xmm12, xmmword [rsp + 0x190]
movaps xmm13, xmmword [rsp + 0x1a0]
movaps xmm14, xmmword [rsp + 0x1b0]
movaps xmm15, xmmword [rsp + 0x1c0]
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret