Function at 0x1801a5cc0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r14
mov eax, 0x28
call fcn.180131170
sub rsp, rax
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 0x1801a5d1e
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 0x1801a5eff
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r13
mov r13, rsi
cmp rsi, 0x10
jb 0x1801a5db3
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
mov r8, rdi
sub r8, rbx
lea rax, [r15 + r8]
cmp rbx, rax
ja 0x1801a5d83
cmp r15, rdi
jb 0x1801a5d83
mov rax, rbx
mov edx, recvfrom
nop dword [rax]
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x1801a5d70
jmp 0x1801a5d93
movdqu xmm1, xmmword [rbx]
movdqu xmm0, xmmword [rdi]
pxor xmm1, xmm0
movdqu xmmword [rbx], xmm1
lea rdx, [rbx + 0x60]
mov rcx, rbx
call fcn.1801a7180
add rdi, 0x10
sub rbp, 1
jne 0x1801a5d51
mov r15, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x50]
test rsi, rsi
je 0x1801a5e7c
cmp rsi, 0x40
jb 0x1801a5e4b
lea rcx, [rbx - 1]
lea rax, [rdi - 1]
add rcx, rsi
add rax, rsi
cmp rbx, rax
ja 0x1801a5dde
cmp rcx, rdi
jae 0x1801a5e4b
mov rdx, rsi
and rdx, 0xffffffffffffffc0
mov rcx, rdi
mov rax, rbx
sub rcx, rbx
nop
movdqu xmm0, xmmword [rax]
add r14, 0x40
movdqu xmm1, xmmword [rax + rcx]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x40], xmm1
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rcx + 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
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm1, xmmword [rcx + rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x10], xmm1
cmp r14, rdx
jb 0x1801a5df0
cmp r14, rsi
jae 0x1801a5e70
sub rdi, rbx
lea rcx, [r14 + rbx]
sub rsi, r14
nop word [rax + rax]
movzx eax, byte [rcx + rdi]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rsi, 1
jne 0x1801a5e60
lea rdx, [rbx + 0x60]
mov rcx, rbx
call fcn.1801a7180
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.1801a7180
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