Function at 0x18008a8f0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r14
sub rsp, 0x28
xor r14d, r14d
mov rsi, r8
mov qword [rcx], r14
mov rdi, rdx
mov qword [rcx + 8], r14
mov rbx, rcx
mov qword [rcx + 0x40], r14
mov qword [rcx + 0x48], r14
mov qword [rcx + 0x30], r14
mov qword [rcx + 0x38], r14
mov qword [rcx + 0x170], r14
cmp r8, 0xc
jne 0x18008a945
movsd xmm0, qword [rdx]
lea edi, [r8 - 0xb]
movsd qword [rcx], xmm0
mov eax, dword [rdx + 8]
mov dword [rcx + 8], eax
mov byte [rcx + 0xf], 1
jmp 0x18008ab2f
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r13
mov r13, rsi
cmp rsi, 0x10
jb 0x18008a9e3
mov qword [rsp + 0x50], rbp
mov rbp, rsi
shr rbp, 4
imul rax, rbp, 0xfffffffffffffff0
mov qword [rsp + 0x20], r15
lea r15, [rcx + 0xf]
add rsi, rax
nop dword [rax + rax]
mov r8, rdi
sub r8, rbx
lea rax, [r15 + r8]
cmp rbx, rax
ja 0x18008a9b3
cmp r15, rdi
jb 0x18008a9b3
mov rax, rbx
mov edx, reloc.WS2_32.dll_recv
nop dword [rax]
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x18008a9a0
jmp 0x18008a9c3
movdqu xmm1, xmmword [rbx]
movdqu xmm0, xmmword [rdi]
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
lea rdx, [rbx + 0x60]
mov rcx, rbx
call fcn.18008af70
add rdi, 0x10
sub rbp, 1
jne 0x18008a980
mov r15, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x50]
test rsi, rsi
je 0x18008aaac
cmp rsi, 0x40
jb 0x18008aa81
lea rcx, [rbx - 1]
lea rax, [rdi - 1]
add rcx, rsi
add rax, rsi
cmp rbx, rax
ja 0x18008aa0e
cmp rcx, rdi
jae 0x18008aa81
mov rdx, rsi
and rdx, 0xffffffffffffffc0
mov rcx, rdi
lea rax, [rbx + 0x10]
sub rcx, rbx
nop
movdqu xmm0, xmmword [rax - 0x10]
add r14, 0x40
movdqu xmm1, xmmword [rcx + rax - 0x10]
movdqu xmm2, xmmword [rax + rcx]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [rcx + rax - 0x30]
pxor xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rcx + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp r14, rdx
jb 0x18008aa20
cmp r14, rsi
jae 0x18008aaa0
sub rdi, rbx
lea rcx, [r14 + rbx]
sub rsi, r14
nop dword [rax + rax]
movzx eax, byte [rcx + rdi]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rsi, 1
jne 0x18008aa90
lea rdx, [rbx + 0x60]
mov rcx, rbx
call fcn.18008af70
shl r13, 3
lea rdx, [rbx + 0x60]
xor byte [rbx + 0xf], r13b
mov rax, r13
shr rax, 0x38
mov rcx, rbx
xor byte [rbx + 8], al
mov rax, r13
shr rax, 0x30
xor byte [rbx + 9], al
mov rax, r13
shr rax, 0x28
xor byte [rbx + 0xa], al
mov rax, r13
shr rax, 0x20
xor byte [rbx + 0xb], al
mov rax, r13
shr rax, 0x18
xor byte [rbx + 0xc], al
mov rax, r13
shr rax, 0x10
xor byte [rbx + 0xd], al
mov rax, r13
shr rax, 8
xor byte [rbx + 0xe], al
call fcn.18008af70
movzx eax, byte [rbx + 0xd]
movzx edi, byte [rbx + 0xc]
mov r13, qword [rsp + 0x60]
mov r12, qword [rsp + 0x58]
shl edi, 8
or edi, eax
movzx eax, byte [rbx + 0xe]
shl edi, 8
or edi, eax
movzx eax, byte [rbx + 0xf]
shl edi, 8
or edi, eax
mov r8, qword [rbx + 0x180]
lea rdx, [rbx + 0x20]
mov rcx, rbx
call qword [rbx + 0x178]
inc edi
mov eax, edi
mov byte [rbx + 0xf], dil
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, edi
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, edi
shr eax, 8
mov byte [rbx + 0xe], al
add rsp, 0x28
pop r14
pop rdi
pop rsi
pop rbx
ret