Function at 0x1400687f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
vmovdqa xmmword [rsp + 0xe0], xmm8
vmovdqa xmmword [rsp + 0xd0], xmm7
vmovdqa xmmword [rsp + 0xc0], xmm6
mov dword [rsp + 0x8c], 0xffffff4c
mov eax, 0xffffff53
test rcx, rcx
je 0x14006895c
mov r13d, r9d
mov r9, qword [rsp + 0x160]
test r9, r9
je 0x14006895c
mov rsi, r8
mov rbp, rdx
mov r14, rcx
mov rdx, qword [rsp + 0x168]
test r13d, r13d
je 0x140068873
test rbp, rbp
je 0x14006895c
test rsi, rsi
je 0x14006895c
test rdx, rdx
je 0x14006895c
mov r10d, dword [rsp + 0x170]
lea ecx, [r10 - 0x11]
cmp ecx, 0xfffffff0
jb 0x14006895c
mov edi, dword [rsp + 0x180]
mov r8, qword [rsp + 0x178]
cmp dword [0x143e27960], 0
je 0x140068900
mov eax, dword [r14 + 0xf0]
lea rcx, [rsp + 0x8c]
mov qword [rsp + 0x58], rcx
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rdx
mov dword [rsp + 0x38], select
mov rcx, rsi
mov rdx, rbp
call fcn.1400f5be2
xor ecx, ecx
cmp dword [rsp + 0x8c], 0
mov eax, 0xffffff4c
cmovne eax, ecx
jmp 0x14006895c
mov rax, qword [r9]
mov qword [rsp + 0x70], rax
mov eax, dword [r9 + 8]
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x7c], 0x1000000
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
mov dword [rsp + 0x30], reloc.WS2_32.dll_recv
mov rcx, r14
mov rdx, r8
mov r8d, edi
mov r9, rsi
call fcn.1400678c0
lea rdx, [rsp + 0x70]
lea r8, [rsp + 0xb0]
mov rcx, r14
call fcn.1400658a0
test eax, eax
je 0x14006898e
vmovaps xmm6, xmmword [rsp + 0xc0]
vmovaps xmm7, xmmword [rsp + 0xd0]
vmovaps xmm8, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret
vmovaps xmm0, xmmword [rsp + 0x90]
vxorps xmm0, xmm0, xmmword [rsp + 0xb0]
vmovaps xmmword [rsp + 0x90], xmm0
test rbp, rbp
jne 0x1400689b5
mov dword [r14 + 0x150], edi
cmp r13d, 0x10
jae 0x140068a5c
mov rdi, rbp
mov ebx, r13d
and ebx, 0xf
mov r12, qword [rsp + 0x168]
je 0x140068ca7
inc byte [rsp + 0x7f]
jne 0x1400689ec
inc byte [rsp + 0x7e]
jne 0x1400689ec
inc byte [rsp + 0x7d]
jne 0x1400689ec
inc byte [rsp + 0x7c]
lea rdx, [rsp + 0x70]
lea r15, [rsp + 0x60]
mov rcx, r14
mov r8, r15
call fcn.1400658a0
test eax, eax
jne 0x14006895c
mov r8d, ebx
test sil, 7
je 0x140068c1a
mov eax, r8d
cmp ebx, 8
jb 0x140068c40
lea rcx, [rsi + rax]
lea r15, [rsp + 0x60]
cmp r15, rcx
jae 0x140068a41
lea rcx, [rsp + rax]
add rcx, 0x60
cmp rsi, rcx
jb 0x140068c40
mov ecx, eax
and ecx, 0xfffffff8
mov rdx, qword [rsi]
xor qword [rsp + 0x60], rdx
cmp rcx, rax
jne 0x140068c42
jmp 0x140068c9a
mov ebx, r13d
shr ebx, 4
mov rax, rbp
sub rax, rsi
mov qword [rsp + 0xa8], rax
mov r12, rsi
mov r15, rbp
mov rdi, rbp
jmp 0x140068b46
movzx eax, byte [rsi]
xor al, byte [rsp + 0x60]
mov byte [rdi], al
movzx eax, byte [rsi + 1]
xor al, byte [rsp + 0x61]
mov byte [rdi + 1], al
movzx eax, byte [rsi + 2]
xor al, byte [rsp + 0x62]
mov byte [rdi + 2], al
movzx eax, byte [rsi + 3]
xor al, byte [rsp + 0x63]
mov byte [rdi + 3], al
movzx eax, byte [rsi + 4]
xor al, byte [rsp + 0x64]
mov byte [rdi + 4], al
movzx eax, byte [rsi + 5]
xor al, byte [rsp + 0x65]
mov byte [rdi + 5], al
movzx eax, byte [rsi + 6]
xor al, byte [rsp + 0x66]
mov byte [rdi + 6], al
movzx eax, byte [rsi + 7]
xor al, byte [rsp + 0x67]
mov byte [rdi + 7], al
movzx eax, byte [rsi + 8]
xor al, byte [rsp + 0x68]
mov byte [rdi + 8], al
movzx eax, byte [rsi + 9]
xor al, byte [rsp + 0x69]
mov byte [rdi + 9], al
movzx eax, byte [rsi + 0xa]
xor al, byte [rsp + 0x6a]
mov byte [rdi + 0xa], al
movzx eax, byte [rsi + 0xb]
xor al, byte [rsp + 0x6b]
mov byte [rdi + 0xb], al
movzx eax, byte [rsi + 0xc]
xor al, byte [rsp + 0x6c]
mov byte [rdi + 0xc], al
movzx eax, byte [rsi + 0xd]
xor al, byte [rsp + 0x6d]
mov byte [rdi + 0xd], al
movzx eax, byte [rsi + 0xe]
xor al, byte [rsp + 0x6e]
mov byte [rdi + 0xe], al
movzx eax, byte [rsi + 0xf]
xor al, byte [rsp + 0x6f]
mov byte [rdi + 0xf], al
dec ebx
add rdi, 0x10
add rsi, 0x10
add r15, 0x10
add r12, 0x10
test ebx, ebx
je 0x1400689c2
inc byte [rsp + 0x7f]
jne 0x140068b5c
inc byte [rsp + 0x7e]
jne 0x140068b5c
inc byte [rsp + 0x7d]
jne 0x140068b5c
inc byte [rsp + 0x7c]
mov rcx, r14
lea rdx, [rsp + 0x70]
lea r8, [rsp + 0x60]
call fcn.1400658a0
test eax, eax
jne 0x14006895c
mov eax, r15d
or eax, r12d
test al, 7
je 0x140068b9f
cmp qword [rsp + 0xa8], 0x10
jb 0x140068a7e
vmovups xmm0, xmmword [rsi]
vxorps xmm0, xmm0, xmmword [rsp + 0x60]
vmovups xmmword [rdi], xmm0
jmp 0x140068b2c
test bpl, 7
je 0x140068bfd
movzx eax, byte [rsi]
xor al, byte [rsp + 0x60]
mov byte [rdi], al
movzx eax, byte [rsi + 1]
xor al, byte [rsp + 0x61]
mov byte [rdi + 1], al
movzx eax, byte [rsi + 2]
xor al, byte [rsp + 0x62]
mov byte [rdi + 2], al
movzx eax, byte [rsi + 3]
xor al, byte [rsp + 0x63]
mov byte [rdi + 3], al
movzx eax, byte [rsi + 4]
xor al, byte [rsp + 0x64]
mov byte [rdi + 4], al
movzx eax, byte [rsi + 5]
xor al, byte [rsp + 0x65]
mov byte [rdi + 5], al
movzx eax, byte [rsi + 6]
xor al, byte [rsp + 0x66]
mov byte [rdi + 6], al
movzx eax, byte [rsi + 7]
xor al, byte [rsp + 0x67]
mov byte [rdi + 7], al
jmp 0x140068c08
mov rax, qword [rsi]
xor rax, qword [rsp + 0x60]
mov qword [rdi], rax
mov rax, qword [rsi + 8]
xor rax, qword [rsp + 0x68]
mov qword [rdi + 8], rax
jmp 0x140068b2c
cmp ebx, 8
jae 0x140068c26
lea r15, [rsp + 0x60]
jmp 0x140068c37
lea r15, [rsp + 0x68]
mov rax, qword [rsi]
add rsi, 8
xor qword [rsp + 0x60], rax
and r13d, 7
je 0x140068c9a
mov eax, r13d
xor ecx, ecx
mov rdx, rcx
not rdx
add rdx, rax
mov r9, rax
and r9, 3
je 0x140068c65
movzx r10d, byte [rsi + rcx]
xor byte [r15 + rcx], r10b
inc rcx
dec r9
jne 0x140068c54
cmp rdx, 3
jb 0x140068c9a
movzx edx, byte [rsi + rcx]
xor byte [r15 + rcx], dl
movzx edx, byte [rsi + rcx + 1]
xor byte [r15 + rcx + 1], dl
movzx edx, byte [rsi + rcx + 2]
xor byte [r15 + rcx + 2], dl
movzx edx, byte [rsi + rcx + 3]
xor byte [r15 + rcx + 3], dl
add rcx, 4
cmp rax, rcx
jne 0x140068c6b
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.14016e4a0
mov eax, dword [rsp + 0x170]
test eax, eax
jle 0x140068df9
mov eax, dword [rsp + 0x170]
mov rcx, rax
mov eax, ecx
cmp ecx, 0x20
jae 0x140068cd0
xor ecx, ecx
xor edx, edx
jmp 0x140068dd0
mov ecx, eax
and ecx, 0xffffffe0
vxorps xmm0, xmm0, xmm0
xor edx, edx
vxorps xmm1, xmm1, xmm1
vxorps xmm2, xmm2, xmm2
vxorps xmm3, xmm3, xmm3
mov r8, qword [rsp + rdx + 0x90]
mov r9, qword [rsp + rdx + 0x98]
mov r10, qword [rsp + rdx + 0xa0]
mov r11, qword [rsp + rdx + 0xa8]
xor r8, qword [r12 + rdx]
vmovq xmm4, r8
xor r9, qword [r12 + rdx + 8]
vmovq xmm5, r9
xor r10, qword [r12 + rdx + 0x10]
xor r11, qword [r12 + rdx + 0x18]
vmovq xmm6, r10
vmovq xmm7, r11
vpmovzxbd xmm8, xmm4
vpshufd xmm4, xmm4, 0x55
vpmovzxbd xmm4, xmm4
vinsertf128 ymm4, ymm8, xmm4, 1
vorps ymm0, ymm0, ymm4
vpmovzxbd xmm4, xmm5
vpshufd xmm5, xmm5, 0x55
vpmovzxbd xmm5, xmm5
vinsertf128 ymm4, ymm4, xmm5, 1
vorps ymm1, ymm1, ymm4
vpmovzxbd xmm4, xmm6
vpshufd xmm5, xmm6, 0x55
vpmovzxbd xmm5, xmm5
vinsertf128 ymm4, ymm4, xmm5, 1
vorps ymm2, ymm2, ymm4
vpmovzxbd xmm4, xmm7
vpshufd xmm5, xmm7, 0x55
vpmovzxbd xmm5, xmm5
vinsertf128 ymm4, ymm4, xmm5, 1
vorps ymm3, ymm3, ymm4
add rdx, 0x20
cmp rcx, rdx
jne 0x140068ce7
vorps ymm0, ymm1, ymm0
vorps ymm0, ymm2, ymm0
vorps ymm0, ymm3, ymm0
vextractf128 xmm1, ymm0, 1
vorps xmm0, xmm0, xmm1
vshufps xmm1, xmm0, xmm0, 0xee
vorps xmm0, xmm0, xmm1
vshufps xmm1, xmm0, xmm0, 0x55
vorps xmm0, xmm0, xmm1
vmovd edx, xmm0
cmp rcx, rax
je 0x140068dec
movzx r8d, byte [rsp + rcx + 0x90]
xor r8b, byte [r12 + rcx]
movzx r8d, r8b
or edx, r8d
inc rcx
cmp rax, rcx
jne 0x140068dd0
mov eax, 0xffffff4c
test edx, edx
jne 0x14006895c
xor eax, eax
jmp 0x14006895c