Function at 0x1801cbd80
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r14
sub rsp, 0x28
xor r14d, r14d
mov rsi, r8
mov rdi, rdx
mov qword [rcx], r14
mov qword [rcx + 8], r14
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
mov rbx, rcx
cmp r8, 0xc
jne 0x1801cbdd5
movsd xmm0, qword [rdx]
lea edi, [r8 - 0xb]
movsd qword [rcx], xmm0
mov eax, dword [rdx + 8]
mov byte [rcx + 0xf], 1
mov dword [rcx + 8], eax
jmp 0x1801cbfba
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x50], r8
mov rbp, r8
cmp r8, 0x10
jb 0x1801cbe89
mov qword [rsp + 0x60], r12
shr rbp, 4
mov r12, rcx
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x20], r15
neg r12
imul rax, rbp, 0xfffffffffffffff0
add rsi, rax
lea r15, [rcx + 0xf]
lea r8, [r12 + rdi]
lea rax, [r8 + r15]
cmp rbx, rax
ja 0x1801cbe50
cmp r15, rdi
jb 0x1801cbe50
mov rax, rbx
mov edx, reloc.WS2_32.dll_recv
nop word [rax + rax]
movzx ecx, byte [r8 + rax]
lea rax, [rax + 1]
xor byte [rax - 1], cl
dec rdx
jne 0x1801cbe30
jmp 0x1801cbe60
movdqu xmm1, xmmword [rbx]
movdqu xmm0, xmmword [rdi]
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
lea rdx, [rbx + 0x60]
mov rcx, rbx
call fcn.1801cc220
add rdi, 0x10
dec rbp
jne 0x1801cbe10
mov rbp, qword [rsp + 0x50]
mov r15, qword [rsp + 0x20]
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x60]
test rsi, rsi
je 0x1801cbf3c
cmp rsi, 0x20
jb 0x1801cbf03
lea rax, [rdi - 1]
lea rcx, [rbx - 1]
add rax, rsi
add rcx, rsi
cmp rbx, rax
ja 0x1801cbeb0
cmp rcx, rdi
jae 0x1801cbf03
mov rax, rsi
mov rdx, rsi
mov rcx, rdi
and eax, 0x1f
sub rdx, rax
mov rax, rbx
sub rcx, rbx
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + rcx]
add r14, 0x20
lea rax, [rax + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
movdqu xmm1, xmmword [rcx + rax - 0x10]
movdqu xmm0, xmmword [rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x10], xmm1
cmp r14, rdx
jb 0x1801cbed0
cmp r14, rsi
jae 0x1801cbf30
sub rdi, rbx
lea rcx, [r14 + rbx]
sub rsi, r14
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + rdi]
lea rcx, [rcx + 1]
xor byte [rcx - 1], al
dec rsi
jne 0x1801cbf20
lea rdx, [rbx + 0x60]
mov rcx, rbx
call fcn.1801cc220
shl rbp, 3
lea rdx, [rbx + 0x60]
mov rcx, rbx
xor byte [rbx + 0xf], bpl
mov rax, rbp
shr rax, 0x38
xor byte [rbx + 8], al
mov rax, rbp
shr rax, 0x30
xor byte [rbx + 9], al
mov rax, rbp
shr rax, 0x28
xor byte [rbx + 0xa], al
mov rax, rbp
shr rax, 0x20
xor byte [rbx + 0xb], al
mov rax, rbp
shr rax, 0x18
xor byte [rbx + 0xc], al
mov rax, rbp
shr rax, 0x10
xor byte [rbx + 0xd], al
mov rax, rbp
shr rax, 8
xor byte [rbx + 0xe], al
call fcn.1801cc220
movzx eax, byte [rbx + 0xd]
movzx edi, byte [rbx + 0xc]
mov rbp, 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